From 1738a6973deb03f33a71c9527594727cb8bb64b4 Mon Sep 17 00:00:00 2001 From: marha Date: Wed, 7 Nov 2012 07:53:41 +0100 Subject: xserver mesa xkbcomp git update 7 nov 2012 xserver: 011f8458805e443ac9130865d2840a929a00cabf xkbcomp: bd1103ef3cfef9cfed645566f944a69e7ca568b4 mesa: f42518962a08ce927e4ddd233d19d2661e135834 --- mesalib/src/gallium/auxiliary/util/u_blitter.c | 3 +- mesalib/src/gallium/auxiliary/util/u_framebuffer.h | 8 + mesalib/src/glsl/ast_to_hir.cpp | 2 +- mesalib/src/glsl/ir.cpp | 2 +- mesalib/src/glsl/ir_builder.cpp | 2 +- mesalib/src/glsl/ir_builder.h | 2 +- mesalib/src/glsl/lower_mat_op_to_vec.cpp | 8 +- .../src/glsl/lower_vec_index_to_cond_assign.cpp | 4 +- mesalib/src/glsl/lower_vec_index_to_swizzle.cpp | 2 +- .../mapi/glapi/gen/APPLE_vertex_array_object.xml | 6 +- mesalib/src/mapi/glapi/gen/ARB_base_instance.xml | 9 +- .../src/mapi/glapi/gen/ARB_draw_buffers_blend.xml | 9 +- .../glapi/gen/ARB_draw_elements_base_vertex.xml | 11 +- mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml | 4 +- .../src/mapi/glapi/gen/ARB_geometry_shader4.xml | 2 +- .../src/mapi/glapi/gen/ARB_get_program_binary.xml | 9 +- .../src/mapi/glapi/gen/ARB_instanced_arrays.xml | 2 +- mesalib/src/mapi/glapi/gen/ARB_robustness.xml | 22 +- .../mapi/glapi/gen/ARB_texture_buffer_object.xml | 2 +- .../glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml | 106 +- mesalib/src/mapi/glapi/gen/EXT_draw_buffers2.xml | 12 +- mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml | 74 +- .../mapi/glapi/gen/EXT_separate_shader_objects.xml | 6 +- mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml | 8 +- .../src/mapi/glapi/gen/EXT_transform_feedback.xml | 16 +- mesalib/src/mapi/glapi/gen/GL3x.xml | 7 +- mesalib/src/mapi/glapi/gen/Makefile.am | 4 + .../src/mapi/glapi/gen/NV_conditional_render.xml | 4 +- .../src/mapi/glapi/gen/NV_primitive_restart.xml | 5 +- mesalib/src/mapi/glapi/gen/OES_fixed_point.xml | 85 +- .../src/mapi/glapi/gen/OES_single_precision.xml | 8 +- mesalib/src/mapi/glapi/gen/es_EXT.xml | 37 +- mesalib/src/mapi/glapi/gen/glX_API.xml | 6 +- mesalib/src/mapi/glapi/gen/gl_API.dtd | 6 +- mesalib/src/mapi/glapi/gen/gl_API.xml | 1996 ++++++++++++-------- mesalib/src/mapi/glapi/gen/gl_XML.py | 81 +- mesalib/src/mapi/glapi/gen/gl_and_es_API.xml | 84 +- mesalib/src/mapi/glapi/gen/gl_genexec.py | 222 +++ mesalib/src/mesa/Android.gen.mk | 7 + mesalib/src/mesa/SConscript | 8 + mesalib/src/mesa/drivers/common/meta.c | 65 +- mesalib/src/mesa/main/.gitignore | 1 + mesalib/src/mesa/main/accum.c | 10 +- mesalib/src/mesa/main/accum.h | 5 +- mesalib/src/mesa/main/api_exec.c | 935 --------- mesalib/src/mesa/main/api_loopback.c | 416 ++-- mesalib/src/mesa/main/api_loopback.h | 437 +++++ mesalib/src/mesa/main/atifragshader.c | 20 - mesalib/src/mesa/main/atifragshader.h | 3 - mesalib/src/mesa/main/attrib.c | 10 - mesalib/src/mesa/main/attrib.h | 3 - mesalib/src/mesa/main/bufferobj.c | 35 +- mesalib/src/mesa/main/bufferobj.h | 68 +- mesalib/src/mesa/main/colortab.c | 34 +- mesalib/src/mesa/main/colortab.h | 29 +- mesalib/src/mesa/main/context.c | 4 +- mesalib/src/mesa/main/convolve.c | 52 +- mesalib/src/mesa/main/convolve.h | 46 +- mesalib/src/mesa/main/dlist.c | 26 +- mesalib/src/mesa/main/dlist.h | 21 +- mesalib/src/mesa/main/drawpix.c | 15 +- mesalib/src/mesa/main/drawpix.h | 12 +- mesalib/src/mesa/main/errors.c | 8 +- mesalib/src/mesa/main/errors.h | 16 + mesalib/src/mesa/main/es1_conversion.c | 4 - mesalib/src/mesa/main/eval.c | 50 +- mesalib/src/mesa/main/eval.h | 42 +- mesalib/src/mesa/main/fbobject.c | 14 +- mesalib/src/mesa/main/feedback.c | 28 +- mesalib/src/mesa/main/feedback.h | 20 +- mesalib/src/mesa/main/ffvertex_prog.c | 2 + mesalib/src/mesa/main/format_pack.c | 20 +- mesalib/src/mesa/main/get.c | 4 +- mesalib/src/mesa/main/histogram.c | 48 +- mesalib/src/mesa/main/histogram.h | 32 +- mesalib/src/mesa/main/imports.h | 2 +- mesalib/src/mesa/main/macros.h | 39 + mesalib/src/mesa/main/matrix.c | 2 +- mesalib/src/mesa/main/pixel.c | 42 +- mesalib/src/mesa/main/pixel.h | 27 +- mesalib/src/mesa/main/queryobj.c | 28 +- mesalib/src/mesa/main/queryobj.h | 29 + mesalib/src/mesa/main/rastpos.c | 152 +- mesalib/src/mesa/main/rastpos.h | 101 +- mesalib/src/mesa/main/samplerobj.c | 20 +- mesalib/src/mesa/main/samplerobj.h | 33 +- mesalib/src/mesa/main/texgen.c | 27 +- mesalib/src/mesa/main/texgen.h | 25 +- mesalib/src/mesa/main/texgetimage.c | 2 +- mesalib/src/mesa/main/texstorage.c | 2 +- mesalib/src/mesa/main/transformfeedback.c | 26 +- mesalib/src/mesa/main/transformfeedback.h | 4 - mesalib/src/mesa/main/uniforms.c | 89 +- mesalib/src/mesa/main/uniforms.h | 182 +- mesalib/src/mesa/sources.mak | 2 +- mesalib/src/mesa/state_tracker/st_cb_fbo.c | 2 +- mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +- mesalib/src/mesa/swrast/s_zoom.c | 4 +- mesalib/src/mesa/tnl/t_draw.c | 3 +- mesalib/src/mesa/vbo/vbo.h | 2 +- mesalib/src/mesa/vbo/vbo_attrib_tmp.h | 86 +- mesalib/src/mesa/vbo/vbo_context.h | 43 + mesalib/src/mesa/vbo/vbo_exec.h | 1 + mesalib/src/mesa/vbo/vbo_exec_api.c | 29 +- mesalib/src/mesa/vbo/vbo_exec_array.c | 2 +- mesalib/src/mesa/vbo/vbo_exec_draw.c | 7 +- mesalib/src/mesa/vbo/vbo_save.h | 2 + mesalib/src/mesa/vbo/vbo_save_api.c | 12 +- mesalib/src/mesa/vbo/vbo_save_draw.c | 21 +- 109 files changed, 3325 insertions(+), 3151 deletions(-) create mode 100644 mesalib/src/mapi/glapi/gen/gl_genexec.py delete mode 100644 mesalib/src/mesa/main/api_exec.c (limited to 'mesalib/src') diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.c b/mesalib/src/gallium/auxiliary/util/u_blitter.c index bb784d6b3..d10ce231c 100644 --- a/mesalib/src/gallium/auxiliary/util/u_blitter.c +++ b/mesalib/src/gallium/auxiliary/util/u_blitter.c @@ -1609,7 +1609,8 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter, blitter_disable_render_cond(ctx); /* bind states */ - pipe->bind_blend_state(pipe, ctx->blend[PIPE_MASK_RGBA]); + pipe->bind_blend_state(pipe, cbsurf ? ctx->blend[PIPE_MASK_RGBA] : + ctx->blend[0]); pipe->bind_depth_stencil_alpha_state(pipe, dsa_stage); ctx->bind_fs_state(pipe, blitter_get_fs_col(ctx, 0, FALSE)); pipe->bind_vertex_elements_state(pipe, ctx->velem_state); diff --git a/mesalib/src/gallium/auxiliary/util/u_framebuffer.h b/mesalib/src/gallium/auxiliary/util/u_framebuffer.h index e7dc1e9e4..a89066230 100644 --- a/mesalib/src/gallium/auxiliary/util/u_framebuffer.h +++ b/mesalib/src/gallium/auxiliary/util/u_framebuffer.h @@ -33,6 +33,10 @@ #include "pipe/p_state.h" +#ifdef __cplusplus +extern "C" { +#endif + extern boolean util_framebuffer_state_equal(const struct pipe_framebuffer_state *dst, const struct pipe_framebuffer_state *src); @@ -51,4 +55,8 @@ util_framebuffer_min_size(const struct pipe_framebuffer_state *fb, unsigned *width, unsigned *height); +#ifdef __cplusplus +} +#endif + #endif /* U_FRAMEBUFFER_H */ diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp index 5157661b3..d450aa1e4 100644 --- a/mesalib/src/glsl/ast_to_hir.cpp +++ b/mesalib/src/glsl/ast_to_hir.cpp @@ -4058,7 +4058,7 @@ ast_uniform_block::hir(exec_list *instructions, decl_list->hir(&declared_variables, state); foreach_list_const(node, &declared_variables) { - struct ir_variable *var = (ir_variable *)node; + ir_variable *var = (ir_variable *)node; struct gl_uniform_buffer_variable *ubo_var = &ubo->Uniforms[ubo->NumUniforms++]; diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp index 1c7aadaca..7b0a487b6 100644 --- a/mesalib/src/glsl/ir.cpp +++ b/mesalib/src/glsl/ir.cpp @@ -780,7 +780,7 @@ ir_constant::get_float_component(unsigned i) const case GLSL_TYPE_UINT: return (float) this->value.u[i]; case GLSL_TYPE_INT: return (float) this->value.i[i]; case GLSL_TYPE_FLOAT: return this->value.f[i]; - case GLSL_TYPE_BOOL: return this->value.b[i] ? 1.0 : 0.0; + case GLSL_TYPE_BOOL: return this->value.b[i] ? 1.0f : 0.0f; default: assert(!"Should not get here."); break; } diff --git a/mesalib/src/glsl/ir_builder.cpp b/mesalib/src/glsl/ir_builder.cpp index d96e25c18..c62f0b115 100644 --- a/mesalib/src/glsl/ir_builder.cpp +++ b/mesalib/src/glsl/ir_builder.cpp @@ -77,7 +77,7 @@ swizzle(operand a, int swizzle, int components) } ir_swizzle * -swizzle_for_size(operand a, int components) +swizzle_for_size(operand a, unsigned components) { void *mem_ctx = ralloc_parent(a.val); diff --git a/mesalib/src/glsl/ir_builder.h b/mesalib/src/glsl/ir_builder.h index 7a0a196ee..067858df4 100644 --- a/mesalib/src/glsl/ir_builder.h +++ b/mesalib/src/glsl/ir_builder.h @@ -94,7 +94,7 @@ ir_expression *saturate(operand a); /** * Swizzle away later components, but preserve the ordering. */ -ir_swizzle *swizzle_for_size(operand a, int components); +ir_swizzle *swizzle_for_size(operand a, unsigned components); ir_swizzle *swizzle_xxxx(operand a); ir_swizzle *swizzle_yyyy(operand a); diff --git a/mesalib/src/glsl/lower_mat_op_to_vec.cpp b/mesalib/src/glsl/lower_mat_op_to_vec.cpp index a371afc14..08cae29fa 100644 --- a/mesalib/src/glsl/lower_mat_op_to_vec.cpp +++ b/mesalib/src/glsl/lower_mat_op_to_vec.cpp @@ -122,7 +122,7 @@ ir_mat_op_to_vec_visitor::do_mul_mat_mat(ir_dereference *result, ir_dereference *a, ir_dereference *b) { - int b_col, i; + unsigned b_col, i; ir_assignment *assign; ir_expression *expr; @@ -154,7 +154,7 @@ ir_mat_op_to_vec_visitor::do_mul_mat_vec(ir_dereference *result, ir_dereference *a, ir_dereference *b) { - int i; + unsigned i; ir_assignment *assign; ir_expression *expr; @@ -183,7 +183,7 @@ ir_mat_op_to_vec_visitor::do_mul_vec_mat(ir_dereference *result, ir_dereference *a, ir_dereference *b) { - int i; + unsigned i; for (i = 0; i < b->type->matrix_columns; i++) { ir_rvalue *column_result; @@ -208,7 +208,7 @@ ir_mat_op_to_vec_visitor::do_mul_mat_scalar(ir_dereference *result, ir_dereference *a, ir_dereference *b) { - int i; + unsigned i; for (i = 0; i < a->type->matrix_columns; i++) { ir_expression *column_expr; diff --git a/mesalib/src/glsl/lower_vec_index_to_cond_assign.cpp b/mesalib/src/glsl/lower_vec_index_to_cond_assign.cpp index fce9c3424..789f62afe 100644 --- a/mesalib/src/glsl/lower_vec_index_to_cond_assign.cpp +++ b/mesalib/src/glsl/lower_vec_index_to_cond_assign.cpp @@ -71,7 +71,7 @@ ir_vec_index_to_cond_assign_visitor::convert_vec_index_to_cond_assign(ir_rvalue ir_assignment *assign; ir_variable *index, *var; ir_dereference *deref; - int i; + unsigned i; if (!orig_deref) return ir; @@ -164,7 +164,7 @@ ir_vec_index_to_cond_assign_visitor::visit_leave(ir_assignment *ir) ir_variable *index, *var; ir_dereference_variable *deref; ir_assignment *assign; - int i; + unsigned i; ir->rhs = convert_vec_index_to_cond_assign(ir->rhs); if (ir->condition) diff --git a/mesalib/src/glsl/lower_vec_index_to_swizzle.cpp b/mesalib/src/glsl/lower_vec_index_to_swizzle.cpp index 46fd6ace1..264d6dc07 100644 --- a/mesalib/src/glsl/lower_vec_index_to_swizzle.cpp +++ b/mesalib/src/glsl/lower_vec_index_to_swizzle.cpp @@ -93,7 +93,7 @@ ir_vec_index_to_swizzle_visitor::convert_vec_index_to_swizzle(ir_rvalue *ir) * large. For simplicity sake, just clamp the index to [0, size-1]. */ const int i = MIN2(MAX2(ir_constant->value.i[0], 0), - (deref->array->type->vector_elements - 1)); + ((int) deref->array->type->vector_elements - 1)); return new(ctx) ir_swizzle(deref->array, i, 0, 0, 0, 1); } diff --git a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml index bd8427eaf..2bffc4e08 100644 --- a/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml +++ b/mesalib/src/mapi/glapi/gen/APPLE_vertex_array_object.xml @@ -5,7 +5,8 @@ - + @@ -14,7 +15,8 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml index 8e81553f6..1478e3970 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_base_instance.xml @@ -8,7 +8,8 @@ - + @@ -16,7 +17,8 @@ - + @@ -25,7 +27,8 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml index 0b6947cc5..c08017aa5 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml @@ -8,24 +8,25 @@ - + - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml index 851f1faec..986654848 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml @@ -8,7 +8,7 @@ - + @@ -16,7 +16,8 @@ - + @@ -26,7 +27,8 @@ - + @@ -35,7 +37,8 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml index 57bb776ac..7ee7629c7 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_draw_instanced.xml @@ -8,14 +8,14 @@ - + - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml index 97a4e2e8f..73f0a9c3d 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_geometry_shader4.xml @@ -45,7 +45,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml index 8da5c41e8..7db166564 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_get_program_binary.xml @@ -11,7 +11,8 @@ - + @@ -19,14 +20,16 @@ - + - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_instanced_arrays.xml b/mesalib/src/mapi/glapi/gen/ARB_instanced_arrays.xml index 822f54374..9a30b0c9e 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_instanced_arrays.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_instanced_arrays.xml @@ -10,7 +10,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml index b347ef35c..14048bf49 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_robustness.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_robustness.xml @@ -25,21 +25,21 @@ - + - + - + @@ -48,19 +48,19 @@ - + - + - + @@ -95,7 +95,7 @@ - + @@ -103,7 +103,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -131,7 +131,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_object.xml b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_object.xml index 57680f553..8884591ca 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_object.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_texture_buffer_object.xml @@ -11,7 +11,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml index 7d12d9774..6c6090c1c 100644 --- a/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml +++ b/mesalib/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml @@ -7,214 +7,244 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/EXT_draw_buffers2.xml b/mesalib/src/mapi/glapi/gen/EXT_draw_buffers2.xml index efbe61f74..affd55a5f 100644 --- a/mesalib/src/mapi/glapi/gen/EXT_draw_buffers2.xml +++ b/mesalib/src/mapi/glapi/gen/EXT_draw_buffers2.xml @@ -8,7 +8,7 @@ - + @@ -16,29 +16,29 @@ - + - + - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml index bf2f6a3ed..b008f2e65 100644 --- a/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml +++ b/mesalib/src/mapi/glapi/gen/EXT_gpu_shader4.xml @@ -44,25 +44,25 @@ - + - + - + - + @@ -70,25 +70,25 @@ - + - + - + - + @@ -96,67 +96,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -164,37 +170,37 @@ - + - + - + - + - + - + @@ -202,43 +208,43 @@ - + - + - + - + - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml index 6ec56157c..03f90a1b1 100644 --- a/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml +++ b/mesalib/src/mapi/glapi/gen/EXT_separate_shader_objects.xml @@ -8,16 +8,16 @@ - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml index 7e5a8cbeb..dac399964 100644 --- a/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml +++ b/mesalib/src/mapi/glapi/gen/EXT_texture_integer.xml @@ -69,25 +69,25 @@ - + - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml index dbd7513c7..e9b27582a 100644 --- a/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml +++ b/mesalib/src/mapi/glapi/gen/EXT_transform_feedback.xml @@ -24,7 +24,7 @@ - + @@ -39,27 +39,29 @@ - + - + - + - + - + @@ -108,7 +110,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml index 82b977f58..ad12102c6 100644 --- a/mesalib/src/mapi/glapi/gen/GL3x.xml +++ b/mesalib/src/mapi/glapi/gen/GL3x.xml @@ -594,19 +594,20 @@ - + - + - + diff --git a/mesalib/src/mapi/glapi/gen/Makefile.am b/mesalib/src/mapi/glapi/gen/Makefile.am index 14bb2dfe6..13943e839 100644 --- a/mesalib/src/mapi/glapi/gen/Makefile.am +++ b/mesalib/src/mapi/glapi/gen/Makefile.am @@ -55,6 +55,7 @@ MESA_OUTPUTS = \ $(MESA_GLAPI_OUTPUTS) \ $(MESA_GLAPI_ASM_OUTPUTS) \ $(MESA_DIR)/main/enums.c \ + $(MESA_DIR)/main/api_exec.c \ $(MESA_DIR)/main/dispatch.h \ $(MESA_DIR)/main/remap_helper.h \ $(MESA_GLX_DIR)/indirect.c \ @@ -215,6 +216,9 @@ $(MESA_GLAPI_DIR)/glapi_sparc.S: gl_SPARC_asm.py $(COMMON) $(MESA_DIR)/main/enums.c: gl_enums.py $(COMMON) $(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@ +$(MESA_DIR)/main/api_exec.c: gl_genexec.py $(COMMON) + $(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml > $@ + $(MESA_DIR)/main/dispatch.h: gl_table.py $(COMMON) $(PYTHON_GEN) $< -f $(srcdir)/gl_and_es_API.xml -m remap_table > $@ diff --git a/mesalib/src/mapi/glapi/gen/NV_conditional_render.xml b/mesalib/src/mapi/glapi/gen/NV_conditional_render.xml index 8bb31dd1f..8bb5c22ca 100644 --- a/mesalib/src/mapi/glapi/gen/NV_conditional_render.xml +++ b/mesalib/src/mapi/glapi/gen/NV_conditional_render.xml @@ -13,12 +13,12 @@ - + - + diff --git a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml index abe7dda00..d19fc8cf1 100644 --- a/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml +++ b/mesalib/src/mapi/glapi/gen/NV_primitive_restart.xml @@ -11,10 +11,11 @@ - + - + diff --git a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml index 974240c49..ad775728f 100644 --- a/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml +++ b/mesalib/src/mapi/glapi/gen/OES_fixed_point.xml @@ -14,13 +14,13 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -28,12 +28,12 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -41,24 +41,25 @@ + es1="1.0" exec="es" mesa_name="-OES"> - + + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -68,62 +69,62 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -132,14 +133,14 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -149,18 +150,18 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -168,41 +169,41 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -210,65 +211,65 @@ + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" desktop="false" mesa_name="-OES"> + es1="1.0" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + static_dispatch="false" es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> + static_dispatch="false" es1="1.0" exec="es" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -276,21 +277,21 @@ + es1="1.0" exec="check" desktop="false"> + es1="1.0" exec="check" desktop="false"> + es1="1.0" exec="check" desktop="false"> diff --git a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml index 7d4744159..8a6c27194 100644 --- a/mesalib/src/mapi/glapi/gen/OES_single_precision.xml +++ b/mesalib/src/mapi/glapi/gen/OES_single_precision.xml @@ -12,7 +12,7 @@ + es1="1.0" exec="es" mesa_name="-OES"> @@ -24,13 +24,13 @@ + es1="1.0" exec="es" desktop="false" mesa_name="-OES"> + es1="1.0" exec="es" mesa_name="-OES"> @@ -40,7 +40,7 @@ + es1="1.0" exec="es" mesa_name="-OES"> diff --git a/mesalib/src/mapi/glapi/gen/es_EXT.xml b/mesalib/src/mapi/glapi/gen/es_EXT.xml index 1fdb4d591..c0bbbfae1 100644 --- a/mesalib/src/mapi/glapi/gen/es_EXT.xml +++ b/mesalib/src/mapi/glapi/gen/es_EXT.xml @@ -73,7 +73,7 @@ + es1="1.0" desktop="false" mesa_name="-OES"> @@ -82,12 +82,12 @@ + es1="1.0" desktop="false" mesa_name="-OES"> + es1="1.0" desktop="false" mesa_name="-OES"> @@ -96,12 +96,12 @@ + es1="1.0" desktop="false" mesa_name="-OES"> + es1="1.0" desktop="false" mesa_name="-OES"> @@ -110,12 +110,12 @@ + es1="1.0" desktop="false" mesa_name="-OES"> + es1="1.0" exec="es" desktop="false"> @@ -124,7 +124,7 @@ + es1="1.0" exec="es" desktop="false"> @@ -307,22 +307,26 @@ - + - + - + - + @@ -339,7 +343,8 @@ + static_dispatch="false" es1="1.0" desktop="false" + mesa_name="-OES"> @@ -355,7 +360,7 @@ + es1="1.0" exec="es" desktop="false"> @@ -768,7 +773,7 @@ - + @@ -783,7 +788,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/glX_API.xml b/mesalib/src/mapi/glapi/gen/glX_API.xml index b7f4a7770..926d8791b 100644 --- a/mesalib/src/mapi/glapi/gen/glX_API.xml +++ b/mesalib/src/mapi/glapi/gen/glX_API.xml @@ -201,13 +201,13 @@ - + - + @@ -217,7 +217,7 @@ - + diff --git a/mesalib/src/mapi/glapi/gen/gl_API.dtd b/mesalib/src/mapi/glapi/gen/gl_API.dtd index db33500c0..066d5da52 100644 --- a/mesalib/src/mapi/glapi/gen/gl_API.dtd +++ b/mesalib/src/mapi/glapi/gen/gl_API.dtd @@ -37,7 +37,11 @@ static_dispatch (true | false) "true" vectorequiv NMTOKEN #IMPLIED es1 CDATA "none" - es2 CDATA "none"> + es2 CDATA "none" + deprecated CDATA "none" + exec NMTOKEN #IMPLIED + desktop (true | false) "true" + mesa_name CDATA #IMPLIED> diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml index ca7f383e3..01d2a9cd2 100644 --- a/mesalib/src/mapi/glapi/gen/gl_API.xml +++ b/mesalib/src/mapi/glapi/gen/gl_API.xml @@ -1108,51 +1108,51 @@ - + - + - + - + - + - + - + - + - + @@ -1163,785 +1163,876 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1952,25 +2043,25 @@ - + - + - + - + @@ -1987,59 +2078,59 @@ - + - + - + - + - + - + - + - + - + @@ -2050,28 +2141,30 @@ - + - + - + - + @@ -2089,7 +2182,7 @@ - + @@ -2102,7 +2195,7 @@ - + @@ -2160,114 +2253,114 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2282,7 +2375,7 @@ - + @@ -2290,7 +2383,7 @@ - + @@ -2331,12 +2424,12 @@ - + - + @@ -2360,16 +2453,16 @@ - + - + - + @@ -2379,7 +2472,7 @@ - + @@ -2389,7 +2482,7 @@ - + @@ -2403,7 +2496,7 @@ - + @@ -2417,21 +2510,21 @@ - + - + - + @@ -2441,7 +2534,7 @@ - + @@ -2451,57 +2544,68 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -2510,13 +2614,14 @@ - + - + @@ -2552,19 +2657,19 @@ - + - + - + @@ -2582,21 +2687,21 @@ - + - + - + @@ -2608,7 +2713,7 @@ - + @@ -2628,7 +2733,7 @@ - + @@ -2643,7 +2748,7 @@ - + @@ -2672,74 +2777,74 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -2750,35 +2855,35 @@ - + - + - + - + - + @@ -2830,7 +2935,7 @@ - + @@ -2842,7 +2947,7 @@ - + @@ -2852,36 +2957,36 @@ - + - + - + - + - + - + - + @@ -2891,15 +2996,15 @@ - + - + - + @@ -2907,7 +3012,7 @@ - + @@ -2915,28 +3020,28 @@ - + - + - + - + @@ -3126,12 +3231,13 @@ - + - + @@ -3139,19 +3245,22 @@ - + - + - + @@ -3159,13 +3268,13 @@ - + - + @@ -3176,28 +3285,28 @@ - + - + - + - + @@ -3205,7 +3314,7 @@ - + @@ -3290,7 +3399,7 @@ - + @@ -3322,27 +3431,28 @@ - + - + - + - + - + @@ -3708,7 +3818,8 @@ - + @@ -3718,7 +3829,7 @@ - + @@ -3728,21 +3839,21 @@ - + - + - + @@ -3751,7 +3862,7 @@ - + @@ -3759,21 +3870,21 @@ - + - + - + @@ -3783,7 +3894,7 @@ - + @@ -3792,7 +3903,7 @@ - + @@ -3802,7 +3913,7 @@ - + @@ -3813,35 +3924,35 @@ - + - + - + - + - + @@ -3850,7 +3961,7 @@ - + @@ -3860,7 +3971,7 @@ - + @@ -3868,21 +3979,21 @@ - + - + - + @@ -3892,7 +4003,7 @@ - + @@ -3904,7 +4015,7 @@ - + @@ -3913,21 +4024,21 @@ - + - + - + @@ -3936,21 +4047,21 @@ - + - + - + @@ -3958,19 +4069,19 @@ - + - + - + @@ -4238,143 +4349,168 @@ + es1="1.0" deprecated="3.1"> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4382,12 +4518,14 @@ - + - + @@ -4395,12 +4533,14 @@ - + - + @@ -4408,12 +4548,14 @@ - + - + @@ -4421,24 +4563,29 @@ - + - + - + - + - + @@ -4648,23 +4795,24 @@ - + - + - + - + - + @@ -4705,166 +4853,183 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5828,151 +5993,164 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -5980,13 +6158,14 @@ - + - + @@ -5994,13 +6173,14 @@ - + - + @@ -6008,13 +6188,14 @@ - + - + @@ -6022,7 +6203,7 @@ - + @@ -6393,47 +6574,47 @@ - + - + - + - + - + - + - + - + - + @@ -6441,7 +6622,7 @@ - + @@ -6476,30 +6657,30 @@ - + - + - + - + - + @@ -6866,115 +7047,125 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -6982,13 +7173,14 @@ - + - + @@ -6996,13 +7188,14 @@ - + - + @@ -7010,13 +7203,14 @@ - + - + @@ -7024,67 +7218,67 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -7110,7 +7304,7 @@ - + @@ -7138,7 +7332,8 @@ - + @@ -7147,14 +7342,16 @@ - + - + @@ -7163,14 +7360,16 @@ - + - + @@ -7179,14 +7378,16 @@ - + - + @@ -7195,7 +7396,8 @@ - + @@ -7214,28 +7416,32 @@ the ARB_vertex_program protocol to unused padding. --> - + - + - + - + @@ -7243,14 +7449,14 @@ - + - + @@ -8025,7 +8231,8 @@ - + @@ -8061,13 +8268,15 @@ - + - + @@ -8111,7 +8320,7 @@ - + @@ -8215,14 +8424,14 @@ - + - + @@ -8712,37 +8921,37 @@ - + - + - + - + - + - + @@ -8750,7 +8959,7 @@ - + @@ -8765,7 +8974,7 @@ - + @@ -8831,14 +9040,14 @@ - + - + @@ -8846,14 +9055,14 @@ - + - + @@ -8861,13 +9070,15 @@ - + - + @@ -8898,7 +9109,7 @@ - + @@ -8913,7 +9124,7 @@ - + @@ -8925,7 +9136,7 @@ - + @@ -8933,7 +9144,7 @@ - + @@ -8941,7 +9152,7 @@ - + @@ -8950,7 +9161,7 @@ - + @@ -9064,25 +9275,25 @@ - + - + - + - + @@ -9103,13 +9314,13 @@ - + - + @@ -9117,33 +9328,33 @@ - + - + - + - + - + - + @@ -9167,14 +9378,14 @@ - + - + @@ -9182,14 +9393,14 @@ - + - + @@ -9203,13 +9414,13 @@ - + - + @@ -9224,37 +9435,37 @@ - + - + - + - + - + - + @@ -9301,7 +9512,7 @@ - + @@ -9385,42 +9596,42 @@ - + - + - + - + - + - + @@ -9472,7 +9683,7 @@ - + @@ -9480,7 +9691,7 @@ - + @@ -9491,13 +9702,13 @@ - + - + @@ -9513,13 +9724,13 @@ - + - + @@ -9531,121 +9742,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9682,15 +9893,15 @@ - + - + - + @@ -9708,55 +9919,55 @@ - + - + - + - + - + - + - + - + - + - + @@ -9773,25 +9984,25 @@ - + - + - + - + @@ -9817,24 +10028,30 @@ - + - + - + - + @@ -9850,57 +10067,72 @@ - + - + - + - + - + - + - + - + - + - + @@ -9915,7 +10147,7 @@ - + @@ -9929,7 +10161,8 @@ - + @@ -9940,20 +10173,22 @@ - + - + - + - + @@ -9973,113 +10208,113 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10113,7 +10348,7 @@ - + @@ -10123,70 +10358,70 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10194,7 +10429,7 @@ - + @@ -10203,12 +10438,12 @@ - + - + @@ -10218,12 +10453,12 @@ - + - + @@ -10232,12 +10467,12 @@ - + - + @@ -10246,12 +10481,12 @@ - + - + @@ -10264,13 +10499,13 @@ - + - + @@ -10278,12 +10513,12 @@ - + - + @@ -10294,12 +10529,12 @@ - + - + @@ -10311,13 +10546,13 @@ - + - + @@ -10328,13 +10563,13 @@ - + - + @@ -10345,13 +10580,13 @@ - + - + @@ -10366,14 +10601,14 @@ - + - + @@ -10391,26 +10626,26 @@ - + - + - + - + @@ -10421,13 +10656,13 @@ - + - + @@ -10437,13 +10672,13 @@ - + - + @@ -10453,13 +10688,14 @@ - + - + @@ -10473,14 +10709,15 @@ - + - + @@ -10489,13 +10726,14 @@ - + - + @@ -10507,14 +10745,16 @@ - + - + @@ -10530,7 +10770,8 @@ - + @@ -10603,17 +10844,18 @@ - + - + - + @@ -10632,11 +10874,11 @@ - + - + @@ -10644,31 +10886,31 @@ - + - + - + - + - + @@ -10678,7 +10920,7 @@ - + @@ -10692,7 +10934,7 @@ - + @@ -10700,7 +10942,7 @@ - + @@ -10709,7 +10951,7 @@ - + @@ -10718,7 +10960,7 @@ - + @@ -10726,7 +10968,7 @@ - + @@ -10734,14 +10976,14 @@ - + - + @@ -10889,7 +11131,7 @@ - + @@ -10897,12 +11139,12 @@ - + - + @@ -10910,12 +11152,12 @@ - + - + @@ -10923,12 +11165,12 @@ - + - + @@ -10936,7 +11178,7 @@ - + @@ -10971,7 +11213,7 @@ - + @@ -10979,7 +11221,7 @@ - + @@ -10987,34 +11229,34 @@ - + - + - + - + - + @@ -11022,7 +11264,7 @@ - + @@ -11049,7 +11291,7 @@ - + @@ -11072,7 +11314,7 @@ - + @@ -11098,43 +11340,43 @@ - + - + - + - + - + - + - + @@ -11146,7 +11388,7 @@ - + @@ -11158,19 +11400,19 @@ - + - + - + @@ -11180,33 +11422,33 @@ - + - + - + - + - + @@ -11218,13 +11460,13 @@ - + - + @@ -11358,7 +11600,8 @@ - + @@ -11366,26 +11609,30 @@ - + - + - + - + @@ -11397,7 +11644,8 @@ of these functions. --> - + @@ -11405,7 +11653,8 @@ - + @@ -11413,21 +11662,24 @@ - + - + - + @@ -11435,41 +11687,47 @@ - + - + - + - + - + - + @@ -11507,7 +11765,8 @@ - + @@ -11515,7 +11774,8 @@ - + @@ -11523,13 +11783,15 @@ - + - + @@ -11537,7 +11799,8 @@ - + @@ -11546,43 +11809,50 @@ - + - + - + - + - + - + - + @@ -11590,49 +11860,61 @@ - + - + - + - + - + - + - + - + @@ -11640,49 +11922,57 @@ - + - + - + - + - + - + - + - + @@ -11690,13 +11980,16 @@ - + - + @@ -11704,97 +11997,111 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -11863,22 +12170,22 @@ - + - + - + - + @@ -11997,45 +12304,45 @@ redudndant garbage. There are a lot of enums with the value 0x00000001. --> - + - + - + - + - + - + - + - + @@ -12046,7 +12353,7 @@ - + @@ -12060,7 +12367,7 @@ - + @@ -12077,7 +12384,7 @@ - + @@ -12087,7 +12394,7 @@ - + @@ -12100,7 +12407,7 @@ - + @@ -12116,7 +12423,8 @@ - + @@ -12134,7 +12442,7 @@ - + @@ -12190,13 +12498,13 @@ - + - + @@ -12218,7 +12526,8 @@ - + @@ -12258,7 +12567,9 @@ - + @@ -12268,7 +12579,9 @@ - + @@ -12278,7 +12591,8 @@ - + @@ -12286,7 +12600,8 @@ - + @@ -12294,7 +12609,8 @@ - + @@ -12302,7 +12618,8 @@ - + @@ -12452,12 +12769,14 @@ - + - + @@ -12503,12 +12822,12 @@ - + - + @@ -12553,7 +12872,8 @@ - + @@ -12563,14 +12883,16 @@ - + - + @@ -12613,17 +12935,17 @@ - + - + - + @@ -12632,7 +12954,7 @@ - + @@ -12667,14 +12989,14 @@ - + - + @@ -12691,7 +13013,7 @@ - + @@ -12708,11 +13030,11 @@ - + - + diff --git a/mesalib/src/mapi/glapi/gen/gl_XML.py b/mesalib/src/mapi/glapi/gen/gl_XML.py index 019687912..47f8dd5b9 100644 --- a/mesalib/src/mapi/glapi/gen/gl_XML.py +++ b/mesalib/src/mapi/glapi/gen/gl_XML.py @@ -594,6 +594,46 @@ class gl_parameter(object): return self.type_expr.format_string() +# Regular expression used to parse "mesa_name" attributes. A +# mesa_name attribute describes how to adjust a GL function name +# suffix to obtain the name of the function in Mesa that implements +# the functionality. The attribute string consists of a part preceded +# by a "-", indicating the suffix to remove, and a part preceded by a +# "+" indicating the suffix to add. Either part is optional. +# +# For example: +# +# ... +# ... +# +# means that EnableIndexedEXT is implemented by a Mesa function called +# _mesa_EnableIndexed, and IsProgramNV is implemented by a Mesa function +# called _mesa_IsProgramARB. +# +# Note: the prefix "_mesa_" is handled separately, by the "exec" +# attribute. +name_modification_regexp = re.compile( + r'^(-(?P[a-zA-Z0-9_]+))?(\+(?P[a-zA-Z0-9_]+))?$') + + +# Interpret a "mesa_name" attribute (see above) to determine the +# appropriate suffix for the Mesa function implementing a piece of GL +# functionality, and return the properly suffixed name. +def interpret_name_modification(name, mod): + m = name_modification_regexp.match(mod) + if m is None: + raise Exception('Unintelligible mesa_name property: {0!r}'.format(mod)) + new_name = name + if m.group('minus'): + if not new_name.endswith(m.group('minus')): + raise Exception( + 'Cannot subtract suffix {0!r} from function {1}'.format( + m.group('minus'), name)) + new_name = new_name[:-len(m.group('minus'))] + if m.group('plus'): + new_name += m.group('plus') + return new_name + class gl_function( gl_item ): def __init__(self, element, context): @@ -606,6 +646,10 @@ class gl_function( gl_item ): self.offset = -1 self.initialized = 0 self.images = [] + self.exec_flavor = 'mesa' + self.desktop = True + self.deprecated = None + self.mesa_name = None # self.entry_point_api_map[name][api] is a decimal value # indicating the earliest version of the given API in which @@ -613,10 +657,18 @@ class gl_function( gl_item ): # the first level of the map; the second level of the map only # lists APIs which contain the entry point in at least one # version. For example, - # self.entry_point_gles_map['ClipPlanex'] == { 'es1': + # self.entry_point_api_map['ClipPlanex'] == { 'es1': # Decimal('1.1') }. self.entry_point_api_map = {} + # self.api_map[api] is a decimal value indicating the earliest + # version of the given API in which ANY alias for the function + # exists. The map only lists APIs which contain the function + # in at least one version. For example, for the ClipPlanex + # function, self.entry_point_api_map == { 'es1': + # Decimal('1.1') }. + self.api_map = {} + self.assign_offset = 0 self.static_entry_points = [] @@ -651,15 +703,30 @@ class gl_function( gl_item ): version_str = element.nsProp(api, None) assert version_str is not None if version_str != 'none': - self.entry_point_api_map[name][api] = Decimal(version_str) + version_decimal = Decimal(version_str) + self.entry_point_api_map[name][api] = version_decimal + if api not in self.api_map or \ + version_decimal < self.api_map[api]: + self.api_map[api] = version_decimal + + exec_flavor = element.nsProp('exec', None) + if exec_flavor: + self.exec_flavor = exec_flavor + + deprecated = element.nsProp('deprecated', None) + if deprecated != 'none': + self.deprecated = Decimal(deprecated) + + if not is_attr_true(element, 'desktop'): + self.desktop = False if alias: true_name = alias else: true_name = name - # Only try to set the offset when a non-alias - # entry-point is being processes. + # Only try to set the offset and mesa_name when a + # non-alias entry-point is being processed. offset = element.nsProp( "offset", None ) if offset: @@ -671,6 +738,12 @@ class gl_function( gl_item ): if offset == "assign": self.assign_offset = 1 + mesa_name = element.nsProp('mesa_name', None) + if mesa_name is None: + self.mesa_name = name + else: + self.mesa_name = interpret_name_modification(name, mesa_name) + if not self.name: self.name = true_name diff --git a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml index 7495a2e56..205f74fa9 100644 --- a/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml +++ b/mesalib/src/mapi/glapi/gen/gl_and_es_API.xml @@ -19,13 +19,13 @@ + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> @@ -33,12 +33,12 @@ + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> @@ -46,23 +46,25 @@ + es1="1.0" desktop="false"> - + - + + es1="1.0" desktop="false"> @@ -72,62 +74,62 @@ + es1="1.0" desktop="false"> + static_dispatch="false" es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + static_dispatch="false" es1="1.0" desktop="false"> @@ -136,14 +138,14 @@ + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> @@ -153,18 +155,18 @@ + es1="1.0" desktop="false"> + static_dispatch="false" es1="1.0" desktop="false"> + es1="1.0" desktop="false"> @@ -172,41 +174,41 @@ + static_dispatch="false" es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + es1="1.0" desktop="false"> + static_dispatch="false" es1="1.0" desktop="false"> + es1="1.0" desktop="false"> @@ -214,7 +216,7 @@ + es1="1.0" desktop="false"> @@ -224,7 +226,7 @@ + es1="1.0" desktop="false"> @@ -237,7 +239,7 @@ + es1="1.1" desktop="false"> @@ -249,53 +251,53 @@ + es1="1.1" desktop="false"> + es1="1.1" desktop="false"> + static_dispatch="false" es1="1.1" desktop="false"> + es1="1.1" desktop="false"> + static_dispatch="false" es1="1.1" desktop="false"> + static_dispatch="false" es1="1.1" desktop="false"> + static_dispatch="false" es1="1.1" desktop="false"> + static_dispatch="false" es1="1.1" desktop="false"> @@ -303,7 +305,7 @@ + es1="1.1" desktop="false"> diff --git a/mesalib/src/mapi/glapi/gen/gl_genexec.py b/mesalib/src/mapi/glapi/gen/gl_genexec.py new file mode 100644 index 000000000..adfa5957e --- /dev/null +++ b/mesalib/src/mapi/glapi/gen/gl_genexec.py @@ -0,0 +1,222 @@ +#!/usr/bin/env python + +# Copyright (C) 2012 Intel Corporation +# +# 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 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. + +# This script generates the file api_exec.c, which contains +# _mesa_create_exec_table(). It is responsible for populating all +# entries in the "exec" dispatch table that aren't dynamic. + +import collections +import license +import gl_XML +import sys, getopt + + +exec_flavor_map = { + 'check': '_check_', + 'dynamic': None, + 'es': '_es_', + 'loopback': 'loopback_', + 'mesa': '_mesa_', + 'skip': None, + } + + +header = """/** + * \\file api_exec.c + * Initialize dispatch table. + */ + + +#include "main/mfeatures.h" +#include "main/accum.h" +#include "main/api_loopback.h" +#include "main/api_exec.h" +#include "main/arbprogram.h" +#include "main/atifragshader.h" +#include "main/attrib.h" +#include "main/blend.h" +#include "main/bufferobj.h" +#include "main/arrayobj.h" +#include "main/buffers.h" +#include "main/clear.h" +#include "main/clip.h" +#include "main/colortab.h" +#include "main/condrender.h" +#include "main/context.h" +#include "main/convolve.h" +#include "main/depth.h" +#include "main/dlist.h" +#include "main/drawpix.h" +#include "main/drawtex.h" +#include "main/rastpos.h" +#include "main/enable.h" +#include "main/errors.h" +#include "main/es1_conversion.h" +#include "main/eval.h" +#include "main/get.h" +#include "main/feedback.h" +#include "main/fog.h" +#include "main/fbobject.h" +#include "main/framebuffer.h" +#include "main/hint.h" +#include "main/histogram.h" +#include "main/imports.h" +#include "main/light.h" +#include "main/lines.h" +#include "main/matrix.h" +#include "main/multisample.h" +#include "main/pixel.h" +#include "main/pixelstore.h" +#include "main/points.h" +#include "main/polygon.h" +#include "main/querymatrix.h" +#include "main/queryobj.h" +#include "main/readpix.h" +#include "main/samplerobj.h" +#include "main/scissor.h" +#include "main/stencil.h" +#include "main/texenv.h" +#include "main/texgetimage.h" +#include "main/teximage.h" +#include "main/texgen.h" +#include "main/texobj.h" +#include "main/texparam.h" +#include "main/texstate.h" +#include "main/texstorage.h" +#include "main/texturebarrier.h" +#include "main/transformfeedback.h" +#include "main/mtypes.h" +#include "main/varray.h" +#include "main/viewport.h" +#include "main/shaderapi.h" +#include "main/uniforms.h" +#include "main/syncobj.h" +#include "main/dispatch.h" + + +/** + * Initialize a dispatch table with pointers to Mesa's immediate-mode + * commands. + * + * Pointers to glBegin()/glEnd() object commands and a few others + * are provided via the GLvertexformat interface. + * + * \param ctx GL context to which \c exec belongs. + * \param exec dispatch table. + */ +struct _glapi_table * +_mesa_create_exec_table(struct gl_context *ctx) +{ + struct _glapi_table *exec; + + exec = _mesa_alloc_dispatch_table(_gloffset_COUNT); + if (exec == NULL) + return NULL; + +""" + + +footer = """ + return exec; +} +""" + + +class PrintCode(gl_XML.gl_print_base): + + def __init__(self): + gl_XML.gl_print_base.__init__(self) + + self.name = 'gl_genexec.py' + self.license = license.bsd_license_template % ( + 'Copyright (C) 2012 Intel Corporation', + 'Intel Corporation') + + def printRealHeader(self): + print header + + def printRealFooter(self): + print footer + + def printBody(self, api): + # Collect SET_* calls by the condition under which they should + # be called. + settings_by_condition = collections.defaultdict(lambda: []) + for f in api.functionIterateAll(): + if f.exec_flavor not in exec_flavor_map: + raise Exception( + 'Unrecognized exec flavor {0!r}'.format(f.exec_flavor)) + condition_parts = [] + if f.desktop: + if f.deprecated: + condition_parts.append('ctx->API == API_OPENGL') + else: + condition_parts.append('_mesa_is_desktop_gl(ctx)') + if 'es1' in f.api_map: + condition_parts.append('ctx->API == API_OPENGLES') + if 'es2' in f.api_map: + if f.api_map['es2'] == 3: + condition_parts.append('_mesa_is_gles3(ctx)') + else: + condition_parts.append('ctx->API == API_OPENGLES2') + if not condition_parts: + # This function does not exist in any API. + continue + condition = ' || '.join(condition_parts) + prefix = exec_flavor_map[f.exec_flavor] + if prefix is None: + # This function is not implemented, or is dispatched + # dynamically. + continue + settings_by_condition[condition].append( + 'SET_{0}(exec, {1}{2});'.format(f.name, prefix, f.mesa_name)) + # Print out an if statement for each unique condition, with + # the SET_* calls nested inside it. + for condition in sorted(settings_by_condition.keys()): + print ' if ({0}) {{'.format(condition) + for setting in sorted(settings_by_condition[condition]): + print ' {0}'.format(setting) + print ' }' + + +def show_usage(): + print "Usage: %s [-f input_file_name]" % sys.argv[0] + sys.exit(1) + + +if __name__ == '__main__': + file_name = "gl_and_es_API.xml" + + try: + (args, trail) = getopt.getopt(sys.argv[1:], "m:f:") + except Exception,e: + show_usage() + + for (arg,val) in args: + if arg == "-f": + file_name = val + + printer = PrintCode() + + api = gl_XML.parse_GL_API(file_name) + printer.Print(api) diff --git a/mesalib/src/mesa/Android.gen.mk b/mesalib/src/mesa/Android.gen.mk index ffa36db4d..ce6d65bbd 100644 --- a/mesalib/src/mesa/Android.gen.mk +++ b/mesalib/src/mesa/Android.gen.mk @@ -32,6 +32,7 @@ intermediates := $(call local-intermediates-dir) # This is the list of auto-generated files: sources and headers sources := \ main/enums.c \ + main/api_exec.c \ program/program_parse.tab.c \ program/lex.yy.c \ main/dispatch.h \ @@ -123,6 +124,12 @@ $(intermediates)/main/enums.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml $(intermediates)/main/enums.c: $(dispatch_deps) $(call es-gen) +$(intermediates)/main/api_exec.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_genexec.py +$(intermediates)/main/api_exec.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml + +$(intermediates)/main/api_exec.c: $(dispatch_deps) + $(call es-gen) + GET_HASH_GEN := $(LOCAL_PATH)/main/get_hash_generator.py GET_HASH_GEN_FLAGS := $(patsubst %,-a %,$(MESA_ENABLED_APIS)) diff --git a/mesalib/src/mesa/SConscript b/mesalib/src/mesa/SConscript index 53e5ee8c2..11e034f84 100644 --- a/mesalib/src/mesa/SConscript +++ b/mesalib/src/mesa/SConscript @@ -441,6 +441,14 @@ env.CodeGenerate( command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' ) +# The api_exec.c file is generated from the GL/ES API.xml file +env.CodeGenerate( + target = 'main/api_exec.c', + script = GLAPI + 'gen/gl_genexec.py', + source = GLAPI + 'gen/gl_and_es_API.xml', + command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET' + ) + # We also depend on the auto-generated GL API headers env.Depends(mesa_sources, glapi_headers) diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c index 24d8d485a..1f2a8a696 100644 --- a/mesalib/src/mesa/drivers/common/meta.c +++ b/mesalib/src/mesa/drivers/common/meta.c @@ -292,7 +292,6 @@ struct gen_mipmap_state GLuint FBO; GLuint Sampler; GLuint ShaderProg; - GLuint IntegerShaderProg; struct glsl_sampler sampler_1d; struct glsl_sampler sampler_2d; struct glsl_sampler sampler_3d; @@ -3047,27 +3046,6 @@ setup_glsl_generate_mipmap(struct gl_context *ctx, }; struct glsl_sampler *sampler; const char *vs_source; - - static const char *vs_int_source = - "#version 130\n" - "in vec2 position;\n" - "in vec3 textureCoords;\n" - "out vec3 texCoords;\n" - "void main()\n" - "{\n" - " texCoords = textureCoords;\n" - " gl_Position = gl_Vertex;\n" - "}\n"; - static const char *fs_int_source = - "#version 130\n" - "uniform isampler2D tex2d;\n" - "in vec3 texCoords;\n" - "out ivec4 out_color;\n" - "\n" - "void main()\n" - "{\n" - " out_color = texture(tex2d, texCoords.xy);\n" - "}\n"; char *fs_source; GLuint vs, fs; void *mem_ctx; @@ -3162,26 +3140,6 @@ setup_glsl_generate_mipmap(struct gl_context *ctx, link_program_with_debug(ctx, mipmap->ShaderProg); sampler->shader_prog = mipmap->ShaderProg; ralloc_free(mem_ctx); - - if ((_mesa_is_desktop_gl(ctx) && ctx->Const.GLSLVersion >= 130) || - _mesa_is_gles3(ctx)){ - vs = compile_shader_with_debug(ctx, GL_VERTEX_SHADER, vs_int_source); - fs = compile_shader_with_debug(ctx, GL_FRAGMENT_SHADER, fs_int_source); - - mipmap->IntegerShaderProg = _mesa_CreateProgramObjectARB(); - _mesa_AttachShader(mipmap->IntegerShaderProg, fs); - _mesa_DeleteObjectARB(fs); - _mesa_AttachShader(mipmap->IntegerShaderProg, vs); - _mesa_DeleteObjectARB(vs); - _mesa_BindAttribLocationARB(mipmap->IntegerShaderProg, 0, "position"); - _mesa_BindAttribLocationARB(mipmap->IntegerShaderProg, 1, "texcoords"); - - /* Note that user-defined out attributes get automatically assigned - * locations starting from 0, so we don't need to explicitly - * BindFragDataLocation to 0. - */ - link_program_with_debug(ctx, mipmap->IntegerShaderProg); - } } @@ -3209,11 +3167,6 @@ meta_glsl_generate_mipmap_cleanup(struct gl_context *ctx, mipmap->sampler_cubemap.shader_prog = 0; mipmap->sampler_1d_array.shader_prog = 0; mipmap->sampler_2d_array.shader_prog = 0; - - if (mipmap->IntegerShaderProg) { - _mesa_DeleteObjectARB(mipmap->IntegerShaderProg); - mipmap->IntegerShaderProg = 0; - } } @@ -3266,11 +3219,7 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, */ if (use_glsl_version) { setup_glsl_generate_mipmap(ctx, mipmap, target); - - if (texObj->_IsIntegerFormat) - _mesa_UseProgramObjectARB(mipmap->IntegerShaderProg); - else - _mesa_UseProgramObjectARB(mipmap->ShaderProg); + _mesa_UseProgramObjectARB(mipmap->ShaderProg); } else { setup_ff_generate_mipmap(ctx, mipmap); @@ -3294,15 +3243,9 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, _mesa_GenSamplers(1, &mipmap->Sampler); _mesa_BindSampler(ctx->Texture.CurrentUnit, mipmap->Sampler); - if (use_glsl_version && texObj->_IsIntegerFormat) - _mesa_SamplerParameteri(mipmap->Sampler, - GL_TEXTURE_MIN_FILTER, - GL_NEAREST_MIPMAP_NEAREST); - else - _mesa_SamplerParameteri(mipmap->Sampler, - GL_TEXTURE_MIN_FILTER, - GL_LINEAR_MIPMAP_LINEAR); - + _mesa_SamplerParameteri(mipmap->Sampler, + GL_TEXTURE_MIN_FILTER, + GL_LINEAR_MIPMAP_LINEAR); _mesa_SamplerParameteri(mipmap->Sampler, GL_TEXTURE_MAG_FILTER, GL_LINEAR); _mesa_SamplerParameteri(mipmap->Sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); _mesa_SamplerParameteri(mipmap->Sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); diff --git a/mesalib/src/mesa/main/.gitignore b/mesalib/src/mesa/main/.gitignore index 4115a9b2b..837f49036 100644 --- a/mesalib/src/mesa/main/.gitignore +++ b/mesalib/src/mesa/main/.gitignore @@ -1,3 +1,4 @@ +api_exec.c dispatch.h enums.c get_es1.c diff --git a/mesalib/src/mesa/main/accum.c b/mesalib/src/mesa/main/accum.c index e2d7726b5..6416ee860 100644 --- a/mesalib/src/mesa/main/accum.c +++ b/mesalib/src/mesa/main/accum.c @@ -55,7 +55,7 @@ _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Accum( GLenum op, GLfloat value ) { GET_CURRENT_CONTEXT(ctx); @@ -106,14 +106,6 @@ _mesa_Accum( GLenum op, GLfloat value ) } -void -_mesa_init_accum_dispatch(struct _glapi_table *disp) -{ - SET_Accum(disp, _mesa_Accum); - SET_ClearAccum(disp, _mesa_ClearAccum); -} - - /** * Clear the accumulation buffer by mapping the renderbuffer and * writing the clear color to it. Called by the driver's implementation diff --git a/mesalib/src/mesa/main/accum.h b/mesalib/src/mesa/main/accum.h index 594a7687d..00c24b2db 100644 --- a/mesalib/src/mesa/main/accum.h +++ b/mesalib/src/mesa/main/accum.h @@ -46,9 +46,8 @@ struct gl_renderbuffer; extern void GLAPIENTRY _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); - -extern void -_mesa_init_accum_dispatch(struct _glapi_table *disp); +void GLAPIENTRY +_mesa_Accum( GLenum op, GLfloat value ); extern void _mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value); diff --git a/mesalib/src/mesa/main/api_exec.c b/mesalib/src/mesa/main/api_exec.c deleted file mode 100644 index bc5f71f0d..000000000 --- a/mesalib/src/mesa/main/api_exec.c +++ /dev/null @@ -1,935 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 7.1 - * - * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * 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. - */ - - -/** - * \file api_exec.c - * Initialize dispatch table with the immidiate mode functions. - */ - - -#include "mfeatures.h" -#include "accum.h" -#include "api_loopback.h" -#include "api_exec.h" -#include "arbprogram.h" -#include "atifragshader.h" -#include "attrib.h" -#include "blend.h" -#include "bufferobj.h" -#include "arrayobj.h" -#include "buffers.h" -#include "clear.h" -#include "clip.h" -#include "colortab.h" -#include "condrender.h" -#include "context.h" -#include "convolve.h" -#include "depth.h" -#include "dlist.h" -#include "drawpix.h" -#include "drawtex.h" -#include "rastpos.h" -#include "enable.h" -#include "errors.h" -#include "es1_conversion.h" -#include "eval.h" -#include "get.h" -#include "feedback.h" -#include "fog.h" -#include "fbobject.h" -#include "framebuffer.h" -#include "hint.h" -#include "histogram.h" -#include "imports.h" -#include "light.h" -#include "lines.h" -#include "matrix.h" -#include "multisample.h" -#include "pixel.h" -#include "pixelstore.h" -#include "points.h" -#include "polygon.h" -#include "querymatrix.h" -#include "queryobj.h" -#include "readpix.h" -#include "samplerobj.h" -#include "scissor.h" -#include "stencil.h" -#include "texenv.h" -#include "texgetimage.h" -#include "teximage.h" -#include "texgen.h" -#include "texobj.h" -#include "texparam.h" -#include "texstate.h" -#include "texstorage.h" -#include "texturebarrier.h" -#include "transformfeedback.h" -#include "mtypes.h" -#include "varray.h" -#include "viewport.h" -#include "shaderapi.h" -#include "uniforms.h" -#include "syncobj.h" -#include "main/dispatch.h" - - -/** - * Initialize a dispatch table with pointers to Mesa's immediate-mode - * commands. - * - * Pointers to glBegin()/glEnd() object commands and a few others - * are provided via the GLvertexformat interface. - * - * \param ctx GL context to which \c exec belongs. - * \param exec dispatch table. - */ -struct _glapi_table * -_mesa_create_exec_table(struct gl_context *ctx) -{ - struct _glapi_table *exec; - - exec = _mesa_alloc_dispatch_table(_gloffset_COUNT); - if (exec == NULL) - return NULL; - - _mesa_loopback_init_api_table(ctx, exec); - - /* load the dispatch slots we understand */ - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_AlphaFunc(exec, _mesa_AlphaFunc); - } - - SET_BlendFunc(exec, _mesa_BlendFunc); - SET_Clear(exec, _mesa_Clear); - SET_ClearColor(exec, _mesa_ClearColor); - SET_ClearStencil(exec, _mesa_ClearStencil); - SET_ColorMask(exec, _mesa_ColorMask); - SET_CullFace(exec, _mesa_CullFace); - SET_Disable(exec, _mesa_Disable); - if (ctx->API == API_OPENGL || ctx->API == API_OPENGL_CORE) - SET_DrawBuffer(exec, _mesa_DrawBuffer); - if (ctx->API != API_OPENGLES) { - SET_ReadBuffer(exec, _mesa_ReadBuffer); - } - SET_Enable(exec, _mesa_Enable); - SET_Finish(exec, _mesa_Finish); - SET_Flush(exec, _mesa_Flush); - SET_FrontFace(exec, _mesa_FrontFace); - if (ctx->API == API_OPENGL) { - SET_Frustum(exec, _mesa_Frustum); - } - SET_GetError(exec, _mesa_GetError); - SET_GetFloatv(exec, _mesa_GetFloatv); - SET_GetString(exec, _mesa_GetString); - if (ctx->API == API_OPENGL) { - SET_LineStipple(exec, _mesa_LineStipple); - } - SET_LineWidth(exec, _mesa_LineWidth); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_LoadIdentity(exec, _mesa_LoadIdentity); - SET_LoadMatrixf(exec, _mesa_LoadMatrixf); - } - if (ctx->API != API_OPENGLES2) { - SET_LogicOp(exec, _mesa_LogicOp); - } - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_MatrixMode(exec, _mesa_MatrixMode); - SET_MultMatrixf(exec, _mesa_MultMatrixf); - } - if (ctx->API == API_OPENGL) { - SET_Ortho(exec, _mesa_Ortho); - } - SET_PixelStorei(exec, _mesa_PixelStorei); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_PopMatrix(exec, _mesa_PopMatrix); - SET_PushMatrix(exec, _mesa_PushMatrix); - SET_Rotatef(exec, _mesa_Rotatef); - SET_Scalef(exec, _mesa_Scalef); - } - SET_Scissor(exec, _mesa_Scissor); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_ShadeModel(exec, _mesa_ShadeModel); - } - SET_StencilFunc(exec, _mesa_StencilFunc); - SET_StencilMask(exec, _mesa_StencilMask); - SET_StencilOp(exec, _mesa_StencilOp); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_TexEnvfv(exec, _mesa_TexEnvfv); - SET_TexEnvi(exec, _mesa_TexEnvi); - } - SET_TexImage2D(exec, _mesa_TexImage2D); - SET_TexParameteri(exec, _mesa_TexParameteri); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_Translatef(exec, _mesa_Translatef); - } - SET_Viewport(exec, _mesa_Viewport); - - if (ctx->API == API_OPENGL) { - _mesa_init_accum_dispatch(exec); - _mesa_init_dlist_dispatch(exec); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_ClearDepth(exec, _mesa_ClearDepth); - } - - if (ctx->API == API_OPENGL) { - SET_ClearIndex(exec, _mesa_ClearIndex); - SET_ClipPlane(exec, _mesa_ClipPlane); - SET_ColorMaterial(exec, _mesa_ColorMaterial); - } - SET_DepthFunc(exec, _mesa_DepthFunc); - SET_DepthMask(exec, _mesa_DepthMask); - - if (_mesa_is_desktop_gl(ctx)) { - SET_DepthRange(exec, _mesa_DepthRange); - } - - if (ctx->API == API_OPENGL) { - _mesa_init_drawpix_dispatch(exec); - } - if (ctx->API == API_OPENGL) { - _mesa_init_feedback_dispatch(exec); - } - - if (ctx->API == API_OPENGL) { - SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT); - SET_Fogi(exec, _mesa_Fogi); - SET_Fogiv(exec, _mesa_Fogiv); - SET_GetClipPlane(exec, _mesa_GetClipPlane); - } - if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { - SET_Fogf(exec, _mesa_Fogf); - SET_Fogfv(exec, _mesa_Fogfv); - } - SET_GetBooleanv(exec, _mesa_GetBooleanv); - if (_mesa_is_desktop_gl(ctx)) { - SET_GetDoublev(exec, _mesa_GetDoublev); - } - SET_GetIntegerv(exec, _mesa_GetIntegerv); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_GetLightfv(exec, _mesa_GetLightfv); - SET_GetMaterialfv(exec, _mesa_GetMaterialfv); - SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv); - SET_GetTexEnviv(exec, _mesa_GetTexEnviv); - } - if (ctx->API == API_OPENGL) { - SET_GetLightiv(exec, _mesa_GetLightiv); - SET_GetMaterialiv(exec, _mesa_GetMaterialiv); - SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple); - } - if (_mesa_is_desktop_gl(ctx)) { - SET_GetTexLevelParameterfv(exec, _mesa_GetTexLevelParameterfv); - SET_GetTexLevelParameteriv(exec, _mesa_GetTexLevelParameteriv); - } - SET_GetTexParameterfv(exec, _mesa_GetTexParameterfv); - SET_GetTexParameteriv(exec, _mesa_GetTexParameteriv); - if (_mesa_is_desktop_gl(ctx)) { - SET_GetTexImage(exec, _mesa_GetTexImage); - } - SET_Hint(exec, _mesa_Hint); - if (ctx->API == API_OPENGL) { - SET_IndexMask(exec, _mesa_IndexMask); - } - SET_IsEnabled(exec, _mesa_IsEnabled); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_LightModelf(exec, _mesa_LightModelf); - SET_LightModelfv(exec, _mesa_LightModelfv); - SET_Lightf(exec, _mesa_Lightf); - SET_Lightfv(exec, _mesa_Lightfv); - } - if (ctx->API == API_OPENGL) { - SET_LightModeli(exec, _mesa_LightModeli); - SET_LightModeliv(exec, _mesa_LightModeliv); - SET_Lighti(exec, _mesa_Lighti); - SET_Lightiv(exec, _mesa_Lightiv); - SET_LoadMatrixd(exec, _mesa_LoadMatrixd); - } - - if (ctx->API == API_OPENGL) { - _mesa_init_eval_dispatch(exec); - SET_MultMatrixd(exec, _mesa_MultMatrixd); - _mesa_init_pixel_dispatch(exec); - } - - if (ctx->API != API_OPENGLES2) { - SET_PointSize(exec, _mesa_PointSize); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_PixelStoref(exec, _mesa_PixelStoref); - SET_PolygonMode(exec, _mesa_PolygonMode); - } - - SET_PolygonOffset(exec, _mesa_PolygonOffset); - if (ctx->API == API_OPENGL) { - SET_PolygonStipple(exec, _mesa_PolygonStipple); - _mesa_init_attrib_dispatch(exec); - _mesa_init_rastpos_dispatch(exec); - } - - SET_ReadPixels(exec, _mesa_ReadPixels); - if (ctx->API == API_OPENGL) { - SET_Rotated(exec, _mesa_Rotated); - SET_Scaled(exec, _mesa_Scaled); - SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT); - } - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_TexEnvf(exec, _mesa_TexEnvf); - SET_TexEnviv(exec, _mesa_TexEnviv); - } - - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - _mesa_init_texgen_dispatch(ctx, exec); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_TexImage1D(exec, _mesa_TexImage1D); - } - SET_TexParameterf(exec, _mesa_TexParameterf); - SET_TexParameterfv(exec, _mesa_TexParameterfv); - SET_TexParameteriv(exec, _mesa_TexParameteriv); - if (ctx->API == API_OPENGL) { - SET_Translated(exec, _mesa_Translated); - } - - /* 1.1 */ - SET_BindTexture(exec, _mesa_BindTexture); - SET_DeleteTextures(exec, _mesa_DeleteTextures); - SET_GenTextures(exec, _mesa_GenTextures); - if (ctx->API == API_OPENGL) { - SET_AreTexturesResident(exec, _mesa_AreTexturesResident); - } - if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { - SET_ColorPointer(exec, _mesa_ColorPointer); - } - if (_mesa_is_desktop_gl(ctx)) { - SET_CopyTexImage1D(exec, _mesa_CopyTexImage1D); - SET_CopyTexSubImage1D(exec, _mesa_CopyTexSubImage1D); - SET_TexSubImage1D(exec, _mesa_TexSubImage1D); - } - - SET_CopyTexImage2D(exec, _mesa_CopyTexImage2D); - SET_CopyTexSubImage2D(exec, _mesa_CopyTexSubImage2D); - SET_TexSubImage2D(exec, _mesa_TexSubImage2D); - - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_DisableClientState(exec, _mesa_DisableClientState); - SET_EnableClientState(exec, _mesa_EnableClientState); - } - if (ctx->API == API_OPENGL) { - SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); - SET_IndexPointer(exec, _mesa_IndexPointer); - SET_InterleavedArrays(exec, _mesa_InterleavedArrays); - } - if (ctx->API != API_OPENGLES2) { - /* Note glGetPointerv is deprecated in GL CORE 3.1 through 4.2, but - * was re-added in GL CORE 4.3. We will just keep the function - * around in all GL CORE contexts. - */ - SET_GetPointerv(exec, _mesa_GetPointerv); - } - SET_IsTexture(exec, _mesa_IsTexture); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_NormalPointer(exec, _mesa_NormalPointer); - SET_TexCoordPointer(exec, _mesa_TexCoordPointer); - SET_VertexPointer(exec, _mesa_VertexPointer); - } - if (ctx->API == API_OPENGL) { - SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); - } - - /* 1.2 */ - if (ctx->API != API_OPENGLES) { - SET_CopyTexSubImage3D(exec, _mesa_CopyTexSubImage3D); - SET_TexImage3D(exec, _mesa_TexImage3D); - SET_TexSubImage3D(exec, _mesa_TexSubImage3D); - } - - /* OpenGL 1.2 GL_ARB_imaging */ - if (ctx->API != API_OPENGLES) { - SET_BlendColor(exec, _mesa_BlendColor); - } - SET_BlendEquation(exec, _mesa_BlendEquation); - SET_BlendEquationSeparateEXT(exec, _mesa_BlendEquationSeparateEXT); - - if (ctx->API == API_OPENGL) { - _mesa_init_colortable_dispatch(exec); - _mesa_init_convolve_dispatch(exec); - _mesa_init_histogram_dispatch(exec); - } - - /* OpenGL 2.0 */ - if (ctx->API != API_OPENGLES) { - SET_StencilFuncSeparate(exec, _mesa_StencilFuncSeparate); - SET_StencilMaskSeparate(exec, _mesa_StencilMaskSeparate); - SET_StencilOpSeparate(exec, _mesa_StencilOpSeparate); - } - - _mesa_init_shader_dispatch(ctx, exec); - _mesa_init_shader_uniform_dispatch(ctx, exec); - - /* 2. GL_EXT_blend_color */ -#if 0 -/* SET_BlendColorEXT(exec, _mesa_BlendColorEXT); */ -#endif - - /* 3. GL_EXT_polygon_offset */ - if (ctx->API == API_OPENGL) { - SET_PolygonOffsetEXT(exec, _mesa_PolygonOffsetEXT); - } - - /* 6. GL_EXT_texture3d */ -#if 0 -/* SET_CopyTexSubImage3DEXT(exec, _mesa_CopyTexSubImage3D); */ -/* SET_TexImage3DEXT(exec, _mesa_TexImage3DEXT); */ -/* SET_TexSubImage3DEXT(exec, _mesa_TexSubImage3D); */ -#endif - - /* 11. GL_EXT_histogram */ -#if 0 - if (ctx->API == API_OPENGL) { - SET_GetHistogramEXT(exec, _mesa_GetHistogram); - SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv); - SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv); - SET_GetMinmaxEXT(exec, _mesa_GetMinmax); - SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv); - SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv); - } -#endif - - /* 14. SGI_color_table */ -#if 0 - if (ctx->API == API_OPENGL) { - SET_ColorTableSGI(exec, _mesa_ColorTable); - SET_ColorSubTableSGI(exec, _mesa_ColorSubTable); - SET_GetColorTableSGI(exec, _mesa_GetColorTable); - SET_GetColorTableParameterfvSGI(exec, _mesa_GetColorTableParameterfv); - SET_GetColorTableParameterivSGI(exec, _mesa_GetColorTableParameteriv); - } -#endif - - /* 30. GL_EXT_vertex_array */ - if (ctx->API == API_OPENGL) { - SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT); - SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT); - SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT); - SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT); - SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT); - SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT); - } - - /* 37. GL_EXT_blend_minmax */ -#if 0 - SET_BlendEquationEXT(exec, _mesa_BlendEquationEXT); -#endif - - /* 54. GL_EXT_point_parameters */ - if (ctx->API != API_OPENGLES2) { - SET_PointParameterfEXT(exec, _mesa_PointParameterf); - SET_PointParameterfvEXT(exec, _mesa_PointParameterfv); - } - - /* 95. GL_ARB_ES2_compatibility */ - SET_ClearDepthf(exec, _mesa_ClearDepthf); - SET_DepthRangef(exec, _mesa_DepthRangef); - - /* 97. GL_EXT_compiled_vertex_array */ - if (ctx->API == API_OPENGL) { - SET_LockArraysEXT(exec, _mesa_LockArraysEXT); - SET_UnlockArraysEXT(exec, _mesa_UnlockArraysEXT); - } - - /* 148. GL_EXT_multi_draw_arrays */ - SET_MultiDrawArraysEXT(exec, _mesa_MultiDrawArraysEXT); - - /* 173. GL_INGR_blend_func_separate */ - SET_BlendFuncSeparateEXT(exec, _mesa_BlendFuncSeparateEXT); - - /* 196. GL_MESA_resize_buffers */ - if (_mesa_is_desktop_gl(ctx)) { - SET_ResizeBuffersMESA(exec, _mesa_ResizeBuffersMESA); - } - - /* 197. GL_MESA_window_pos */ - /* part of _mesa_init_rastpos_dispatch(exec); */ - - /* 200. GL_IBM_multimode_draw_arrays */ - if (_mesa_is_desktop_gl(ctx)) { - SET_MultiModeDrawArraysIBM(exec, _mesa_MultiModeDrawArraysIBM); - SET_MultiModeDrawElementsIBM(exec, _mesa_MultiModeDrawElementsIBM); - } - - /* 233. GL_NV_vertex_program */ - if (ctx->API == API_OPENGL) { - SET_BindProgramNV(exec, _mesa_BindProgram); - SET_DeleteProgramsNV(exec, _mesa_DeletePrograms); - SET_GenProgramsNV(exec, _mesa_GenPrograms); - SET_IsProgramNV(exec, _mesa_IsProgramARB); - /* glVertexAttrib*NV functions handled in api_loopback.c */ - } - - /* 273. GL_APPLE_vertex_array_object */ - if (ctx->API == API_OPENGL) { - SET_BindVertexArrayAPPLE(exec, _mesa_BindVertexArrayAPPLE); - SET_GenVertexArraysAPPLE(exec, _mesa_GenVertexArraysAPPLE); - } - /* Reused by ARB_vertex_array_object / OES_vertex_array_object */ - if (ctx->API != API_OPENGLES) { - SET_DeleteVertexArraysAPPLE(exec, _mesa_DeleteVertexArraysAPPLE); - SET_IsVertexArrayAPPLE(exec, _mesa_IsVertexArrayAPPLE); - } - - /* 262. GL_NV_point_sprite */ - if (_mesa_is_desktop_gl(ctx)) { - SET_PointParameteriNV(exec, _mesa_PointParameteri); - SET_PointParameterivNV(exec, _mesa_PointParameteriv); - } - - /* 268. GL_EXT_stencil_two_side */ - if (ctx->API == API_OPENGL) { - SET_ActiveStencilFaceEXT(exec, _mesa_ActiveStencilFaceEXT); - } - - /* 285. GL_NV_primitive_restart */ - if (_mesa_is_desktop_gl(ctx)) { - SET_PrimitiveRestartIndexNV(exec, _mesa_PrimitiveRestartIndex); - } - - /* ???. GL_EXT_depth_bounds_test */ - if (_mesa_is_desktop_gl(ctx)) { - SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT); - } - - /* 352. GL_EXT_transform_feedback */ - /* ARB 93. GL_ARB_transform_feedback2 */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - _mesa_init_transform_feedback_dispatch(ctx, exec); - } - - /* 364. GL_EXT_provoking_vertex */ - if (_mesa_is_desktop_gl(ctx)) { - SET_ProvokingVertexEXT(exec, _mesa_ProvokingVertexEXT); - } - - /* ARB 1. GL_ARB_multitexture */ - SET_ActiveTextureARB(exec, _mesa_ActiveTextureARB); - if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) { - SET_ClientActiveTextureARB(exec, _mesa_ClientActiveTextureARB); - } - - /* ARB 3. GL_ARB_transpose_matrix */ - if (ctx->API == API_OPENGL) { - SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB); - SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB); - SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB); - SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB); - } - - /* ARB 5. GL_ARB_multisample */ - SET_SampleCoverageARB(exec, _mesa_SampleCoverageARB); - - /* ARB 12. GL_ARB_texture_compression */ - if (_mesa_is_desktop_gl(ctx)) { - SET_CompressedTexImage1DARB(exec, _mesa_CompressedTexImage1DARB); - SET_CompressedTexSubImage1DARB(exec, _mesa_CompressedTexSubImage1DARB); - SET_GetCompressedTexImageARB(exec, _mesa_GetCompressedTexImageARB); - } - - if (ctx->API != API_OPENGLES) { - SET_CompressedTexImage3DARB(exec, _mesa_CompressedTexImage3DARB); - } - SET_CompressedTexImage2DARB(exec, _mesa_CompressedTexImage2DARB); - if (ctx->API != API_OPENGLES) { - SET_CompressedTexSubImage3DARB(exec, _mesa_CompressedTexSubImage3DARB); - } - SET_CompressedTexSubImage2DARB(exec, _mesa_CompressedTexSubImage2DARB); - - /* ARB 104. GL_ARB_robustness */ - if (_mesa_is_desktop_gl(ctx)) { - SET_GetnCompressedTexImageARB(exec, _mesa_GetnCompressedTexImageARB); - } - - /* ARB 14. GL_ARB_point_parameters */ - /* reuse EXT_point_parameters functions */ - - /* ARB 26. GL_ARB_vertex_program */ - /* ARB 27. GL_ARB_fragment_program */ - /* glVertexAttrib1sARB aliases glVertexAttrib1sNV */ - /* glVertexAttrib1fARB aliases glVertexAttrib1fNV */ - /* glVertexAttrib1dARB aliases glVertexAttrib1dNV */ - /* glVertexAttrib2sARB aliases glVertexAttrib2sNV */ - /* glVertexAttrib2fARB aliases glVertexAttrib2fNV */ - /* glVertexAttrib2dARB aliases glVertexAttrib2dNV */ - /* glVertexAttrib3sARB aliases glVertexAttrib3sNV */ - /* glVertexAttrib3fARB aliases glVertexAttrib3fNV */ - /* glVertexAttrib3dARB aliases glVertexAttrib3dNV */ - /* glVertexAttrib4sARB aliases glVertexAttrib4sNV */ - /* glVertexAttrib4fARB aliases glVertexAttrib4fNV */ - /* glVertexAttrib4dARB aliases glVertexAttrib4dNV */ - /* glVertexAttrib4NubARB aliases glVertexAttrib4NubNV */ - /* glVertexAttrib1svARB aliases glVertexAttrib1svNV */ - /* glVertexAttrib1fvARB aliases glVertexAttrib1fvNV */ - /* glVertexAttrib1dvARB aliases glVertexAttrib1dvNV */ - /* glVertexAttrib2svARB aliases glVertexAttrib2svNV */ - /* glVertexAttrib2fvARB aliases glVertexAttrib2fvNV */ - /* glVertexAttrib2dvARB aliases glVertexAttrib2dvNV */ - /* glVertexAttrib3svARB aliases glVertexAttrib3svNV */ - /* glVertexAttrib3fvARB aliases glVertexAttrib3fvNV */ - /* glVertexAttrib3dvARB aliases glVertexAttrib3dvNV */ - /* glVertexAttrib4svARB aliases glVertexAttrib4svNV */ - /* glVertexAttrib4fvARB aliases glVertexAttrib4fvNV */ - /* glVertexAttrib4dvARB aliases glVertexAttrib4dvNV */ - /* glVertexAttrib4NubvARB aliases glVertexAttrib4NubvNV */ - /* glVertexAttrib4bvARB handled in api_loopback.c */ - /* glVertexAttrib4ivARB handled in api_loopback.c */ - /* glVertexAttrib4ubvARB handled in api_loopback.c */ - /* glVertexAttrib4usvARB handled in api_loopback.c */ - /* glVertexAttrib4uivARB handled in api_loopback.c */ - /* glVertexAttrib4NbvARB handled in api_loopback.c */ - /* glVertexAttrib4NsvARB handled in api_loopback.c */ - /* glVertexAttrib4NivARB handled in api_loopback.c */ - /* glVertexAttrib4NusvARB handled in api_loopback.c */ - /* glVertexAttrib4NuivARB handled in api_loopback.c */ - if (ctx->API != API_OPENGLES) { - SET_VertexAttribPointerARB(exec, _mesa_VertexAttribPointerARB); - SET_EnableVertexAttribArrayARB(exec, _mesa_EnableVertexAttribArrayARB); - SET_DisableVertexAttribArrayARB(exec, _mesa_DisableVertexAttribArrayARB); - } - if (_mesa_is_desktop_gl(ctx)) { - /* glBindProgramARB aliases glBindProgramNV */ - /* glDeleteProgramsARB aliases glDeleteProgramsNV */ - /* glGenProgramsARB aliases glGenProgramsNV */ - /* glIsProgramARB aliases glIsProgramNV */ - SET_GetVertexAttribdvARB(exec, _mesa_GetVertexAttribdvARB); - } - if (ctx->API == API_OPENGL) { - SET_ProgramStringARB(exec, _mesa_ProgramStringARB); - } - - if (ctx->API != API_OPENGLES) { - SET_GetVertexAttribfvARB(exec, _mesa_GetVertexAttribfvARB); - SET_GetVertexAttribivARB(exec, _mesa_GetVertexAttribivARB); - SET_GetVertexAttribPointervNV(exec, _mesa_GetVertexAttribPointervARB); - } - if (ctx->API == API_OPENGL) { - SET_ProgramEnvParameter4dARB(exec, _mesa_ProgramEnvParameter4dARB); - SET_ProgramEnvParameter4dvARB(exec, _mesa_ProgramEnvParameter4dvARB); - SET_ProgramEnvParameter4fARB(exec, _mesa_ProgramEnvParameter4fARB); - SET_ProgramEnvParameter4fvARB(exec, _mesa_ProgramEnvParameter4fvARB); - SET_ProgramLocalParameter4dARB(exec, _mesa_ProgramLocalParameter4dARB); - SET_ProgramLocalParameter4dvARB(exec, _mesa_ProgramLocalParameter4dvARB); - SET_ProgramLocalParameter4fARB(exec, _mesa_ProgramLocalParameter4fARB); - SET_ProgramLocalParameter4fvARB(exec, _mesa_ProgramLocalParameter4fvARB); - SET_GetProgramEnvParameterdvARB(exec, _mesa_GetProgramEnvParameterdvARB); - SET_GetProgramEnvParameterfvARB(exec, _mesa_GetProgramEnvParameterfvARB); - SET_GetProgramivARB(exec, _mesa_GetProgramivARB); - SET_GetProgramLocalParameterdvARB(exec, _mesa_GetProgramLocalParameterdvARB); - SET_GetProgramLocalParameterfvARB(exec, _mesa_GetProgramLocalParameterfvARB); - SET_GetProgramStringARB(exec, _mesa_GetProgramStringARB); - } - - /* ARB 28. GL_ARB_vertex_buffer_object */ - _mesa_init_bufferobj_dispatch(ctx, exec); - - /* ARB 29. GL_ARB_occlusion_query */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - _mesa_init_queryobj_dispatch(ctx, exec); - } - - /* ARB 37. GL_ARB_draw_buffers */ - if (ctx->API != API_OPENGLES) { - SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB); - } - - /* ARB 66. GL_ARB_sync */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - _mesa_init_sync_dispatch(exec); - } - - /* ARB 104. GL_ARB_debug_output */ - if (_mesa_is_desktop_gl(ctx)) { - _mesa_init_errors_dispatch(exec); - } - - /* ARB 105. GL_ARB_robustness */ - if (_mesa_is_desktop_gl(ctx)) { - SET_GetGraphicsResetStatusARB(exec, _mesa_GetGraphicsResetStatusARB); - SET_GetnPolygonStippleARB(exec, _mesa_GetnPolygonStippleARB); - SET_GetnTexImageARB(exec, _mesa_GetnTexImageARB); - SET_ReadnPixelsARB(exec, _mesa_ReadnPixelsARB); - } - - /* GL_ATI_fragment_shader */ - if (ctx->API == API_OPENGL) { - _mesa_init_ati_fragment_shader_dispatch(exec); - } - - /* GL_ATI_envmap_bumpmap */ - if (ctx->API == API_OPENGL) { - SET_GetTexBumpParameterivATI(exec, _mesa_GetTexBumpParameterivATI); - SET_GetTexBumpParameterfvATI(exec, _mesa_GetTexBumpParameterfvATI); - SET_TexBumpParameterivATI(exec, _mesa_TexBumpParameterivATI); - SET_TexBumpParameterfvATI(exec, _mesa_TexBumpParameterfvATI); - } - - SET_IsRenderbufferEXT(exec, _mesa_IsRenderbufferEXT); - SET_BindRenderbufferEXT(exec, _mesa_BindRenderbufferEXT); - SET_DeleteRenderbuffersEXT(exec, _mesa_DeleteRenderbuffersEXT); - SET_GenRenderbuffersEXT(exec, _mesa_GenRenderbuffersEXT); - SET_RenderbufferStorageEXT(exec, _mesa_RenderbufferStorageEXT); - SET_GetRenderbufferParameterivEXT(exec, _mesa_GetRenderbufferParameterivEXT); - SET_IsFramebufferEXT(exec, _mesa_IsFramebufferEXT); - SET_BindFramebufferEXT(exec, _mesa_BindFramebufferEXT); - SET_DeleteFramebuffersEXT(exec, _mesa_DeleteFramebuffersEXT); - SET_GenFramebuffersEXT(exec, _mesa_GenFramebuffersEXT); - SET_CheckFramebufferStatusEXT(exec, _mesa_CheckFramebufferStatusEXT); - if (_mesa_is_desktop_gl(ctx)) { - SET_FramebufferTexture1DEXT(exec, _mesa_FramebufferTexture1DEXT); - } - SET_FramebufferTexture2DEXT(exec, _mesa_FramebufferTexture2DEXT); - if (ctx->API != API_OPENGLES) { - SET_FramebufferTexture3DEXT(exec, _mesa_FramebufferTexture3DEXT); - } - SET_FramebufferRenderbufferEXT(exec, _mesa_FramebufferRenderbufferEXT); - SET_GetFramebufferAttachmentParameterivEXT(exec, _mesa_GetFramebufferAttachmentParameterivEXT); - SET_GenerateMipmapEXT(exec, _mesa_GenerateMipmapEXT); - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_BlitFramebufferEXT(exec, _mesa_BlitFramebufferEXT); - } - - /* GL_EXT_gpu_program_parameters */ - if (ctx->API == API_OPENGL) { - SET_ProgramEnvParameters4fvEXT(exec, _mesa_ProgramEnvParameters4fvEXT); - SET_ProgramLocalParameters4fvEXT(exec, _mesa_ProgramLocalParameters4fvEXT); - } - - /* GL_MESA_texture_array / GL_EXT_texture_array */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_FramebufferTextureLayerEXT(exec, _mesa_FramebufferTextureLayerEXT); - } - - /* GL_ATI_separate_stencil */ - if (ctx->API == API_OPENGL) { - SET_StencilFuncSeparateATI(exec, _mesa_StencilFuncSeparateATI); - } - - /* The ARB_fbo functions are the union of - * GL_EXT_fbo, GL_EXT_framebuffer_blit, GL_EXT_texture_array - */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_RenderbufferStorageMultisample(exec, _mesa_RenderbufferStorageMultisample); - } - - /* GL_ARB_map_buffer_range / GL_EXT_map_buffer_range */ - SET_MapBufferRange(exec, _mesa_MapBufferRange); - SET_FlushMappedBufferRange(exec, _mesa_FlushMappedBufferRange); - - /* GL_ARB_copy_buffer */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_CopyBufferSubData(exec, _mesa_CopyBufferSubData); - } - - /* GL_ARB_vertex_array_object / GL_OES_vertex_array_object */ - if (ctx->API != API_OPENGLES) { - SET_BindVertexArray(exec, _mesa_BindVertexArray); - SET_GenVertexArrays(exec, _mesa_GenVertexArrays); - } - - /* GL_EXT_draw_buffers2 */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_GetIntegerIndexedvEXT(exec, _mesa_GetIntegerIndexedv); - } - if (_mesa_is_desktop_gl(ctx)) { - SET_ColorMaskIndexedEXT(exec, _mesa_ColorMaskIndexed); - SET_GetBooleanIndexedvEXT(exec, _mesa_GetBooleanIndexedv); - SET_EnableIndexedEXT(exec, _mesa_EnableIndexed); - SET_DisableIndexedEXT(exec, _mesa_DisableIndexed); - SET_IsEnabledIndexedEXT(exec, _mesa_IsEnabledIndexed); - } - - /* GL_NV_conditional_render */ - if (_mesa_is_desktop_gl(ctx)) { - SET_BeginConditionalRenderNV(exec, _mesa_BeginConditionalRender); - SET_EndConditionalRenderNV(exec, _mesa_EndConditionalRender); - } - - SET_EGLImageTargetTexture2DOES(exec, _mesa_EGLImageTargetTexture2DOES); - SET_EGLImageTargetRenderbufferStorageOES(exec, _mesa_EGLImageTargetRenderbufferStorageOES); - - if (_mesa_is_desktop_gl(ctx)) { - SET_ObjectPurgeableAPPLE(exec, _mesa_ObjectPurgeableAPPLE); - SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE); - SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_ClampColorARB(exec, _mesa_ClampColorARB); - } - - /* GL_EXT_texture_integer */ - if (_mesa_is_desktop_gl(ctx)) { - SET_ClearColorIiEXT(exec, _mesa_ClearColorIiEXT); - SET_ClearColorIuiEXT(exec, _mesa_ClearColorIuiEXT); - } - if (_mesa_is_desktop_gl(ctx)) { - SET_GetTexParameterIivEXT(exec, _mesa_GetTexParameterIiv); - SET_GetTexParameterIuivEXT(exec, _mesa_GetTexParameterIuiv); - SET_TexParameterIivEXT(exec, _mesa_TexParameterIiv); - SET_TexParameterIuivEXT(exec, _mesa_TexParameterIuiv); - } - - /* GL_EXT_gpu_shader4 / OpenGL 3.0 */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_GetVertexAttribIivEXT(exec, _mesa_GetVertexAttribIiv); - SET_GetVertexAttribIuivEXT(exec, _mesa_GetVertexAttribIuiv); - SET_VertexAttribIPointerEXT(exec, _mesa_VertexAttribIPointer); - } - - /* GL 3.0 (functions not covered by other extensions) */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_ClearBufferiv(exec, _mesa_ClearBufferiv); - SET_ClearBufferuiv(exec, _mesa_ClearBufferuiv); - SET_ClearBufferfv(exec, _mesa_ClearBufferfv); - SET_ClearBufferfi(exec, _mesa_ClearBufferfi); - SET_GetStringi(exec, _mesa_GetStringi); - } - - /* GL_ARB_instanced_arrays */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_VertexAttribDivisorARB(exec, _mesa_VertexAttribDivisor); - } - - /* GL_ARB_draw_buffer_blend */ - if (_mesa_is_desktop_gl(ctx)) { - SET_BlendFunciARB(exec, _mesa_BlendFunci); - SET_BlendFuncSeparateiARB(exec, _mesa_BlendFuncSeparatei); - SET_BlendEquationiARB(exec, _mesa_BlendEquationi); - SET_BlendEquationSeparateiARB(exec, _mesa_BlendEquationSeparatei); - } - - /* GL_NV_texture_barrier */ - if (_mesa_is_desktop_gl(ctx)) { - SET_TextureBarrierNV(exec, _mesa_TextureBarrierNV); - } - - /* GL_ARB_texture_buffer_object */ - if (_mesa_is_desktop_gl(ctx)) { - SET_TexBufferARB(exec, _mesa_TexBuffer); - } - - /* GL_ARB_texture_storage */ - if (_mesa_is_desktop_gl(ctx)) { - SET_TexStorage1D(exec, _mesa_TexStorage1D); - SET_TextureStorage1DEXT(exec, _mesa_TextureStorage1DEXT); - } - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_TexStorage2D(exec, _mesa_TexStorage2D); - SET_TexStorage3D(exec, _mesa_TexStorage3D); - } - if (_mesa_is_desktop_gl(ctx)) { - SET_TextureStorage2DEXT(exec, _mesa_TextureStorage2DEXT); - SET_TextureStorage3DEXT(exec, _mesa_TextureStorage3DEXT); - } - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - _mesa_init_sampler_object_dispatch(ctx, exec); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_InvalidateTexSubImage(exec, _mesa_InvalidateTexSubImage); - SET_InvalidateTexImage(exec, _mesa_InvalidateTexImage); - } - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_InvalidateSubFramebuffer(exec, _mesa_InvalidateSubFramebuffer); - SET_InvalidateFramebuffer(exec, _mesa_InvalidateFramebuffer); - } - -#if FEATURE_ES1 - if (ctx->API == API_OPENGLES) { - SET_AlphaFuncxOES(exec, _es_AlphaFuncx); - SET_ClearColorxOES(exec, _es_ClearColorx); - SET_ClearDepthxOES(exec, _es_ClearDepthx); - SET_ClipPlanefOES(exec, _es_ClipPlanef); - SET_ClipPlanexOES(exec, _es_ClipPlanex); - SET_Color4xOES(exec, _es_Color4x); - SET_DepthRangexOES(exec, _es_DepthRangex); - SET_DrawTexfOES(exec, _mesa_DrawTexf); - SET_DrawTexfvOES(exec, _mesa_DrawTexfv); - SET_DrawTexiOES(exec, _mesa_DrawTexi); - SET_DrawTexivOES(exec, _mesa_DrawTexiv); - SET_DrawTexsOES(exec, _mesa_DrawTexs); - SET_DrawTexsvOES(exec, _mesa_DrawTexsv); - SET_DrawTexxOES(exec, _es_DrawTexxOES); - SET_DrawTexxvOES(exec, _es_DrawTexxvOES); - SET_FogxOES(exec, _es_Fogx); - SET_FogxvOES(exec, _es_Fogxv); - SET_FrustumfOES(exec, _es_Frustumf); - SET_FrustumxOES(exec, _es_Frustumx); - SET_GetClipPlanefOES(exec, _es_GetClipPlanef); - SET_GetClipPlanexOES(exec, _es_GetClipPlanex); - SET_GetFixedvOES(exec, _mesa_GetFixedv); - SET_GetLightxvOES(exec, _es_GetLightxv); - SET_GetMaterialxvOES(exec, _es_GetMaterialxv); - SET_GetTexEnvxvOES(exec, _es_GetTexEnvxv); - SET_GetTexGenxvOES(exec, _check_GetTexGenxvOES); - SET_GetTexParameterxvOES(exec, _es_GetTexParameterxv); - SET_LightModelxOES(exec, _es_LightModelx); - SET_LightModelxvOES(exec, _es_LightModelxv); - SET_LightxOES(exec, _es_Lightx); - SET_LightxvOES(exec, _es_Lightxv); - SET_LineWidthxOES(exec, _es_LineWidthx); - SET_LoadMatrixxOES(exec, _es_LoadMatrixx); - SET_MaterialxOES(exec, _es_Materialx); - SET_MaterialxvOES(exec, _es_Materialxv); - SET_MultMatrixxOES(exec, _es_MultMatrixx); - SET_MultiTexCoord4xOES(exec, _es_MultiTexCoord4x); - SET_Normal3xOES(exec, _es_Normal3x); - SET_OrthofOES(exec, _es_Orthof); - SET_OrthoxOES(exec, _es_Orthox); - SET_PointParameterxOES(exec, _es_PointParameterx); - SET_PointParameterxvOES(exec, _es_PointParameterxv); - SET_PointSizePointerOES(exec, _mesa_PointSizePointer); - SET_PointSizexOES(exec, _es_PointSizex); - SET_PolygonOffsetxOES(exec, _es_PolygonOffsetx); - SET_QueryMatrixxOES(exec, _es_QueryMatrixxOES); - SET_RotatexOES(exec, _es_Rotatex); - SET_SampleCoveragexOES(exec, _es_SampleCoveragex); - SET_ScalexOES(exec, _es_Scalex); - SET_TexEnvxOES(exec, _es_TexEnvx); - SET_TexEnvxvOES(exec, _es_TexEnvxv); - SET_TexGenxOES(exec, _check_TexGenxOES); - SET_TexGenxvOES(exec, _check_TexGenxvOES); - SET_TexParameterxOES(exec, _es_TexParameterx); - SET_TexParameterxvOES(exec, _es_TexParameterxv); - SET_TranslatexOES(exec, _es_Translatex); - } -#endif - - return exec; -} diff --git a/mesalib/src/mesa/main/api_loopback.c b/mesalib/src/mesa/main/api_loopback.c index 2d35f17ad..331553086 100644 --- a/mesalib/src/mesa/main/api_loopback.c +++ b/mesalib/src/mesa/main/api_loopback.c @@ -87,7 +87,7 @@ #define ATTRIBI_4UI(index,x,y,z,w) CALL_VertexAttribI4uiEXT(GET_DISPATCH(), (index,x,y,z,w)) -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3b_f( GLbyte red, GLbyte green, GLbyte blue ) { COLORF( BYTE_TO_FLOAT(red), @@ -96,41 +96,41 @@ loopback_Color3b_f( GLbyte red, GLbyte green, GLbyte blue ) 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3d_f( GLdouble red, GLdouble green, GLdouble blue ) { COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3i_f( GLint red, GLint green, GLint blue ) { COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), INT_TO_FLOAT(blue), 1.0); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3s_f( GLshort red, GLshort green, GLshort blue ) { COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), SHORT_TO_FLOAT(blue), 1.0); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3ui_f( GLuint red, GLuint green, GLuint blue ) { COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), UINT_TO_FLOAT(blue), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3us_f( GLushort red, GLushort green, GLushort blue ) { COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), USHORT_TO_FLOAT(blue), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3ub_f( GLubyte red, GLubyte green, GLubyte blue ) { COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), @@ -138,48 +138,48 @@ loopback_Color3ub_f( GLubyte red, GLubyte green, GLubyte blue ) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3bv_f( const GLbyte *v ) { COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3dv_f( const GLdouble *v ) { COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3iv_f( const GLint *v ) { COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3sv_f( const GLshort *v ) { COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3uiv_f( const GLuint *v ) { COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3usv_f( const GLushort *v ) { COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), 1.0 ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color3ubv_f( const GLubyte *v ) { COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), @@ -187,7 +187,7 @@ loopback_Color3ubv_f( const GLubyte *v ) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4b_f( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ) { @@ -195,21 +195,21 @@ loopback_Color4b_f( GLbyte red, GLbyte green, GLbyte blue, BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4d_f( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ) { COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4i_f( GLint red, GLint green, GLint blue, GLint alpha ) { COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4s_f( GLshort red, GLshort green, GLshort blue, GLshort alpha ) { @@ -217,21 +217,21 @@ loopback_Color4s_f( GLshort red, GLshort green, GLshort blue, SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4ui_f( GLuint red, GLuint green, GLuint blue, GLuint alpha ) { COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4us_f( GLushort red, GLushort green, GLushort blue, GLushort alpha ) { COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4ub_f( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) { COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), @@ -239,7 +239,7 @@ loopback_Color4ub_f( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4iv_f( const GLint *v ) { COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), @@ -247,21 +247,21 @@ loopback_Color4iv_f( const GLint *v ) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4bv_f( const GLbyte *v ) { COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4dv_f( const GLdouble *v ) { COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4sv_f( const GLshort *v) { COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), @@ -269,21 +269,21 @@ loopback_Color4sv_f( const GLshort *v) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4uiv_f( const GLuint *v) { COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4usv_f( const GLushort *v) { COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Color4ubv_f( const GLubyte *v) { COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), @@ -291,565 +291,565 @@ loopback_Color4ubv_f( const GLubyte *v) } -static void GLAPIENTRY +void GLAPIENTRY loopback_FogCoorddEXT( GLdouble d ) { FOGCOORDF( (GLfloat) d ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_FogCoorddvEXT( const GLdouble *v ) { FOGCOORDF( (GLfloat) *v ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexd( GLdouble c ) { INDEX( (GLfloat) c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexi( GLint c ) { INDEX( (GLfloat) c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexs( GLshort c ) { INDEX( (GLfloat) c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexub( GLubyte c ) { INDEX( (GLfloat) c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexdv( const GLdouble *c ) { INDEX( (GLfloat) *c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexiv( const GLint *c ) { INDEX( (GLfloat) *c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexsv( const GLshort *c ) { INDEX( (GLfloat) *c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Indexubv( const GLubyte *c ) { INDEX( (GLfloat) *c ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EdgeFlagv(const GLboolean *flag) { CALL_EdgeFlag(GET_DISPATCH(), (*flag)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ) { NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ) { NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3i( GLint nx, GLint ny, GLint nz ) { NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3s( GLshort nx, GLshort ny, GLshort nz ) { NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3bv( const GLbyte *v ) { NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3dv( const GLdouble *v ) { NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3iv( const GLint *v ) { NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Normal3sv( const GLshort *v ) { NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1d( GLdouble s ) { TEXCOORD1((GLfloat) s); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1i( GLint s ) { TEXCOORD1((GLfloat) s); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1s( GLshort s ) { TEXCOORD1((GLfloat) s); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2d( GLdouble s, GLdouble t ) { TEXCOORD2((GLfloat) s,(GLfloat) t); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2s( GLshort s, GLshort t ) { TEXCOORD2((GLfloat) s,(GLfloat) t); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2i( GLint s, GLint t ) { TEXCOORD2((GLfloat) s,(GLfloat) t); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ) { TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3i( GLint s, GLint t, GLint r ) { TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3s( GLshort s, GLshort t, GLshort r ) { TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ) { TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4i( GLint s, GLint t, GLint r, GLint q ) { TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ) { TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1dv( const GLdouble *v ) { TEXCOORD1((GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1iv( const GLint *v ) { TEXCOORD1((GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord1sv( const GLshort *v ) { TEXCOORD1((GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2dv( const GLdouble *v ) { TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2iv( const GLint *v ) { TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord2sv( const GLshort *v ) { TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3dv( const GLdouble *v ) { TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3iv( const GLint *v ) { TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord3sv( const GLshort *v ) { TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4dv( const GLdouble *v ) { TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4iv( const GLint *v ) { TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_TexCoord4sv( const GLshort *v ) { TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2d( GLdouble x, GLdouble y ) { VERTEX2( (GLfloat) x, (GLfloat) y ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2i( GLint x, GLint y ) { VERTEX2( (GLfloat) x, (GLfloat) y ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2s( GLshort x, GLshort y ) { VERTEX2( (GLfloat) x, (GLfloat) y ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3d( GLdouble x, GLdouble y, GLdouble z ) { VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3i( GLint x, GLint y, GLint z ) { VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3s( GLshort x, GLshort y, GLshort z ) { VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ) { VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4i( GLint x, GLint y, GLint z, GLint w ) { VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ) { VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2dv( const GLdouble *v ) { VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2iv( const GLint *v ) { VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex2sv( const GLshort *v ) { VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3dv( const GLdouble *v ) { VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3iv( const GLint *v ) { VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex3sv( const GLshort *v ) { VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4dv( const GLdouble *v ) { VERTEX4( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4iv( const GLint *v ) { VERTEX4( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Vertex4sv( const GLshort *v ) { VERTEX4( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1dARB(GLenum target, GLdouble s) { MULTI_TEXCOORD1( target, (GLfloat) s ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1dvARB(GLenum target, const GLdouble *v) { MULTI_TEXCOORD1( target, (GLfloat) v[0] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1iARB(GLenum target, GLint s) { MULTI_TEXCOORD1( target, (GLfloat) s ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1ivARB(GLenum target, const GLint *v) { MULTI_TEXCOORD1( target, (GLfloat) v[0] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1sARB(GLenum target, GLshort s) { MULTI_TEXCOORD1( target, (GLfloat) s ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord1svARB(GLenum target, const GLshort *v) { MULTI_TEXCOORD1( target, (GLfloat) v[0] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t) { MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2dvARB(GLenum target, const GLdouble *v) { MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2iARB(GLenum target, GLint s, GLint t) { MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2ivARB(GLenum target, const GLint *v) { MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2sARB(GLenum target, GLshort s, GLshort t) { MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord2svARB(GLenum target, const GLshort *v) { MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r) { MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3dvARB(GLenum target, const GLdouble *v) { MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r) { MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3ivARB(GLenum target, const GLint *v) { MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r) { MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord3svARB(GLenum target, const GLshort *v) { MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) { MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4dvARB(GLenum target, const GLdouble *v) { MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q) { MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4ivARB(GLenum target, const GLint *v) { MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) { MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, (GLfloat) r, (GLfloat) q ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_MultiTexCoord4svARB(GLenum target, const GLshort *v) { MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord2dv( const GLdouble *u ) { EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord2fv( const GLfloat *u ) { EVALCOORD2( u[0], u[1] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord2d( GLdouble u, GLdouble v ) { EVALCOORD2( (GLfloat) u, (GLfloat) v ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord1dv( const GLdouble *u ) { EVALCOORD1( (GLfloat) *u ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord1fv( const GLfloat *u ) { EVALCOORD1( (GLfloat) *u ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_EvalCoord1d( GLdouble u ) { EVALCOORD1( (GLfloat) u ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Materialf( GLenum face, GLenum pname, GLfloat param ) { GLfloat fparam[4]; @@ -857,14 +857,14 @@ loopback_Materialf( GLenum face, GLenum pname, GLfloat param ) MATERIALFV( face, pname, fparam ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Materiali(GLenum face, GLenum pname, GLint param ) { GLfloat p = (GLfloat) param; MATERIALFV(face, pname, &p); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Materialiv(GLenum face, GLenum pname, const GLint *params ) { GLfloat fparam[4]; @@ -894,49 +894,49 @@ loopback_Materialiv(GLenum face, GLenum pname, const GLint *params ) } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) { RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rectdv(const GLdouble *v1, const GLdouble *v2) { RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rectfv(const GLfloat *v1, const GLfloat *v2) { RECTF(v1[0], v1[1], v2[0], v2[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Recti(GLint x1, GLint y1, GLint x2, GLint y2) { RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rectiv(const GLint *v1, const GLint *v2) { RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) { RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); } -static void GLAPIENTRY +void GLAPIENTRY loopback_Rectsv(const GLshort *v1, const GLshort *v2) { RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3bEXT_f( GLbyte red, GLbyte green, GLbyte blue ) { SECONDARYCOLORF( BYTE_TO_FLOAT(red), @@ -944,13 +944,13 @@ loopback_SecondaryColor3bEXT_f( GLbyte red, GLbyte green, GLbyte blue ) BYTE_TO_FLOAT(blue) ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3dEXT_f( GLdouble red, GLdouble green, GLdouble blue ) { SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3iEXT_f( GLint red, GLint green, GLint blue ) { SECONDARYCOLORF( INT_TO_FLOAT(red), @@ -958,7 +958,7 @@ loopback_SecondaryColor3iEXT_f( GLint red, GLint green, GLint blue ) INT_TO_FLOAT(blue)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3sEXT_f( GLshort red, GLshort green, GLshort blue ) { SECONDARYCOLORF(SHORT_TO_FLOAT(red), @@ -966,7 +966,7 @@ loopback_SecondaryColor3sEXT_f( GLshort red, GLshort green, GLshort blue ) SHORT_TO_FLOAT(blue)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3uiEXT_f( GLuint red, GLuint green, GLuint blue ) { SECONDARYCOLORF(UINT_TO_FLOAT(red), @@ -974,7 +974,7 @@ loopback_SecondaryColor3uiEXT_f( GLuint red, GLuint green, GLuint blue ) UINT_TO_FLOAT(blue)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3usEXT_f( GLushort red, GLushort green, GLushort blue ) { SECONDARYCOLORF(USHORT_TO_FLOAT(red), @@ -982,7 +982,7 @@ loopback_SecondaryColor3usEXT_f( GLushort red, GLushort green, GLushort blue ) USHORT_TO_FLOAT(blue)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3ubEXT_f( GLubyte red, GLubyte green, GLubyte blue ) { SECONDARYCOLORF(UBYTE_TO_FLOAT(red), @@ -990,7 +990,7 @@ loopback_SecondaryColor3ubEXT_f( GLubyte red, GLubyte green, GLubyte blue ) UBYTE_TO_FLOAT(blue)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3bvEXT_f( const GLbyte *v ) { SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]), @@ -998,12 +998,12 @@ loopback_SecondaryColor3bvEXT_f( const GLbyte *v ) BYTE_TO_FLOAT(v[2])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3dvEXT_f( const GLdouble *v ) { SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3ivEXT_f( const GLint *v ) { SECONDARYCOLORF(INT_TO_FLOAT(v[0]), @@ -1011,7 +1011,7 @@ loopback_SecondaryColor3ivEXT_f( const GLint *v ) INT_TO_FLOAT(v[2])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3svEXT_f( const GLshort *v ) { SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]), @@ -1019,7 +1019,7 @@ loopback_SecondaryColor3svEXT_f( const GLshort *v ) SHORT_TO_FLOAT(v[2])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3uivEXT_f( const GLuint *v ) { SECONDARYCOLORF(UINT_TO_FLOAT(v[0]), @@ -1027,7 +1027,7 @@ loopback_SecondaryColor3uivEXT_f( const GLuint *v ) UINT_TO_FLOAT(v[2])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3usvEXT_f( const GLushort *v ) { SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]), @@ -1035,7 +1035,7 @@ loopback_SecondaryColor3usvEXT_f( const GLushort *v ) USHORT_TO_FLOAT(v[2])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_SecondaryColor3ubvEXT_f( const GLubyte *v ) { SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]), @@ -1050,111 +1050,111 @@ loopback_SecondaryColor3ubvEXT_f( const GLubyte *v ) * Note that attribute indexes DO alias conventional vertex attributes. */ -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1sNV(GLuint index, GLshort x) { ATTRIB1NV(index, (GLfloat) x); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1dNV(GLuint index, GLdouble x) { ATTRIB1NV(index, (GLfloat) x); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y) { ATTRIB2NV(index, (GLfloat) x, y); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) { ATTRIB2NV(index, (GLfloat) x, (GLfloat) y); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) { ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) { ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) { ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) { ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) { ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1svNV(GLuint index, const GLshort *v) { ATTRIB1NV(index, (GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1dvNV(GLuint index, const GLdouble *v) { ATTRIB1NV(index, (GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2svNV(GLuint index, const GLshort *v) { ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2dvNV(GLuint index, const GLdouble *v) { ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3svNV(GLuint index, const GLshort *v) { ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3dvNV(GLuint index, const GLdouble *v) { ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4svNV(GLuint index, const GLshort *v) { ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4dvNV(GLuint index, const GLdouble *v) { ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4ubvNV(GLuint index, const GLubyte *v) { ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), @@ -1162,7 +1162,7 @@ loopback_VertexAttrib4ubvNV(GLuint index, const GLubyte *v) } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v) { GLint i; @@ -1170,7 +1170,7 @@ loopback_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v) loopback_VertexAttrib1svNV(index + i, v + i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v) { GLint i; @@ -1178,7 +1178,7 @@ loopback_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v) ATTRIB1NV(index + i, v[i]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v) { GLint i; @@ -1186,7 +1186,7 @@ loopback_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v) loopback_VertexAttrib1dvNV(index + i, v + i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v) { GLint i; @@ -1194,7 +1194,7 @@ loopback_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v) loopback_VertexAttrib2svNV(index + i, v + 2 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v) { GLint i; @@ -1202,7 +1202,7 @@ loopback_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v) ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v) { GLint i; @@ -1210,7 +1210,7 @@ loopback_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v) loopback_VertexAttrib2dvNV(index + i, v + 2 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v) { GLint i; @@ -1218,7 +1218,7 @@ loopback_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v) loopback_VertexAttrib3svNV(index + i, v + 3 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v) { GLint i; @@ -1226,7 +1226,7 @@ loopback_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v) ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v) { GLint i; @@ -1234,7 +1234,7 @@ loopback_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v) loopback_VertexAttrib3dvNV(index + i, v + 3 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v) { GLint i; @@ -1242,7 +1242,7 @@ loopback_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v) loopback_VertexAttrib4svNV(index + i, v + 4 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v) { GLint i; @@ -1250,7 +1250,7 @@ loopback_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v) ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v) { GLint i; @@ -1258,7 +1258,7 @@ loopback_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v) loopback_VertexAttrib4dvNV(index + i, v + 4 * i); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v) { GLint i; @@ -1273,176 +1273,176 @@ loopback_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v) * Note that attribute indexes do NOT alias conventional attributes. */ -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1sARB(GLuint index, GLshort x) { ATTRIB1ARB(index, (GLfloat) x); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1dARB(GLuint index, GLdouble x) { ATTRIB1ARB(index, (GLfloat) x); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2sARB(GLuint index, GLshort x, GLshort y) { ATTRIB2ARB(index, (GLfloat) x, y); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y) { ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z) { ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z) { ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) { ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) { ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1svARB(GLuint index, const GLshort *v) { ATTRIB1ARB(index, (GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib1dvARB(GLuint index, const GLdouble *v) { ATTRIB1ARB(index, (GLfloat) v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2svARB(GLuint index, const GLshort *v) { ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib2dvARB(GLuint index, const GLdouble *v) { ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3svARB(GLuint index, const GLshort *v) { ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib3dvARB(GLuint index, const GLdouble *v) { ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4svARB(GLuint index, const GLshort *v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat)v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4dvARB(GLuint index, const GLdouble *v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4bvARB(GLuint index, const GLbyte * v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4ivARB(GLuint index, const GLint * v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4ubvARB(GLuint index, const GLubyte * v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4usvARB(GLuint index, const GLushort * v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4uivARB(GLuint index, const GLuint * v) { ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NbvARB(GLuint index, const GLbyte * v) { ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NsvARB(GLuint index, const GLshort * v) { ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NivARB(GLuint index, const GLint * v) { ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) { ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NubvARB(GLuint index, const GLubyte * v) { ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NusvARB(GLuint index, const GLushort * v) { ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttrib4NuivARB(GLuint index, const GLuint * v) { ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), @@ -1456,37 +1456,37 @@ loopback_VertexAttrib4NuivARB(GLuint index, const GLuint * v) * Note that attribute indexes do NOT alias conventional attributes. */ -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI1iv(GLuint index, const GLint *v) { ATTRIBI_1I(index, v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI1uiv(GLuint index, const GLuint *v) { ATTRIBI_1UI(index, v[0]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI4bv(GLuint index, const GLbyte *v) { ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI4sv(GLuint index, const GLshort *v) { ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI4ubv(GLuint index, const GLubyte *v) { ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); } -static void GLAPIENTRY +void GLAPIENTRY loopback_VertexAttribI4usv(GLuint index, const GLushort *v) { ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); diff --git a/mesalib/src/mesa/main/api_loopback.h b/mesalib/src/mesa/main/api_loopback.h index 628d4f89e..879ad8995 100644 --- a/mesalib/src/mesa/main/api_loopback.h +++ b/mesalib/src/mesa/main/api_loopback.h @@ -29,6 +29,14 @@ #include "main/compiler.h" #include "main/mfeatures.h" +#include "main/glheader.h" // ? +#include "main/macros.h" // ? +#include "main/mtypes.h" // ? +#include "glapi/glapi.h" // ? +#include "glapi/glthread.h" // ? +#include "main/dispatch.h" // ? +#include "main/mfeatures.h" // ? +#include "main/context.h" // ? struct _glapi_table; struct gl_context; @@ -36,5 +44,434 @@ struct gl_context; extern void _mesa_loopback_init_api_table(const struct gl_context *ctx, struct _glapi_table *dest); +void GLAPIENTRY +loopback_Color3b_f( GLbyte red, GLbyte green, GLbyte blue ); +void GLAPIENTRY +loopback_Color3d_f( GLdouble red, GLdouble green, GLdouble blue ); +void GLAPIENTRY +loopback_Color3i_f( GLint red, GLint green, GLint blue ); +void GLAPIENTRY +loopback_Color3s_f( GLshort red, GLshort green, GLshort blue ); +void GLAPIENTRY +loopback_Color3ui_f( GLuint red, GLuint green, GLuint blue ); +void GLAPIENTRY +loopback_Color3us_f( GLushort red, GLushort green, GLushort blue ); +void GLAPIENTRY +loopback_Color3ub_f( GLubyte red, GLubyte green, GLubyte blue ); +void GLAPIENTRY +loopback_Color3bv_f( const GLbyte *v ); +void GLAPIENTRY +loopback_Color3dv_f( const GLdouble *v ); +void GLAPIENTRY +loopback_Color3iv_f( const GLint *v ); +void GLAPIENTRY +loopback_Color3sv_f( const GLshort *v ); +void GLAPIENTRY +loopback_Color3uiv_f( const GLuint *v ); +void GLAPIENTRY +loopback_Color3usv_f( const GLushort *v ); +void GLAPIENTRY +loopback_Color3ubv_f( const GLubyte *v ); +void GLAPIENTRY +loopback_Color4b_f( GLbyte red, GLbyte green, GLbyte blue, + GLbyte alpha ); +void GLAPIENTRY +loopback_Color4d_f( GLdouble red, GLdouble green, GLdouble blue, + GLdouble alpha ); +void GLAPIENTRY +loopback_Color4i_f( GLint red, GLint green, GLint blue, GLint alpha ); +void GLAPIENTRY +loopback_Color4s_f( GLshort red, GLshort green, GLshort blue, + GLshort alpha ); +void GLAPIENTRY +loopback_Color4ui_f( GLuint red, GLuint green, GLuint blue, GLuint alpha ); +void GLAPIENTRY +loopback_Color4us_f( GLushort red, GLushort green, GLushort blue, + GLushort alpha ); +void GLAPIENTRY +loopback_Color4ub_f( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); +void GLAPIENTRY +loopback_Color4iv_f( const GLint *v ); +void GLAPIENTRY +loopback_Color4bv_f( const GLbyte *v ); +void GLAPIENTRY +loopback_Color4dv_f( const GLdouble *v ); +void GLAPIENTRY +loopback_Color4sv_f( const GLshort *v); +void GLAPIENTRY +loopback_Color4uiv_f( const GLuint *v); +void GLAPIENTRY +loopback_Color4usv_f( const GLushort *v); +void GLAPIENTRY +loopback_Color4ubv_f( const GLubyte *v); +void GLAPIENTRY +loopback_FogCoorddEXT( GLdouble d ); +void GLAPIENTRY +loopback_FogCoorddvEXT( const GLdouble *v ); +void GLAPIENTRY +loopback_Indexd( GLdouble c ); +void GLAPIENTRY +loopback_Indexi( GLint c ); +void GLAPIENTRY +loopback_Indexs( GLshort c ); +void GLAPIENTRY +loopback_Indexub( GLubyte c ); +void GLAPIENTRY +loopback_Indexdv( const GLdouble *c ); +void GLAPIENTRY +loopback_Indexiv( const GLint *c ); +void GLAPIENTRY +loopback_Indexsv( const GLshort *c ); +void GLAPIENTRY +loopback_Indexubv( const GLubyte *c ); +void GLAPIENTRY +loopback_EdgeFlagv(const GLboolean *flag); +void GLAPIENTRY +loopback_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ); +void GLAPIENTRY +loopback_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ); +void GLAPIENTRY +loopback_Normal3i( GLint nx, GLint ny, GLint nz ); +void GLAPIENTRY +loopback_Normal3s( GLshort nx, GLshort ny, GLshort nz ); +void GLAPIENTRY +loopback_Normal3bv( const GLbyte *v ); +void GLAPIENTRY +loopback_Normal3dv( const GLdouble *v ); +void GLAPIENTRY +loopback_Normal3iv( const GLint *v ); +void GLAPIENTRY +loopback_Normal3sv( const GLshort *v ); +void GLAPIENTRY +loopback_TexCoord1d( GLdouble s ); +void GLAPIENTRY +loopback_TexCoord1i( GLint s ); +void GLAPIENTRY +loopback_TexCoord1s( GLshort s ); +void GLAPIENTRY +loopback_TexCoord2d( GLdouble s, GLdouble t ); +void GLAPIENTRY +loopback_TexCoord2s( GLshort s, GLshort t ); +void GLAPIENTRY +loopback_TexCoord2i( GLint s, GLint t ); +void GLAPIENTRY +loopback_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ); +void GLAPIENTRY +loopback_TexCoord3i( GLint s, GLint t, GLint r ); +void GLAPIENTRY +loopback_TexCoord3s( GLshort s, GLshort t, GLshort r ); +void GLAPIENTRY +loopback_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); +void GLAPIENTRY +loopback_TexCoord4i( GLint s, GLint t, GLint r, GLint q ); +void GLAPIENTRY +loopback_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); +void GLAPIENTRY +loopback_TexCoord1dv( const GLdouble *v ); +void GLAPIENTRY +loopback_TexCoord1iv( const GLint *v ); +void GLAPIENTRY +loopback_TexCoord1sv( const GLshort *v ); +void GLAPIENTRY +loopback_TexCoord2dv( const GLdouble *v ); +void GLAPIENTRY +loopback_TexCoord2iv( const GLint *v ); +void GLAPIENTRY +loopback_TexCoord2sv( const GLshort *v ); +void GLAPIENTRY +loopback_TexCoord3dv( const GLdouble *v ); +void GLAPIENTRY +loopback_TexCoord3iv( const GLint *v ); +void GLAPIENTRY +loopback_TexCoord3sv( const GLshort *v ); +void GLAPIENTRY +loopback_TexCoord4dv( const GLdouble *v ); +void GLAPIENTRY +loopback_TexCoord4iv( const GLint *v ); +void GLAPIENTRY +loopback_TexCoord4sv( const GLshort *v ); +void GLAPIENTRY +loopback_Vertex2d( GLdouble x, GLdouble y ); +void GLAPIENTRY +loopback_Vertex2i( GLint x, GLint y ); +void GLAPIENTRY +loopback_Vertex2s( GLshort x, GLshort y ); +void GLAPIENTRY +loopback_Vertex3d( GLdouble x, GLdouble y, GLdouble z ); +void GLAPIENTRY +loopback_Vertex3i( GLint x, GLint y, GLint z ); +void GLAPIENTRY +loopback_Vertex3s( GLshort x, GLshort y, GLshort z ); +void GLAPIENTRY +loopback_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); +void GLAPIENTRY +loopback_Vertex4i( GLint x, GLint y, GLint z, GLint w ); +void GLAPIENTRY +loopback_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); +void GLAPIENTRY +loopback_Vertex2dv( const GLdouble *v ); +void GLAPIENTRY +loopback_Vertex2iv( const GLint *v ); +void GLAPIENTRY +loopback_Vertex2sv( const GLshort *v ); +void GLAPIENTRY +loopback_Vertex3dv( const GLdouble *v ); +void GLAPIENTRY +loopback_Vertex3iv( const GLint *v ); +void GLAPIENTRY +loopback_Vertex3sv( const GLshort *v ); +void GLAPIENTRY +loopback_Vertex4dv( const GLdouble *v ); +void GLAPIENTRY +loopback_Vertex4iv( const GLint *v ); +void GLAPIENTRY +loopback_Vertex4sv( const GLshort *v ); +void GLAPIENTRY +loopback_MultiTexCoord1dARB(GLenum target, GLdouble s); +void GLAPIENTRY +loopback_MultiTexCoord1dvARB(GLenum target, const GLdouble *v); +void GLAPIENTRY +loopback_MultiTexCoord1iARB(GLenum target, GLint s); +void GLAPIENTRY +loopback_MultiTexCoord1ivARB(GLenum target, const GLint *v); +void GLAPIENTRY +loopback_MultiTexCoord1sARB(GLenum target, GLshort s); +void GLAPIENTRY +loopback_MultiTexCoord1svARB(GLenum target, const GLshort *v); +void GLAPIENTRY +loopback_MultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +void GLAPIENTRY +loopback_MultiTexCoord2dvARB(GLenum target, const GLdouble *v); +void GLAPIENTRY +loopback_MultiTexCoord2iARB(GLenum target, GLint s, GLint t); +void GLAPIENTRY +loopback_MultiTexCoord2ivARB(GLenum target, const GLint *v); +void GLAPIENTRY +loopback_MultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +void GLAPIENTRY +loopback_MultiTexCoord2svARB(GLenum target, const GLshort *v); +void GLAPIENTRY +loopback_MultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +void GLAPIENTRY +loopback_MultiTexCoord3dvARB(GLenum target, const GLdouble *v); +void GLAPIENTRY +loopback_MultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +void GLAPIENTRY +loopback_MultiTexCoord3ivARB(GLenum target, const GLint *v); +void GLAPIENTRY +loopback_MultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +void GLAPIENTRY +loopback_MultiTexCoord3svARB(GLenum target, const GLshort *v); +void GLAPIENTRY +loopback_MultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, + GLdouble q); +void GLAPIENTRY +loopback_MultiTexCoord4dvARB(GLenum target, const GLdouble *v); +void GLAPIENTRY +loopback_MultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +void GLAPIENTRY +loopback_MultiTexCoord4ivARB(GLenum target, const GLint *v); +void GLAPIENTRY +loopback_MultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, + GLshort q); +void GLAPIENTRY +loopback_MultiTexCoord4svARB(GLenum target, const GLshort *v); +void GLAPIENTRY +loopback_EvalCoord2dv( const GLdouble *u ); +void GLAPIENTRY +loopback_EvalCoord2fv( const GLfloat *u ); +void GLAPIENTRY +loopback_EvalCoord2d( GLdouble u, GLdouble v ); +void GLAPIENTRY +loopback_EvalCoord1dv( const GLdouble *u ); +void GLAPIENTRY +loopback_EvalCoord1fv( const GLfloat *u ); +void GLAPIENTRY +loopback_EvalCoord1d( GLdouble u ); +void GLAPIENTRY +loopback_Materialf( GLenum face, GLenum pname, GLfloat param ); +void GLAPIENTRY +loopback_Materiali(GLenum face, GLenum pname, GLint param ); +void GLAPIENTRY +loopback_Materialiv(GLenum face, GLenum pname, const GLint *params ); +void GLAPIENTRY +loopback_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +void GLAPIENTRY +loopback_Rectdv(const GLdouble *v1, const GLdouble *v2); +void GLAPIENTRY +loopback_Rectfv(const GLfloat *v1, const GLfloat *v2); +void GLAPIENTRY +loopback_Recti(GLint x1, GLint y1, GLint x2, GLint y2); +void GLAPIENTRY +loopback_Rectiv(const GLint *v1, const GLint *v2); +void GLAPIENTRY +loopback_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +void GLAPIENTRY +loopback_Rectsv(const GLshort *v1, const GLshort *v2); +void GLAPIENTRY +loopback_SecondaryColor3bEXT_f( GLbyte red, GLbyte green, GLbyte blue ); +void GLAPIENTRY +loopback_SecondaryColor3dEXT_f( GLdouble red, GLdouble green, GLdouble blue ); +void GLAPIENTRY +loopback_SecondaryColor3iEXT_f( GLint red, GLint green, GLint blue ); +void GLAPIENTRY +loopback_SecondaryColor3sEXT_f( GLshort red, GLshort green, GLshort blue ); +void GLAPIENTRY +loopback_SecondaryColor3uiEXT_f( GLuint red, GLuint green, GLuint blue ); +void GLAPIENTRY +loopback_SecondaryColor3usEXT_f( GLushort red, GLushort green, GLushort blue ); +void GLAPIENTRY +loopback_SecondaryColor3ubEXT_f( GLubyte red, GLubyte green, GLubyte blue ); +void GLAPIENTRY +loopback_SecondaryColor3bvEXT_f( const GLbyte *v ); +void GLAPIENTRY +loopback_SecondaryColor3dvEXT_f( const GLdouble *v ); +void GLAPIENTRY +loopback_SecondaryColor3ivEXT_f( const GLint *v ); +void GLAPIENTRY +loopback_SecondaryColor3svEXT_f( const GLshort *v ); +void GLAPIENTRY +loopback_SecondaryColor3uivEXT_f( const GLuint *v ); +void GLAPIENTRY +loopback_SecondaryColor3usvEXT_f( const GLushort *v ); +void GLAPIENTRY +loopback_SecondaryColor3ubvEXT_f( const GLubyte *v ); +void GLAPIENTRY +loopback_VertexAttrib1sNV(GLuint index, GLshort x); +void GLAPIENTRY +loopback_VertexAttrib1dNV(GLuint index, GLdouble x); +void GLAPIENTRY +loopback_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y); +void GLAPIENTRY +loopback_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); +void GLAPIENTRY +loopback_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); +void GLAPIENTRY +loopback_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); +void GLAPIENTRY +loopback_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, + GLshort w); +void GLAPIENTRY +loopback_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, + GLdouble w); +void GLAPIENTRY +loopback_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, + GLubyte w); +void GLAPIENTRY +loopback_VertexAttrib1svNV(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib1dvNV(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib2svNV(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib2dvNV(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib3svNV(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib3dvNV(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib4svNV(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib4dvNV(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib4ubvNV(GLuint index, const GLubyte *v); +void GLAPIENTRY +loopback_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v); +void GLAPIENTRY +loopback_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v); +void GLAPIENTRY +loopback_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v); +void GLAPIENTRY +loopback_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v); +void GLAPIENTRY +loopback_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v); +void GLAPIENTRY +loopback_VertexAttrib1sARB(GLuint index, GLshort x); +void GLAPIENTRY +loopback_VertexAttrib1dARB(GLuint index, GLdouble x); +void GLAPIENTRY +loopback_VertexAttrib2sARB(GLuint index, GLshort x, GLshort y); +void GLAPIENTRY +loopback_VertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); +void GLAPIENTRY +loopback_VertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); +void GLAPIENTRY +loopback_VertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); +void GLAPIENTRY +loopback_VertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, + GLshort w); +void GLAPIENTRY +loopback_VertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, + GLdouble w); +void GLAPIENTRY +loopback_VertexAttrib1svARB(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib1dvARB(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib2svARB(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib2dvARB(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib3svARB(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib3dvARB(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib4svARB(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttrib4dvARB(GLuint index, const GLdouble *v); +void GLAPIENTRY +loopback_VertexAttrib4bvARB(GLuint index, const GLbyte * v); +void GLAPIENTRY +loopback_VertexAttrib4ivARB(GLuint index, const GLint * v); +void GLAPIENTRY +loopback_VertexAttrib4ubvARB(GLuint index, const GLubyte * v); +void GLAPIENTRY +loopback_VertexAttrib4usvARB(GLuint index, const GLushort * v); +void GLAPIENTRY +loopback_VertexAttrib4uivARB(GLuint index, const GLuint * v); +void GLAPIENTRY +loopback_VertexAttrib4NbvARB(GLuint index, const GLbyte * v); +void GLAPIENTRY +loopback_VertexAttrib4NsvARB(GLuint index, const GLshort * v); +void GLAPIENTRY +loopback_VertexAttrib4NivARB(GLuint index, const GLint * v); +void GLAPIENTRY +loopback_VertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, + GLubyte w); +void GLAPIENTRY +loopback_VertexAttrib4NubvARB(GLuint index, const GLubyte * v); +void GLAPIENTRY +loopback_VertexAttrib4NusvARB(GLuint index, const GLushort * v); +void GLAPIENTRY +loopback_VertexAttrib4NuivARB(GLuint index, const GLuint * v); +void GLAPIENTRY +loopback_VertexAttribI1iv(GLuint index, const GLint *v); +void GLAPIENTRY +loopback_VertexAttribI1uiv(GLuint index, const GLuint *v); +void GLAPIENTRY +loopback_VertexAttribI4bv(GLuint index, const GLbyte *v); +void GLAPIENTRY +loopback_VertexAttribI4sv(GLuint index, const GLshort *v); +void GLAPIENTRY +loopback_VertexAttribI4ubv(GLuint index, const GLubyte *v); +void GLAPIENTRY +loopback_VertexAttribI4usv(GLuint index, const GLushort *v); + #endif /* API_LOOPBACK_H */ diff --git a/mesalib/src/mesa/main/atifragshader.c b/mesalib/src/mesa/main/atifragshader.c index 32ddfb8bb..2a0790862 100644 --- a/mesalib/src/mesa/main/atifragshader.c +++ b/mesalib/src/mesa/main/atifragshader.c @@ -37,26 +37,6 @@ static struct ati_fragment_shader DummyShader; -void -_mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp) -{ - SET_GenFragmentShadersATI(disp, _mesa_GenFragmentShadersATI); - SET_BindFragmentShaderATI(disp, _mesa_BindFragmentShaderATI); - SET_DeleteFragmentShaderATI(disp, _mesa_DeleteFragmentShaderATI); - SET_BeginFragmentShaderATI(disp, _mesa_BeginFragmentShaderATI); - SET_EndFragmentShaderATI(disp, _mesa_EndFragmentShaderATI); - SET_PassTexCoordATI(disp, _mesa_PassTexCoordATI); - SET_SampleMapATI(disp, _mesa_SampleMapATI); - SET_ColorFragmentOp1ATI(disp, _mesa_ColorFragmentOp1ATI); - SET_ColorFragmentOp2ATI(disp, _mesa_ColorFragmentOp2ATI); - SET_ColorFragmentOp3ATI(disp, _mesa_ColorFragmentOp3ATI); - SET_AlphaFragmentOp1ATI(disp, _mesa_AlphaFragmentOp1ATI); - SET_AlphaFragmentOp2ATI(disp, _mesa_AlphaFragmentOp2ATI); - SET_AlphaFragmentOp3ATI(disp, _mesa_AlphaFragmentOp3ATI); - SET_SetFragmentShaderConstantATI(disp, _mesa_SetFragmentShaderConstantATI); -} - - /** * Allocate and initialize a new ATI fragment shader object. */ diff --git a/mesalib/src/mesa/main/atifragshader.h b/mesalib/src/mesa/main/atifragshader.h index f5af5f15f..c47a7d56e 100644 --- a/mesalib/src/mesa/main/atifragshader.h +++ b/mesalib/src/mesa/main/atifragshader.h @@ -63,9 +63,6 @@ struct atifs_setupinst }; -extern void -_mesa_init_ati_fragment_shader_dispatch(struct _glapi_table *disp); - extern struct ati_fragment_shader * _mesa_new_ati_fragment_shader(struct gl_context *ctx, GLuint id); diff --git a/mesalib/src/mesa/main/attrib.c b/mesalib/src/mesa/main/attrib.c index 48df7f16b..05db35b8e 100644 --- a/mesalib/src/mesa/main/attrib.c +++ b/mesalib/src/mesa/main/attrib.c @@ -1584,16 +1584,6 @@ _mesa_PopClientAttrib(void) } -void -_mesa_init_attrib_dispatch(struct _glapi_table *disp) -{ - SET_PopAttrib(disp, _mesa_PopAttrib); - SET_PushAttrib(disp, _mesa_PushAttrib); - SET_PopClientAttrib(disp, _mesa_PopClientAttrib); - SET_PushClientAttrib(disp, _mesa_PushClientAttrib); -} - - /** * Free any attribute state data that might be attached to the context. */ diff --git a/mesalib/src/mesa/main/attrib.h b/mesalib/src/mesa/main/attrib.h index f75c3c5ce..1ecf3a591 100644 --- a/mesalib/src/mesa/main/attrib.h +++ b/mesalib/src/mesa/main/attrib.h @@ -45,9 +45,6 @@ _mesa_PushClientAttrib( GLbitfield mask ); extern void GLAPIENTRY _mesa_PopClientAttrib( void ); -extern void -_mesa_init_attrib_dispatch(struct _glapi_table *disp); - extern void _mesa_init_attrib( struct gl_context *ctx ); diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c index 730fa275e..43eb8876e 100644 --- a/mesalib/src/mesa/main/bufferobj.c +++ b/mesalib/src/mesa/main/bufferobj.c @@ -2246,7 +2246,7 @@ _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer) } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length) { @@ -2305,7 +2305,7 @@ _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, return; } -static void GLAPIENTRY +void GLAPIENTRY _mesa_InvalidateBufferData(GLuint buffer) { GET_CURRENT_CONTEXT(ctx); @@ -2337,34 +2337,3 @@ _mesa_InvalidateBufferData(GLuint buffer) */ return; } - -void -_mesa_init_bufferobj_dispatch(struct gl_context *ctx, struct _glapi_table *disp) -{ - SET_BindBufferARB(disp, _mesa_BindBufferARB); - SET_BufferDataARB(disp, _mesa_BufferDataARB); - SET_BufferSubDataARB(disp, _mesa_BufferSubDataARB); - SET_DeleteBuffersARB(disp, _mesa_DeleteBuffersARB); - SET_GenBuffersARB(disp, _mesa_GenBuffersARB); - SET_GetBufferParameterivARB(disp, _mesa_GetBufferParameterivARB); - /* TODO: add GetBufferParameteri64v for desktop GL and GLES3 once tests - * exist for it. - */ - SET_GetBufferPointervARB(disp, _mesa_GetBufferPointervARB); - if (_mesa_is_desktop_gl(ctx)) { - SET_GetBufferSubDataARB(disp, _mesa_GetBufferSubDataARB); - } - SET_IsBufferARB(disp, _mesa_IsBufferARB); - SET_MapBufferARB(disp, _mesa_MapBufferARB); - SET_UnmapBufferARB(disp, _mesa_UnmapBufferARB); - - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_BindBufferRangeEXT(disp, _mesa_BindBufferRange); - SET_BindBufferBaseEXT(disp, _mesa_BindBufferBase); - } - - if (_mesa_is_desktop_gl(ctx)) { - SET_InvalidateBufferData(disp, _mesa_InvalidateBufferData); - SET_InvalidateBufferSubData(disp, _mesa_InvalidateBufferSubData); - } -} diff --git a/mesalib/src/mesa/main/bufferobj.h b/mesalib/src/mesa/main/bufferobj.h index 4f1e61b63..4d5446ac0 100644 --- a/mesalib/src/mesa/main/bufferobj.h +++ b/mesalib/src/mesa/main/bufferobj.h @@ -100,72 +100,56 @@ _mesa_init_buffer_object_functions(struct dd_function_table *driver); * API functions */ -extern void GLAPIENTRY +void GLAPIENTRY _mesa_BindBufferARB(GLenum target, GLuint buffer); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GenBuffersARB(GLsizei n, GLuint * buffer); - -extern GLboolean GLAPIENTRY +GLboolean GLAPIENTRY _mesa_IsBufferARB(GLuint buffer); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_BufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_BufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data); - -extern void * GLAPIENTRY +void * GLAPIENTRY _mesa_MapBufferARB(GLenum target, GLenum access); - -extern GLboolean GLAPIENTRY +GLboolean GLAPIENTRY _mesa_UnmapBufferARB(GLenum target); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); - -extern void * GLAPIENTRY +void * GLAPIENTRY _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length); - -extern GLenum GLAPIENTRY +GLenum GLAPIENTRY _mesa_ObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); - -extern GLenum GLAPIENTRY +GLenum GLAPIENTRY _mesa_ObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); - -extern void GLAPIENTRY -_mesa_GetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint* params); - void GLAPIENTRY -_mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer); - +_mesa_GetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, + GLint* params); void GLAPIENTRY _mesa_BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +void GLAPIENTRY +_mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer); +void GLAPIENTRY +_mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, + GLsizeiptr length); +void GLAPIENTRY +_mesa_InvalidateBufferData(GLuint buffer); -extern void -_mesa_init_bufferobj_dispatch(struct gl_context *ctx, - struct _glapi_table *disp); #endif diff --git a/mesalib/src/mesa/main/colortab.c b/mesalib/src/mesa/main/colortab.c index 5799c01f6..f1b3e585a 100644 --- a/mesalib/src/mesa/main/colortab.c +++ b/mesalib/src/mesa/main/colortab.c @@ -63,7 +63,7 @@ _mesa_ColorSubTable( GLenum target, GLsizei start, -static void GLAPIENTRY +void GLAPIENTRY _mesa_CopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) { @@ -74,7 +74,7 @@ _mesa_CopyColorTable(GLenum target, GLenum internalformat, -static void GLAPIENTRY +void GLAPIENTRY _mesa_CopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) { @@ -85,7 +85,7 @@ _mesa_CopyColorSubTable(GLenum target, GLsizei start, -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnColorTableARB( GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data ) { @@ -95,7 +95,7 @@ _mesa_GetnColorTableARB( GLenum target, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetColorTable( GLenum target, GLenum format, GLenum type, GLvoid *data ) { @@ -105,7 +105,7 @@ _mesa_GetColorTable( GLenum target, GLenum format, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params) { /* no extensions use this function */ @@ -116,7 +116,7 @@ _mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params) -static void GLAPIENTRY +void GLAPIENTRY _mesa_ColorTableParameteriv(GLenum target, GLenum pname, const GLint *params) { /* no extensions use this function */ @@ -127,7 +127,7 @@ _mesa_ColorTableParameteriv(GLenum target, GLenum pname, const GLint *params) -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ) { GET_CURRENT_CONTEXT(ctx); @@ -137,28 +137,10 @@ _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ) -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END(ctx); _mesa_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameteriv(target)"); } - - -void -_mesa_init_colortable_dispatch(struct _glapi_table *disp) -{ - SET_ColorSubTable(disp, _mesa_ColorSubTable); - SET_ColorTable(disp, _mesa_ColorTable); - SET_ColorTableParameterfv(disp, _mesa_ColorTableParameterfv); - SET_ColorTableParameteriv(disp, _mesa_ColorTableParameteriv); - SET_CopyColorSubTable(disp, _mesa_CopyColorSubTable); - SET_CopyColorTable(disp, _mesa_CopyColorTable); - SET_GetColorTable(disp, _mesa_GetColorTable); - SET_GetColorTableParameterfv(disp, _mesa_GetColorTableParameterfv); - SET_GetColorTableParameteriv(disp, _mesa_GetColorTableParameteriv); - - /* GL_ARB_robustness */ - SET_GetnColorTableARB(disp, _mesa_GetnColorTableARB); -} diff --git a/mesalib/src/mesa/main/colortab.h b/mesalib/src/mesa/main/colortab.h index 7b8df38a1..f25fbe8a5 100644 --- a/mesalib/src/mesa/main/colortab.h +++ b/mesalib/src/mesa/main/colortab.h @@ -33,18 +33,35 @@ struct _glapi_table; -extern void GLAPIENTRY +void GLAPIENTRY _mesa_ColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table ); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_ColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table ); - -extern void -_mesa_init_colortable_dispatch(struct _glapi_table *disp); +void GLAPIENTRY +_mesa_CopyColorTable(GLenum target, GLenum internalformat, + GLint x, GLint y, GLsizei width); +void GLAPIENTRY +_mesa_CopyColorSubTable(GLenum target, GLsizei start, + GLint x, GLint y, GLsizei width); +void GLAPIENTRY +_mesa_GetnColorTableARB( GLenum target, GLenum format, GLenum type, + GLsizei bufSize, GLvoid *data ); +void GLAPIENTRY +_mesa_GetColorTable( GLenum target, GLenum format, + GLenum type, GLvoid *data ); +void GLAPIENTRY +_mesa_ColorTableParameterfv(GLenum target, GLenum pname, + const GLfloat *params); +void GLAPIENTRY +_mesa_ColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); +void GLAPIENTRY +_mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ); +void GLAPIENTRY +_mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ); #endif /* COLORTAB_H */ diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c index a4dedeea2..0508378b7 100644 --- a/mesalib/src/mesa/main/context.c +++ b/mesalib/src/mesa/main/context.c @@ -706,9 +706,9 @@ check_context_limits(struct gl_context *ctx) assert(MAX_TEXTURE_LEVELS >= MAX_CUBE_TEXTURE_LEVELS); /* Max texture size should be <= max viewport size (render to texture) */ - assert((1 << (ctx->Const.MaxTextureLevels - 1)) + assert((1U << (ctx->Const.MaxTextureLevels - 1)) <= ctx->Const.MaxViewportWidth); - assert((1 << (ctx->Const.MaxTextureLevels - 1)) + assert((1U << (ctx->Const.MaxTextureLevels - 1)) <= ctx->Const.MaxViewportHeight); assert(ctx->Const.MaxDrawBuffers <= MAX_DRAW_BUFFERS); diff --git a/mesalib/src/mesa/main/convolve.c b/mesalib/src/mesa/main/convolve.c index cac8a9979..dfc1b9465 100644 --- a/mesalib/src/mesa/main/convolve.c +++ b/mesalib/src/mesa/main/convolve.c @@ -41,7 +41,7 @@ #include "main/dispatch.h" -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *image) { GET_CURRENT_CONTEXT(ctx); @@ -49,7 +49,7 @@ _mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, G _mesa_error(ctx, GL_INVALID_ENUM, "glConvolutionFilter1D"); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image) { GET_CURRENT_CONTEXT(ctx); @@ -58,7 +58,7 @@ _mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, G } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param) { GET_CURRENT_CONTEXT(ctx); @@ -67,7 +67,7 @@ _mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params) { GET_CURRENT_CONTEXT(ctx); @@ -76,7 +76,7 @@ _mesa_ConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param) { GET_CURRENT_CONTEXT(ctx); @@ -85,7 +85,7 @@ _mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params) { GET_CURRENT_CONTEXT(ctx); @@ -94,7 +94,7 @@ _mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width) { GET_CURRENT_CONTEXT(ctx); @@ -103,7 +103,7 @@ _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, GLi } -static void GLAPIENTRY +void GLAPIENTRY _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height) { GET_CURRENT_CONTEXT(ctx); @@ -112,7 +112,7 @@ _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, GLi } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image) { @@ -122,7 +122,7 @@ _mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image) { @@ -130,7 +130,7 @@ _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params) { GET_CURRENT_CONTEXT(ctx); @@ -139,7 +139,7 @@ _mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params) { GET_CURRENT_CONTEXT(ctx); @@ -148,7 +148,7 @@ _mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, @@ -160,7 +160,7 @@ _mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span) { @@ -169,32 +169,10 @@ _mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column) { GET_CURRENT_CONTEXT(ctx); _mesa_error(ctx, GL_INVALID_ENUM, "glSeparableFilter2D"); } - -void -_mesa_init_convolve_dispatch(struct _glapi_table *disp) -{ - SET_ConvolutionFilter1D(disp, _mesa_ConvolutionFilter1D); - SET_ConvolutionFilter2D(disp, _mesa_ConvolutionFilter2D); - SET_ConvolutionParameterf(disp, _mesa_ConvolutionParameterf); - SET_ConvolutionParameterfv(disp, _mesa_ConvolutionParameterfv); - SET_ConvolutionParameteri(disp, _mesa_ConvolutionParameteri); - SET_ConvolutionParameteriv(disp, _mesa_ConvolutionParameteriv); - SET_CopyConvolutionFilter1D(disp, _mesa_CopyConvolutionFilter1D); - SET_CopyConvolutionFilter2D(disp, _mesa_CopyConvolutionFilter2D); - SET_GetConvolutionFilter(disp, _mesa_GetConvolutionFilter); - SET_GetConvolutionParameterfv(disp, _mesa_GetConvolutionParameterfv); - SET_GetConvolutionParameteriv(disp, _mesa_GetConvolutionParameteriv); - SET_SeparableFilter2D(disp, _mesa_SeparableFilter2D); - SET_GetSeparableFilter(disp, _mesa_GetSeparableFilter); - - /* GL_ARB_robustness */ - SET_GetnConvolutionFilterARB(disp, _mesa_GetnConvolutionFilterARB); - SET_GetnSeparableFilterARB(disp, _mesa_GetnSeparableFilterARB); -} diff --git a/mesalib/src/mesa/main/convolve.h b/mesalib/src/mesa/main/convolve.h index 2fbe3c7f5..812debd61 100644 --- a/mesalib/src/mesa/main/convolve.h +++ b/mesalib/src/mesa/main/convolve.h @@ -33,7 +33,49 @@ struct _glapi_table; -extern void -_mesa_init_convolve_dispatch(struct _glapi_table *disp); +void GLAPIENTRY +_mesa_ConvolutionFilter1D(GLenum target, GLenum internalFormat, GLsizei width, + GLenum format, GLenum type, const GLvoid *image); +void GLAPIENTRY +_mesa_ConvolutionFilter2D(GLenum target, GLenum internalFormat, GLsizei width, + GLsizei height, GLenum format, GLenum type, + const GLvoid *image); +void GLAPIENTRY +_mesa_ConvolutionParameterf(GLenum target, GLenum pname, GLfloat param); +void GLAPIENTRY +_mesa_ConvolutionParameterfv(GLenum target, GLenum pname, + const GLfloat *params); +void GLAPIENTRY +_mesa_ConvolutionParameteri(GLenum target, GLenum pname, GLint param); +void GLAPIENTRY +_mesa_ConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params); +void GLAPIENTRY +_mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalFormat, GLint x, + GLint y, GLsizei width); +void GLAPIENTRY +_mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalFormat, GLint x, + GLint y, GLsizei width, GLsizei height); +void GLAPIENTRY +_mesa_GetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, + GLsizei bufSize, GLvoid *image); +void GLAPIENTRY +_mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, + GLvoid *image); +void GLAPIENTRY +_mesa_GetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params); +void GLAPIENTRY +_mesa_GetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, + GLsizei rowBufSize, GLvoid *row, + GLsizei columnBufSize, GLvoid *column, + GLvoid *span); +void GLAPIENTRY +_mesa_GetSeparableFilter(GLenum target, GLenum format, GLenum type, + GLvoid *row, GLvoid *column, GLvoid *span); +void GLAPIENTRY +_mesa_SeparableFilter2D(GLenum target, GLenum internalFormat, GLsizei width, + GLsizei height, GLenum format, GLenum type, + const GLvoid *row, const GLvoid *column); #endif /* CONVOLVE_H */ diff --git a/mesalib/src/mesa/main/dlist.c b/mesalib/src/mesa/main/dlist.c index c15043694..8bbead7c4 100644 --- a/mesalib/src/mesa/main/dlist.c +++ b/mesalib/src/mesa/main/dlist.c @@ -8580,7 +8580,7 @@ execute_list(struct gl_context *ctx, GLuint list) /** * Test if a display list number is valid. */ -static GLboolean GLAPIENTRY +GLboolean GLAPIENTRY _mesa_IsList(GLuint list) { GET_CURRENT_CONTEXT(ctx); @@ -8593,7 +8593,7 @@ _mesa_IsList(GLuint list) /** * Delete a sequence of consecutive display lists. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_DeleteLists(GLuint list, GLsizei range) { GET_CURRENT_CONTEXT(ctx); @@ -8615,7 +8615,7 @@ _mesa_DeleteLists(GLuint list, GLsizei range) * Return a display list number, n, such that lists n through n+range-1 * are free. */ -static GLuint GLAPIENTRY +GLuint GLAPIENTRY _mesa_GenLists(GLsizei range) { GET_CURRENT_CONTEXT(ctx); @@ -8655,7 +8655,7 @@ _mesa_GenLists(GLsizei range) /** * Begin a new display list. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_NewList(GLuint name, GLenum mode) { GET_CURRENT_CONTEXT(ctx); @@ -8705,7 +8705,7 @@ _mesa_NewList(GLuint name, GLenum mode) /** * End definition of current display list. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_EndList(void) { GET_CURRENT_CONTEXT(ctx); @@ -8841,7 +8841,7 @@ _mesa_CallLists(GLsizei n, GLenum type, const GLvoid * lists) /** * Set the offset added to list numbers in glCallLists. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_ListBase(GLuint base) { GET_CURRENT_CONTEXT(ctx); @@ -10633,20 +10633,6 @@ _mesa_install_dlist_vtxfmt(struct _glapi_table *disp, } -void _mesa_init_dlist_dispatch(struct _glapi_table *disp) -{ - SET_CallList(disp, _mesa_CallList); - SET_CallLists(disp, _mesa_CallLists); - - SET_DeleteLists(disp, _mesa_DeleteLists); - SET_EndList(disp, _mesa_EndList); - SET_GenLists(disp, _mesa_GenLists); - SET_IsList(disp, _mesa_IsList); - SET_ListBase(disp, _mesa_ListBase); - SET_NewList(disp, _mesa_NewList); -} - - /** * Initialize display list state for given context. */ diff --git a/mesalib/src/mesa/main/dlist.h b/mesalib/src/mesa/main/dlist.h index 137245161..9d4fc6899 100644 --- a/mesalib/src/mesa/main/dlist.h +++ b/mesalib/src/mesa/main/dlist.h @@ -43,9 +43,22 @@ (vfmt)->CallLists = impl ## CallLists; \ } while (0) -extern void GLAPIENTRY _mesa_CallList( GLuint list ); - -extern void GLAPIENTRY _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists ); +GLboolean GLAPIENTRY +_mesa_IsList(GLuint list); +void GLAPIENTRY +_mesa_DeleteLists(GLuint list, GLsizei range); +GLuint GLAPIENTRY +_mesa_GenLists(GLsizei range); +void GLAPIENTRY +_mesa_NewList(GLuint name, GLenum mode); +void GLAPIENTRY +_mesa_EndList(void); +void GLAPIENTRY +_mesa_CallList( GLuint list ); +void GLAPIENTRY +_mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists ); +void GLAPIENTRY +_mesa_ListBase(GLuint base); extern void _mesa_compile_error( struct gl_context *ctx, GLenum error, const char *s ); @@ -66,8 +79,6 @@ extern struct _glapi_table *_mesa_create_save_table(const struct gl_context *); extern void _mesa_install_dlist_vtxfmt(struct _glapi_table *disp, const GLvertexformat *vfmt); -extern void _mesa_init_dlist_dispatch(struct _glapi_table *disp); - extern void _mesa_init_display_list( struct gl_context * ctx ); extern void _mesa_free_display_list_data(struct gl_context *ctx); diff --git a/mesalib/src/mesa/main/drawpix.c b/mesalib/src/mesa/main/drawpix.c index 8836e0a0e..3d25ae52b 100644 --- a/mesalib/src/mesa/main/drawpix.c +++ b/mesalib/src/mesa/main/drawpix.c @@ -42,7 +42,7 @@ /* * Execute glDrawPixels */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_DrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) { @@ -186,7 +186,7 @@ end: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLenum type ) { @@ -291,7 +291,7 @@ end: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Bitmap( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap ) @@ -365,12 +365,3 @@ _mesa_Bitmap( GLsizei width, GLsizei height, _mesa_flush(ctx); } } - - -void -_mesa_init_drawpix_dispatch(struct _glapi_table *disp) -{ - SET_Bitmap(disp, _mesa_Bitmap); - SET_CopyPixels(disp, _mesa_CopyPixels); - SET_DrawPixels(disp, _mesa_DrawPixels); -} diff --git a/mesalib/src/mesa/main/drawpix.h b/mesalib/src/mesa/main/drawpix.h index 971d258f1..087b3a8c9 100644 --- a/mesalib/src/mesa/main/drawpix.h +++ b/mesalib/src/mesa/main/drawpix.h @@ -32,8 +32,16 @@ struct _glapi_table; -extern void -_mesa_init_drawpix_dispatch(struct _glapi_table *disp); +void GLAPIENTRY +_mesa_DrawPixels( GLsizei width, GLsizei height, + GLenum format, GLenum type, const GLvoid *pixels ); +void GLAPIENTRY +_mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, + GLenum type ); +void GLAPIENTRY +_mesa_Bitmap( GLsizei width, GLsizei height, + GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, + const GLubyte *bitmap ); #endif /* DRAWPIX_H */ diff --git a/mesalib/src/mesa/main/errors.c b/mesalib/src/mesa/main/errors.c index 796b6beff..b692f3189 100644 --- a/mesalib/src/mesa/main/errors.c +++ b/mesalib/src/mesa/main/errors.c @@ -477,7 +477,7 @@ error: return GL_FALSE; } -static void GLAPIENTRY +void GLAPIENTRY _mesa_DebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLint length, const GLcharARB* buf) @@ -501,7 +501,7 @@ _mesa_DebugMessageInsertARB(GLenum source, GLenum type, GLuint id, _mesa_log_msg(ctx, source, type, id, severity, length, buf); } -static GLuint GLAPIENTRY +GLuint GLAPIENTRY _mesa_GetDebugMessageLogARB(GLuint count, GLsizei logSize, GLenum* sources, GLenum* types, GLenum* ids, GLenum* severities, GLsizei* lengths, GLcharARB* messageLog) @@ -672,7 +672,7 @@ control_app_messages(struct gl_context *ctx, GLenum esource, GLenum etype, control_app_messages_by_group(ctx, source, type, severity, enabled); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_DebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled) @@ -717,7 +717,7 @@ _mesa_DebugMessageControlARB(GLenum source, GLenum type, GLenum severity, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_DebugMessageCallbackARB(GLDEBUGPROCARB callback, const GLvoid *userParam) { GET_CURRENT_CONTEXT(ctx); diff --git a/mesalib/src/mesa/main/errors.h b/mesalib/src/mesa/main/errors.h index b4490fac9..c41d36811 100644 --- a/mesalib/src/mesa/main/errors.h +++ b/mesalib/src/mesa/main/errors.h @@ -71,6 +71,22 @@ _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLI extern void _mesa_shader_debug( struct gl_context *ctx, GLenum type, GLuint id, const char *msg, int len ); +void GLAPIENTRY +_mesa_DebugMessageInsertARB(GLenum source, GLenum type, GLuint id, + GLenum severity, GLint length, + const GLcharARB* buf); +GLuint GLAPIENTRY +_mesa_GetDebugMessageLogARB(GLuint count, GLsizei logSize, GLenum* sources, + GLenum* types, GLenum* ids, GLenum* severities, + GLsizei* lengths, GLcharARB* messageLog); +void GLAPIENTRY +_mesa_DebugMessageControlARB(GLenum source, GLenum type, GLenum severity, + GLsizei count, const GLuint *ids, + GLboolean enabled); +void GLAPIENTRY +_mesa_DebugMessageCallbackARB(GLDEBUGPROCARB callback, + const GLvoid *userParam); + #ifdef __cplusplus } #endif diff --git a/mesalib/src/mesa/main/es1_conversion.c b/mesalib/src/mesa/main/es1_conversion.c index 758fb1a66..993147c47 100644 --- a/mesalib/src/mesa/main/es1_conversion.c +++ b/mesalib/src/mesa/main/es1_conversion.c @@ -1,8 +1,6 @@ #include #include "main/mfeatures.h" -#if FEATURE_ES1 - #include "api_loopback.h" #include "api_exec.h" #include "blend.h" @@ -938,5 +936,3 @@ _es_Translatex(GLfixed x, GLfixed y, GLfixed z) (GLfloat) (y / 65536.0f), (GLfloat) (z / 65536.0f)); } - -#endif /* FEATURE_ES1 */ diff --git a/mesalib/src/mesa/main/eval.c b/mesalib/src/mesa/main/eval.c index d6e45d6e8..59627cc43 100644 --- a/mesalib/src/mesa/main/eval.c +++ b/mesalib/src/mesa/main/eval.c @@ -368,7 +368,7 @@ map1(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, -static void GLAPIENTRY +void GLAPIENTRY _mesa_Map1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points ) { @@ -376,7 +376,7 @@ _mesa_Map1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Map1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points ) { @@ -467,7 +467,7 @@ map2( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Map2f( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, @@ -478,7 +478,7 @@ _mesa_Map2f( GLenum target, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Map2d( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, @@ -490,7 +490,7 @@ _mesa_Map2d( GLenum target, -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnMapdvARB( GLenum target, GLenum query, GLsizei bufSize, GLdouble *v ) { GET_CURRENT_CONTEXT(ctx); @@ -576,13 +576,13 @@ overflow: " but %d bytes are required)", bufSize, numBytes ); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v ) { _mesa_GetnMapdvARB(target, query, INT_MAX, v); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnMapfvARB( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v ) { GET_CURRENT_CONTEXT(ctx); @@ -669,14 +669,14 @@ overflow: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v ) { _mesa_GetnMapfvARB(target, query, INT_MAX, v); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v ) { GET_CURRENT_CONTEXT(ctx); @@ -763,14 +763,14 @@ overflow: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMapiv( GLenum target, GLenum query, GLint *v ) { _mesa_GetnMapivARB(target, query, INT_MAX, v); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 ) { GET_CURRENT_CONTEXT(ctx); @@ -788,14 +788,14 @@ _mesa_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_MapGrid1d( GLint un, GLdouble u1, GLdouble u2 ) { _mesa_MapGrid1f( un, (GLfloat) u1, (GLfloat) u2 ); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_MapGrid2f( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 ) { @@ -823,7 +823,7 @@ _mesa_MapGrid2f( GLint un, GLfloat u1, GLfloat u2, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_MapGrid2d( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ) { @@ -848,28 +848,6 @@ _mesa_install_eval_vtxfmt(struct _glapi_table *disp, } -void -_mesa_init_eval_dispatch(struct _glapi_table *disp) -{ - SET_GetMapdv(disp, _mesa_GetMapdv); - SET_GetMapfv(disp, _mesa_GetMapfv); - SET_GetMapiv(disp, _mesa_GetMapiv); - SET_Map1d(disp, _mesa_Map1d); - SET_Map1f(disp, _mesa_Map1f); - SET_Map2d(disp, _mesa_Map2d); - SET_Map2f(disp, _mesa_Map2f); - SET_MapGrid1d(disp, _mesa_MapGrid1d); - SET_MapGrid1f(disp, _mesa_MapGrid1f); - SET_MapGrid2d(disp, _mesa_MapGrid2d); - SET_MapGrid2f(disp, _mesa_MapGrid2f); - - /* GL_ARB_robustness */ - SET_GetnMapdvARB(disp, _mesa_GetnMapdvARB); - SET_GetnMapfvARB(disp, _mesa_GetnMapfvARB); - SET_GetnMapivARB(disp, _mesa_GetnMapivARB); -} - - /**********************************************************************/ /***** Initialization *****/ /**********************************************************************/ diff --git a/mesalib/src/mesa/main/eval.h b/mesalib/src/mesa/main/eval.h index 0649de052..1b6c704ca 100644 --- a/mesalib/src/mesa/main/eval.h +++ b/mesalib/src/mesa/main/eval.h @@ -78,11 +78,47 @@ extern void _mesa_install_eval_vtxfmt(struct _glapi_table *disp, const GLvertexformat *vfmt); -extern void -_mesa_init_eval_dispatch(struct _glapi_table *disp); - extern void _mesa_init_eval( struct gl_context *ctx ); extern void _mesa_free_eval_data( struct gl_context *ctx ); +void GLAPIENTRY +_mesa_Map1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, + GLint order, const GLfloat *points ); +void GLAPIENTRY +_mesa_Map1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride, + GLint order, const GLdouble *points ); +void GLAPIENTRY +_mesa_Map2f( GLenum target, + GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, + GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, + const GLfloat *points); +void GLAPIENTRY +_mesa_Map2d( GLenum target, + GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, + GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, + const GLdouble *points ); +void GLAPIENTRY +_mesa_GetnMapdvARB( GLenum target, GLenum query, GLsizei bufSize, + GLdouble *v ); +void GLAPIENTRY +_mesa_GetMapdv( GLenum target, GLenum query, GLdouble *v ); +void GLAPIENTRY +_mesa_GetnMapfvARB( GLenum target, GLenum query, GLsizei bufSize, GLfloat *v ); +void GLAPIENTRY +_mesa_GetMapfv( GLenum target, GLenum query, GLfloat *v ); +void GLAPIENTRY +_mesa_GetnMapivARB( GLenum target, GLenum query, GLsizei bufSize, GLint *v ); +void GLAPIENTRY +_mesa_GetMapiv( GLenum target, GLenum query, GLint *v ); +void GLAPIENTRY +_mesa_MapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); +void GLAPIENTRY +_mesa_MapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); +void GLAPIENTRY +_mesa_MapGrid2f( GLint un, GLfloat u1, GLfloat u2, + GLint vn, GLfloat v1, GLfloat v2 ); +void GLAPIENTRY +_mesa_MapGrid2d( GLint un, GLdouble u1, GLdouble u2, + GLint vn, GLdouble v1, GLdouble v2 ); #endif /* EVAL_H */ diff --git a/mesalib/src/mesa/main/fbobject.c b/mesalib/src/mesa/main/fbobject.c index fc5681ccc..0758d5557 100644 --- a/mesalib/src/mesa/main/fbobject.c +++ b/mesalib/src/mesa/main/fbobject.c @@ -2059,7 +2059,8 @@ framebuffer_texture(struct gl_context *ctx, const char *caller, GLenum target, } else if ((texObj->Target == GL_TEXTURE_1D_ARRAY_EXT) || (texObj->Target == GL_TEXTURE_2D_ARRAY_EXT)) { - if (zoffset < 0 || zoffset >= ctx->Const.MaxArrayTextureLayers) { + if (zoffset < 0 || + zoffset >= (GLint) ctx->Const.MaxArrayTextureLayers) { _mesa_error(ctx, GL_INVALID_VALUE, "glFramebufferTexture%sEXT(layer)", caller); return; @@ -2637,6 +2638,15 @@ _mesa_GenerateMipmapEXT(GLenum target) return; } + if (_mesa_is_enum_format_integer(srcImage->InternalFormat) || + _mesa_is_depthstencil_format(srcImage->InternalFormat) || + _mesa_is_stencil_format(srcImage->InternalFormat)) { + _mesa_unlock_texture(ctx, texObj); + _mesa_error(ctx, GL_INVALID_OPERATION, + "glGenerateMipmap(invalid internal format)"); + return; + } + if (target == GL_TEXTURE_CUBE_MAP) { GLuint face; for (face = 0; face < 6; face++) @@ -3142,7 +3152,7 @@ invalidate_framebuffer_storage(GLenum target, GLsizei numAttachments, case GL_COLOR_ATTACHMENT13: case GL_COLOR_ATTACHMENT14: case GL_COLOR_ATTACHMENT15: { - const int k = attachments[i] - GL_COLOR_ATTACHMENT0; + unsigned k = attachments[i] - GL_COLOR_ATTACHMENT0; if (k >= ctx->Const.MaxColorAttachments) { _mesa_error(ctx, GL_INVALID_OPERATION, "%s(attachment >= max. color attachments)", name); diff --git a/mesalib/src/mesa/main/feedback.c b/mesalib/src/mesa/main/feedback.c index f45b823b1..128a12622 100644 --- a/mesalib/src/mesa/main/feedback.c +++ b/mesalib/src/mesa/main/feedback.c @@ -47,7 +47,7 @@ -static void GLAPIENTRY +void GLAPIENTRY _mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ) { GET_CURRENT_CONTEXT(ctx); @@ -96,7 +96,7 @@ _mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_PassThrough( GLfloat token ) { GET_CURRENT_CONTEXT(ctx); @@ -159,7 +159,7 @@ _mesa_feedback_vertex(struct gl_context *ctx, * Verifies we're not in selection mode, flushes the vertices and initialize * the fields in __struct gl_contextRec::Select with the given buffer. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_SelectBuffer( GLsizei size, GLuint *buffer ) { GET_CURRENT_CONTEXT(ctx); @@ -271,7 +271,7 @@ write_hit_record(struct gl_context *ctx) * the hit record data in gl_selection. Marks new render mode in * __struct gl_contextRec::NewState. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_InitNames( void ) { GET_CURRENT_CONTEXT(ctx); @@ -302,7 +302,7 @@ _mesa_InitNames( void ) * * sa __struct gl_contextRec::Select. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_LoadName( GLuint name ) { GET_CURRENT_CONTEXT(ctx); @@ -341,7 +341,7 @@ _mesa_LoadName( GLuint name ) * * sa __struct gl_contextRec::Select. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_PushName( GLuint name ) { GET_CURRENT_CONTEXT(ctx); @@ -372,7 +372,7 @@ _mesa_PushName( GLuint name ) * * sa __struct gl_contextRec::Select. */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_PopName( void ) { GET_CURRENT_CONTEXT(ctx); @@ -494,20 +494,6 @@ _mesa_RenderMode( GLenum mode ) /*@}*/ -void -_mesa_init_feedback_dispatch(struct _glapi_table *disp) -{ - SET_InitNames(disp, _mesa_InitNames); - SET_FeedbackBuffer(disp, _mesa_FeedbackBuffer); - SET_LoadName(disp, _mesa_LoadName); - SET_PassThrough(disp, _mesa_PassThrough); - SET_PopName(disp, _mesa_PopName); - SET_PushName(disp, _mesa_PushName); - SET_SelectBuffer(disp, _mesa_SelectBuffer); - SET_RenderMode(disp, _mesa_RenderMode); -} - - /**********************************************************************/ /** \name Initialization */ /*@{*/ diff --git a/mesalib/src/mesa/main/feedback.h b/mesalib/src/mesa/main/feedback.h index cc4cf15a8..a697dc0d2 100644 --- a/mesalib/src/mesa/main/feedback.h +++ b/mesalib/src/mesa/main/feedback.h @@ -31,7 +31,21 @@ #include "main/mtypes.h" -extern GLint GLAPIENTRY +void GLAPIENTRY +_mesa_FeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); +void GLAPIENTRY +_mesa_PassThrough( GLfloat token ); +void GLAPIENTRY +_mesa_SelectBuffer( GLsizei size, GLuint *buffer ); +void GLAPIENTRY +_mesa_InitNames( void ); +void GLAPIENTRY +_mesa_LoadName( GLuint name ); +void GLAPIENTRY +_mesa_PushName( GLuint name ); +void GLAPIENTRY +_mesa_PopName( void ); +GLint GLAPIENTRY _mesa_RenderMode( GLenum mode ); extern void @@ -55,10 +69,6 @@ extern void _mesa_update_hitflag( struct gl_context *ctx, GLfloat z ); -extern void -_mesa_init_feedback_dispatch(struct _glapi_table *disp); - - extern void _mesa_init_feedback( struct gl_context *ctx ); diff --git a/mesalib/src/mesa/main/ffvertex_prog.c b/mesalib/src/mesa/main/ffvertex_prog.c index efdca015e..4cdec2166 100644 --- a/mesalib/src/mesa/main/ffvertex_prog.c +++ b/mesalib/src/mesa/main/ffvertex_prog.c @@ -160,6 +160,8 @@ static void make_state_key( struct gl_context *ctx, struct state_key *key ) key->need_eye_coords = ctx->_NeedEyeCoords; + /* Make sure fp->Base.InputsRead fits in a 12-bit field */ + assert(fp->Base.InputsRead < (1 << 12)); key->fragprog_inputs_read = fp->Base.InputsRead; key->varying_vp_inputs = ctx->varying_vp_inputs; diff --git a/mesalib/src/mesa/main/format_pack.c b/mesalib/src/mesa/main/format_pack.c index be6c026e8..051fb40b9 100644 --- a/mesalib/src/mesa/main/format_pack.c +++ b/mesalib/src/mesa/main/format_pack.c @@ -2248,7 +2248,7 @@ pack_uint_z_Z32_FLOAT(const GLuint *src, void *dst) { GLuint *d = ((GLuint *) dst); const GLdouble scale = 1.0 / (GLdouble) 0xffffffff; - *d = *src * scale; + *d = (GLuint) (*src * scale); assert(*d >= 0.0f); assert(*d <= 1.0f); } @@ -2258,7 +2258,7 @@ pack_uint_z_Z32_FLOAT_X24S8(const GLuint *src, void *dst) { GLfloat *d = ((GLfloat *) dst); const GLdouble scale = 1.0 / (GLdouble) 0xffffffff; - *d = *src * scale; + *d = (GLfloat) (*src * scale); assert(*d >= 0.0f); assert(*d <= 1.0f); } @@ -2473,7 +2473,7 @@ _mesa_pack_uint_z_row(gl_format format, GLuint n, const GLdouble scale = 1.0 / (GLdouble) 0xffffffff; GLuint i; for (i = 0; i < n; i++) { - d[i] = src[i] * scale; + d[i] = (GLuint) (src[i] * scale); assert(d[i] >= 0.0f); assert(d[i] <= 1.0f); } @@ -2485,7 +2485,7 @@ _mesa_pack_uint_z_row(gl_format format, GLuint n, const GLdouble scale = 1.0 / (GLdouble) 0xffffffff; GLuint i; for (i = 0; i < n; i++) { - d[i].z = src[i] * scale; + d[i].z = (GLfloat) (src[i] * scale); assert(d[i].z >= 0.0f); assert(d[i].z <= 1.0f); } @@ -2570,9 +2570,9 @@ _mesa_pack_uint_24_8_depth_stencil_row(gl_format format, GLuint n, { const GLdouble scale = 1.0 / (GLdouble) 0xffffff; struct z32f_x24s8 *d = (struct z32f_x24s8 *) dst; - GLint i; + GLuint i; for (i = 0; i < n; i++) { - GLfloat z = (src[i] >> 8) * scale; + GLfloat z = (GLfloat) ((src[i] >> 8) * scale); d[i].z = z; d[i].x24s8 = src[i]; } @@ -2599,10 +2599,10 @@ _mesa_pack_colormask(gl_format format, const GLubyte colorMask[4], void *dst) switch (_mesa_get_format_datatype(format)) { case GL_UNSIGNED_NORMALIZED: /* simple: 1.0 will convert to ~0 in the right bit positions */ - maskColor[0] = colorMask[0] ? 1.0 : 0.0; - maskColor[1] = colorMask[1] ? 1.0 : 0.0; - maskColor[2] = colorMask[2] ? 1.0 : 0.0; - maskColor[3] = colorMask[3] ? 1.0 : 0.0; + maskColor[0] = colorMask[0] ? 1.0f : 0.0f; + maskColor[1] = colorMask[1] ? 1.0f : 0.0f; + maskColor[2] = colorMask[2] ? 1.0f : 0.0f; + maskColor[3] = colorMask[3] ? 1.0f : 0.0f; _mesa_pack_float_rgba_row(format, 1, (const GLfloat (*)[4]) maskColor, dst); break; diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c index c34d873f2..afae08932 100644 --- a/mesalib/src/mesa/main/get.c +++ b/mesalib/src/mesa/main/get.c @@ -1480,7 +1480,7 @@ _mesa_GetDoublev(GLenum pname, GLdouble *params) } static enum value_type -find_value_indexed(const char *func, GLenum pname, int index, union value *v) +find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v) { GET_CURRENT_CONTEXT(ctx); @@ -1686,7 +1686,6 @@ _mesa_GetInteger64Indexedv( GLenum pname, GLuint index, GLint64 *params ) } } -#if FEATURE_ES1 void GLAPIENTRY _mesa_GetFixedv(GLenum pname, GLfixed *params) { @@ -1772,4 +1771,3 @@ _mesa_GetFixedv(GLenum pname, GLfixed *params) break; } } -#endif diff --git a/mesalib/src/mesa/main/histogram.c b/mesalib/src/mesa/main/histogram.c index d3dc7ddc4..fe454bcfb 100644 --- a/mesalib/src/mesa/main/histogram.c +++ b/mesalib/src/mesa/main/histogram.c @@ -37,11 +37,7 @@ */ -/* this is defined below */ -static void GLAPIENTRY _mesa_ResetMinmax(GLenum target); - - -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values) { @@ -51,7 +47,7 @@ _mesa_GetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values) { @@ -59,7 +55,7 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values) { @@ -69,7 +65,7 @@ _mesa_GetnHistogramARB(GLenum target, GLboolean reset, GLenum format, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values) { @@ -77,7 +73,7 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params) { GET_CURRENT_CONTEXT(ctx); @@ -86,7 +82,7 @@ _mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetHistogramParameteriv(GLenum target, GLenum pname, GLint *params) { GET_CURRENT_CONTEXT(ctx); @@ -95,7 +91,7 @@ _mesa_GetHistogramParameteriv(GLenum target, GLenum pname, GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params) { GET_CURRENT_CONTEXT(ctx); @@ -104,7 +100,7 @@ _mesa_GetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params) { GET_CURRENT_CONTEXT(ctx); @@ -113,7 +109,7 @@ _mesa_GetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Histogram(GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink) { GET_CURRENT_CONTEXT(ctx); @@ -122,7 +118,7 @@ _mesa_Histogram(GLenum target, GLsizei width, GLenum internalFormat, GLboolean s } -static void GLAPIENTRY +void GLAPIENTRY _mesa_Minmax(GLenum target, GLenum internalFormat, GLboolean sink) { GET_CURRENT_CONTEXT(ctx); @@ -131,7 +127,7 @@ _mesa_Minmax(GLenum target, GLenum internalFormat, GLboolean sink) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ResetHistogram(GLenum target) { GET_CURRENT_CONTEXT(ctx); @@ -140,30 +136,10 @@ _mesa_ResetHistogram(GLenum target) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_ResetMinmax(GLenum target) { GET_CURRENT_CONTEXT(ctx); _mesa_error(ctx, GL_INVALID_OPERATION, "glResetMinmax"); } - - -void -_mesa_init_histogram_dispatch(struct _glapi_table *disp) -{ - SET_GetHistogram(disp, _mesa_GetHistogram); - SET_GetHistogramParameterfv(disp, _mesa_GetHistogramParameterfv); - SET_GetHistogramParameteriv(disp, _mesa_GetHistogramParameteriv); - SET_GetMinmax(disp, _mesa_GetMinmax); - SET_GetMinmaxParameterfv(disp, _mesa_GetMinmaxParameterfv); - SET_GetMinmaxParameteriv(disp, _mesa_GetMinmaxParameteriv); - SET_Histogram(disp, _mesa_Histogram); - SET_Minmax(disp, _mesa_Minmax); - SET_ResetHistogram(disp, _mesa_ResetHistogram); - SET_ResetMinmax(disp, _mesa_ResetMinmax); - - /* GL_ARB_robustness */ - SET_GetnHistogramARB(disp, _mesa_GetnHistogramARB); - SET_GetnMinmaxARB(disp, _mesa_GetnMinmaxARB); -} diff --git a/mesalib/src/mesa/main/histogram.h b/mesalib/src/mesa/main/histogram.h index a9c312152..06781e732 100644 --- a/mesalib/src/mesa/main/histogram.h +++ b/mesalib/src/mesa/main/histogram.h @@ -41,7 +41,35 @@ struct _glapi_table; -extern void -_mesa_init_histogram_dispatch(struct _glapi_table *disp); +void GLAPIENTRY +_mesa_GetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, + GLenum type, GLsizei bufSize, GLvoid *values); +void GLAPIENTRY +_mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, + GLvoid *values); +void GLAPIENTRY +_mesa_GetnHistogramARB(GLenum target, GLboolean reset, GLenum format, + GLenum type, GLsizei bufSize, GLvoid *values); +void GLAPIENTRY +_mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, + GLvoid *values); +void GLAPIENTRY +_mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params); +void GLAPIENTRY +_mesa_GetHistogramParameteriv(GLenum target, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params); +void GLAPIENTRY +_mesa_GetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_Histogram(GLenum target, GLsizei width, GLenum internalFormat, + GLboolean sink); +void GLAPIENTRY +_mesa_Minmax(GLenum target, GLenum internalFormat, GLboolean sink); +void GLAPIENTRY +_mesa_ResetHistogram(GLenum target); +void GLAPIENTRY +_mesa_ResetMinmax(GLenum target); + #endif /* HISTOGRAM_H */ diff --git a/mesalib/src/mesa/main/imports.h b/mesalib/src/mesa/main/imports.h index a78d67966..40ba75785 100644 --- a/mesalib/src/mesa/main/imports.h +++ b/mesalib/src/mesa/main/imports.h @@ -81,7 +81,7 @@ extern "C" { * these casts generate warnings. * The following union typedef is used to solve that. */ -typedef union { GLfloat f; GLint i; } fi_type; +typedef union { GLfloat f; GLint i; GLuint u; } fi_type; diff --git a/mesalib/src/mesa/main/macros.h b/mesalib/src/mesa/main/macros.h index 7b7fd1b6d..14a5d5fe1 100644 --- a/mesalib/src/mesa/main/macros.h +++ b/mesalib/src/mesa/main/macros.h @@ -171,6 +171,20 @@ extern GLfloat _mesa_ubyte_to_float_color_tab[256]; ub = ((GLubyte) F_TO_I((f) * 255.0F)) #endif +static inline GLfloat INT_AS_FLT(GLint i) +{ + fi_type tmp; + tmp.i = i; + return tmp.f; +} + +static inline GLfloat UINT_AS_FLT(GLuint u) +{ + fi_type tmp; + tmp.u = u; + return tmp.f; +} + /*@}*/ @@ -573,6 +587,31 @@ do { \ /*@}*/ +/** Copy \p sz elements into a homegeneous (4-element) vector, giving + * default values to the remaining components. + * The default values are chosen based on \p type. + */ +static inline void +COPY_CLEAN_4V_TYPE_AS_FLOAT(GLfloat dst[4], int sz, const GLfloat src[4], + GLenum type) +{ + switch (type) { + case GL_FLOAT: + ASSIGN_4V(dst, 0, 0, 0, 1); + break; + case GL_INT: + ASSIGN_4V(dst, INT_AS_FLT(0), INT_AS_FLT(0), + INT_AS_FLT(0), INT_AS_FLT(1)); + break; + case GL_UNSIGNED_INT: + ASSIGN_4V(dst, UINT_AS_FLT(0), UINT_AS_FLT(0), + UINT_AS_FLT(0), UINT_AS_FLT(1)); + break; + default: + ASSERT(0); + } + COPY_SZ_4V(dst, sz, src); +} /** \name Linear interpolation functions */ /*@{*/ diff --git a/mesalib/src/mesa/main/matrix.c b/mesalib/src/mesa/main/matrix.c index 28c4e2b49..3c5968c85 100644 --- a/mesalib/src/mesa/main/matrix.c +++ b/mesalib/src/mesa/main/matrix.c @@ -746,7 +746,7 @@ void _mesa_free_matrix_data( struct gl_context *ctx ) */ void _mesa_init_transform( struct gl_context *ctx ) { - GLint i; + GLuint i; /* Transformation group */ ctx->Transform.MatrixMode = GL_MODELVIEW; diff --git a/mesalib/src/mesa/main/pixel.c b/mesalib/src/mesa/main/pixel.c index f926c56a4..9940eda52 100644 --- a/mesalib/src/mesa/main/pixel.c +++ b/mesalib/src/mesa/main/pixel.c @@ -44,7 +44,7 @@ /***** glPixelZoom *****/ /**********************************************************************/ -static void GLAPIENTRY +void GLAPIENTRY _mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor ) { GET_CURRENT_CONTEXT(ctx); @@ -177,7 +177,7 @@ validate_pbo_access(struct gl_context *ctx, } -static void GLAPIENTRY +void GLAPIENTRY _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values ) { GET_CURRENT_CONTEXT(ctx); @@ -219,7 +219,7 @@ _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values ) { GLfloat fvalues[MAX_PIXEL_MAP_TABLE]; @@ -275,7 +275,7 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values ) { GLfloat fvalues[MAX_PIXEL_MAP_TABLE]; @@ -331,7 +331,7 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values ) { GET_CURRENT_CONTEXT(ctx); @@ -376,13 +376,13 @@ _mesa_GetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetPixelMapfv( GLenum map, GLfloat *values ) { _mesa_GetnPixelMapfvARB(map, INT_MAX, values); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values ) { GET_CURRENT_CONTEXT(ctx); @@ -427,13 +427,13 @@ _mesa_GetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetPixelMapuiv( GLenum map, GLuint *values ) { _mesa_GetnPixelMapuivARB(map, INT_MAX, values); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values ) { GET_CURRENT_CONTEXT(ctx); @@ -486,7 +486,7 @@ _mesa_GetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetPixelMapusv( GLenum map, GLushort *values ) { _mesa_GetnPixelMapusvARB(map, INT_MAX, values); @@ -600,7 +600,7 @@ _mesa_PixelTransferf( GLenum pname, GLfloat param ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_PixelTransferi( GLenum pname, GLint param ) { _mesa_PixelTransferf( pname, (GLfloat) param ); @@ -647,26 +647,6 @@ void _mesa_update_pixel( struct gl_context *ctx, GLuint new_state ) } -void -_mesa_init_pixel_dispatch(struct _glapi_table *disp) -{ - SET_GetPixelMapfv(disp, _mesa_GetPixelMapfv); - SET_GetPixelMapuiv(disp, _mesa_GetPixelMapuiv); - SET_GetPixelMapusv(disp, _mesa_GetPixelMapusv); - SET_PixelMapfv(disp, _mesa_PixelMapfv); - SET_PixelMapuiv(disp, _mesa_PixelMapuiv); - SET_PixelMapusv(disp, _mesa_PixelMapusv); - SET_PixelTransferf(disp, _mesa_PixelTransferf); - SET_PixelTransferi(disp, _mesa_PixelTransferi); - SET_PixelZoom(disp, _mesa_PixelZoom); - - /* GL_ARB_robustness */ - SET_GetnPixelMapfvARB(disp, _mesa_GetnPixelMapfvARB); - SET_GetnPixelMapuivARB(disp, _mesa_GetnPixelMapuivARB); - SET_GetnPixelMapusvARB(disp, _mesa_GetnPixelMapusvARB); -} - - /**********************************************************************/ /***** Initialization *****/ /**********************************************************************/ diff --git a/mesalib/src/mesa/main/pixel.h b/mesalib/src/mesa/main/pixel.h index bfd76d934..433208cb6 100644 --- a/mesalib/src/mesa/main/pixel.h +++ b/mesalib/src/mesa/main/pixel.h @@ -41,15 +41,34 @@ struct _glapi_table; struct gl_context; -extern void GLAPIENTRY +void GLAPIENTRY +_mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor ); +void GLAPIENTRY +_mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values ); +void GLAPIENTRY +_mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values ); +void GLAPIENTRY +_mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values ); +void GLAPIENTRY +_mesa_GetnPixelMapfvARB( GLenum map, GLsizei bufSize, GLfloat *values ); +void GLAPIENTRY +_mesa_GetPixelMapfv( GLenum map, GLfloat *values ); +void GLAPIENTRY +_mesa_GetnPixelMapuivARB( GLenum map, GLsizei bufSize, GLuint *values ); +void GLAPIENTRY +_mesa_GetPixelMapuiv( GLenum map, GLuint *values ); +void GLAPIENTRY +_mesa_GetnPixelMapusvARB( GLenum map, GLsizei bufSize, GLushort *values ); +void GLAPIENTRY +_mesa_GetPixelMapusv( GLenum map, GLushort *values ); +void GLAPIENTRY _mesa_PixelTransferf(GLenum pname, GLfloat param); +void GLAPIENTRY +_mesa_PixelTransferi( GLenum pname, GLint param ); extern void _mesa_update_pixel( struct gl_context *ctx, GLuint newstate ); -extern void -_mesa_init_pixel_dispatch( struct _glapi_table * disp ); - extern void _mesa_init_pixel( struct gl_context * ctx ); diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c index 1e39adc49..8c5e1b822 100644 --- a/mesalib/src/mesa/main/queryobj.c +++ b/mesalib/src/mesa/main/queryobj.c @@ -168,7 +168,7 @@ get_query_binding_point(struct gl_context *ctx, GLenum target) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GenQueriesARB(GLsizei n, GLuint *ids) { GLuint first; @@ -207,7 +207,7 @@ _mesa_GenQueriesARB(GLsizei n, GLuint *ids) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_DeleteQueriesARB(GLsizei n, const GLuint *ids) { GLint i; @@ -243,7 +243,7 @@ _mesa_DeleteQueriesARB(GLsizei n, const GLuint *ids) } -static GLboolean GLAPIENTRY +GLboolean GLAPIENTRY _mesa_IsQueryARB(GLuint id) { GET_CURRENT_CONTEXT(ctx); @@ -279,7 +279,7 @@ query_error_check_index(struct gl_context *ctx, GLenum target, GLuint index) return GL_TRUE; } -static void GLAPIENTRY +void GLAPIENTRY _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id) { struct gl_query_object *q, **bindpt; @@ -356,7 +356,7 @@ _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_EndQueryIndexed(GLenum target, GLuint index) { struct gl_query_object *q, **bindpt; @@ -402,19 +402,19 @@ _mesa_EndQueryIndexed(GLenum target, GLuint index) ctx->Driver.EndQuery(ctx, q); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_BeginQueryARB(GLenum target, GLuint id) { _mesa_BeginQueryIndexed(target, 0, id); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_EndQueryARB(GLenum target) { _mesa_EndQueryIndexed(target, 0); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_QueryCounter(GLuint id, GLenum target) { struct gl_query_object *q; @@ -471,7 +471,7 @@ _mesa_QueryCounter(GLuint id, GLenum target) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params) { @@ -546,13 +546,13 @@ _mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryivARB(GLenum target, GLenum pname, GLint *params) { _mesa_GetQueryIndexediv(target, 0, pname, params); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryObjectivARB(GLuint id, GLenum pname, GLint *params) { struct gl_query_object *q = NULL; @@ -603,7 +603,7 @@ _mesa_GetQueryObjectivARB(GLuint id, GLenum pname, GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params) { struct gl_query_object *q = NULL; @@ -657,7 +657,7 @@ _mesa_GetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params) /** * New with GL_EXT_timer_query */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params) { struct gl_query_object *q = NULL; @@ -698,7 +698,7 @@ _mesa_GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params) /** * New with GL_EXT_timer_query */ -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params) { struct gl_query_object *q = NULL; diff --git a/mesalib/src/mesa/main/queryobj.h b/mesalib/src/mesa/main/queryobj.h index 1e35185c7..f9e916cda 100644 --- a/mesalib/src/mesa/main/queryobj.h +++ b/mesalib/src/mesa/main/queryobj.h @@ -53,5 +53,34 @@ _mesa_init_queryobj(struct gl_context *ctx); extern void _mesa_free_queryobj_data(struct gl_context *ctx); +void GLAPIENTRY +_mesa_GenQueriesARB(GLsizei n, GLuint *ids); +void GLAPIENTRY +_mesa_DeleteQueriesARB(GLsizei n, const GLuint *ids); +GLboolean GLAPIENTRY +_mesa_IsQueryARB(GLuint id); +void GLAPIENTRY +_mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id); +void GLAPIENTRY +_mesa_EndQueryIndexed(GLenum target, GLuint index); +void GLAPIENTRY +_mesa_BeginQueryARB(GLenum target, GLuint id); +void GLAPIENTRY +_mesa_EndQueryARB(GLenum target); +void GLAPIENTRY +_mesa_QueryCounter(GLuint id, GLenum target); +void GLAPIENTRY +_mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, + GLint *params); +void GLAPIENTRY +_mesa_GetQueryivARB(GLenum target, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetQueryObjectivARB(GLuint id, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params); +void GLAPIENTRY +_mesa_GetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params); +void GLAPIENTRY +_mesa_GetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params); #endif /* QUERYOBJ_H */ diff --git a/mesalib/src/mesa/main/rastpos.c b/mesalib/src/mesa/main/rastpos.c index ab8e2c1a3..0ea95b594 100644 --- a/mesalib/src/mesa/main/rastpos.c +++ b/mesalib/src/mesa/main/rastpos.c @@ -63,147 +63,147 @@ rasterpos(GLfloat x, GLfloat y, GLfloat z, GLfloat w) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2d(GLdouble x, GLdouble y) { rasterpos((GLfloat)x, (GLfloat)y, (GLfloat)0.0, (GLfloat)1.0); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2f(GLfloat x, GLfloat y) { rasterpos(x, y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2i(GLint x, GLint y) { rasterpos((GLfloat) x, (GLfloat) y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2s(GLshort x, GLshort y) { rasterpos(x, y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3d(GLdouble x, GLdouble y, GLdouble z) { rasterpos((GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3f(GLfloat x, GLfloat y, GLfloat z) { rasterpos(x, y, z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3i(GLint x, GLint y, GLint z) { rasterpos((GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3s(GLshort x, GLshort y, GLshort z) { rasterpos(x, y, z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w) { rasterpos((GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) { rasterpos(x, y, z, w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4i(GLint x, GLint y, GLint z, GLint w) { rasterpos((GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w) { rasterpos(x, y, z, w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2dv(const GLdouble *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2fv(const GLfloat *v) { rasterpos(v[0], v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2iv(const GLint *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos2sv(const GLshort *v) { rasterpos(v[0], v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3dv(const GLdouble *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3fv(const GLfloat *v) { rasterpos(v[0], v[1], v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3iv(const GLint *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos3sv(const GLshort *v) { rasterpos(v[0], v[1], v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4dv(const GLdouble *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4fv(const GLfloat *v) { rasterpos(v[0], v[1], v[2], v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4iv(const GLint *v) { rasterpos((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_RasterPos4sv(const GLshort *v) { rasterpos(v[0], v[1], v[2], v[3]); @@ -288,147 +288,147 @@ window_pos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2dMESA(GLdouble x, GLdouble y) { window_pos4f((GLfloat) x, (GLfloat) y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2fMESA(GLfloat x, GLfloat y) { window_pos4f(x, y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2iMESA(GLint x, GLint y) { window_pos4f((GLfloat) x, (GLfloat) y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2sMESA(GLshort x, GLshort y) { window_pos4f(x, y, 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z) { window_pos4f((GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z) { window_pos4f(x, y, z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3iMESA(GLint x, GLint y, GLint z) { window_pos4f((GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z) { window_pos4f(x, y, z, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w) { window_pos4f((GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w) { window_pos4f(x, y, z, w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w) { window_pos4f((GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w) { window_pos4f(x, y, z, w); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2dvMESA(const GLdouble *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2fvMESA(const GLfloat *v) { window_pos4f(v[0], v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2ivMESA(const GLint *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos2svMESA(const GLshort *v) { window_pos4f(v[0], v[1], 0.0F, 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3dvMESA(const GLdouble *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3fvMESA(const GLfloat *v) { window_pos4f(v[0], v[1], v[2], 1.0); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3ivMESA(const GLint *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos3svMESA(const GLshort *v) { window_pos4f(v[0], v[1], v[2], 1.0F); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4dvMESA(const GLdouble *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4fvMESA(const GLfloat *v) { window_pos4f(v[0], v[1], v[2], v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4ivMESA(const GLint *v) { window_pos4f((GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); } -static void GLAPIENTRY +void GLAPIENTRY _mesa_WindowPos4svMESA(const GLshort *v) { window_pos4f(v[0], v[1], v[2], v[3]); @@ -474,62 +474,6 @@ void glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) #endif -void -_mesa_init_rastpos_dispatch(struct _glapi_table *disp) -{ - SET_RasterPos2f(disp, _mesa_RasterPos2f); - SET_RasterPos2fv(disp, _mesa_RasterPos2fv); - SET_RasterPos2i(disp, _mesa_RasterPos2i); - SET_RasterPos2iv(disp, _mesa_RasterPos2iv); - SET_RasterPos2d(disp, _mesa_RasterPos2d); - SET_RasterPos2dv(disp, _mesa_RasterPos2dv); - SET_RasterPos2s(disp, _mesa_RasterPos2s); - SET_RasterPos2sv(disp, _mesa_RasterPos2sv); - SET_RasterPos3d(disp, _mesa_RasterPos3d); - SET_RasterPos3dv(disp, _mesa_RasterPos3dv); - SET_RasterPos3f(disp, _mesa_RasterPos3f); - SET_RasterPos3fv(disp, _mesa_RasterPos3fv); - SET_RasterPos3i(disp, _mesa_RasterPos3i); - SET_RasterPos3iv(disp, _mesa_RasterPos3iv); - SET_RasterPos3s(disp, _mesa_RasterPos3s); - SET_RasterPos3sv(disp, _mesa_RasterPos3sv); - SET_RasterPos4d(disp, _mesa_RasterPos4d); - SET_RasterPos4dv(disp, _mesa_RasterPos4dv); - SET_RasterPos4f(disp, _mesa_RasterPos4f); - SET_RasterPos4fv(disp, _mesa_RasterPos4fv); - SET_RasterPos4i(disp, _mesa_RasterPos4i); - SET_RasterPos4iv(disp, _mesa_RasterPos4iv); - SET_RasterPos4s(disp, _mesa_RasterPos4s); - SET_RasterPos4sv(disp, _mesa_RasterPos4sv); - - /* 197. GL_MESA_window_pos */ - SET_WindowPos2dMESA(disp, _mesa_WindowPos2dMESA); - SET_WindowPos2dvMESA(disp, _mesa_WindowPos2dvMESA); - SET_WindowPos2fMESA(disp, _mesa_WindowPos2fMESA); - SET_WindowPos2fvMESA(disp, _mesa_WindowPos2fvMESA); - SET_WindowPos2iMESA(disp, _mesa_WindowPos2iMESA); - SET_WindowPos2ivMESA(disp, _mesa_WindowPos2ivMESA); - SET_WindowPos2sMESA(disp, _mesa_WindowPos2sMESA); - SET_WindowPos2svMESA(disp, _mesa_WindowPos2svMESA); - SET_WindowPos3dMESA(disp, _mesa_WindowPos3dMESA); - SET_WindowPos3dvMESA(disp, _mesa_WindowPos3dvMESA); - SET_WindowPos3fMESA(disp, _mesa_WindowPos3fMESA); - SET_WindowPos3fvMESA(disp, _mesa_WindowPos3fvMESA); - SET_WindowPos3iMESA(disp, _mesa_WindowPos3iMESA); - SET_WindowPos3ivMESA(disp, _mesa_WindowPos3ivMESA); - SET_WindowPos3sMESA(disp, _mesa_WindowPos3sMESA); - SET_WindowPos3svMESA(disp, _mesa_WindowPos3svMESA); - SET_WindowPos4dMESA(disp, _mesa_WindowPos4dMESA); - SET_WindowPos4dvMESA(disp, _mesa_WindowPos4dvMESA); - SET_WindowPos4fMESA(disp, _mesa_WindowPos4fMESA); - SET_WindowPos4fvMESA(disp, _mesa_WindowPos4fvMESA); - SET_WindowPos4iMESA(disp, _mesa_WindowPos4iMESA); - SET_WindowPos4ivMESA(disp, _mesa_WindowPos4ivMESA); - SET_WindowPos4sMESA(disp, _mesa_WindowPos4sMESA); - SET_WindowPos4svMESA(disp, _mesa_WindowPos4svMESA); -} - - /**********************************************************************/ /** \name Initialization */ /**********************************************************************/ diff --git a/mesalib/src/mesa/main/rastpos.h b/mesalib/src/mesa/main/rastpos.h index 9bb04cc9c..90351e86b 100644 --- a/mesalib/src/mesa/main/rastpos.h +++ b/mesalib/src/mesa/main/rastpos.h @@ -38,12 +38,107 @@ struct _glapi_table; struct gl_context; -extern void -_mesa_init_rastpos_dispatch(struct _glapi_table *disp); - extern void _mesa_init_rastpos(struct gl_context *ctx); +void GLAPIENTRY +_mesa_RasterPos2d(GLdouble x, GLdouble y); +void GLAPIENTRY +_mesa_RasterPos2f(GLfloat x, GLfloat y); +void GLAPIENTRY +_mesa_RasterPos2i(GLint x, GLint y); +void GLAPIENTRY +_mesa_RasterPos2s(GLshort x, GLshort y); +void GLAPIENTRY +_mesa_RasterPos3d(GLdouble x, GLdouble y, GLdouble z); +void GLAPIENTRY +_mesa_RasterPos3f(GLfloat x, GLfloat y, GLfloat z); +void GLAPIENTRY +_mesa_RasterPos3i(GLint x, GLint y, GLint z); +void GLAPIENTRY +_mesa_RasterPos3s(GLshort x, GLshort y, GLshort z); +void GLAPIENTRY +_mesa_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +void GLAPIENTRY +_mesa_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +void GLAPIENTRY +_mesa_RasterPos4i(GLint x, GLint y, GLint z, GLint w); +void GLAPIENTRY +_mesa_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); +void GLAPIENTRY +_mesa_RasterPos2dv(const GLdouble *v); +void GLAPIENTRY +_mesa_RasterPos2fv(const GLfloat *v); +void GLAPIENTRY +_mesa_RasterPos2iv(const GLint *v); +void GLAPIENTRY +_mesa_RasterPos2sv(const GLshort *v); +void GLAPIENTRY +_mesa_RasterPos3dv(const GLdouble *v); +void GLAPIENTRY +_mesa_RasterPos3fv(const GLfloat *v); +void GLAPIENTRY +_mesa_RasterPos3iv(const GLint *v); +void GLAPIENTRY +_mesa_RasterPos3sv(const GLshort *v); +void GLAPIENTRY +_mesa_RasterPos4dv(const GLdouble *v); +void GLAPIENTRY +_mesa_RasterPos4fv(const GLfloat *v); +void GLAPIENTRY +_mesa_RasterPos4iv(const GLint *v); +void GLAPIENTRY +_mesa_RasterPos4sv(const GLshort *v); +void GLAPIENTRY +_mesa_WindowPos2dMESA(GLdouble x, GLdouble y); +void GLAPIENTRY +_mesa_WindowPos2fMESA(GLfloat x, GLfloat y); +void GLAPIENTRY +_mesa_WindowPos2iMESA(GLint x, GLint y); +void GLAPIENTRY +_mesa_WindowPos2sMESA(GLshort x, GLshort y); +void GLAPIENTRY +_mesa_WindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z); +void GLAPIENTRY +_mesa_WindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z); +void GLAPIENTRY +_mesa_WindowPos3iMESA(GLint x, GLint y, GLint z); +void GLAPIENTRY +_mesa_WindowPos3sMESA(GLshort x, GLshort y, GLshort z); +void GLAPIENTRY +_mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +void GLAPIENTRY +_mesa_WindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +void GLAPIENTRY +_mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w); +void GLAPIENTRY +_mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w); +void GLAPIENTRY +_mesa_WindowPos2dvMESA(const GLdouble *v); +void GLAPIENTRY +_mesa_WindowPos2fvMESA(const GLfloat *v); +void GLAPIENTRY +_mesa_WindowPos2ivMESA(const GLint *v); +void GLAPIENTRY +_mesa_WindowPos2svMESA(const GLshort *v); +void GLAPIENTRY +_mesa_WindowPos3dvMESA(const GLdouble *v); +void GLAPIENTRY +_mesa_WindowPos3fvMESA(const GLfloat *v); +void GLAPIENTRY +_mesa_WindowPos3ivMESA(const GLint *v); +void GLAPIENTRY +_mesa_WindowPos3svMESA(const GLshort *v); +void GLAPIENTRY +_mesa_WindowPos4dvMESA(const GLdouble *v); +void GLAPIENTRY +_mesa_WindowPos4fvMESA(const GLfloat *v); +void GLAPIENTRY +_mesa_WindowPos4ivMESA(const GLint *v); +void GLAPIENTRY +_mesa_WindowPos4svMESA(const GLshort *v); + + /*@}*/ #endif /* RASTPOS_H */ diff --git a/mesalib/src/mesa/main/samplerobj.c b/mesalib/src/mesa/main/samplerobj.c index 09cbd2939..3c3bfffd4 100644 --- a/mesalib/src/mesa/main/samplerobj.c +++ b/mesalib/src/mesa/main/samplerobj.c @@ -224,7 +224,7 @@ _mesa_DeleteSamplers(GLsizei count, const GLuint *samplers) } -static GLboolean GLAPIENTRY +GLboolean GLAPIENTRY _mesa_IsSampler(GLuint sampler) { struct gl_sampler_object *sampObj; @@ -684,7 +684,7 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) { struct gl_sampler_object *sampObj; @@ -770,7 +770,7 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params) { struct gl_sampler_object *sampObj; @@ -862,7 +862,7 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params) } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params) { struct gl_sampler_object *sampObj; @@ -949,7 +949,7 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params) } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params) { struct gl_sampler_object *sampObj; @@ -1035,7 +1035,7 @@ _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params) { struct gl_sampler_object *sampObj; @@ -1121,7 +1121,7 @@ _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params) { struct gl_sampler_object *sampObj; @@ -1199,7 +1199,7 @@ invalid_pname: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params) { struct gl_sampler_object *sampObj; @@ -1277,7 +1277,7 @@ invalid_pname: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params) { struct gl_sampler_object *sampObj; @@ -1356,7 +1356,7 @@ invalid_pname: } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params) { struct gl_sampler_object *sampObj; diff --git a/mesalib/src/mesa/main/samplerobj.h b/mesalib/src/mesa/main/samplerobj.h index bea4c2232..ecff032c9 100644 --- a/mesalib/src/mesa/main/samplerobj.h +++ b/mesalib/src/mesa/main/samplerobj.h @@ -80,16 +80,33 @@ extern void _mesa_init_sampler_object_dispatch(const struct gl_context *ctx, struct _glapi_table *disp); -extern void GLAPIENTRY -_mesa_BindSampler(GLuint unit, GLuint sampler); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GenSamplers(GLsizei count, GLuint *samplers); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_DeleteSamplers(GLsizei count, const GLuint *samplers); - -extern void GLAPIENTRY +GLboolean GLAPIENTRY +_mesa_IsSampler(GLuint sampler); +void GLAPIENTRY +_mesa_BindSampler(GLuint unit, GLuint sampler); +void GLAPIENTRY _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param); +void GLAPIENTRY +_mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); +void GLAPIENTRY +_mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params); +void GLAPIENTRY +_mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params); +void GLAPIENTRY +_mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params); +void GLAPIENTRY +_mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params); +void GLAPIENTRY +_mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params); +void GLAPIENTRY +_mesa_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params); +void GLAPIENTRY +_mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params); #endif /* SAMPLEROBJ_H */ diff --git a/mesalib/src/mesa/main/texgen.c b/mesalib/src/mesa/main/texgen.c index c5a878644..7c9c2a760 100644 --- a/mesalib/src/mesa/main/texgen.c +++ b/mesalib/src/mesa/main/texgen.c @@ -186,7 +186,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params ) { GLfloat p[4]; @@ -203,7 +203,7 @@ _mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params ) } -static void GLAPIENTRY +void GLAPIENTRY _mesa_TexGend(GLenum coord, GLenum pname, GLdouble param ) { GLfloat p[4]; @@ -212,7 +212,6 @@ _mesa_TexGend(GLenum coord, GLenum pname, GLdouble param ) _mesa_TexGenfv( coord, pname, p ); } -#if FEATURE_ES1 void GLAPIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params) @@ -250,9 +249,8 @@ _es_TexGenfv(GLenum coord, GLenum pname, const GLfloat *params) _mesa_TexGenfv(GL_R, pname, params); } -#endif -static void GLAPIENTRY +void GLAPIENTRY _mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params ) { GLfloat p[4]; @@ -290,7 +288,7 @@ _mesa_TexGeni( GLenum coord, GLenum pname, GLint param ) -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params ) { struct gl_texture_unit *texUnit; @@ -423,20 +421,3 @@ _mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params ) _mesa_error( ctx, GL_INVALID_ENUM, "glGetTexGeniv(pname)" ); } } - - -void -_mesa_init_texgen_dispatch(struct gl_context *ctx, struct _glapi_table *disp) -{ - SET_GetTexGenfv(disp, _mesa_GetTexGenfv); - SET_GetTexGeniv(disp, _mesa_GetTexGeniv); - SET_TexGenf(disp, _mesa_TexGenf); - SET_TexGenfv(disp, _mesa_TexGenfv); - SET_TexGeni(disp, _mesa_TexGeni); - SET_TexGeniv(disp, _mesa_TexGeniv); - if (ctx->API == API_OPENGL) { - SET_GetTexGendv(disp, _mesa_GetTexGendv); - SET_TexGend(disp, _mesa_TexGend); - SET_TexGendv(disp, _mesa_TexGendv); - } -} diff --git a/mesalib/src/mesa/main/texgen.h b/mesalib/src/mesa/main/texgen.h index 03dd49c61..97563a0f0 100644 --- a/mesalib/src/mesa/main/texgen.h +++ b/mesalib/src/mesa/main/texgen.h @@ -34,24 +34,25 @@ struct _glapi_table; -extern void GLAPIENTRY +void GLAPIENTRY _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); - -extern void GLAPIENTRY +void GLAPIENTRY +_mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params ); +void GLAPIENTRY +_mesa_TexGend(GLenum coord, GLenum pname, GLdouble param ); +void GLAPIENTRY +_mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params ); +void GLAPIENTRY _mesa_TexGenf( GLenum coord, GLenum pname, GLfloat param ); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_TexGeni( GLenum coord, GLenum pname, GLint param ); - -extern void GLAPIENTRY +void GLAPIENTRY +_mesa_GetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); +void GLAPIENTRY _mesa_GetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetTexGeniv( GLenum coord, GLenum pname, GLint *params ); -extern void -_mesa_init_texgen_dispatch(struct gl_context *ctx, struct _glapi_table *disp); - extern void GLAPIENTRY _es_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params); diff --git a/mesalib/src/mesa/main/texgetimage.c b/mesalib/src/mesa/main/texgetimage.c index a3720699d..554c68b71 100644 --- a/mesalib/src/mesa/main/texgetimage.c +++ b/mesalib/src/mesa/main/texgetimage.c @@ -892,7 +892,7 @@ getcompressedteximage_error_check(struct gl_context *ctx, GLenum target, if (!_mesa_is_bufferobj(ctx->Pack.BufferObj)) { /* do bounds checking on writing to client memory */ - if (clientMemSize < compressedSize) { + if (clientMemSize < (GLsizei) compressedSize) { _mesa_error(ctx, GL_INVALID_OPERATION, "glGetnCompressedTexImageARB(out of bounds access:" " bufSize (%d) is too small)", clientMemSize); diff --git a/mesalib/src/mesa/main/texstorage.c b/mesalib/src/mesa/main/texstorage.c index 283aefad3..968f6f904 100644 --- a/mesalib/src/mesa/main/texstorage.c +++ b/mesalib/src/mesa/main/texstorage.c @@ -292,7 +292,7 @@ tex_storage_error_check(struct gl_context *ctx, GLuint dims, GLenum target, /* check levels against width/height/depth */ maxDim = MAX3(width, height, depth); - if (levels > _mesa_logbase2(maxDim) + 1) { + if (levels > (GLint) _mesa_logbase2(maxDim) + 1) { _mesa_error(ctx, GL_INVALID_OPERATION, "glTexStorage%uD(too many levels for max texture dimension)", dims); diff --git a/mesalib/src/mesa/main/transformfeedback.c b/mesalib/src/mesa/main/transformfeedback.c index 1afc0dccb..52cb065c2 100644 --- a/mesalib/src/mesa/main/transformfeedback.c +++ b/mesalib/src/mesa/main/transformfeedback.c @@ -245,28 +245,6 @@ _mesa_init_transform_feedback_functions(struct dd_function_table *driver) } -void -_mesa_init_transform_feedback_dispatch(const struct gl_context *ctx, - struct _glapi_table *disp) -{ - /* EXT_transform_feedback */ - SET_BeginTransformFeedbackEXT(disp, _mesa_BeginTransformFeedback); - SET_EndTransformFeedbackEXT(disp, _mesa_EndTransformFeedback); - if (_mesa_is_desktop_gl(ctx)) { - SET_BindBufferOffsetEXT(disp, _mesa_BindBufferOffsetEXT); - } - SET_TransformFeedbackVaryingsEXT(disp, _mesa_TransformFeedbackVaryings); - SET_GetTransformFeedbackVaryingEXT(disp, _mesa_GetTransformFeedbackVarying); - /* ARB_transform_feedback2 */ - SET_BindTransformFeedback(disp, _mesa_BindTransformFeedback); - SET_DeleteTransformFeedbacks(disp, _mesa_DeleteTransformFeedbacks); - SET_GenTransformFeedbacks(disp, _mesa_GenTransformFeedbacks); - SET_IsTransformFeedback(disp, _mesa_IsTransformFeedback); - SET_PauseTransformFeedback(disp, _mesa_PauseTransformFeedback); - SET_ResumeTransformFeedback(disp, _mesa_ResumeTransformFeedback); -} - - /** ** Begin API functions **/ @@ -599,7 +577,7 @@ _mesa_TransformFeedbackVaryings(GLuint program, GLsizei count, } /* free existing varyings, if any */ - for (i = 0; i < shProg->TransformFeedback.NumVarying; i++) { + for (i = 0; i < (GLint) shProg->TransformFeedback.NumVarying; i++) { free(shProg->TransformFeedback.VaryingNames[i]); } free(shProg->TransformFeedback.VaryingNames); @@ -614,7 +592,7 @@ _mesa_TransformFeedbackVaryings(GLuint program, GLsizei count, } /* Save the new names and the count */ - for (i = 0; i < (GLuint) count; i++) { + for (i = 0; i < count; i++) { shProg->TransformFeedback.VaryingNames[i] = _mesa_strdup(varyings[i]); } shProg->TransformFeedback.NumVarying = count; diff --git a/mesalib/src/mesa/main/transformfeedback.h b/mesalib/src/mesa/main/transformfeedback.h index 6ff9c50b4..dec11ffa0 100644 --- a/mesalib/src/mesa/main/transformfeedback.h +++ b/mesalib/src/mesa/main/transformfeedback.h @@ -46,10 +46,6 @@ _mesa_validate_transform_feedback_buffers(struct gl_context *ctx); extern void _mesa_init_transform_feedback_functions(struct dd_function_table *driver); -extern void -_mesa_init_transform_feedback_dispatch(const struct gl_context *ctx, - struct _glapi_table *disp); - /*** GL_EXT_transform_feedback ***/ diff --git a/mesalib/src/mesa/main/uniforms.c b/mesalib/src/mesa/main/uniforms.c index 861601efd..2b7a564f0 100644 --- a/mesalib/src/mesa/main/uniforms.c +++ b/mesalib/src/mesa/main/uniforms.c @@ -535,7 +535,7 @@ _mesa_GetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name) return _mesa_uniform_merge_location_offset(index, offset); } -static GLuint GLAPIENTRY +GLuint GLAPIENTRY _mesa_GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName) { @@ -561,7 +561,7 @@ _mesa_GetUniformBlockIndex(GLuint program, return GL_INVALID_INDEX; } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar * const *uniformNames, @@ -594,7 +594,7 @@ _mesa_GetUniformIndices(GLuint program, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) @@ -644,7 +644,7 @@ _mesa_UniformBlockBinding(GLuint program, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, @@ -720,7 +720,7 @@ _mesa_GetActiveUniformBlockiv(GLuint program, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, @@ -762,7 +762,7 @@ _mesa_GetActiveUniformBlockName(GLuint program, } } -static void GLAPIENTRY +void GLAPIENTRY _mesa_GetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName) @@ -799,80 +799,3 @@ _mesa_GetActiveUniformName(GLuint program, GLuint uniformIndex, shProg->UniformStorage[uniformIndex].name); } } - -/** - * Plug in shader uniform-related functions into API dispatch table. - */ -void -_mesa_init_shader_uniform_dispatch(const struct gl_context *ctx, - struct _glapi_table *exec) -{ -#if FEATURE_GL - if (ctx->API != API_OPENGLES) { - SET_Uniform1fARB(exec, _mesa_Uniform1fARB); - SET_Uniform2fARB(exec, _mesa_Uniform2fARB); - SET_Uniform3fARB(exec, _mesa_Uniform3fARB); - SET_Uniform4fARB(exec, _mesa_Uniform4fARB); - SET_Uniform1iARB(exec, _mesa_Uniform1iARB); - SET_Uniform2iARB(exec, _mesa_Uniform2iARB); - SET_Uniform3iARB(exec, _mesa_Uniform3iARB); - SET_Uniform4iARB(exec, _mesa_Uniform4iARB); - SET_Uniform1fvARB(exec, _mesa_Uniform1fvARB); - SET_Uniform2fvARB(exec, _mesa_Uniform2fvARB); - SET_Uniform3fvARB(exec, _mesa_Uniform3fvARB); - SET_Uniform4fvARB(exec, _mesa_Uniform4fvARB); - SET_Uniform1ivARB(exec, _mesa_Uniform1ivARB); - SET_Uniform2ivARB(exec, _mesa_Uniform2ivARB); - SET_Uniform3ivARB(exec, _mesa_Uniform3ivARB); - SET_Uniform4ivARB(exec, _mesa_Uniform4ivARB); - SET_UniformMatrix2fvARB(exec, _mesa_UniformMatrix2fvARB); - SET_UniformMatrix3fvARB(exec, _mesa_UniformMatrix3fvARB); - SET_UniformMatrix4fvARB(exec, _mesa_UniformMatrix4fvARB); - - SET_GetActiveUniformARB(exec, _mesa_GetActiveUniformARB); - SET_GetUniformLocationARB(exec, _mesa_GetUniformLocationARB); - SET_GetUniformfvARB(exec, _mesa_GetUniformfvARB); - SET_GetUniformivARB(exec, _mesa_GetUniformivARB); - } - - /* OpenGL 2.1 */ - if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) { - SET_UniformMatrix2x3fv(exec, _mesa_UniformMatrix2x3fv); - SET_UniformMatrix3x2fv(exec, _mesa_UniformMatrix3x2fv); - SET_UniformMatrix2x4fv(exec, _mesa_UniformMatrix2x4fv); - SET_UniformMatrix4x2fv(exec, _mesa_UniformMatrix4x2fv); - SET_UniformMatrix3x4fv(exec, _mesa_UniformMatrix3x4fv); - SET_UniformMatrix4x3fv(exec, _mesa_UniformMatrix4x3fv); - - /* OpenGL 3.0 */ - SET_Uniform1uiEXT(exec, _mesa_Uniform1ui); - SET_Uniform2uiEXT(exec, _mesa_Uniform2ui); - SET_Uniform3uiEXT(exec, _mesa_Uniform3ui); - SET_Uniform4uiEXT(exec, _mesa_Uniform4ui); - SET_Uniform1uivEXT(exec, _mesa_Uniform1uiv); - SET_Uniform2uivEXT(exec, _mesa_Uniform2uiv); - SET_Uniform3uivEXT(exec, _mesa_Uniform3uiv); - SET_Uniform4uivEXT(exec, _mesa_Uniform4uiv); - SET_GetUniformuivEXT(exec, _mesa_GetUniformuiv); - - /* GL_ARB_uniform_buffer_object / GL 3.1 */ - SET_GetUniformBlockIndex(exec, _mesa_GetUniformBlockIndex); - SET_GetUniformIndices(exec, _mesa_GetUniformIndices); - SET_GetActiveUniformsiv(exec, _mesa_GetActiveUniformsiv); - SET_GetActiveUniformBlockiv(exec, _mesa_GetActiveUniformBlockiv); - SET_GetActiveUniformBlockName(exec, _mesa_GetActiveUniformBlockName); - SET_UniformBlockBinding(exec, _mesa_UniformBlockBinding); - } - - if (_mesa_is_desktop_gl(ctx)) { - /* GL_ARB_robustness */ - SET_GetnUniformfvARB(exec, _mesa_GetnUniformfvARB); - SET_GetnUniformivARB(exec, _mesa_GetnUniformivARB); - SET_GetnUniformuivARB(exec, _mesa_GetnUniformuivARB); - SET_GetnUniformdvARB(exec, _mesa_GetnUniformdvARB); - - /* GL_ARB_uniform_buffer_object / GL 3.1 */ - SET_GetActiveUniformName(exec, _mesa_GetActiveUniformName); - } -#endif /* FEATURE_GL */ -} diff --git a/mesalib/src/mesa/main/uniforms.h b/mesalib/src/mesa/main/uniforms.h index 3fe7d4402..076bde3c8 100644 --- a/mesalib/src/mesa/main/uniforms.h +++ b/mesalib/src/mesa/main/uniforms.h @@ -38,151 +38,135 @@ extern "C" { struct gl_program; struct _glapi_table; -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1fARB(GLint, GLfloat); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2fARB(GLint, GLfloat, GLfloat); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3fARB(GLint, GLfloat, GLfloat, GLfloat); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4fARB(GLint, GLfloat, GLfloat, GLfloat, GLfloat); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1iARB(GLint, GLint); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2iARB(GLint, GLint, GLint); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3iARB(GLint, GLint, GLint, GLint); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4iARB(GLint, GLint, GLint, GLint, GLint); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1fvARB(GLint, GLsizei, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2fvARB(GLint, GLsizei, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3fvARB(GLint, GLsizei, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4fvARB(GLint, GLsizei, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1ivARB(GLint, GLsizei, const GLint *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2ivARB(GLint, GLsizei, const GLint *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3ivARB(GLint, GLsizei, const GLint *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4ivARB(GLint, GLsizei, const GLint *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1ui(GLint location, GLuint v0); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value); - - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix2fvARB(GLint, GLsizei, GLboolean, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix3fvARB(GLint, GLsizei, GLboolean, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix4fvARB(GLint, GLsizei, GLboolean, const GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - - -extern void GLAPIENTRY +void GLAPIENTRY +_mesa_GetnUniformfvARB(GLhandleARB, GLint, GLsizei, GLfloat *); +void GLAPIENTRY +_mesa_GetUniformfvARB(GLhandleARB, GLint, GLfloat *); +void GLAPIENTRY +_mesa_GetnUniformivARB(GLhandleARB, GLint, GLsizei, GLint *); +void GLAPIENTRY +_mesa_GetUniformuiv(GLhandleARB, GLint, GLuint *); +void GLAPIENTRY +_mesa_GetnUniformuivARB(GLhandleARB, GLint, GLsizei, GLuint *); +void GLAPIENTRY +_mesa_GetUniformuiv(GLhandleARB program, GLint location, GLuint *params); +void GLAPIENTRY +_mesa_GetnUniformdvARB(GLhandleARB, GLint, GLsizei, GLdouble *); +void GLAPIENTRY +_mesa_GetUniformdv(GLhandleARB, GLint, GLdouble *); +GLint GLAPIENTRY +_mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *); +GLuint GLAPIENTRY +_mesa_GetUniformBlockIndex(GLuint program, + const GLchar *uniformBlockName); +void GLAPIENTRY +_mesa_GetUniformIndices(GLuint program, + GLsizei uniformCount, + const GLchar * const *uniformNames, + GLuint *uniformIndices); +void GLAPIENTRY +_mesa_UniformBlockBinding(GLuint program, + GLuint uniformBlockIndex, + GLuint uniformBlockBinding); +void GLAPIENTRY +_mesa_GetActiveUniformBlockiv(GLuint program, + GLuint uniformBlockIndex, + GLenum pname, + GLint *params); +void GLAPIENTRY +_mesa_GetActiveUniformBlockName(GLuint program, + GLuint uniformBlockIndex, + GLsizei bufSize, + GLsizei *length, + GLchar *uniformBlockName); +void GLAPIENTRY +_mesa_GetActiveUniformName(GLuint program, GLuint uniformIndex, + GLsizei bufSize, GLsizei *length, + GLchar *uniformName); +void GLAPIENTRY _mesa_GetActiveUniformARB(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); - -extern void GLAPIENTRY -_mesa_GetUniformfvARB(GLhandleARB, GLint, GLfloat *); - -extern void GLAPIENTRY -_mesa_GetnUniformfvARB(GLhandleARB, GLint, GLsizei, GLfloat *); - -extern void GLAPIENTRY +void GLAPIENTRY _mesa_GetUniformivARB(GLhandleARB, GLint, GLint *); -extern void GLAPIENTRY -_mesa_GetnUniformivARB(GLhandleARB, GLint, GLsizei, GLint *); - -extern void GLAPIENTRY -_mesa_GetUniformuiv(GLhandleARB, GLint, GLuint *); - -extern void GLAPIENTRY -_mesa_GetnUniformuivARB(GLhandleARB, GLint, GLsizei, GLuint *); - -extern void GLAPIENTRY -_mesa_GetUniformdv(GLhandleARB, GLint, GLdouble *); - -extern void GLAPIENTRY -_mesa_GetnUniformdvARB(GLhandleARB, GLint, GLsizei, GLdouble *); - -extern GLint GLAPIENTRY -_mesa_GetUniformLocationARB(GLhandleARB, const GLcharARB *); - unsigned _mesa_get_uniform_location(struct gl_context *ctx, struct gl_shader_program *shProg, const GLchar *name, unsigned *offset); @@ -226,10 +210,6 @@ extern bool _mesa_sampler_uniforms_are_valid(const struct gl_shader_program *shProg, char *errMsg, size_t errMsgLength); -extern void -_mesa_init_shader_uniform_dispatch(const struct gl_context *ctx, - struct _glapi_table *exec); - extern const struct gl_program_parameter * get_uniform_parameter(struct gl_shader_program *shProg, GLint index); diff --git a/mesalib/src/mesa/sources.mak b/mesalib/src/mesa/sources.mak index b4b58db6d..cfb24f318 100644 --- a/mesalib/src/mesa/sources.mak +++ b/mesalib/src/mesa/sources.mak @@ -9,7 +9,7 @@ MAIN_ES_FILES = \ MAIN_FILES = \ $(SRCDIR)main/api_arrayelt.c \ - $(SRCDIR)main/api_exec.c \ + $(BUILDDIR)main/api_exec.c \ $(SRCDIR)main/api_loopback.c \ $(SRCDIR)main/api_validate.c \ $(SRCDIR)main/accum.c \ diff --git a/mesalib/src/mesa/state_tracker/st_cb_fbo.c b/mesalib/src/mesa/state_tracker/st_cb_fbo.c index 882fb372b..adee00bd2 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_fbo.c +++ b/mesalib/src/mesa/state_tracker/st_cb_fbo.c @@ -750,7 +750,7 @@ st_MapRenderbuffer(struct gl_context *ctx, usage, x, y2, w, h, &strb->transfer); if (map) { if (invert) { - *rowStrideOut = -strb->transfer->stride; + *rowStrideOut = -(int) strb->transfer->stride; map += (h - 1) * strb->transfer->stride; } else { diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 14b72dc80..a70a08bf3 100644 --- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -285,7 +285,7 @@ public: st_src_reg return_reg; }; -class glsl_to_tgsi_visitor : public ir_visitor { +struct glsl_to_tgsi_visitor : public ir_visitor { public: glsl_to_tgsi_visitor(); ~glsl_to_tgsi_visitor(); diff --git a/mesalib/src/mesa/swrast/s_zoom.c b/mesalib/src/mesa/swrast/s_zoom.c index 24bfa22bf..828374f68 100644 --- a/mesalib/src/mesa/swrast/s_zoom.c +++ b/mesalib/src/mesa/swrast/s_zoom.c @@ -234,7 +234,7 @@ zoom_span( struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, for (i = 0; i < zoomedWidth; i++) { GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - span->x; ASSERT(j >= 0); - ASSERT(j < span->end); + ASSERT(j < (GLint) span->end); COPY_4V(zoomed.array->attribs[FRAG_ATTRIB_COL0][i], rgba[j]); } } @@ -272,7 +272,7 @@ zoom_span( struct gl_context *ctx, GLint imgX, GLint imgY, const SWspan *span, for (i = 0; i < zoomedWidth; i++) { GLint j = unzoom_x(ctx->Pixel.ZoomX, imgX, x0 + i) - span->x; ASSERT(j >= 0); - ASSERT(j < span->end); + ASSERT(j < (GLint) span->end); zoomed.array->attribs[FRAG_ATTRIB_COL0][i][0] = rgb[j][0]; zoomed.array->attribs[FRAG_ATTRIB_COL0][i][1] = rgb[j][1]; zoomed.array->attribs[FRAG_ATTRIB_COL0][i][2] = rgb[j][2]; diff --git a/mesalib/src/mesa/tnl/t_draw.c b/mesalib/src/mesa/tnl/t_draw.c index 6a3c9662e..0631eb183 100644 --- a/mesalib/src/mesa/tnl/t_draw.c +++ b/mesalib/src/mesa/tnl/t_draw.c @@ -141,7 +141,8 @@ convert_fixed_to_float(const struct gl_client_array *input, const GLubyte *ptr, GLfloat *fptr, GLuint count) { - GLuint i, j; + GLuint i; + GLint j; const GLint size = input->Size; if (input->Normalized) { diff --git a/mesalib/src/mesa/vbo/vbo.h b/mesalib/src/mesa/vbo/vbo.h index e0584973f..04930b971 100644 --- a/mesalib/src/mesa/vbo/vbo.h +++ b/mesalib/src/mesa/vbo/vbo.h @@ -50,7 +50,7 @@ struct _mesa_prim { GLuint start; GLuint count; GLint basevertex; - GLsizei num_instances; + GLuint num_instances; GLuint base_instance; }; diff --git a/mesalib/src/mesa/vbo/vbo_attrib_tmp.h b/mesalib/src/mesa/vbo/vbo_attrib_tmp.h index 884844535..6bc53bab3 100644 --- a/mesalib/src/mesa/vbo/vbo_attrib_tmp.h +++ b/mesalib/src/mesa/vbo/vbo_attrib_tmp.h @@ -26,38 +26,46 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ /* float */ -#define ATTR1FV( A, V ) ATTR( A, 1, (V)[0], 0, 0, 1 ) -#define ATTR2FV( A, V ) ATTR( A, 2, (V)[0], (V)[1], 0, 1 ) -#define ATTR3FV( A, V ) ATTR( A, 3, (V)[0], (V)[1], (V)[2], 1 ) -#define ATTR4FV( A, V ) ATTR( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) +#define ATTR1FV( A, V ) ATTR( A, 1, GL_FLOAT, (V)[0], 0, 0, 1 ) +#define ATTR2FV( A, V ) ATTR( A, 2, GL_FLOAT, (V)[0], (V)[1], 0, 1 ) +#define ATTR3FV( A, V ) ATTR( A, 3, GL_FLOAT, (V)[0], (V)[1], (V)[2], 1 ) +#define ATTR4FV( A, V ) ATTR( A, 4, GL_FLOAT, (V)[0], (V)[1], (V)[2], (V)[3] ) -#define ATTR1F( A, X ) ATTR( A, 1, X, 0, 0, 1 ) -#define ATTR2F( A, X, Y ) ATTR( A, 2, X, Y, 0, 1 ) -#define ATTR3F( A, X, Y, Z ) ATTR( A, 3, X, Y, Z, 1 ) -#define ATTR4F( A, X, Y, Z, W ) ATTR( A, 4, X, Y, Z, W ) +#define ATTR1F( A, X ) ATTR( A, 1, GL_FLOAT, X, 0, 0, 1 ) +#define ATTR2F( A, X, Y ) ATTR( A, 2, GL_FLOAT, X, Y, 0, 1 ) +#define ATTR3F( A, X, Y, Z ) ATTR( A, 3, GL_FLOAT, X, Y, Z, 1 ) +#define ATTR4F( A, X, Y, Z, W ) ATTR( A, 4, GL_FLOAT, X, Y, Z, W ) /* int */ -#define ATTR2IV( A, V ) ATTR( A, 2, (V)[0], (V)[1], 0, 1 ) -#define ATTR3IV( A, V ) ATTR( A, 3, (V)[0], (V)[1], (V)[2], 1 ) -#define ATTR4IV( A, V ) ATTR( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) +#define ATTRI( A, N, X, Y, Z, W) ATTR( A, N, GL_INT, \ + INT_AS_FLT(X), INT_AS_FLT(Y), \ + INT_AS_FLT(Z), INT_AS_FLT(W) ) -#define ATTR1I( A, X ) ATTR( A, 1, X, 0, 0, 1 ) -#define ATTR2I( A, X, Y ) ATTR( A, 2, X, Y, 0, 1 ) -#define ATTR3I( A, X, Y, Z ) ATTR( A, 3, X, Y, Z, 1 ) -#define ATTR4I( A, X, Y, Z, W ) ATTR( A, 4, X, Y, Z, W ) +#define ATTR2IV( A, V ) ATTRI( A, 2, (V)[0], (V)[1], 0, 1 ) +#define ATTR3IV( A, V ) ATTRI( A, 3, (V)[0], (V)[1], (V)[2], 1 ) +#define ATTR4IV( A, V ) ATTRI( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) + +#define ATTR1I( A, X ) ATTRI( A, 1, X, 0, 0, 1 ) +#define ATTR2I( A, X, Y ) ATTRI( A, 2, X, Y, 0, 1 ) +#define ATTR3I( A, X, Y, Z ) ATTRI( A, 3, X, Y, Z, 1 ) +#define ATTR4I( A, X, Y, Z, W ) ATTRI( A, 4, X, Y, Z, W ) /* uint */ -#define ATTR2UIV( A, V ) ATTR( A, 2, (V)[0], (V)[1], 0, 1 ) -#define ATTR3UIV( A, V ) ATTR( A, 3, (V)[0], (V)[1], (V)[2], 1 ) -#define ATTR4UIV( A, V ) ATTR( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) +#define ATTRUI( A, N, X, Y, Z, W) ATTR( A, N, GL_UNSIGNED_INT, \ + UINT_AS_FLT(X), UINT_AS_FLT(Y), \ + UINT_AS_FLT(Z), UINT_AS_FLT(W) ) + +#define ATTR2UIV( A, V ) ATTRUI( A, 2, (V)[0], (V)[1], 0, 1 ) +#define ATTR3UIV( A, V ) ATTRUI( A, 3, (V)[0], (V)[1], (V)[2], 1 ) +#define ATTR4UIV( A, V ) ATTRUI( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) -#define ATTR1UI( A, X ) ATTR( A, 1, X, 0, 0, 1 ) -#define ATTR2UI( A, X, Y ) ATTR( A, 2, X, Y, 0, 1 ) -#define ATTR3UI( A, X, Y, Z ) ATTR( A, 3, X, Y, Z, 1 ) -#define ATTR4UI( A, X, Y, Z, W ) ATTR( A, 4, X, Y, Z, W ) +#define ATTR1UI( A, X ) ATTRUI( A, 1, X, 0, 0, 1 ) +#define ATTR2UI( A, X, Y ) ATTRUI( A, 2, X, Y, 0, 1 ) +#define ATTR3UI( A, X, Y, Z ) ATTRUI( A, 3, X, Y, Z, 1 ) +#define ATTR4UI( A, X, Y, Z, W ) ATTRUI( A, 4, X, Y, Z, W ) -#define MAT_ATTR( A, N, V ) ATTR( A, N, (V)[0], (V)[1], (V)[2], (V)[3] ) +#define MAT_ATTR( A, N, V ) ATTR( A, N, GL_FLOAT, (V)[0], (V)[1], (V)[2], (V)[3] ) static inline float conv_ui10_to_norm_float(unsigned ui10) { @@ -69,20 +77,20 @@ static inline float conv_ui2_to_norm_float(unsigned ui2) return ui2 / 3.0f; } -#define ATTRUI10_1( A, UI ) ATTR( A, 1, (UI) & 0x3ff, 0, 0, 1 ) -#define ATTRUI10_2( A, UI ) ATTR( A, 2, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, 0, 1 ) -#define ATTRUI10_3( A, UI ) ATTR( A, 3, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, ((UI) >> 20) & 0x3ff, 1 ) -#define ATTRUI10_4( A, UI ) ATTR( A, 4, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, ((UI) >> 20) & 0x3ff, ((UI) >> 30) & 0x3 ) +#define ATTRUI10_1( A, UI ) ATTR( A, 1, GL_FLOAT, (UI) & 0x3ff, 0, 0, 1 ) +#define ATTRUI10_2( A, UI ) ATTR( A, 2, GL_FLOAT, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, 0, 1 ) +#define ATTRUI10_3( A, UI ) ATTR( A, 3, GL_FLOAT, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, ((UI) >> 20) & 0x3ff, 1 ) +#define ATTRUI10_4( A, UI ) ATTR( A, 4, GL_FLOAT, (UI) & 0x3ff, ((UI) >> 10) & 0x3ff, ((UI) >> 20) & 0x3ff, ((UI) >> 30) & 0x3 ) -#define ATTRUI10N_1( A, UI ) ATTR( A, 1, conv_ui10_to_norm_float((UI) & 0x3ff), 0, 0, 1 ) -#define ATTRUI10N_2( A, UI ) ATTR( A, 2, \ +#define ATTRUI10N_1( A, UI ) ATTR( A, 1, GL_FLOAT, conv_ui10_to_norm_float((UI) & 0x3ff), 0, 0, 1 ) +#define ATTRUI10N_2( A, UI ) ATTR( A, 2, GL_FLOAT, \ conv_ui10_to_norm_float((UI) & 0x3ff), \ conv_ui10_to_norm_float(((UI) >> 10) & 0x3ff), 0, 1 ) -#define ATTRUI10N_3( A, UI ) ATTR( A, 3, \ +#define ATTRUI10N_3( A, UI ) ATTR( A, 3, GL_FLOAT, \ conv_ui10_to_norm_float((UI) & 0x3ff), \ conv_ui10_to_norm_float(((UI) >> 10) & 0x3ff), \ conv_ui10_to_norm_float(((UI) >> 20) & 0x3ff), 1 ) -#define ATTRUI10N_4( A, UI ) ATTR( A, 4, \ +#define ATTRUI10N_4( A, UI ) ATTR( A, 4, GL_FLOAT, \ conv_ui10_to_norm_float((UI) & 0x3ff), \ conv_ui10_to_norm_float(((UI) >> 10) & 0x3ff), \ conv_ui10_to_norm_float(((UI) >> 20) & 0x3ff), \ @@ -119,30 +127,30 @@ static inline float conv_i2_to_norm_float(int i2) return (float)val.x; } -#define ATTRI10_1( A, I10 ) ATTR( A, 1, conv_i10_to_i((I10) & 0x3ff), 0, 0, 1 ) -#define ATTRI10_2( A, I10 ) ATTR( A, 2, \ +#define ATTRI10_1( A, I10 ) ATTR( A, 1, GL_FLOAT, conv_i10_to_i((I10) & 0x3ff), 0, 0, 1 ) +#define ATTRI10_2( A, I10 ) ATTR( A, 2, GL_FLOAT, \ conv_i10_to_i((I10) & 0x3ff), \ conv_i10_to_i(((I10) >> 10) & 0x3ff), 0, 1 ) -#define ATTRI10_3( A, I10 ) ATTR( A, 3, \ +#define ATTRI10_3( A, I10 ) ATTR( A, 3, GL_FLOAT, \ conv_i10_to_i((I10) & 0x3ff), \ conv_i10_to_i(((I10) >> 10) & 0x3ff), \ conv_i10_to_i(((I10) >> 20) & 0x3ff), 1 ) -#define ATTRI10_4( A, I10 ) ATTR( A, 4, \ +#define ATTRI10_4( A, I10 ) ATTR( A, 4, GL_FLOAT, \ conv_i10_to_i((I10) & 0x3ff), \ conv_i10_to_i(((I10) >> 10) & 0x3ff), \ conv_i10_to_i(((I10) >> 20) & 0x3ff), \ conv_i2_to_i(((I10) >> 30) & 0x3)) -#define ATTRI10N_1( A, I10 ) ATTR( A, 1, conv_i10_to_norm_float((I10) & 0x3ff), 0, 0, 1 ) -#define ATTRI10N_2( A, I10 ) ATTR( A, 2, \ +#define ATTRI10N_1( A, I10 ) ATTR( A, 1, GL_FLOAT, conv_i10_to_norm_float((I10) & 0x3ff), 0, 0, 1 ) +#define ATTRI10N_2( A, I10 ) ATTR( A, 2, GL_FLOAT, \ conv_i10_to_norm_float((I10) & 0x3ff), \ conv_i10_to_norm_float(((I10) >> 10) & 0x3ff), 0, 1 ) -#define ATTRI10N_3( A, I10 ) ATTR( A, 3, \ +#define ATTRI10N_3( A, I10 ) ATTR( A, 3, GL_FLOAT, \ conv_i10_to_norm_float((I10) & 0x3ff), \ conv_i10_to_norm_float(((I10) >> 10) & 0x3ff), \ conv_i10_to_norm_float(((I10) >> 20) & 0x3ff), 1 ) -#define ATTRI10N_4( A, I10 ) ATTR( A, 4, \ +#define ATTRI10N_4( A, I10 ) ATTR( A, 4, GL_FLOAT, \ conv_i10_to_norm_float((I10) & 0x3ff), \ conv_i10_to_norm_float(((I10) >> 10) & 0x3ff), \ conv_i10_to_norm_float(((I10) >> 20) & 0x3ff), \ diff --git a/mesalib/src/mesa/vbo/vbo_context.h b/mesalib/src/mesa/vbo/vbo_context.h index c896f1196..1ff6ec000 100644 --- a/mesalib/src/mesa/vbo/vbo_context.h +++ b/mesalib/src/mesa/vbo/vbo_context.h @@ -147,4 +147,47 @@ vbo_draw_method(struct vbo_context *vbo, enum draw_method method) } } +/** + * Return if format is integer. The immediate mode commands only emit floats + * for non-integer types, thus everything else is integer. + */ +static inline GLboolean +vbo_attrtype_to_integer_flag(GLenum format) +{ + switch (format) { + case GL_FLOAT: + return GL_FALSE; + case GL_INT: + case GL_UNSIGNED_INT: + return GL_TRUE; + default: + ASSERT(0); + return GL_FALSE; + } +} + + +/** + * Return default component values for the given format. + * The return type is an array of floats, because that's how we declare + * the vertex storage despite the fact we sometimes store integers in there. + */ +static inline const GLfloat * +vbo_get_default_vals_as_float(GLenum format) +{ + static const GLfloat default_float[4] = { 0, 0, 0, 1 }; + static const GLint default_int[4] = { 0, 0, 0, 1 }; + + switch (format) { + case GL_FLOAT: + return default_float; + case GL_INT: + case GL_UNSIGNED_INT: + return (const GLfloat*)default_int; + default: + ASSERT(0); + return NULL; + } +} + #endif diff --git a/mesalib/src/mesa/vbo/vbo_exec.h b/mesalib/src/mesa/vbo/vbo_exec.h index ef57a8199..96cf4c82b 100644 --- a/mesalib/src/mesa/vbo/vbo_exec.h +++ b/mesalib/src/mesa/vbo/vbo_exec.h @@ -101,6 +101,7 @@ struct vbo_exec_context struct vbo_exec_copied_vtx copied; GLubyte attrsz[VBO_ATTRIB_MAX]; + GLenum attrtype[VBO_ATTRIB_MAX]; GLubyte active_sz[VBO_ATTRIB_MAX]; GLfloat *attrptr[VBO_ATTRIB_MAX]; diff --git a/mesalib/src/mesa/vbo/vbo_exec_api.c b/mesalib/src/mesa/vbo/vbo_exec_api.c index 2ddb71588..75e549fc4 100644 --- a/mesalib/src/mesa/vbo/vbo_exec_api.c +++ b/mesalib/src/mesa/vbo/vbo_exec_api.c @@ -157,11 +157,13 @@ static void vbo_exec_copy_to_current( struct vbo_exec_context *exec ) GLfloat *current = (GLfloat *)vbo->currval[i].Ptr; GLfloat tmp[4]; - COPY_CLEAN_4V(tmp, - exec->vtx.attrsz[i], - exec->vtx.attrptr[i]); + COPY_CLEAN_4V_TYPE_AS_FLOAT(tmp, + exec->vtx.attrsz[i], + exec->vtx.attrptr[i], + exec->vtx.attrtype[i]); - if (memcmp(current, tmp, sizeof(tmp)) != 0) { + if (exec->vtx.attrtype[i] != vbo->currval[i].Type || + memcmp(current, tmp, sizeof(tmp)) != 0) { memcpy(current, tmp, sizeof(tmp)); /* Given that we explicitly state size here, there is no need @@ -170,8 +172,10 @@ static void vbo_exec_copy_to_current( struct vbo_exec_context *exec ) * directly. */ vbo->currval[i].Size = exec->vtx.attrsz[i]; - assert(vbo->currval[i].Type == GL_FLOAT); vbo->currval[i]._ElementSize = vbo->currval[i].Size * sizeof(GLfloat); + vbo->currval[i].Type = exec->vtx.attrtype[i]; + vbo->currval[i].Integer = + vbo_attrtype_to_integer_flag(exec->vtx.attrtype[i]); /* This triggers rather too much recalculation of Mesa state * that doesn't get used (eg light positions). @@ -324,7 +328,9 @@ vbo_exec_wrap_upgrade_vertex(struct vbo_exec_context *exec, if (j == attr) { if (oldSize) { GLfloat tmp[4]; - COPY_CLEAN_4V(tmp, oldSize, data + old_offset); + COPY_CLEAN_4V_TYPE_AS_FLOAT(tmp, oldSize, + data + old_offset, + exec->vtx.attrtype[j]); COPY_SZ_4V(dest + new_offset, newSize, tmp); } else { GLfloat *current = (GLfloat *)vbo->currval[j].Ptr; @@ -365,8 +371,9 @@ vbo_exec_fixup_vertex(struct gl_context *ctx, GLuint attr, GLuint newSize) vbo_exec_wrap_upgrade_vertex( exec, attr, newSize ); } else if (newSize < exec->vtx.active_sz[attr]) { - static const GLfloat id[4] = { 0, 0, 0, 1 }; GLuint i; + const GLfloat *id = + vbo_get_default_vals_as_float(exec->vtx.attrtype[attr]); /* New size is smaller - just need to fill in some * zeros. Don't need to flush or wrap. @@ -390,7 +397,7 @@ vbo_exec_fixup_vertex(struct gl_context *ctx, GLuint attr, GLuint newSize) * This macro is used to implement all the glVertex, glColor, glTexCoord, * glVertexAttrib, etc functions. */ -#define ATTR( A, N, V0, V1, V2, V3 ) \ +#define ATTR( A, N, T, V0, V1, V2, V3 ) \ do { \ struct vbo_exec_context *exec = &vbo_context(ctx)->exec; \ \ @@ -406,6 +413,7 @@ do { \ if (N>1) dest[1] = V1; \ if (N>2) dest[2] = V2; \ if (N>3) dest[3] = V3; \ + exec->vtx.attrtype[A] = T; \ } \ \ if ((A) == 0) { \ @@ -1119,6 +1127,8 @@ void vbo_exec_vtx_init( struct vbo_exec_context *exec ) for (i = 0 ; i < VBO_ATTRIB_MAX ; i++) { ASSERT(i < Elements(exec->vtx.attrsz)); exec->vtx.attrsz[i] = 0; + ASSERT(i < Elements(exec->vtx.attrtype)); + exec->vtx.attrtype[i] = GL_FLOAT; ASSERT(i < Elements(exec->vtx.active_sz)); exec->vtx.active_sz[i] = 0; } @@ -1255,6 +1265,7 @@ static void reset_attrfv( struct vbo_exec_context *exec ) for (i = 0 ; i < VBO_ATTRIB_MAX ; i++) { exec->vtx.attrsz[i] = 0; + exec->vtx.attrtype[i] = GL_FLOAT; exec->vtx.active_sz[i] = 0; } @@ -1309,7 +1320,7 @@ VertexAttrib4f_nopos(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { GET_CURRENT_CONTEXT(ctx); if (index < MAX_VERTEX_GENERIC_ATTRIBS) - ATTR(VBO_ATTRIB_GENERIC0 + index, 4, x, y, z, w); + ATTR(VBO_ATTRIB_GENERIC0 + index, 4, GL_FLOAT, x, y, z, w); else ERROR(GL_INVALID_VALUE); } diff --git a/mesalib/src/mesa/vbo/vbo_exec_array.c b/mesalib/src/mesa/vbo/vbo_exec_array.c index d857ac3e5..4b2c5298d 100644 --- a/mesalib/src/mesa/vbo/vbo_exec_array.c +++ b/mesalib/src/mesa/vbo/vbo_exec_array.c @@ -779,7 +779,7 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, - GLint basevertex, GLint numInstances, + GLint basevertex, GLuint numInstances, GLuint baseInstance) { struct vbo_context *vbo = vbo_context(ctx); diff --git a/mesalib/src/mesa/vbo/vbo_exec_draw.c b/mesalib/src/mesa/vbo/vbo_exec_draw.c index 817af4dd5..9529ce069 100644 --- a/mesalib/src/mesa/vbo/vbo_exec_draw.c +++ b/mesalib/src/mesa/vbo/vbo_exec_draw.c @@ -207,9 +207,6 @@ vbo_exec_bind_arrays( struct gl_context *ctx ) assert(0); } - /* Make all active attributes (including edgeflag) available as - * arrays of floats. - */ for (attr = 0; attr < VERT_ATTRIB_MAX ; attr++) { const GLuint src = map[attr]; @@ -235,7 +232,9 @@ vbo_exec_bind_arrays( struct gl_context *ctx ) arrays[attr].Size = exec->vtx.attrsz[src]; arrays[attr].StrideB = exec->vtx.vertex_size * sizeof(GLfloat); arrays[attr].Stride = exec->vtx.vertex_size * sizeof(GLfloat); - arrays[attr].Type = GL_FLOAT; + arrays[attr].Type = exec->vtx.attrtype[src]; + arrays[attr].Integer = + vbo_attrtype_to_integer_flag(exec->vtx.attrtype[src]); arrays[attr].Format = GL_RGBA; arrays[attr].Enabled = 1; arrays[attr]._ElementSize = arrays[attr].Size * sizeof(GLfloat); diff --git a/mesalib/src/mesa/vbo/vbo_save.h b/mesalib/src/mesa/vbo/vbo_save.h index f33669670..750117b12 100644 --- a/mesalib/src/mesa/vbo/vbo_save.h +++ b/mesalib/src/mesa/vbo/vbo_save.h @@ -63,6 +63,7 @@ struct vbo_save_copied_vtx { */ struct vbo_save_vertex_list { GLubyte attrsz[VBO_ATTRIB_MAX]; + GLenum attrtype[VBO_ATTRIB_MAX]; GLuint vertex_size; /* Copy of the final vertex from node->vertex_store->bufferobj. @@ -127,6 +128,7 @@ struct vbo_save_context { const struct gl_client_array *inputs[VBO_ATTRIB_MAX]; GLubyte attrsz[VBO_ATTRIB_MAX]; + GLenum attrtype[VBO_ATTRIB_MAX]; GLubyte active_sz[VBO_ATTRIB_MAX]; GLuint vertex_size; diff --git a/mesalib/src/mesa/vbo/vbo_save_api.c b/mesalib/src/mesa/vbo/vbo_save_api.c index 89f09a8d8..75b8ca338 100644 --- a/mesalib/src/mesa/vbo/vbo_save_api.c +++ b/mesalib/src/mesa/vbo/vbo_save_api.c @@ -324,6 +324,7 @@ _save_compile_vertex_list(struct gl_context *ctx) /* Duplicate our template, increment refcounts to the storage structs: */ memcpy(node->attrsz, save->attrsz, sizeof(node->attrsz)); + memcpy(node->attrtype, save->attrtype, sizeof(node->attrtype)); node->vertex_size = save->vertex_size; node->buffer_offset = (save->buffer - save->vertex_store->buffer) * sizeof(GLfloat); @@ -510,7 +511,8 @@ _save_copy_to_current(struct gl_context *ctx) for (i = VBO_ATTRIB_POS + 1; i < VBO_ATTRIB_MAX; i++) { if (save->attrsz[i]) { save->currentsz[i][0] = save->attrsz[i]; - COPY_CLEAN_4V(save->current[i], save->attrsz[i], save->attrptr[i]); + COPY_CLEAN_4V_TYPE_AS_FLOAT(save->current[i], save->attrsz[i], + save->attrptr[i], save->attrtype[i]); } } } @@ -612,7 +614,8 @@ _save_upgrade_vertex(struct gl_context *ctx, GLuint attr, GLuint newsz) if (save->attrsz[j]) { if (j == attr) { if (oldsz) { - COPY_CLEAN_4V(dest, oldsz, data); + COPY_CLEAN_4V_TYPE_AS_FLOAT(dest, oldsz, data, + save->attrtype[j]); data += oldsz; dest += newsz; } @@ -649,8 +652,8 @@ save_fixup_vertex(struct gl_context *ctx, GLuint attr, GLuint sz) _save_upgrade_vertex(ctx, attr, sz); } else if (sz < save->active_sz[attr]) { - static GLfloat id[4] = { 0, 0, 0, 1 }; GLuint i; + const GLfloat *id = vbo_get_default_vals_as_float(save->attrtype[attr]); /* New size is equal or smaller - just need to fill in some * zeros. @@ -688,7 +691,7 @@ _save_reset_vertex(struct gl_context *ctx) * 3f version won't otherwise set color[3] to 1.0 -- this is the job * of the chooser function when switching between Color4f and Color3f. */ -#define ATTR(A, N, V0, V1, V2, V3) \ +#define ATTR(A, N, T, V0, V1, V2, V3) \ do { \ struct vbo_save_context *save = &vbo_context(ctx)->save; \ \ @@ -701,6 +704,7 @@ do { \ if (N>1) dest[1] = V1; \ if (N>2) dest[2] = V2; \ if (N>3) dest[3] = V3; \ + save->attrtype[A] = T; \ } \ \ if ((A) == 0) { \ diff --git a/mesalib/src/mesa/vbo/vbo_save_draw.c b/mesalib/src/mesa/vbo/vbo_save_draw.c index 09b8b8ab2..efb386e5c 100644 --- a/mesalib/src/mesa/vbo/vbo_save_draw.c +++ b/mesalib/src/mesa/vbo/vbo_save_draw.c @@ -79,16 +79,20 @@ _playback_copy_to_current(struct gl_context *ctx, GLfloat *current = (GLfloat *)vbo->currval[i].Ptr; GLfloat tmp[4]; - COPY_CLEAN_4V(tmp, - node->attrsz[i], - data); + COPY_CLEAN_4V_TYPE_AS_FLOAT(tmp, + node->attrsz[i], + data, + node->attrtype[i]); - if (memcmp(current, tmp, 4 * sizeof(GLfloat)) != 0) { + if (node->attrtype[i] != vbo->currval[i].Type || + memcmp(current, tmp, 4 * sizeof(GLfloat)) != 0) { memcpy(current, tmp, 4 * sizeof(GLfloat)); vbo->currval[i].Size = node->attrsz[i]; - assert(vbo->currval[i].Type == GL_FLOAT); vbo->currval[i]._ElementSize = vbo->currval[i].Size * sizeof(GLfloat); + vbo->currval[i].Type = node->attrtype[i]; + vbo->currval[i].Integer = + vbo_attrtype_to_integer_flag(node->attrtype[i]); if (i >= VBO_ATTRIB_FIRST_MATERIAL && i <= VBO_ATTRIB_LAST_MATERIAL) @@ -134,9 +138,11 @@ static void vbo_bind_vertex_list(struct gl_context *ctx, const GLuint *map; GLuint attr; GLubyte node_attrsz[VBO_ATTRIB_MAX]; /* copy of node->attrsz[] */ + GLenum node_attrtype[VBO_ATTRIB_MAX]; /* copy of node->attrtype[] */ GLbitfield64 varying_inputs = 0x0; memcpy(node_attrsz, node->attrsz, sizeof(node->attrsz)); + memcpy(node_attrtype, node->attrtype, sizeof(node->attrtype)); /* Install the default (ie Current) attributes first, then overlay * all active ones. @@ -170,6 +176,7 @@ static void vbo_bind_vertex_list(struct gl_context *ctx, (ctx->VertexProgram._Current->Base.InputsRead & VERT_BIT_GENERIC0)) { save->inputs[VERT_ATTRIB_GENERIC0] = save->inputs[0]; node_attrsz[VERT_ATTRIB_GENERIC0] = node_attrsz[0]; + node_attrtype[VERT_ATTRIB_GENERIC0] = node_attrtype[0]; node_attrsz[0] = 0; } break; @@ -188,7 +195,9 @@ static void vbo_bind_vertex_list(struct gl_context *ctx, arrays[attr].Size = node_attrsz[src]; arrays[attr].StrideB = node->vertex_size * sizeof(GLfloat); arrays[attr].Stride = node->vertex_size * sizeof(GLfloat); - arrays[attr].Type = GL_FLOAT; + arrays[attr].Type = node_attrtype[src]; + arrays[attr].Integer = + vbo_attrtype_to_integer_flag(node_attrtype[src]); arrays[attr].Format = GL_RGBA; arrays[attr].Enabled = 1; arrays[attr]._ElementSize = arrays[attr].Size * sizeof(GLfloat); -- cgit v1.2.3