From f48412c39f2ea3e2c25191814f519f84efec7a95 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Thu, 9 Jun 2011 00:33:45 +0200
Subject: [PATCH 001/406] r300g: make translate_primitive table-driven
---
src/gallium/drivers/r300/r300_render.c | 44 ++++++++++++--------------
1 file changed, 20 insertions(+), 24 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index b24e7faa644..479503f8f65 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -46,30 +46,26 @@
static uint32_t r300_translate_primitive(unsigned prim)
{
- switch (prim) {
- case PIPE_PRIM_POINTS:
- return R300_VAP_VF_CNTL__PRIM_POINTS;
- case PIPE_PRIM_LINES:
- return R300_VAP_VF_CNTL__PRIM_LINES;
- case PIPE_PRIM_LINE_LOOP:
- return R300_VAP_VF_CNTL__PRIM_LINE_LOOP;
- case PIPE_PRIM_LINE_STRIP:
- return R300_VAP_VF_CNTL__PRIM_LINE_STRIP;
- case PIPE_PRIM_TRIANGLES:
- return R300_VAP_VF_CNTL__PRIM_TRIANGLES;
- case PIPE_PRIM_TRIANGLE_STRIP:
- return R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP;
- case PIPE_PRIM_TRIANGLE_FAN:
- return R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN;
- case PIPE_PRIM_QUADS:
- return R300_VAP_VF_CNTL__PRIM_QUADS;
- case PIPE_PRIM_QUAD_STRIP:
- return R300_VAP_VF_CNTL__PRIM_QUAD_STRIP;
- case PIPE_PRIM_POLYGON:
- return R300_VAP_VF_CNTL__PRIM_POLYGON;
- default:
- return 0;
- }
+ static const int prim_conv[] = {
+ R300_VAP_VF_CNTL__PRIM_POINTS,
+ R300_VAP_VF_CNTL__PRIM_LINES,
+ R300_VAP_VF_CNTL__PRIM_LINE_LOOP,
+ R300_VAP_VF_CNTL__PRIM_LINE_STRIP,
+ R300_VAP_VF_CNTL__PRIM_TRIANGLES,
+ R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP,
+ R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN,
+ R300_VAP_VF_CNTL__PRIM_QUADS,
+ R300_VAP_VF_CNTL__PRIM_QUAD_STRIP,
+ R300_VAP_VF_CNTL__PRIM_POLYGON,
+ -1,
+ -1,
+ -1,
+ -1
+ };
+ unsigned hwprim = prim_conv[prim];
+
+ assert(hwprim != -1);
+ return hwprim;
}
static uint32_t r300_provoking_vertex_fixes(struct r300_context *r300,
From 578d4539ba72a9f52e0cb3f615bb04bf9407b574 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Thu, 9 Jun 2011 00:50:29 +0200
Subject: [PATCH 002/406] r300g: fix draw_vbo splitting on r3xx-r4xx
NOTE: This is a candidate for the 7.10 branch.
---
src/gallium/drivers/r300/r300_render.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index 479503f8f65..d9399d78ef9 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -673,10 +673,11 @@ static void r300_draw_elements(struct r300_context *r300,
indices3);
} else {
do {
- if (indexSize == 2 && (start & 1))
- short_count = MIN2(count, 65535);
- else
- short_count = MIN2(count, 65534);
+ /* The maximum must be divisible by 4 and 3,
+ * so that quad and triangle lists are split correctly.
+ *
+ * Strips, loops, and fans won't work. */
+ short_count = MIN2(count, 65532);
r300_emit_draw_elements(r300, indexBuffer, indexSize,
info->min_index, info->max_index,
@@ -722,7 +723,11 @@ static void r300_draw_arrays(struct r300_context *r300,
r300_emit_draw_arrays(r300, info->mode, count);
} else {
do {
- short_count = MIN2(count, 65535);
+ /* The maximum must be divisible by 4 and 3,
+ * so that quad and triangle lists are split correctly.
+ *
+ * Strips, loops, and fans won't work. */
+ short_count = MIN2(count, 65532);
r300_emit_draw_arrays(r300, info->mode, short_count);
start += short_count;
From d56fe67c6255b1ace84c025c83439ab8cb3f91fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Thu, 9 Jun 2011 01:34:24 +0200
Subject: [PATCH 003/406] r600g: remove unused variable
---
src/gallium/drivers/r600/r600_state.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 4e62857343e..3851042965c 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -407,7 +407,6 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
struct pipe_resource *texture,
const struct pipe_sampler_view *state)
{
- struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
struct r600_pipe_sampler_view *resource = CALLOC_STRUCT(r600_pipe_sampler_view);
struct r600_pipe_resource_state *rstate;
const struct util_format_description *desc;
From 04554c7d3a3b28e8103e50ed54f1ac57c6c11017 Mon Sep 17 00:00:00 2001
From: Dave Airlie
Date: Wed, 8 Jun 2011 14:35:00 +1000
Subject: [PATCH 004/406] r600g: adjust vs/ps gprs on r600/r700 cards when
needed.
Ideally we'd have a compiler and register spilling and all that
but this is good enough for now to avoid the gpu hang in piglit,
glsl-vs-vec4-indexing-temp-dst-in-nested-loop-combined
on r600/r700 cards.
based on r600c patch
Andre Maasikas
r600c: bump sq gpr resources if a shader needs more than default
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_pipe.h | 2 +
src/gallium/drivers/r600/r600_state.c | 43 +++++++++++++++++++
src/gallium/drivers/r600/r600_state_common.c | 8 +++-
src/gallium/winsys/r600/drm/r600_hw_context.c | 42 ++++++++++--------
src/gallium/winsys/r600/drm/r600_priv.h | 1 +
5 files changed, 77 insertions(+), 19 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index d92b74ebc4e..332f932013a 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -205,6 +205,7 @@ struct r600_pipe_context {
struct util_slab_mempool pool_transfers;
boolean blit;
+ unsigned default_ps_gprs, default_vs_gprs;
};
struct r600_drawl {
@@ -270,6 +271,7 @@ void r600_pipe_init_buffer_resource(struct r600_pipe_context *rctx,
void r600_pipe_mod_buffer_resource(struct r600_pipe_resource_state *rstate,
struct r600_resource *rbuffer,
unsigned offset, unsigned stride);
+void r600_adjust_gprs(struct r600_pipe_context *rctx);
/* r600_texture.c */
void r600_init_screen_texture_functions(struct pipe_screen *screen);
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 3851042965c..5a1c456309b 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1025,6 +1025,46 @@ void r600_init_state_functions(struct r600_pipe_context *rctx)
rctx->context.texture_barrier = r600_texture_barrier;
}
+void r600_adjust_gprs(struct r600_pipe_context *rctx)
+{
+ enum radeon_family family;
+ struct r600_pipe_state rstate;
+ unsigned num_ps_gprs = rctx->default_ps_gprs;
+ unsigned num_vs_gprs = rctx->default_vs_gprs;
+ unsigned tmp;
+ int diff;
+
+ family = r600_get_family(rctx->radeon);
+
+ if (family >= CHIP_CEDAR)
+ return;
+
+ if (!rctx->ps_shader && !rctx->vs_shader)
+ return;
+
+ if (rctx->ps_shader->shader.bc.ngpr > rctx->default_ps_gprs)
+ {
+ diff = rctx->ps_shader->shader.bc.ngpr - rctx->default_ps_gprs;
+ num_vs_gprs -= diff;
+ num_ps_gprs += diff;
+ }
+
+ if (rctx->vs_shader->shader.bc.ngpr > rctx->default_vs_gprs)
+ {
+ diff = rctx->vs_shader->shader.bc.ngpr - rctx->default_vs_gprs;
+ num_ps_gprs -= diff;
+ num_vs_gprs += diff;
+ }
+
+ tmp = 0;
+ tmp |= S_008C04_NUM_PS_GPRS(num_ps_gprs);
+ tmp |= S_008C04_NUM_VS_GPRS(num_vs_gprs);
+ rstate.nregs = 0;
+ r600_pipe_state_add_reg(&rstate, R_008C04_SQ_GPR_RESOURCE_MGMT_1, tmp, 0x0FFFFFFF, NULL);
+
+ r600_context_pipe_state_set(&rctx->ctx, &rstate);
+}
+
void r600_init_config(struct r600_pipe_context *rctx)
{
int ps_prio;
@@ -1167,6 +1207,9 @@ void r600_init_config(struct r600_pipe_context *rctx)
break;
}
+ rctx->default_ps_gprs = num_ps_gprs;
+ rctx->default_vs_gprs = num_vs_gprs;
+
rstate->id = R600_PIPE_STATE_CONFIG;
/* SQ_CONFIG */
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index a670ac02be2..1eb9389bade 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -273,8 +273,10 @@ void r600_bind_ps_shader(struct pipe_context *ctx, void *state)
if (state) {
r600_context_pipe_state_set(&rctx->ctx, &rctx->ps_shader->rstate);
}
- if (rctx->ps_shader && rctx->vs_shader)
+ if (rctx->ps_shader && rctx->vs_shader) {
r600_spi_update(rctx);
+ r600_adjust_gprs(rctx);
+ }
}
void r600_bind_vs_shader(struct pipe_context *ctx, void *state)
@@ -286,8 +288,10 @@ void r600_bind_vs_shader(struct pipe_context *ctx, void *state)
if (state) {
r600_context_pipe_state_set(&rctx->ctx, &rctx->vs_shader->rstate);
}
- if (rctx->ps_shader && rctx->vs_shader)
+ if (rctx->ps_shader && rctx->vs_shader) {
r600_spi_update(rctx);
+ r600_adjust_gprs(rctx);
+ }
}
void r600_delete_ps_shader(struct pipe_context *ctx, void *state)
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c
index 44957db89af..d065717022c 100644
--- a/src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/src/gallium/winsys/r600/drm/r600_hw_context.c
@@ -40,6 +40,17 @@
#define GROUP_FORCE_NEW_BLOCK 0
+static inline void r600_context_ps_partial_flush(struct r600_context *ctx)
+{
+ if (!(ctx->flags & R600_CONTEXT_DRAW_PENDING))
+ return;
+
+ ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
+ ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4);
+
+ ctx->flags &= ~R600_CONTEXT_DRAW_PENDING;
+}
+
void r600_init_cs(struct r600_context *ctx)
{
/* R6xx requires this packet at the start of each command buffer */
@@ -116,6 +127,9 @@ static void r600_init_block(struct r600_context *ctx,
LIST_ADDTAIL(&block->list,&ctx->dirty);
}
}
+ if (reg[i+j].flags & REG_FLAG_FLUSH_CHANGE) {
+ block->flags |= REG_FLAG_FLUSH_CHANGE;
+ }
if (reg[i+j].flags & REG_FLAG_NEED_BO) {
block->nbo++;
@@ -206,13 +220,13 @@ int r600_context_add_block(struct r600_context *ctx, const struct r600_reg *reg,
/* R600/R700 configuration */
static const struct r600_reg r600_config_reg_list[] = {
{R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
- {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C0C_SQ_THREAD_RESOURCE_MGMT, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C10_SQ_STACK_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C14_SQ_STACK_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS, 0, 0},
+ {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C0C_SQ_THREAD_RESOURCE_MGMT, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C10_SQ_STACK_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C14_SQ_STACK_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_009508_TA_CNTL_AUX, REG_FLAG_ENABLE_ALWAYS, 0, 0},
{R_009714_VC_ENHANCE, REG_FLAG_ENABLE_ALWAYS, 0, 0},
{R_009830_DB_DEBUG, REG_FLAG_ENABLE_ALWAYS, 0, 0},
@@ -1008,6 +1022,10 @@ void r600_context_dirty_block(struct r600_context *ctx,
LIST_ADDTAIL(&block->enable_list, &ctx->enable_list);
}
LIST_ADDTAIL(&block->list,&ctx->dirty);
+
+ if (block->flags & REG_FLAG_FLUSH_CHANGE) {
+ r600_context_ps_partial_flush(ctx);
+ }
}
}
@@ -1187,16 +1205,6 @@ static inline void r600_context_pipe_state_set_sampler(struct r600_context *ctx,
r600_context_dirty_block(ctx, block, dirty, 2);
}
-static inline void r600_context_ps_partial_flush(struct r600_context *ctx)
-{
- if (!(ctx->flags & R600_CONTEXT_DRAW_PENDING))
- return;
-
- ctx->pm4[ctx->pm4_cdwords++] = PKT3(PKT3_EVENT_WRITE, 0, 0);
- ctx->pm4[ctx->pm4_cdwords++] = EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4);
-
- ctx->flags &= ~R600_CONTEXT_DRAW_PENDING;
-}
static inline void r600_context_pipe_state_set_sampler_border(struct r600_context *ctx, struct r600_pipe_state *state, unsigned offset)
{
diff --git a/src/gallium/winsys/r600/drm/r600_priv.h b/src/gallium/winsys/r600/drm/r600_priv.h
index 45bc64fcf9a..69f7251c043 100644
--- a/src/gallium/winsys/r600/drm/r600_priv.h
+++ b/src/gallium/winsys/r600/drm/r600_priv.h
@@ -69,6 +69,7 @@ struct radeon {
#define REG_FLAG_NOT_R600 8
#define REG_FLAG_ENABLE_ALWAYS 16
#define BLOCK_FLAG_RESOURCE 32
+#define REG_FLAG_FLUSH_CHANGE 64
struct r600_reg {
unsigned offset;
From 466ce95ddff734d5090bcb1c5ada7a4f23e13226 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Thu, 9 Jun 2011 03:36:37 +0200
Subject: [PATCH 005/406] r300g: don't enable aniso with nearest filtering
---
src/gallium/drivers/r300/r300_state_inlines.h | 80 +++++++++----------
1 file changed, 39 insertions(+), 41 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_state_inlines.h b/src/gallium/drivers/r300/r300_state_inlines.h
index 54dae1acd98..62c03b3909b 100644
--- a/src/gallium/drivers/r300/r300_state_inlines.h
+++ b/src/gallium/drivers/r300/r300_state_inlines.h
@@ -261,51 +261,49 @@ static INLINE uint32_t r300_translate_wrap(int wrap)
}
static INLINE uint32_t r300_translate_tex_filters(int min, int mag, int mip,
- int is_anisotropic)
+ boolean is_anisotropic)
{
uint32_t retval = 0;
- if (is_anisotropic)
- retval |= R300_TX_MIN_FILTER_ANISO | R300_TX_MAG_FILTER_ANISO;
- else {
- switch (min) {
- case PIPE_TEX_FILTER_NEAREST:
- retval |= R300_TX_MIN_FILTER_NEAREST;
- break;
- case PIPE_TEX_FILTER_LINEAR:
- retval |= R300_TX_MIN_FILTER_LINEAR;
- break;
- default:
- fprintf(stderr, "r300: Unknown texture filter %d\n", min);
- assert(0);
- break;
- }
- switch (mag) {
- case PIPE_TEX_FILTER_NEAREST:
- retval |= R300_TX_MAG_FILTER_NEAREST;
- break;
- case PIPE_TEX_FILTER_LINEAR:
- retval |= R300_TX_MAG_FILTER_LINEAR;
- break;
- default:
- fprintf(stderr, "r300: Unknown texture filter %d\n", mag);
- assert(0);
- break;
- }
+
+ switch (min) {
+ case PIPE_TEX_FILTER_NEAREST:
+ retval |= R300_TX_MIN_FILTER_NEAREST;
+ break;
+ case PIPE_TEX_FILTER_LINEAR:
+ retval |= is_anisotropic ? R300_TX_MIN_FILTER_ANISO :
+ R300_TX_MIN_FILTER_LINEAR;
+ break;
+ default:
+ fprintf(stderr, "r300: Unknown texture filter %d\n", min);
+ assert(0);
}
+
+ switch (mag) {
+ case PIPE_TEX_FILTER_NEAREST:
+ retval |= R300_TX_MAG_FILTER_NEAREST;
+ break;
+ case PIPE_TEX_FILTER_LINEAR:
+ retval |= is_anisotropic ? R300_TX_MAG_FILTER_ANISO :
+ R300_TX_MAG_FILTER_LINEAR;
+ break;
+ default:
+ fprintf(stderr, "r300: Unknown texture filter %d\n", mag);
+ assert(0);
+ }
+
switch (mip) {
- case PIPE_TEX_MIPFILTER_NONE:
- retval |= R300_TX_MIN_FILTER_MIP_NONE;
- break;
- case PIPE_TEX_MIPFILTER_NEAREST:
- retval |= R300_TX_MIN_FILTER_MIP_NEAREST;
- break;
- case PIPE_TEX_MIPFILTER_LINEAR:
- retval |= R300_TX_MIN_FILTER_MIP_LINEAR;
- break;
- default:
- fprintf(stderr, "r300: Unknown texture filter %d\n", mip);
- assert(0);
- break;
+ case PIPE_TEX_MIPFILTER_NONE:
+ retval |= R300_TX_MIN_FILTER_MIP_NONE;
+ break;
+ case PIPE_TEX_MIPFILTER_NEAREST:
+ retval |= R300_TX_MIN_FILTER_MIP_NEAREST;
+ break;
+ case PIPE_TEX_MIPFILTER_LINEAR:
+ retval |= R300_TX_MIN_FILTER_MIP_LINEAR;
+ break;
+ default:
+ fprintf(stderr, "r300: Unknown texture filter %d\n", mip);
+ assert(0);
}
return retval;
From da8b4c07986e202b0596b729a5eec31c9aec5fcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Thu, 9 Jun 2011 04:09:40 +0200
Subject: [PATCH 006/406] r300g: fix texturing with non-3D textures and wrap R
mode set to sample border
If the wrap R (3rd) mode is set to CLAMP or CLAMP_TO_BORDER and the texture
isn't 3D, r300 always samples the border color regardless of texture
coordinates.
I HATE THIS HARDWARE.
NOTE: This is a candidate for the 7.10 branch.
---
src/gallium/drivers/r300/r300_state_derived.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c
index 121409b2260..f63114e7eb7 100644
--- a/src/gallium/drivers/r300/r300_state_derived.c
+++ b/src/gallium/drivers/r300/r300_state_derived.c
@@ -854,6 +854,12 @@ static void r300_merge_textures_and_samplers(struct r300_context* r300)
texstate->filter0 |= R300_TX_WRAP_T(R300_TX_CLAMP_TO_EDGE);
}
+ /* The hardware doesn't like CLAMP and CLAMP_TO_BORDER
+ * for the 3rd coordinate if the texture isn't 3D. */
+ if (tex->b.b.b.target != PIPE_TEXTURE_3D) {
+ texstate->filter0 &= ~R300_TX_WRAP_R_MASK;
+ }
+
if (tex->tex.is_npot) {
/* NPOT textures don't support mip filter, unfortunately.
* This prevents incorrect rendering. */
From e7280b16d634e1f434bebbce83996b3d30d0419c Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Sun, 5 Jun 2011 11:45:04 -0700
Subject: [PATCH 007/406] i965/gen6: Refactor SF setup a bit to handle
overrides in one place.
Acked-by: Kenneth Graunke
---
src/mesa/drivers/dri/i965/gen6_sf_state.c | 43 +++++++++++++----------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 84028e4e758..45bd269914a 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -100,10 +100,11 @@ upload_sf_state(struct brw_context *brw)
int i;
/* _NEW_BUFFER */
GLboolean render_to_fbo = brw->intel.ctx.DrawBuffer->Name != 0;
- int attr = 0;
+ int attr = 0, input_index = 0;
int urb_start;
int two_side_color = (ctx->Light.Enabled && ctx->Light.Model.TwoSide);
float point_size;
+ uint16_t attr_overrides[FRAG_ATTRIB_MAX];
/* _NEW_TRANSFORM */
if (ctx->Transform.ClipPlanesEnabled)
@@ -243,6 +244,27 @@ upload_sf_state(struct brw_context *brw)
((brw->fragment_program->Base.InputsRead & FRAG_BIT_WPOS) ? 0 : 1));
}
+ /* Create the mapping from the FS inputs we produce to the VS outputs
+ * they source from.
+ */
+ for (; attr < FRAG_ATTRIB_MAX; attr++) {
+ if (!(brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(attr)))
+ continue;
+
+ /* The hardware can only do the overrides on 16 overrides at a
+ * time, and the other up to 16 have to be lined up so that the
+ * input index = the output index. We'll need to do some
+ * tweaking to make sure that's the case.
+ */
+ assert(input_index < 16 || attr == input_index);
+
+ attr_overrides[input_index++] = get_attr_override(brw, attr,
+ two_side_color);
+ }
+
+ for (; input_index < FRAG_ATTRIB_MAX; input_index++)
+ attr_overrides[input_index] = 0;
+
BEGIN_BATCH(20);
OUT_BATCH(_3DSTATE_SF << 16 | (20 - 2));
OUT_BATCH(dw1);
@@ -253,24 +275,7 @@ upload_sf_state(struct brw_context *brw)
OUT_BATCH_F(ctx->Polygon.OffsetFactor); /* scale */
OUT_BATCH_F(0.0); /* XXX: global depth offset clamp */
for (i = 0; i < 8; i++) {
- uint32_t attr_overrides = 0;
-
- for (; attr < 64; attr++) {
- if (brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(attr)) {
- attr_overrides |= get_attr_override(brw, attr, two_side_color);
- attr++;
- break;
- }
- }
-
- for (; attr < 64; attr++) {
- if (brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(attr)) {
- attr_overrides |= get_attr_override(brw, attr, two_side_color) << 16;
- attr++;
- break;
- }
- }
- OUT_BATCH(attr_overrides);
+ OUT_BATCH(attr_overrides[i * 2] | attr_overrides[i * 2 + 1] << 16);
}
OUT_BATCH(dw16); /* point sprite texcoord bitmask */
OUT_BATCH(dw17); /* constant interp bitmask */
From f304bb8a5d040d99db47a65813d216d11c66fb47 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Sun, 5 Jun 2011 11:50:00 -0700
Subject: [PATCH 008/406] i965/gen6: Fix point sprite texture coordinate
overrides.
We were assuming that the input attribute n to the FS was
FRAG_ATTRIB_TEXn, which happened to be true often enough for our
testcases.
Acked-by: Kenneth Graunke
---
src/mesa/drivers/dri/i965/gen6_sf_state.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 45bd269914a..75a8509c87a 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -231,13 +231,6 @@ upload_sf_state(struct brw_context *brw)
(1 << GEN6_SF_TRIFAN_PROVOKE_SHIFT);
}
- if (ctx->Point.PointSprite) {
- for (i = 0; i < 8; i++) {
- if (ctx->Point.CoordReplace[i])
- dw16 |= (1 << i);
- }
- }
-
/* flat shading */
if (ctx->Light.ShadeModel == GL_FLAT) {
dw17 |= ((brw->fragment_program->Base.InputsRead & (FRAG_BIT_COL0 | FRAG_BIT_COL1)) >>
@@ -251,6 +244,13 @@ upload_sf_state(struct brw_context *brw)
if (!(brw->fragment_program->Base.InputsRead & BITFIELD64_BIT(attr)))
continue;
+ /* _NEW_POINT */
+ if (ctx->Point.PointSprite &&
+ (attr >= FRAG_ATTRIB_TEX0 && attr <= FRAG_ATTRIB_TEX7) &&
+ ctx->Point.CoordReplace[attr - FRAG_ATTRIB_TEX0]) {
+ dw16 |= (1 << input_index);
+ }
+
/* The hardware can only do the overrides on 16 overrides at a
* time, and the other up to 16 have to be lined up so that the
* input index = the output index. We'll need to do some
From 6861a701772eac3a6a7d3136d03efa7ac7e5c026 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Sun, 5 Jun 2011 11:52:20 -0700
Subject: [PATCH 009/406] i965/gen6: Add support for gl_PointCoord.
This is just like PointSprite overrides, but it's always on for that
attribute.
Fixes glsl-fs-pointcoord, gtf/point_sprites.
Acked-by: Kenneth Graunke
---
src/mesa/drivers/dri/i965/gen6_sf_state.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 75a8509c87a..5bb731dc8fd 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -251,6 +251,9 @@ upload_sf_state(struct brw_context *brw)
dw16 |= (1 << input_index);
}
+ if (attr == FRAG_ATTRIB_PNTC)
+ dw16 |= (1 << input_index);
+
/* The hardware can only do the overrides on 16 overrides at a
* time, and the other up to 16 have to be lined up so that the
* input index = the output index. We'll need to do some
From 8681ebcf7f1daf0a346ea7d41013d5af02e3c7c7 Mon Sep 17 00:00:00 2001
From: Alex Deucher
Date: Thu, 9 Jun 2011 16:26:50 -0400
Subject: [PATCH 010/406] r600g: Handle CONFIG regs properly
CONFIG regs (byte offsets 0x8000-0xac00) are single state and the pipeline
must be flushed and hw idle when they are changed. Border color regs
are in the CONFIG range and this is why a flush is required when changing
them. CONTEXT regs (byte offset 0x28000+) are multi-state and those do
not require flushes when changing them.
Signed-off-by: Alex Deucher
---
.../winsys/r600/drm/evergreen_hw_context.c | 53 +++++++++----------
src/gallium/winsys/r600/drm/r600_hw_context.c | 10 ++--
2 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/src/gallium/winsys/r600/drm/evergreen_hw_context.c b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
index e4ab690c560..1aa47df3447 100644
--- a/src/gallium/winsys/r600/drm/evergreen_hw_context.c
+++ b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
@@ -41,35 +41,35 @@
#define GROUP_FORCE_NEW_BLOCK 0
static const struct r600_reg evergreen_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
- {R_008A14_PA_CL_ENHANCE, 0, 0, 0},
- {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C0C_SQ_THREAD_RESOURCE_MGMT, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C10_SQ_GLOBAL_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C14_SQ_GLOBAL_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C18_SQ_THREAD_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C1C_SQ_THREAD_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C20_SQ_STACK_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C24_SQ_STACK_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C28_SQ_STACK_RESOURCE_MGMT_3, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_009100_SPI_CONFIG_CNTL, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_00913C_SPI_CONFIG_CNTL_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008A14_PA_CL_ENHANCE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C0C_SQ_THREAD_RESOURCE_MGMT, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C10_SQ_GLOBAL_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C14_SQ_GLOBAL_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C18_SQ_THREAD_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C1C_SQ_THREAD_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C20_SQ_STACK_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C24_SQ_STACK_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C28_SQ_STACK_RESOURCE_MGMT_3, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_009100_SPI_CONFIG_CNTL, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_00913C_SPI_CONFIG_CNTL_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
};
static const struct r600_reg cayman_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
- {R_008A14_PA_CL_ENHANCE, 0, 0, 0},
- {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C10_SQ_GLOBAL_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008C14_SQ_GLOBAL_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_009100_SPI_CONFIG_CNTL, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_00913C_SPI_CONFIG_CNTL_1, REG_FLAG_ENABLE_ALWAYS, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008A14_PA_CL_ENHANCE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C10_SQ_GLOBAL_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008C14_SQ_GLOBAL_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_009100_SPI_CONFIG_CNTL, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_00913C_SPI_CONFIG_CNTL_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
};
static const struct r600_reg evergreen_ctl_const_list[] = {
@@ -856,7 +856,7 @@ static int r600_state_sampler_init(struct r600_context *ctx, u32 offset)
return r600_context_add_block(ctx, r600_shader_sampler, nreg, PKT3_SET_SAMPLER, EVERGREEN_SAMPLER_OFFSET);
}
-/* SHADER SAMPLER BORDER R600/R700 */
+/* SHADER SAMPLER BORDER EG/CM */
static int evergreen_state_sampler_border_init(struct r600_context *ctx, u32 offset, unsigned id)
{
struct r600_reg r600_shader_sampler_border[] = {
@@ -1121,7 +1121,6 @@ static inline void evergreen_context_pipe_state_set_sampler_border(struct r600_c
* will end up using the new border color. */
if (dirty & R600_BLOCK_STATUS_DIRTY)
evergreen_context_ps_partial_flush(ctx);
-
if (dirty)
r600_context_dirty_block(ctx, block, dirty, 4);
}
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c
index d065717022c..ecbbf04c698 100644
--- a/src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/src/gallium/winsys/r600/drm/r600_hw_context.c
@@ -219,7 +219,7 @@ int r600_context_add_block(struct r600_context *ctx, const struct r600_reg *reg,
/* R600/R700 configuration */
static const struct r600_reg r600_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
@@ -227,10 +227,10 @@ static const struct r600_reg r600_config_reg_list[] = {
{R_008C10_SQ_STACK_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C14_SQ_STACK_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
- {R_009508_TA_CNTL_AUX, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_009714_VC_ENHANCE, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_009830_DB_DEBUG, REG_FLAG_ENABLE_ALWAYS, 0, 0},
- {R_009838_DB_WATERMARKS, REG_FLAG_ENABLE_ALWAYS, 0, 0},
+ {R_009508_TA_CNTL_AUX, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_009714_VC_ENHANCE, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_009830_DB_DEBUG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_009838_DB_WATERMARKS, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
};
static const struct r600_reg r600_ctl_const_list[] = {
From eca3e910edbaf3074f3e2c3afdfca1dccd52f2a1 Mon Sep 17 00:00:00 2001
From: Alex Deucher
Date: Thu, 9 Jun 2011 16:54:23 -0400
Subject: [PATCH 011/406] r600g: VGT_PRIMITIVE_TYPE is special
It's a special reg and does not require a flush like
the other CONFIG regs.
Signed-off-by: Alex Deucher
---
src/gallium/winsys/r600/drm/evergreen_hw_context.c | 4 ++--
src/gallium/winsys/r600/drm/r600_hw_context.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/gallium/winsys/r600/drm/evergreen_hw_context.c b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
index 1aa47df3447..4d9dd505c41 100644
--- a/src/gallium/winsys/r600/drm/evergreen_hw_context.c
+++ b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
@@ -41,7 +41,7 @@
#define GROUP_FORCE_NEW_BLOCK 0
static const struct r600_reg evergreen_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
{R_008A14_PA_CL_ENHANCE, REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
@@ -61,7 +61,7 @@ static const struct r600_reg evergreen_config_reg_list[] = {
static const struct r600_reg cayman_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
{R_008A14_PA_CL_ENHANCE, REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
diff --git a/src/gallium/winsys/r600/drm/r600_hw_context.c b/src/gallium/winsys/r600/drm/r600_hw_context.c
index ecbbf04c698..f89f24c4d18 100644
--- a/src/gallium/winsys/r600/drm/r600_hw_context.c
+++ b/src/gallium/winsys/r600/drm/r600_hw_context.c
@@ -219,7 +219,7 @@ int r600_context_add_block(struct r600_context *ctx, const struct r600_reg *reg,
/* R600/R700 configuration */
static const struct r600_reg r600_config_reg_list[] = {
- {R_008958_VGT_PRIMITIVE_TYPE, REG_FLAG_FLUSH_CHANGE, 0, 0},
+ {R_008958_VGT_PRIMITIVE_TYPE, 0, 0, 0},
{R_008C00_SQ_CONFIG, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C04_SQ_GPR_RESOURCE_MGMT_1, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
{R_008C08_SQ_GPR_RESOURCE_MGMT_2, REG_FLAG_ENABLE_ALWAYS | REG_FLAG_FLUSH_CHANGE, 0, 0},
From 97d230b0bcf8ed001f685ebac314fbd8e1955718 Mon Sep 17 00:00:00 2001
From: Chad Versace
Date: Fri, 10 Jun 2011 10:27:54 -0700
Subject: [PATCH 012/406] i965/brw: Fix emit_depthbuffer() when packed
depth/stencil texture is attached
If either depth or stencil buffer has packed depth/stencil format, then do
not use separate stencil.
Before this commit, emit_depthbuffer() incorrectly assumed that the
texture's stencil renderbuffer wrapper was a *separate* stencil buffer,
because the depth and stencil renderbuffer wrappers are distinct for
depth/stencil textures (that is, depth_irb != stencil_irb).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38134
Signed-off-by: Chad Versace
---
src/mesa/drivers/dri/i965/brw_misc_state.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index a6de28b3add..3d0983e6879 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -220,19 +220,13 @@ static void emit_depthbuffer(struct brw_context *brw)
unsigned int len;
/*
- * If depth and stencil buffers are identical, then don't use separate
- * stencil.
+ * If either depth or stencil buffer has packed depth/stencil format,
+ * then don't use separate stencil. Emit only a depth buffer.
*/
- if (depth_irb && depth_irb == stencil_irb) {
+ if (depth_irb && depth_irb->Base.Format == MESA_FORMAT_S8_Z24) {
stencil_irb = NULL;
- }
-
- /*
- * If stencil buffer uses combined depth/stencil format, but no depth buffer
- * is attached, then use stencil buffer as depth buffer.
- */
- if (!depth_irb && stencil_irb
- && stencil_irb->Base.Format == MESA_FORMAT_S8_Z24) {
+ } else if (!depth_irb && stencil_irb
+ && stencil_irb->Base.Format == MESA_FORMAT_S8_Z24) {
depth_irb = stencil_irb;
stencil_irb = NULL;
}
From 23ef4a6063668c187d00a0502207f0c03be5f994 Mon Sep 17 00:00:00 2001
From: Eugeni Dodonov
Date: Fri, 10 Jun 2011 15:26:02 -0300
Subject: [PATCH 013/406] Fix format not a string literal error with
-Werror=format-security
A trivial fix for error: format not a string literal and no format
arguments with compiling with -Werror=format-security flags.
Reviewed-by: Kenneth Graunke
---
src/mesa/drivers/dri/i965/brw_fs.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 09033aecd7c..7c73a8fbf02 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -100,7 +100,7 @@ fs_visitor::fail(const char *format, ...)
this->fail_msg = msg;
if (INTEL_DEBUG & DEBUG_WM) {
- fprintf(stderr, msg);
+ fprintf(stderr, "%s", msg);
}
}
From 20f087863d00fed9823791a447932e74d77cc546 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 8 Jun 2011 11:25:04 -0700
Subject: [PATCH 014/406] glsl: Fix incorrect optimization of instructions
before discard statements.
The function was named "find_unconditional_discard", but didn't
actually check that the discard statement found was unconditional.
Fixes piglit glsl-fs-discard-04.
Reviewed-by: Kenneth Graunke
---
src/glsl/opt_discard_simplification.cpp | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/glsl/opt_discard_simplification.cpp b/src/glsl/opt_discard_simplification.cpp
index 7c2928d271c..a19947ddd6c 100644
--- a/src/glsl/opt_discard_simplification.cpp
+++ b/src/glsl/opt_discard_simplification.cpp
@@ -104,9 +104,23 @@ static ir_discard *
find_unconditional_discard(exec_list &instructions)
{
foreach_list(n, &instructions) {
- ir_discard *ir = ((ir_instruction *) n)->as_discard();
- if (ir != NULL && ir->condition == NULL)
- return ir;
+ ir_instruction *ir = (ir_instruction *)n;
+
+ if (ir->ir_type == ir_type_return ||
+ ir->ir_type == ir_type_loop_jump)
+ return NULL;
+
+ /* So far, this code doesn't know how to look inside of flow
+ * control to see if a discard later on at this level is
+ * unconditional.
+ */
+ if (ir->ir_type == ir_type_if ||
+ ir->ir_type == ir_type_loop)
+ return NULL;
+
+ ir_discard *discard = ir->as_discard();
+ if (discard != NULL && discard->condition == NULL)
+ return discard;
}
return NULL;
}
From 4176025d463e7733dac19788b45b6472b65d62d4 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 8 Jun 2011 13:44:00 -0700
Subject: [PATCH 015/406] i965: Add support for GL_FIXED vertex attributes.
This sadly requires work in the VS to rescale them, because the
hardware doesn't support this format natively.
Fixes arb_es2_compatibility-fixed-type and gtf/fixed_data_type.
Reviewed-by: Ian Romanick
---
src/mesa/drivers/dri/i965/brw_draw_upload.c | 5 +++++
src/mesa/drivers/dri/i965/brw_vs.c | 11 ++++++++++-
src/mesa/drivers/dri/i965/brw_vs.h | 4 ++++
src/mesa/drivers/dri/i965/brw_vs_emit.c | 22 +++++++++++++++++++++
4 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index 3cc33720486..c6e53951069 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -207,6 +207,10 @@ static GLuint get_surface_type( GLenum type, GLuint size,
case GL_UNSIGNED_INT: return uint_types_scale[size];
case GL_UNSIGNED_SHORT: return ushort_types_scale[size];
case GL_UNSIGNED_BYTE: return ubyte_types_scale[size];
+ /* This produces GL_FIXED inputs as values between INT32_MIN and
+ * INT32_MAX, which will be scaled down by 1/65536 by the VS.
+ */
+ case GL_FIXED: return int_types_scale[size];
default: assert(0); return 0;
}
}
@@ -225,6 +229,7 @@ static GLuint get_size( GLenum type )
case GL_UNSIGNED_INT: return sizeof(GLuint);
case GL_UNSIGNED_SHORT: return sizeof(GLushort);
case GL_UNSIGNED_BYTE: return sizeof(GLubyte);
+ case GL_FIXED: return sizeof(GLuint);
default: assert(0); return 0;
}
}
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index d6a53995531..80d5e78ed0b 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -145,6 +145,14 @@ static void brw_upload_vs_prog(struct brw_context *brw)
}
}
+ /* BRW_NEW_VERTICES */
+ for (i = 0; i < VERT_ATTRIB_MAX; i++) {
+ if (vp->program.Base.InputsRead & (1 << i) &&
+ brw->vb.inputs[i].glarray->Type == GL_FIXED) {
+ key.gl_fixed_input_size[i] = brw->vb.inputs[i].glarray->Size;
+ }
+ }
+
/* Make an early check for the key.
*/
drm_intel_bo_unreference(brw->vs.prog_bo);
@@ -164,7 +172,8 @@ const struct brw_tracked_state brw_vs_prog = {
.dirty = {
.mesa = (_NEW_TRANSFORM | _NEW_POLYGON | _NEW_POINT | _NEW_LIGHT |
_NEW_BUFFERS),
- .brw = BRW_NEW_VERTEX_PROGRAM,
+ .brw = (BRW_NEW_VERTEX_PROGRAM |
+ BRW_NEW_VERTICES),
.cache = 0
},
.prepare = brw_upload_vs_prog
diff --git a/src/mesa/drivers/dri/i965/brw_vs.h b/src/mesa/drivers/dri/i965/brw_vs.h
index 7ca84a54b01..432994a8534 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.h
+++ b/src/mesa/drivers/dri/i965/brw_vs.h
@@ -41,6 +41,10 @@
struct brw_vs_prog_key {
GLuint program_string_id;
+ /**
+ * Number of channels of the vertex attribute that need GL_FIXED rescaling
+ */
+ uint8_t gl_fixed_input_size[VERT_ATTRIB_MAX];
GLuint nr_userclip:4;
GLuint copy_edgeflag:1;
GLuint point_coord_replace:8;
diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c b/src/mesa/drivers/dri/i965/brw_vs_emit.c
index 7d5eb353eee..b6c9e5a1ceb 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
@@ -1878,6 +1878,26 @@ get_predicate(const struct prog_instruction *inst)
}
}
+static void
+brw_vs_rescale_gl_fixed(struct brw_vs_compile *c)
+{
+ struct brw_compile *p = &c->func;
+ int i;
+
+ for (i = 0; i < VERT_ATTRIB_MAX; i++) {
+ if (!(c->prog_data.inputs_read & (1 << i)))
+ continue;
+
+ if (c->key.gl_fixed_input_size[i] != 0) {
+ struct brw_reg reg = c->regs[PROGRAM_INPUT][i];
+
+ brw_MUL(p,
+ brw_writemask(reg, (1 << c->key.gl_fixed_input_size[i]) - 1),
+ reg, brw_imm_f(1.0 / 65536.0));
+ }
+ }
+}
+
/* Emit the vertex program instructions here.
*/
void brw_vs_emit(struct brw_vs_compile *c )
@@ -1937,6 +1957,8 @@ void brw_vs_emit(struct brw_vs_compile *c )
*/
brw_vs_alloc_regs(c);
+ brw_vs_rescale_gl_fixed(c);
+
if (c->needs_stack)
brw_MOV(p, get_addr_reg(stack_index), brw_address(c->stack));
From 219150433a305b0e0b6093647758eed3a7650bc4 Mon Sep 17 00:00:00 2001
From: Daniel Vetter
Date: Tue, 7 Jun 2011 22:22:16 +0200
Subject: [PATCH 016/406] i915g: implement fence signalling
v2: Incorporated feedback from Jakob Bornecrantz.
Signed-off-by: Daniel Vetter
---
src/gallium/winsys/i915/drm/i915_drm_fence.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/gallium/winsys/i915/drm/i915_drm_fence.c b/src/gallium/winsys/i915/drm/i915_drm_fence.c
index 30ebf4835ea..650ccfcd876 100644
--- a/src/gallium/winsys/i915/drm/i915_drm_fence.c
+++ b/src/gallium/winsys/i915/drm/i915_drm_fence.c
@@ -52,9 +52,13 @@ static int
i915_drm_fence_signalled(struct i915_winsys *iws,
struct pipe_fence_handle *fence)
{
- assert(0);
+ struct i915_drm_fence *f = (struct i915_drm_fence *)fence;
- return 0;
+ /* fence already expired */
+ if (!f->bo)
+ return 1;
+
+ return !drm_intel_bo_busy(f->bo);
}
static int
From 837dc6101120a90f7a8d29ea45cf8e849a3542c2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sat, 11 Jun 2011 23:01:36 +0200
Subject: [PATCH 017/406] r300g: max_anisotropy of 1 is not anisotropic
filtering
---
src/gallium/drivers/r300/r300_state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
index 7127ea1ac16..057cd9faf03 100644
--- a/src/gallium/drivers/r300/r300_state.c
+++ b/src/gallium/drivers/r300/r300_state.c
@@ -1307,7 +1307,7 @@ static void*
sampler->filter0 |= r300_translate_tex_filters(state->min_img_filter,
state->mag_img_filter,
state->min_mip_filter,
- state->max_anisotropy > 0);
+ state->max_anisotropy > 1);
sampler->filter0 |= r300_anisotropy(state->max_anisotropy);
From 85937f4c0d4a78d3a11e3c1fa6148640f2a9ad7b Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Thu, 9 Jun 2011 16:59:49 -0700
Subject: [PATCH 018/406] glapi: Add API that can create a _glapi_table from a
dlfcn handle
Example usage:
void *handle = dlopen(opengl_library_path, RTLD_LOCAL);
struct _glapi_table *disp = _glapi_create_table_from_handle(handle, "gl");
Signed-off-by: Jeremy Huddleston
---
src/mapi/glapi/gen/Makefile | 9 +-
src/mapi/glapi/gen/gl_gentable.py | 131 +
src/mapi/glapi/glapi.h | 4 +
src/mapi/glapi/glapi_gentable.c | 7804 +++++++++++++++++++++++++++++
src/mapi/glapi/sources.mak | 1 +
5 files changed, 7947 insertions(+), 2 deletions(-)
create mode 100644 src/mapi/glapi/gen/gl_gentable.py
create mode 100644 src/mapi/glapi/glapi_gentable.c
diff --git a/src/mapi/glapi/gen/Makefile b/src/mapi/glapi/gen/Makefile
index 7415bdc5267..3e101f3a10f 100644
--- a/src/mapi/glapi/gen/Makefile
+++ b/src/mapi/glapi/gen/Makefile
@@ -16,7 +16,8 @@ MESA_GLAPI_OUTPUTS = \
$(MESA_GLAPI_DIR)/glapi_mapi_tmp.h \
$(MESA_GLAPI_DIR)/glprocs.h \
$(MESA_GLAPI_DIR)/glapitemp.h \
- $(MESA_GLAPI_DIR)/glapitable.h
+ $(MESA_GLAPI_DIR)/glapitable.h \
+ $(MESA_GLAPI_DIR)/glapi_gentable.c
MESA_GLAPI_ASM_OUTPUTS = \
$(MESA_GLAPI_DIR)/glapi_x86.S \
@@ -50,7 +51,8 @@ XORG_GLAPI_OUTPUTS = \
$(XORG_GLAPI_DIR)/glprocs.h \
$(XORG_GLAPI_DIR)/glapioffsets.h \
$(XORG_GLAPI_DIR)/glapitable.h \
- $(XORG_GLAPI_DIR)/glapidispatch.h
+ $(XORG_GLAPI_DIR)/glapidispatch.h \
+ $(XORG_GLAPI_DIR)/glapi_gentable.c
XORG_OUTPUTS = \
$(XORG_GLAPI_FILES) \
@@ -162,6 +164,9 @@ $(MESA_GLAPI_DIR)/glapitemp.h: gl_apitemp.py $(COMMON)
$(MESA_GLAPI_DIR)/glapitable.h: gl_table.py $(COMMON)
$(PYTHON2) $(PYTHON_FLAGS) $< > $@
+$(MESA_GLAPI_DIR)/glapi_gentable.c: gl_gentable.py $(COMMON)
+ $(PYTHON2) $(PYTHON_FLAGS) $< > $@
+
######################################################################
$(MESA_GLAPI_DIR)/glapi_x86.S: gl_x86_asm.py $(COMMON)
diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py
new file mode 100644
index 00000000000..0dfebf87f2b
--- /dev/null
+++ b/src/mapi/glapi/gen/gl_gentable.py
@@ -0,0 +1,131 @@
+#!/usr/bin/env python
+
+# (C) Copyright IBM Corporation 2004, 2005
+# (C) Copyright Apple Inc. 2011
+# 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
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+# Authors:
+# Jeremy Huddleston
+#
+# Based on code ogiginally by:
+# Ian Romanick
+
+import license
+import gl_XML, glX_XML
+import sys, getopt
+
+header = """
+#include
+#include
+#include
+
+#include
+
+#include "glapi.h"
+#include "glapitable.h"
+#include "main/dispatch.h"
+
+struct _glapi_table *
+_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
+ struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
+ char symboln[512];
+
+ if(!disp)
+ return NULL;
+"""
+
+footer = """
+ return disp;
+}
+"""
+
+body_template = """
+ if(!disp->%(name)s) {
+ snprintf(symboln, sizeof(symboln), "%%s%(entry_point)s", symbol_prefix);
+ SET_%(name)s(disp, dlsym(handle, symboln));
+ }
+"""
+
+class PrintCode(gl_XML.gl_print_base):
+
+ def __init__(self):
+ gl_XML.gl_print_base.__init__(self)
+
+ self.name = "gl_gen_table.py (from Mesa)"
+ self.license = license.bsd_license_template % ( \
+"""Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+(C) Copyright IBM Corporation 2004, 2005
+(C) Copyright Apple Inc 2011""", "BRIAN PAUL, IBM")
+
+ return
+
+
+ def get_stack_size(self, f):
+ size = 0
+ for p in f.parameterIterator():
+ if p.is_padding:
+ continue
+
+ size += p.get_stack_size()
+
+ return size
+
+
+ def printRealHeader(self):
+ print header
+ return
+
+
+ def printRealFooter(self):
+ print footer
+ return
+
+
+ def printBody(self, api):
+ for f in api.functionIterateByOffset():
+ for entry_point in f.entry_points:
+ vars = { 'entry_point' : entry_point,
+ 'name' : f.name }
+
+ print body_template % vars
+ return
+
+def show_usage():
+ print "Usage: %s [-f input_file_name]" % sys.argv[0]
+ sys.exit(1)
+
+if __name__ == '__main__':
+ file_name = "gl_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, glX_XML.glx_item_factory())
+ printer.Print(api)
diff --git a/src/mapi/glapi/glapi.h b/src/mapi/glapi/glapi.h
index e909cf892ab..35dffd75767 100644
--- a/src/mapi/glapi/glapi.h
+++ b/src/mapi/glapi/glapi.h
@@ -159,6 +159,10 @@ _GLAPI_EXPORT const char *
_glapi_get_proc_name(unsigned int offset);
+_GLAPI_EXPORT struct _glapi_table *
+_glapi_create_table_from_handle(void *handle, const char *symbol_prefix);
+
+
_GLAPI_EXPORT unsigned long
_glthread_GetID(void);
diff --git a/src/mapi/glapi/glapi_gentable.c b/src/mapi/glapi/glapi_gentable.c
new file mode 100644
index 00000000000..7f09b412b73
--- /dev/null
+++ b/src/mapi/glapi/glapi_gentable.c
@@ -0,0 +1,7804 @@
+/* DO NOT EDIT - This file generated automatically by gl_gen_table.py (from Mesa) script */
+
+/*
+ * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * (C) Copyright IBM Corporation 2004, 2005
+ * (C) Copyright Apple Inc 2011
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL, IBM,
+ * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+
+#include
+#include
+#include
+
+#include
+
+#include "glapi.h"
+#include "glapitable.h"
+#include "main/dispatch.h"
+
+struct _glapi_table *
+_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
+ struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
+ char symboln[512];
+
+ if(!disp)
+ return NULL;
+
+
+ if(!disp->NewList) {
+ snprintf(symboln, sizeof(symboln), "%sNewList", symbol_prefix);
+ SET_NewList(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndList) {
+ snprintf(symboln, sizeof(symboln), "%sEndList", symbol_prefix);
+ SET_EndList(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CallList) {
+ snprintf(symboln, sizeof(symboln), "%sCallList", symbol_prefix);
+ SET_CallList(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CallLists) {
+ snprintf(symboln, sizeof(symboln), "%sCallLists", symbol_prefix);
+ SET_CallLists(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteLists) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteLists", symbol_prefix);
+ SET_DeleteLists(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenLists) {
+ snprintf(symboln, sizeof(symboln), "%sGenLists", symbol_prefix);
+ SET_GenLists(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ListBase) {
+ snprintf(symboln, sizeof(symboln), "%sListBase", symbol_prefix);
+ SET_ListBase(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Begin) {
+ snprintf(symboln, sizeof(symboln), "%sBegin", symbol_prefix);
+ SET_Begin(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Bitmap) {
+ snprintf(symboln, sizeof(symboln), "%sBitmap", symbol_prefix);
+ SET_Bitmap(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3b) {
+ snprintf(symboln, sizeof(symboln), "%sColor3b", symbol_prefix);
+ SET_Color3b(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3bv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3bv", symbol_prefix);
+ SET_Color3bv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3d) {
+ snprintf(symboln, sizeof(symboln), "%sColor3d", symbol_prefix);
+ SET_Color3d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3dv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3dv", symbol_prefix);
+ SET_Color3dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3f) {
+ snprintf(symboln, sizeof(symboln), "%sColor3f", symbol_prefix);
+ SET_Color3f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3fv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3fv", symbol_prefix);
+ SET_Color3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3i) {
+ snprintf(symboln, sizeof(symboln), "%sColor3i", symbol_prefix);
+ SET_Color3i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3iv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3iv", symbol_prefix);
+ SET_Color3iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3s) {
+ snprintf(symboln, sizeof(symboln), "%sColor3s", symbol_prefix);
+ SET_Color3s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3sv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3sv", symbol_prefix);
+ SET_Color3sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3ub) {
+ snprintf(symboln, sizeof(symboln), "%sColor3ub", symbol_prefix);
+ SET_Color3ub(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3ubv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3ubv", symbol_prefix);
+ SET_Color3ubv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3ui) {
+ snprintf(symboln, sizeof(symboln), "%sColor3ui", symbol_prefix);
+ SET_Color3ui(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3uiv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3uiv", symbol_prefix);
+ SET_Color3uiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3us) {
+ snprintf(symboln, sizeof(symboln), "%sColor3us", symbol_prefix);
+ SET_Color3us(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color3usv) {
+ snprintf(symboln, sizeof(symboln), "%sColor3usv", symbol_prefix);
+ SET_Color3usv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4b) {
+ snprintf(symboln, sizeof(symboln), "%sColor4b", symbol_prefix);
+ SET_Color4b(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4bv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4bv", symbol_prefix);
+ SET_Color4bv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4d) {
+ snprintf(symboln, sizeof(symboln), "%sColor4d", symbol_prefix);
+ SET_Color4d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4dv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4dv", symbol_prefix);
+ SET_Color4dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4f) {
+ snprintf(symboln, sizeof(symboln), "%sColor4f", symbol_prefix);
+ SET_Color4f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4fv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4fv", symbol_prefix);
+ SET_Color4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4i) {
+ snprintf(symboln, sizeof(symboln), "%sColor4i", symbol_prefix);
+ SET_Color4i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4iv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4iv", symbol_prefix);
+ SET_Color4iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4s) {
+ snprintf(symboln, sizeof(symboln), "%sColor4s", symbol_prefix);
+ SET_Color4s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4sv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4sv", symbol_prefix);
+ SET_Color4sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4ub) {
+ snprintf(symboln, sizeof(symboln), "%sColor4ub", symbol_prefix);
+ SET_Color4ub(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4ubv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4ubv", symbol_prefix);
+ SET_Color4ubv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4ui) {
+ snprintf(symboln, sizeof(symboln), "%sColor4ui", symbol_prefix);
+ SET_Color4ui(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4uiv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4uiv", symbol_prefix);
+ SET_Color4uiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4us) {
+ snprintf(symboln, sizeof(symboln), "%sColor4us", symbol_prefix);
+ SET_Color4us(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Color4usv) {
+ snprintf(symboln, sizeof(symboln), "%sColor4usv", symbol_prefix);
+ SET_Color4usv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EdgeFlag) {
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlag", symbol_prefix);
+ SET_EdgeFlag(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EdgeFlagv) {
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagv", symbol_prefix);
+ SET_EdgeFlagv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->End) {
+ snprintf(symboln, sizeof(symboln), "%sEnd", symbol_prefix);
+ SET_End(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexd) {
+ snprintf(symboln, sizeof(symboln), "%sIndexd", symbol_prefix);
+ SET_Indexd(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexdv) {
+ snprintf(symboln, sizeof(symboln), "%sIndexdv", symbol_prefix);
+ SET_Indexdv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexf) {
+ snprintf(symboln, sizeof(symboln), "%sIndexf", symbol_prefix);
+ SET_Indexf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexfv) {
+ snprintf(symboln, sizeof(symboln), "%sIndexfv", symbol_prefix);
+ SET_Indexfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexi) {
+ snprintf(symboln, sizeof(symboln), "%sIndexi", symbol_prefix);
+ SET_Indexi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexiv) {
+ snprintf(symboln, sizeof(symboln), "%sIndexiv", symbol_prefix);
+ SET_Indexiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexs) {
+ snprintf(symboln, sizeof(symboln), "%sIndexs", symbol_prefix);
+ SET_Indexs(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexsv) {
+ snprintf(symboln, sizeof(symboln), "%sIndexsv", symbol_prefix);
+ SET_Indexsv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3b) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3b", symbol_prefix);
+ SET_Normal3b(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3bv) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3bv", symbol_prefix);
+ SET_Normal3bv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3d) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3d", symbol_prefix);
+ SET_Normal3d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3dv) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3dv", symbol_prefix);
+ SET_Normal3dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3f) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3f", symbol_prefix);
+ SET_Normal3f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3fv) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3fv", symbol_prefix);
+ SET_Normal3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3i) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3i", symbol_prefix);
+ SET_Normal3i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3iv) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3iv", symbol_prefix);
+ SET_Normal3iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3s) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3s", symbol_prefix);
+ SET_Normal3s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Normal3sv) {
+ snprintf(symboln, sizeof(symboln), "%sNormal3sv", symbol_prefix);
+ SET_Normal3sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2d) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2d", symbol_prefix);
+ SET_RasterPos2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2dv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2dv", symbol_prefix);
+ SET_RasterPos2dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2f) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2f", symbol_prefix);
+ SET_RasterPos2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2fv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2fv", symbol_prefix);
+ SET_RasterPos2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2i) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2i", symbol_prefix);
+ SET_RasterPos2i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2iv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2iv", symbol_prefix);
+ SET_RasterPos2iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2s) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2s", symbol_prefix);
+ SET_RasterPos2s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos2sv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2sv", symbol_prefix);
+ SET_RasterPos2sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3d) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3d", symbol_prefix);
+ SET_RasterPos3d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3dv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3dv", symbol_prefix);
+ SET_RasterPos3dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3f) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3f", symbol_prefix);
+ SET_RasterPos3f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3fv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3fv", symbol_prefix);
+ SET_RasterPos3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3i) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3i", symbol_prefix);
+ SET_RasterPos3i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3iv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3iv", symbol_prefix);
+ SET_RasterPos3iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3s) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3s", symbol_prefix);
+ SET_RasterPos3s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos3sv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3sv", symbol_prefix);
+ SET_RasterPos3sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4d) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4d", symbol_prefix);
+ SET_RasterPos4d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4dv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4dv", symbol_prefix);
+ SET_RasterPos4dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4f) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4f", symbol_prefix);
+ SET_RasterPos4f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4fv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4fv", symbol_prefix);
+ SET_RasterPos4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4i) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4i", symbol_prefix);
+ SET_RasterPos4i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4iv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4iv", symbol_prefix);
+ SET_RasterPos4iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4s) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4s", symbol_prefix);
+ SET_RasterPos4s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RasterPos4sv) {
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4sv", symbol_prefix);
+ SET_RasterPos4sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectd) {
+ snprintf(symboln, sizeof(symboln), "%sRectd", symbol_prefix);
+ SET_Rectd(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectdv) {
+ snprintf(symboln, sizeof(symboln), "%sRectdv", symbol_prefix);
+ SET_Rectdv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectf) {
+ snprintf(symboln, sizeof(symboln), "%sRectf", symbol_prefix);
+ SET_Rectf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectfv) {
+ snprintf(symboln, sizeof(symboln), "%sRectfv", symbol_prefix);
+ SET_Rectfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Recti) {
+ snprintf(symboln, sizeof(symboln), "%sRecti", symbol_prefix);
+ SET_Recti(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectiv) {
+ snprintf(symboln, sizeof(symboln), "%sRectiv", symbol_prefix);
+ SET_Rectiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rects) {
+ snprintf(symboln, sizeof(symboln), "%sRects", symbol_prefix);
+ SET_Rects(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rectsv) {
+ snprintf(symboln, sizeof(symboln), "%sRectsv", symbol_prefix);
+ SET_Rectsv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1d) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1d", symbol_prefix);
+ SET_TexCoord1d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1dv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1dv", symbol_prefix);
+ SET_TexCoord1dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1f) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1f", symbol_prefix);
+ SET_TexCoord1f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1fv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1fv", symbol_prefix);
+ SET_TexCoord1fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1i) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1i", symbol_prefix);
+ SET_TexCoord1i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1iv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1iv", symbol_prefix);
+ SET_TexCoord1iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1s) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1s", symbol_prefix);
+ SET_TexCoord1s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord1sv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1sv", symbol_prefix);
+ SET_TexCoord1sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2d) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2d", symbol_prefix);
+ SET_TexCoord2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2dv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2dv", symbol_prefix);
+ SET_TexCoord2dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2f) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2f", symbol_prefix);
+ SET_TexCoord2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2fv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2fv", symbol_prefix);
+ SET_TexCoord2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2i) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2i", symbol_prefix);
+ SET_TexCoord2i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2iv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2iv", symbol_prefix);
+ SET_TexCoord2iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2s) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2s", symbol_prefix);
+ SET_TexCoord2s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord2sv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2sv", symbol_prefix);
+ SET_TexCoord2sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3d) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3d", symbol_prefix);
+ SET_TexCoord3d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3dv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3dv", symbol_prefix);
+ SET_TexCoord3dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3f) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3f", symbol_prefix);
+ SET_TexCoord3f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3fv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3fv", symbol_prefix);
+ SET_TexCoord3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3i) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3i", symbol_prefix);
+ SET_TexCoord3i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3iv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3iv", symbol_prefix);
+ SET_TexCoord3iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3s) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3s", symbol_prefix);
+ SET_TexCoord3s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord3sv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3sv", symbol_prefix);
+ SET_TexCoord3sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4d) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4d", symbol_prefix);
+ SET_TexCoord4d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4dv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4dv", symbol_prefix);
+ SET_TexCoord4dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4f) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4f", symbol_prefix);
+ SET_TexCoord4f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4fv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4fv", symbol_prefix);
+ SET_TexCoord4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4i) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4i", symbol_prefix);
+ SET_TexCoord4i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4iv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4iv", symbol_prefix);
+ SET_TexCoord4iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4s) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4s", symbol_prefix);
+ SET_TexCoord4s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoord4sv) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4sv", symbol_prefix);
+ SET_TexCoord4sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2d) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2d", symbol_prefix);
+ SET_Vertex2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2dv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2dv", symbol_prefix);
+ SET_Vertex2dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2f) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2f", symbol_prefix);
+ SET_Vertex2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2fv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2fv", symbol_prefix);
+ SET_Vertex2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2i) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2i", symbol_prefix);
+ SET_Vertex2i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2iv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2iv", symbol_prefix);
+ SET_Vertex2iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2s) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2s", symbol_prefix);
+ SET_Vertex2s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex2sv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex2sv", symbol_prefix);
+ SET_Vertex2sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3d) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3d", symbol_prefix);
+ SET_Vertex3d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3dv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3dv", symbol_prefix);
+ SET_Vertex3dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3f) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3f", symbol_prefix);
+ SET_Vertex3f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3fv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3fv", symbol_prefix);
+ SET_Vertex3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3i) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3i", symbol_prefix);
+ SET_Vertex3i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3iv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3iv", symbol_prefix);
+ SET_Vertex3iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3s) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3s", symbol_prefix);
+ SET_Vertex3s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex3sv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex3sv", symbol_prefix);
+ SET_Vertex3sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4d) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4d", symbol_prefix);
+ SET_Vertex4d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4dv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4dv", symbol_prefix);
+ SET_Vertex4dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4f) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4f", symbol_prefix);
+ SET_Vertex4f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4fv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4fv", symbol_prefix);
+ SET_Vertex4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4i) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4i", symbol_prefix);
+ SET_Vertex4i(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4iv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4iv", symbol_prefix);
+ SET_Vertex4iv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4s) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4s", symbol_prefix);
+ SET_Vertex4s(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Vertex4sv) {
+ snprintf(symboln, sizeof(symboln), "%sVertex4sv", symbol_prefix);
+ SET_Vertex4sv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClipPlane) {
+ snprintf(symboln, sizeof(symboln), "%sClipPlane", symbol_prefix);
+ SET_ClipPlane(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorMaterial) {
+ snprintf(symboln, sizeof(symboln), "%sColorMaterial", symbol_prefix);
+ SET_ColorMaterial(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CullFace) {
+ snprintf(symboln, sizeof(symboln), "%sCullFace", symbol_prefix);
+ SET_CullFace(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Fogf) {
+ snprintf(symboln, sizeof(symboln), "%sFogf", symbol_prefix);
+ SET_Fogf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Fogfv) {
+ snprintf(symboln, sizeof(symboln), "%sFogfv", symbol_prefix);
+ SET_Fogfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Fogi) {
+ snprintf(symboln, sizeof(symboln), "%sFogi", symbol_prefix);
+ SET_Fogi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Fogiv) {
+ snprintf(symboln, sizeof(symboln), "%sFogiv", symbol_prefix);
+ SET_Fogiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FrontFace) {
+ snprintf(symboln, sizeof(symboln), "%sFrontFace", symbol_prefix);
+ SET_FrontFace(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Hint) {
+ snprintf(symboln, sizeof(symboln), "%sHint", symbol_prefix);
+ SET_Hint(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Lightf) {
+ snprintf(symboln, sizeof(symboln), "%sLightf", symbol_prefix);
+ SET_Lightf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Lightfv) {
+ snprintf(symboln, sizeof(symboln), "%sLightfv", symbol_prefix);
+ SET_Lightfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Lighti) {
+ snprintf(symboln, sizeof(symboln), "%sLighti", symbol_prefix);
+ SET_Lighti(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Lightiv) {
+ snprintf(symboln, sizeof(symboln), "%sLightiv", symbol_prefix);
+ SET_Lightiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LightModelf) {
+ snprintf(symboln, sizeof(symboln), "%sLightModelf", symbol_prefix);
+ SET_LightModelf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LightModelfv) {
+ snprintf(symboln, sizeof(symboln), "%sLightModelfv", symbol_prefix);
+ SET_LightModelfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LightModeli) {
+ snprintf(symboln, sizeof(symboln), "%sLightModeli", symbol_prefix);
+ SET_LightModeli(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LightModeliv) {
+ snprintf(symboln, sizeof(symboln), "%sLightModeliv", symbol_prefix);
+ SET_LightModeliv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LineStipple) {
+ snprintf(symboln, sizeof(symboln), "%sLineStipple", symbol_prefix);
+ SET_LineStipple(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LineWidth) {
+ snprintf(symboln, sizeof(symboln), "%sLineWidth", symbol_prefix);
+ SET_LineWidth(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Materialf) {
+ snprintf(symboln, sizeof(symboln), "%sMaterialf", symbol_prefix);
+ SET_Materialf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Materialfv) {
+ snprintf(symboln, sizeof(symboln), "%sMaterialfv", symbol_prefix);
+ SET_Materialfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Materiali) {
+ snprintf(symboln, sizeof(symboln), "%sMateriali", symbol_prefix);
+ SET_Materiali(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Materialiv) {
+ snprintf(symboln, sizeof(symboln), "%sMaterialiv", symbol_prefix);
+ SET_Materialiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointSize) {
+ snprintf(symboln, sizeof(symboln), "%sPointSize", symbol_prefix);
+ SET_PointSize(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PolygonMode) {
+ snprintf(symboln, sizeof(symboln), "%sPolygonMode", symbol_prefix);
+ SET_PolygonMode(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PolygonStipple) {
+ snprintf(symboln, sizeof(symboln), "%sPolygonStipple", symbol_prefix);
+ SET_PolygonStipple(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Scissor) {
+ snprintf(symboln, sizeof(symboln), "%sScissor", symbol_prefix);
+ SET_Scissor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ShadeModel) {
+ snprintf(symboln, sizeof(symboln), "%sShadeModel", symbol_prefix);
+ SET_ShadeModel(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterf) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterf", symbol_prefix);
+ SET_TexParameterf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterfv", symbol_prefix);
+ SET_TexParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameteri) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameteri", symbol_prefix);
+ SET_TexParameteri(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameteriv", symbol_prefix);
+ SET_TexParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sTexImage1D", symbol_prefix);
+ SET_TexImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sTexImage2D", symbol_prefix);
+ SET_TexImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexEnvf) {
+ snprintf(symboln, sizeof(symboln), "%sTexEnvf", symbol_prefix);
+ SET_TexEnvf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexEnvfv) {
+ snprintf(symboln, sizeof(symboln), "%sTexEnvfv", symbol_prefix);
+ SET_TexEnvfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexEnvi) {
+ snprintf(symboln, sizeof(symboln), "%sTexEnvi", symbol_prefix);
+ SET_TexEnvi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexEnviv) {
+ snprintf(symboln, sizeof(symboln), "%sTexEnviv", symbol_prefix);
+ SET_TexEnviv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGend) {
+ snprintf(symboln, sizeof(symboln), "%sTexGend", symbol_prefix);
+ SET_TexGend(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGendv) {
+ snprintf(symboln, sizeof(symboln), "%sTexGendv", symbol_prefix);
+ SET_TexGendv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGenf) {
+ snprintf(symboln, sizeof(symboln), "%sTexGenf", symbol_prefix);
+ SET_TexGenf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGenfv) {
+ snprintf(symboln, sizeof(symboln), "%sTexGenfv", symbol_prefix);
+ SET_TexGenfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGeni) {
+ snprintf(symboln, sizeof(symboln), "%sTexGeni", symbol_prefix);
+ SET_TexGeni(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexGeniv) {
+ snprintf(symboln, sizeof(symboln), "%sTexGeniv", symbol_prefix);
+ SET_TexGeniv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FeedbackBuffer) {
+ snprintf(symboln, sizeof(symboln), "%sFeedbackBuffer", symbol_prefix);
+ SET_FeedbackBuffer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SelectBuffer) {
+ snprintf(symboln, sizeof(symboln), "%sSelectBuffer", symbol_prefix);
+ SET_SelectBuffer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RenderMode) {
+ snprintf(symboln, sizeof(symboln), "%sRenderMode", symbol_prefix);
+ SET_RenderMode(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->InitNames) {
+ snprintf(symboln, sizeof(symboln), "%sInitNames", symbol_prefix);
+ SET_InitNames(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadName) {
+ snprintf(symboln, sizeof(symboln), "%sLoadName", symbol_prefix);
+ SET_LoadName(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PassThrough) {
+ snprintf(symboln, sizeof(symboln), "%sPassThrough", symbol_prefix);
+ SET_PassThrough(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PopName) {
+ snprintf(symboln, sizeof(symboln), "%sPopName", symbol_prefix);
+ SET_PopName(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PushName) {
+ snprintf(symboln, sizeof(symboln), "%sPushName", symbol_prefix);
+ SET_PushName(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawBuffer) {
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffer", symbol_prefix);
+ SET_DrawBuffer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Clear) {
+ snprintf(symboln, sizeof(symboln), "%sClear", symbol_prefix);
+ SET_Clear(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearAccum) {
+ snprintf(symboln, sizeof(symboln), "%sClearAccum", symbol_prefix);
+ SET_ClearAccum(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearIndex) {
+ snprintf(symboln, sizeof(symboln), "%sClearIndex", symbol_prefix);
+ SET_ClearIndex(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearColor) {
+ snprintf(symboln, sizeof(symboln), "%sClearColor", symbol_prefix);
+ SET_ClearColor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearStencil) {
+ snprintf(symboln, sizeof(symboln), "%sClearStencil", symbol_prefix);
+ SET_ClearStencil(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearDepth) {
+ snprintf(symboln, sizeof(symboln), "%sClearDepth", symbol_prefix);
+ SET_ClearDepth(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilMask) {
+ snprintf(symboln, sizeof(symboln), "%sStencilMask", symbol_prefix);
+ SET_StencilMask(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorMask) {
+ snprintf(symboln, sizeof(symboln), "%sColorMask", symbol_prefix);
+ SET_ColorMask(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DepthMask) {
+ snprintf(symboln, sizeof(symboln), "%sDepthMask", symbol_prefix);
+ SET_DepthMask(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IndexMask) {
+ snprintf(symboln, sizeof(symboln), "%sIndexMask", symbol_prefix);
+ SET_IndexMask(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Accum) {
+ snprintf(symboln, sizeof(symboln), "%sAccum", symbol_prefix);
+ SET_Accum(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Disable) {
+ snprintf(symboln, sizeof(symboln), "%sDisable", symbol_prefix);
+ SET_Disable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Enable) {
+ snprintf(symboln, sizeof(symboln), "%sEnable", symbol_prefix);
+ SET_Enable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Finish) {
+ snprintf(symboln, sizeof(symboln), "%sFinish", symbol_prefix);
+ SET_Finish(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Flush) {
+ snprintf(symboln, sizeof(symboln), "%sFlush", symbol_prefix);
+ SET_Flush(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PopAttrib) {
+ snprintf(symboln, sizeof(symboln), "%sPopAttrib", symbol_prefix);
+ SET_PopAttrib(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PushAttrib) {
+ snprintf(symboln, sizeof(symboln), "%sPushAttrib", symbol_prefix);
+ SET_PushAttrib(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Map1d) {
+ snprintf(symboln, sizeof(symboln), "%sMap1d", symbol_prefix);
+ SET_Map1d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Map1f) {
+ snprintf(symboln, sizeof(symboln), "%sMap1f", symbol_prefix);
+ SET_Map1f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Map2d) {
+ snprintf(symboln, sizeof(symboln), "%sMap2d", symbol_prefix);
+ SET_Map2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Map2f) {
+ snprintf(symboln, sizeof(symboln), "%sMap2f", symbol_prefix);
+ SET_Map2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapGrid1d) {
+ snprintf(symboln, sizeof(symboln), "%sMapGrid1d", symbol_prefix);
+ SET_MapGrid1d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapGrid1f) {
+ snprintf(symboln, sizeof(symboln), "%sMapGrid1f", symbol_prefix);
+ SET_MapGrid1f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapGrid2d) {
+ snprintf(symboln, sizeof(symboln), "%sMapGrid2d", symbol_prefix);
+ SET_MapGrid2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapGrid2f) {
+ snprintf(symboln, sizeof(symboln), "%sMapGrid2f", symbol_prefix);
+ SET_MapGrid2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord1d) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1d", symbol_prefix);
+ SET_EvalCoord1d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord1dv) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1dv", symbol_prefix);
+ SET_EvalCoord1dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord1f) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1f", symbol_prefix);
+ SET_EvalCoord1f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord1fv) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1fv", symbol_prefix);
+ SET_EvalCoord1fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord2d) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2d", symbol_prefix);
+ SET_EvalCoord2d(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord2dv) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2dv", symbol_prefix);
+ SET_EvalCoord2dv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord2f) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2f", symbol_prefix);
+ SET_EvalCoord2f(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalCoord2fv) {
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2fv", symbol_prefix);
+ SET_EvalCoord2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalMesh1) {
+ snprintf(symboln, sizeof(symboln), "%sEvalMesh1", symbol_prefix);
+ SET_EvalMesh1(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalPoint1) {
+ snprintf(symboln, sizeof(symboln), "%sEvalPoint1", symbol_prefix);
+ SET_EvalPoint1(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalMesh2) {
+ snprintf(symboln, sizeof(symboln), "%sEvalMesh2", symbol_prefix);
+ SET_EvalMesh2(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EvalPoint2) {
+ snprintf(symboln, sizeof(symboln), "%sEvalPoint2", symbol_prefix);
+ SET_EvalPoint2(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AlphaFunc) {
+ snprintf(symboln, sizeof(symboln), "%sAlphaFunc", symbol_prefix);
+ SET_AlphaFunc(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFunc) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFunc", symbol_prefix);
+ SET_BlendFunc(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LogicOp) {
+ snprintf(symboln, sizeof(symboln), "%sLogicOp", symbol_prefix);
+ SET_LogicOp(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilFunc) {
+ snprintf(symboln, sizeof(symboln), "%sStencilFunc", symbol_prefix);
+ SET_StencilFunc(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilOp) {
+ snprintf(symboln, sizeof(symboln), "%sStencilOp", symbol_prefix);
+ SET_StencilOp(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DepthFunc) {
+ snprintf(symboln, sizeof(symboln), "%sDepthFunc", symbol_prefix);
+ SET_DepthFunc(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelZoom) {
+ snprintf(symboln, sizeof(symboln), "%sPixelZoom", symbol_prefix);
+ SET_PixelZoom(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTransferf) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTransferf", symbol_prefix);
+ SET_PixelTransferf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTransferi) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTransferi", symbol_prefix);
+ SET_PixelTransferi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelStoref) {
+ snprintf(symboln, sizeof(symboln), "%sPixelStoref", symbol_prefix);
+ SET_PixelStoref(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelStorei) {
+ snprintf(symboln, sizeof(symboln), "%sPixelStorei", symbol_prefix);
+ SET_PixelStorei(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelMapfv) {
+ snprintf(symboln, sizeof(symboln), "%sPixelMapfv", symbol_prefix);
+ SET_PixelMapfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelMapuiv) {
+ snprintf(symboln, sizeof(symboln), "%sPixelMapuiv", symbol_prefix);
+ SET_PixelMapuiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelMapusv) {
+ snprintf(symboln, sizeof(symboln), "%sPixelMapusv", symbol_prefix);
+ SET_PixelMapusv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ReadBuffer) {
+ snprintf(symboln, sizeof(symboln), "%sReadBuffer", symbol_prefix);
+ SET_ReadBuffer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyPixels) {
+ snprintf(symboln, sizeof(symboln), "%sCopyPixels", symbol_prefix);
+ SET_CopyPixels(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ReadPixels) {
+ snprintf(symboln, sizeof(symboln), "%sReadPixels", symbol_prefix);
+ SET_ReadPixels(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawPixels) {
+ snprintf(symboln, sizeof(symboln), "%sDrawPixels", symbol_prefix);
+ SET_DrawPixels(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBooleanv) {
+ snprintf(symboln, sizeof(symboln), "%sGetBooleanv", symbol_prefix);
+ SET_GetBooleanv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetClipPlane) {
+ snprintf(symboln, sizeof(symboln), "%sGetClipPlane", symbol_prefix);
+ SET_GetClipPlane(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetDoublev) {
+ snprintf(symboln, sizeof(symboln), "%sGetDoublev", symbol_prefix);
+ SET_GetDoublev(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetError) {
+ snprintf(symboln, sizeof(symboln), "%sGetError", symbol_prefix);
+ SET_GetError(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFloatv) {
+ snprintf(symboln, sizeof(symboln), "%sGetFloatv", symbol_prefix);
+ SET_GetFloatv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetIntegerv) {
+ snprintf(symboln, sizeof(symboln), "%sGetIntegerv", symbol_prefix);
+ SET_GetIntegerv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetLightfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetLightfv", symbol_prefix);
+ SET_GetLightfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetLightiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetLightiv", symbol_prefix);
+ SET_GetLightiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMapdv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMapdv", symbol_prefix);
+ SET_GetMapdv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMapfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMapfv", symbol_prefix);
+ SET_GetMapfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMapiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMapiv", symbol_prefix);
+ SET_GetMapiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMaterialfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMaterialfv", symbol_prefix);
+ SET_GetMaterialfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMaterialiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMaterialiv", symbol_prefix);
+ SET_GetMaterialiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPixelMapfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapfv", symbol_prefix);
+ SET_GetPixelMapfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPixelMapuiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapuiv", symbol_prefix);
+ SET_GetPixelMapuiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPixelMapusv) {
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapusv", symbol_prefix);
+ SET_GetPixelMapusv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPolygonStipple) {
+ snprintf(symboln, sizeof(symboln), "%sGetPolygonStipple", symbol_prefix);
+ SET_GetPolygonStipple(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetString) {
+ snprintf(symboln, sizeof(symboln), "%sGetString", symbol_prefix);
+ SET_GetString(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexEnvfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexEnvfv", symbol_prefix);
+ SET_GetTexEnvfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexEnviv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexEnviv", symbol_prefix);
+ SET_GetTexEnviv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexGendv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexGendv", symbol_prefix);
+ SET_GetTexGendv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexGenfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexGenfv", symbol_prefix);
+ SET_GetTexGenfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexGeniv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexGeniv", symbol_prefix);
+ SET_GetTexGeniv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexImage) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexImage", symbol_prefix);
+ SET_GetTexImage(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterfv", symbol_prefix);
+ SET_GetTexParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameteriv", symbol_prefix);
+ SET_GetTexParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexLevelParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameterfv", symbol_prefix);
+ SET_GetTexLevelParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexLevelParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameteriv", symbol_prefix);
+ SET_GetTexLevelParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsEnabled) {
+ snprintf(symboln, sizeof(symboln), "%sIsEnabled", symbol_prefix);
+ SET_IsEnabled(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsList) {
+ snprintf(symboln, sizeof(symboln), "%sIsList", symbol_prefix);
+ SET_IsList(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DepthRange) {
+ snprintf(symboln, sizeof(symboln), "%sDepthRange", symbol_prefix);
+ SET_DepthRange(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Frustum) {
+ snprintf(symboln, sizeof(symboln), "%sFrustum", symbol_prefix);
+ SET_Frustum(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadIdentity) {
+ snprintf(symboln, sizeof(symboln), "%sLoadIdentity", symbol_prefix);
+ SET_LoadIdentity(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadMatrixf) {
+ snprintf(symboln, sizeof(symboln), "%sLoadMatrixf", symbol_prefix);
+ SET_LoadMatrixf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadMatrixd) {
+ snprintf(symboln, sizeof(symboln), "%sLoadMatrixd", symbol_prefix);
+ SET_LoadMatrixd(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MatrixMode) {
+ snprintf(symboln, sizeof(symboln), "%sMatrixMode", symbol_prefix);
+ SET_MatrixMode(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultMatrixf) {
+ snprintf(symboln, sizeof(symboln), "%sMultMatrixf", symbol_prefix);
+ SET_MultMatrixf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultMatrixd) {
+ snprintf(symboln, sizeof(symboln), "%sMultMatrixd", symbol_prefix);
+ SET_MultMatrixd(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Ortho) {
+ snprintf(symboln, sizeof(symboln), "%sOrtho", symbol_prefix);
+ SET_Ortho(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PopMatrix) {
+ snprintf(symboln, sizeof(symboln), "%sPopMatrix", symbol_prefix);
+ SET_PopMatrix(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PushMatrix) {
+ snprintf(symboln, sizeof(symboln), "%sPushMatrix", symbol_prefix);
+ SET_PushMatrix(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rotated) {
+ snprintf(symboln, sizeof(symboln), "%sRotated", symbol_prefix);
+ SET_Rotated(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Rotatef) {
+ snprintf(symboln, sizeof(symboln), "%sRotatef", symbol_prefix);
+ SET_Rotatef(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Scaled) {
+ snprintf(symboln, sizeof(symboln), "%sScaled", symbol_prefix);
+ SET_Scaled(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Scalef) {
+ snprintf(symboln, sizeof(symboln), "%sScalef", symbol_prefix);
+ SET_Scalef(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Translated) {
+ snprintf(symboln, sizeof(symboln), "%sTranslated", symbol_prefix);
+ SET_Translated(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Translatef) {
+ snprintf(symboln, sizeof(symboln), "%sTranslatef", symbol_prefix);
+ SET_Translatef(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Viewport) {
+ snprintf(symboln, sizeof(symboln), "%sViewport", symbol_prefix);
+ SET_Viewport(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ArrayElement) {
+ snprintf(symboln, sizeof(symboln), "%sArrayElement", symbol_prefix);
+ SET_ArrayElement(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ArrayElement) {
+ snprintf(symboln, sizeof(symboln), "%sArrayElementEXT", symbol_prefix);
+ SET_ArrayElement(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindTexture) {
+ snprintf(symboln, sizeof(symboln), "%sBindTexture", symbol_prefix);
+ SET_BindTexture(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindTexture) {
+ snprintf(symboln, sizeof(symboln), "%sBindTextureEXT", symbol_prefix);
+ SET_BindTexture(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorPointer) {
+ snprintf(symboln, sizeof(symboln), "%sColorPointer", symbol_prefix);
+ SET_ColorPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DisableClientState) {
+ snprintf(symboln, sizeof(symboln), "%sDisableClientState", symbol_prefix);
+ SET_DisableClientState(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawArrays) {
+ snprintf(symboln, sizeof(symboln), "%sDrawArrays", symbol_prefix);
+ SET_DrawArrays(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawArrays) {
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysEXT", symbol_prefix);
+ SET_DrawArrays(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElements) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElements", symbol_prefix);
+ SET_DrawElements(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EdgeFlagPointer) {
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointer", symbol_prefix);
+ SET_EdgeFlagPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EnableClientState) {
+ snprintf(symboln, sizeof(symboln), "%sEnableClientState", symbol_prefix);
+ SET_EnableClientState(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IndexPointer) {
+ snprintf(symboln, sizeof(symboln), "%sIndexPointer", symbol_prefix);
+ SET_IndexPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexub) {
+ snprintf(symboln, sizeof(symboln), "%sIndexub", symbol_prefix);
+ SET_Indexub(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Indexubv) {
+ snprintf(symboln, sizeof(symboln), "%sIndexubv", symbol_prefix);
+ SET_Indexubv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->InterleavedArrays) {
+ snprintf(symboln, sizeof(symboln), "%sInterleavedArrays", symbol_prefix);
+ SET_InterleavedArrays(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->NormalPointer) {
+ snprintf(symboln, sizeof(symboln), "%sNormalPointer", symbol_prefix);
+ SET_NormalPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PolygonOffset) {
+ snprintf(symboln, sizeof(symboln), "%sPolygonOffset", symbol_prefix);
+ SET_PolygonOffset(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoordPointer) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoordPointer", symbol_prefix);
+ SET_TexCoordPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexPointer) {
+ snprintf(symboln, sizeof(symboln), "%sVertexPointer", symbol_prefix);
+ SET_VertexPointer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AreTexturesResident) {
+ snprintf(symboln, sizeof(symboln), "%sAreTexturesResident", symbol_prefix);
+ SET_AreTexturesResident(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AreTexturesResident) {
+ snprintf(symboln, sizeof(symboln), "%sAreTexturesResidentEXT", symbol_prefix);
+ SET_AreTexturesResident(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage1D", symbol_prefix);
+ SET_CopyTexImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage1DEXT", symbol_prefix);
+ SET_CopyTexImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage2D", symbol_prefix);
+ SET_CopyTexImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage2DEXT", symbol_prefix);
+ SET_CopyTexImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1D", symbol_prefix);
+ SET_CopyTexSubImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1DEXT", symbol_prefix);
+ SET_CopyTexSubImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2D", symbol_prefix);
+ SET_CopyTexSubImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2DEXT", symbol_prefix);
+ SET_CopyTexSubImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteTextures) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteTextures", symbol_prefix);
+ SET_DeleteTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteTextures) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteTexturesEXT", symbol_prefix);
+ SET_DeleteTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenTextures) {
+ snprintf(symboln, sizeof(symboln), "%sGenTextures", symbol_prefix);
+ SET_GenTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenTextures) {
+ snprintf(symboln, sizeof(symboln), "%sGenTexturesEXT", symbol_prefix);
+ SET_GenTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPointerv) {
+ snprintf(symboln, sizeof(symboln), "%sGetPointerv", symbol_prefix);
+ SET_GetPointerv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPointerv) {
+ snprintf(symboln, sizeof(symboln), "%sGetPointervEXT", symbol_prefix);
+ SET_GetPointerv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsTexture) {
+ snprintf(symboln, sizeof(symboln), "%sIsTexture", symbol_prefix);
+ SET_IsTexture(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsTexture) {
+ snprintf(symboln, sizeof(symboln), "%sIsTextureEXT", symbol_prefix);
+ SET_IsTexture(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PrioritizeTextures) {
+ snprintf(symboln, sizeof(symboln), "%sPrioritizeTextures", symbol_prefix);
+ SET_PrioritizeTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PrioritizeTextures) {
+ snprintf(symboln, sizeof(symboln), "%sPrioritizeTexturesEXT", symbol_prefix);
+ SET_PrioritizeTextures(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage1D", symbol_prefix);
+ SET_TexSubImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage1D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage1DEXT", symbol_prefix);
+ SET_TexSubImage1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage2D", symbol_prefix);
+ SET_TexSubImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage2D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage2DEXT", symbol_prefix);
+ SET_TexSubImage2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PopClientAttrib) {
+ snprintf(symboln, sizeof(symboln), "%sPopClientAttrib", symbol_prefix);
+ SET_PopClientAttrib(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PushClientAttrib) {
+ snprintf(symboln, sizeof(symboln), "%sPushClientAttrib", symbol_prefix);
+ SET_PushClientAttrib(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendColor) {
+ snprintf(symboln, sizeof(symboln), "%sBlendColor", symbol_prefix);
+ SET_BlendColor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendColor) {
+ snprintf(symboln, sizeof(symboln), "%sBlendColorEXT", symbol_prefix);
+ SET_BlendColor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquation) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquation", symbol_prefix);
+ SET_BlendEquation(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquation) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationEXT", symbol_prefix);
+ SET_BlendEquation(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawRangeElements) {
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElements", symbol_prefix);
+ SET_DrawRangeElements(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawRangeElements) {
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsEXT", symbol_prefix);
+ SET_DrawRangeElements(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sColorTable", symbol_prefix);
+ SET_ColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableSGI", symbol_prefix);
+ SET_ColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableEXT", symbol_prefix);
+ SET_ColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTableParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterfv", symbol_prefix);
+ SET_ColorTableParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTableParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterfvSGI", symbol_prefix);
+ SET_ColorTableParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTableParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameteriv", symbol_prefix);
+ SET_ColorTableParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorTableParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterivSGI", symbol_prefix);
+ SET_ColorTableParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sCopyColorTable", symbol_prefix);
+ SET_CopyColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sCopyColorTableSGI", symbol_prefix);
+ SET_CopyColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTable", symbol_prefix);
+ SET_GetColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableSGI", symbol_prefix);
+ SET_GetColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTable) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableEXT", symbol_prefix);
+ SET_GetColorTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfv", symbol_prefix);
+ SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvSGI", symbol_prefix);
+ SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvEXT", symbol_prefix);
+ SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameteriv", symbol_prefix);
+ SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivSGI", symbol_prefix);
+ SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetColorTableParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivEXT", symbol_prefix);
+ SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorSubTable) {
+ snprintf(symboln, sizeof(symboln), "%sColorSubTable", symbol_prefix);
+ SET_ColorSubTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorSubTable) {
+ snprintf(symboln, sizeof(symboln), "%sColorSubTableEXT", symbol_prefix);
+ SET_ColorSubTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyColorSubTable) {
+ snprintf(symboln, sizeof(symboln), "%sCopyColorSubTable", symbol_prefix);
+ SET_CopyColorSubTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyColorSubTable) {
+ snprintf(symboln, sizeof(symboln), "%sCopyColorSubTableEXT", symbol_prefix);
+ SET_CopyColorSubTable(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionFilter1D) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1D", symbol_prefix);
+ SET_ConvolutionFilter1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionFilter1D) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1DEXT", symbol_prefix);
+ SET_ConvolutionFilter1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2D", symbol_prefix);
+ SET_ConvolutionFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2DEXT", symbol_prefix);
+ SET_ConvolutionFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameterf) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterf", symbol_prefix);
+ SET_ConvolutionParameterf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameterf) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfEXT", symbol_prefix);
+ SET_ConvolutionParameterf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfv", symbol_prefix);
+ SET_ConvolutionParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfvEXT", symbol_prefix);
+ SET_ConvolutionParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameteri) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteri", symbol_prefix);
+ SET_ConvolutionParameteri(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameteri) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriEXT", symbol_prefix);
+ SET_ConvolutionParameteri(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriv", symbol_prefix);
+ SET_ConvolutionParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ConvolutionParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterivEXT", symbol_prefix);
+ SET_ConvolutionParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyConvolutionFilter1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1D", symbol_prefix);
+ SET_CopyConvolutionFilter1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyConvolutionFilter1D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1DEXT", symbol_prefix);
+ SET_CopyConvolutionFilter1D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyConvolutionFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2D", symbol_prefix);
+ SET_CopyConvolutionFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyConvolutionFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2DEXT", symbol_prefix);
+ SET_CopyConvolutionFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionFilter) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilter", symbol_prefix);
+ SET_GetConvolutionFilter(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionFilter) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilterEXT", symbol_prefix);
+ SET_GetConvolutionFilter(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfv", symbol_prefix);
+ SET_GetConvolutionParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfvEXT", symbol_prefix);
+ SET_GetConvolutionParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameteriv", symbol_prefix);
+ SET_GetConvolutionParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetConvolutionParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterivEXT", symbol_prefix);
+ SET_GetConvolutionParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSeparableFilter) {
+ snprintf(symboln, sizeof(symboln), "%sGetSeparableFilter", symbol_prefix);
+ SET_GetSeparableFilter(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSeparableFilter) {
+ snprintf(symboln, sizeof(symboln), "%sGetSeparableFilterEXT", symbol_prefix);
+ SET_GetSeparableFilter(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SeparableFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sSeparableFilter2D", symbol_prefix);
+ SET_SeparableFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SeparableFilter2D) {
+ snprintf(symboln, sizeof(symboln), "%sSeparableFilter2DEXT", symbol_prefix);
+ SET_SeparableFilter2D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogram) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogram", symbol_prefix);
+ SET_GetHistogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogram) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramEXT", symbol_prefix);
+ SET_GetHistogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogramParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfv", symbol_prefix);
+ SET_GetHistogramParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogramParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfvEXT", symbol_prefix);
+ SET_GetHistogramParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogramParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameteriv", symbol_prefix);
+ SET_GetHistogramParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHistogramParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterivEXT", symbol_prefix);
+ SET_GetHistogramParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmax) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmax", symbol_prefix);
+ SET_GetMinmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmax) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxEXT", symbol_prefix);
+ SET_GetMinmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmaxParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfv", symbol_prefix);
+ SET_GetMinmaxParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmaxParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfvEXT", symbol_prefix);
+ SET_GetMinmaxParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmaxParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameteriv", symbol_prefix);
+ SET_GetMinmaxParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetMinmaxParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterivEXT", symbol_prefix);
+ SET_GetMinmaxParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Histogram) {
+ snprintf(symboln, sizeof(symboln), "%sHistogram", symbol_prefix);
+ SET_Histogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Histogram) {
+ snprintf(symboln, sizeof(symboln), "%sHistogramEXT", symbol_prefix);
+ SET_Histogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Minmax) {
+ snprintf(symboln, sizeof(symboln), "%sMinmax", symbol_prefix);
+ SET_Minmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Minmax) {
+ snprintf(symboln, sizeof(symboln), "%sMinmaxEXT", symbol_prefix);
+ SET_Minmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResetHistogram) {
+ snprintf(symboln, sizeof(symboln), "%sResetHistogram", symbol_prefix);
+ SET_ResetHistogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResetHistogram) {
+ snprintf(symboln, sizeof(symboln), "%sResetHistogramEXT", symbol_prefix);
+ SET_ResetHistogram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResetMinmax) {
+ snprintf(symboln, sizeof(symboln), "%sResetMinmax", symbol_prefix);
+ SET_ResetMinmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResetMinmax) {
+ snprintf(symboln, sizeof(symboln), "%sResetMinmaxEXT", symbol_prefix);
+ SET_ResetMinmax(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sTexImage3D", symbol_prefix);
+ SET_TexImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sTexImage3DEXT", symbol_prefix);
+ SET_TexImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage3D", symbol_prefix);
+ SET_TexSubImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexSubImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage3DEXT", symbol_prefix);
+ SET_TexSubImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3D", symbol_prefix);
+ SET_CopyTexSubImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyTexSubImage3D) {
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3DEXT", symbol_prefix);
+ SET_CopyTexSubImage3D(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ActiveTextureARB) {
+ snprintf(symboln, sizeof(symboln), "%sActiveTexture", symbol_prefix);
+ SET_ActiveTextureARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ActiveTextureARB) {
+ snprintf(symboln, sizeof(symboln), "%sActiveTextureARB", symbol_prefix);
+ SET_ActiveTextureARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClientActiveTextureARB) {
+ snprintf(symboln, sizeof(symboln), "%sClientActiveTexture", symbol_prefix);
+ SET_ClientActiveTextureARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClientActiveTextureARB) {
+ snprintf(symboln, sizeof(symboln), "%sClientActiveTextureARB", symbol_prefix);
+ SET_ClientActiveTextureARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1d", symbol_prefix);
+ SET_MultiTexCoord1dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dARB", symbol_prefix);
+ SET_MultiTexCoord1dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dv", symbol_prefix);
+ SET_MultiTexCoord1dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dvARB", symbol_prefix);
+ SET_MultiTexCoord1dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1f", symbol_prefix);
+ SET_MultiTexCoord1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fARB", symbol_prefix);
+ SET_MultiTexCoord1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fv", symbol_prefix);
+ SET_MultiTexCoord1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fvARB", symbol_prefix);
+ SET_MultiTexCoord1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1i", symbol_prefix);
+ SET_MultiTexCoord1iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iARB", symbol_prefix);
+ SET_MultiTexCoord1iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iv", symbol_prefix);
+ SET_MultiTexCoord1ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1ivARB", symbol_prefix);
+ SET_MultiTexCoord1ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1s", symbol_prefix);
+ SET_MultiTexCoord1sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sARB", symbol_prefix);
+ SET_MultiTexCoord1sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sv", symbol_prefix);
+ SET_MultiTexCoord1svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord1svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1svARB", symbol_prefix);
+ SET_MultiTexCoord1svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2d", symbol_prefix);
+ SET_MultiTexCoord2dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dARB", symbol_prefix);
+ SET_MultiTexCoord2dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dv", symbol_prefix);
+ SET_MultiTexCoord2dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dvARB", symbol_prefix);
+ SET_MultiTexCoord2dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2f", symbol_prefix);
+ SET_MultiTexCoord2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fARB", symbol_prefix);
+ SET_MultiTexCoord2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fv", symbol_prefix);
+ SET_MultiTexCoord2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fvARB", symbol_prefix);
+ SET_MultiTexCoord2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2i", symbol_prefix);
+ SET_MultiTexCoord2iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iARB", symbol_prefix);
+ SET_MultiTexCoord2iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iv", symbol_prefix);
+ SET_MultiTexCoord2ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2ivARB", symbol_prefix);
+ SET_MultiTexCoord2ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2s", symbol_prefix);
+ SET_MultiTexCoord2sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sARB", symbol_prefix);
+ SET_MultiTexCoord2sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sv", symbol_prefix);
+ SET_MultiTexCoord2svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord2svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2svARB", symbol_prefix);
+ SET_MultiTexCoord2svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3d", symbol_prefix);
+ SET_MultiTexCoord3dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dARB", symbol_prefix);
+ SET_MultiTexCoord3dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dv", symbol_prefix);
+ SET_MultiTexCoord3dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dvARB", symbol_prefix);
+ SET_MultiTexCoord3dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3f", symbol_prefix);
+ SET_MultiTexCoord3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fARB", symbol_prefix);
+ SET_MultiTexCoord3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fv", symbol_prefix);
+ SET_MultiTexCoord3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fvARB", symbol_prefix);
+ SET_MultiTexCoord3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3i", symbol_prefix);
+ SET_MultiTexCoord3iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iARB", symbol_prefix);
+ SET_MultiTexCoord3iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iv", symbol_prefix);
+ SET_MultiTexCoord3ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3ivARB", symbol_prefix);
+ SET_MultiTexCoord3ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3s", symbol_prefix);
+ SET_MultiTexCoord3sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sARB", symbol_prefix);
+ SET_MultiTexCoord3sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sv", symbol_prefix);
+ SET_MultiTexCoord3svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord3svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3svARB", symbol_prefix);
+ SET_MultiTexCoord3svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4d", symbol_prefix);
+ SET_MultiTexCoord4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dARB", symbol_prefix);
+ SET_MultiTexCoord4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dv", symbol_prefix);
+ SET_MultiTexCoord4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dvARB", symbol_prefix);
+ SET_MultiTexCoord4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4f", symbol_prefix);
+ SET_MultiTexCoord4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fARB", symbol_prefix);
+ SET_MultiTexCoord4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fv", symbol_prefix);
+ SET_MultiTexCoord4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fvARB", symbol_prefix);
+ SET_MultiTexCoord4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4i", symbol_prefix);
+ SET_MultiTexCoord4iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4iARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iARB", symbol_prefix);
+ SET_MultiTexCoord4iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iv", symbol_prefix);
+ SET_MultiTexCoord4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4ivARB", symbol_prefix);
+ SET_MultiTexCoord4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4s", symbol_prefix);
+ SET_MultiTexCoord4sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4sARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sARB", symbol_prefix);
+ SET_MultiTexCoord4sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sv", symbol_prefix);
+ SET_MultiTexCoord4svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiTexCoord4svARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4svARB", symbol_prefix);
+ SET_MultiTexCoord4svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AttachShader) {
+ snprintf(symboln, sizeof(symboln), "%sAttachShader", symbol_prefix);
+ SET_AttachShader(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CreateProgram) {
+ snprintf(symboln, sizeof(symboln), "%sCreateProgram", symbol_prefix);
+ SET_CreateProgram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CreateShader) {
+ snprintf(symboln, sizeof(symboln), "%sCreateShader", symbol_prefix);
+ SET_CreateShader(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteProgram) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgram", symbol_prefix);
+ SET_DeleteProgram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteShader) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteShader", symbol_prefix);
+ SET_DeleteShader(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DetachShader) {
+ snprintf(symboln, sizeof(symboln), "%sDetachShader", symbol_prefix);
+ SET_DetachShader(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetAttachedShaders) {
+ snprintf(symboln, sizeof(symboln), "%sGetAttachedShaders", symbol_prefix);
+ SET_GetAttachedShaders(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramInfoLog) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramInfoLog", symbol_prefix);
+ SET_GetProgramInfoLog(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramiv", symbol_prefix);
+ SET_GetProgramiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetShaderInfoLog) {
+ snprintf(symboln, sizeof(symboln), "%sGetShaderInfoLog", symbol_prefix);
+ SET_GetShaderInfoLog(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetShaderiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetShaderiv", symbol_prefix);
+ SET_GetShaderiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsProgram) {
+ snprintf(symboln, sizeof(symboln), "%sIsProgram", symbol_prefix);
+ SET_IsProgram(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsShader) {
+ snprintf(symboln, sizeof(symboln), "%sIsShader", symbol_prefix);
+ SET_IsShader(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilFuncSeparate) {
+ snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparate", symbol_prefix);
+ SET_StencilFuncSeparate(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilMaskSeparate) {
+ snprintf(symboln, sizeof(symboln), "%sStencilMaskSeparate", symbol_prefix);
+ SET_StencilMaskSeparate(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilOpSeparate) {
+ snprintf(symboln, sizeof(symboln), "%sStencilOpSeparate", symbol_prefix);
+ SET_StencilOpSeparate(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilOpSeparate) {
+ snprintf(symboln, sizeof(symboln), "%sStencilOpSeparateATI", symbol_prefix);
+ SET_StencilOpSeparate(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix2x3fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x3fv", symbol_prefix);
+ SET_UniformMatrix2x3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix2x4fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x4fv", symbol_prefix);
+ SET_UniformMatrix2x4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix3x2fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x2fv", symbol_prefix);
+ SET_UniformMatrix3x2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix3x4fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x4fv", symbol_prefix);
+ SET_UniformMatrix3x4fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix4x2fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x2fv", symbol_prefix);
+ SET_UniformMatrix4x2fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix4x3fv) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x3fv", symbol_prefix);
+ SET_UniformMatrix4x3fv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClampColor) {
+ snprintf(symboln, sizeof(symboln), "%sClampColor", symbol_prefix);
+ SET_ClampColor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearBufferfi) {
+ snprintf(symboln, sizeof(symboln), "%sClearBufferfi", symbol_prefix);
+ SET_ClearBufferfi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearBufferfv) {
+ snprintf(symboln, sizeof(symboln), "%sClearBufferfv", symbol_prefix);
+ SET_ClearBufferfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearBufferiv) {
+ snprintf(symboln, sizeof(symboln), "%sClearBufferiv", symbol_prefix);
+ SET_ClearBufferiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearBufferuiv) {
+ snprintf(symboln, sizeof(symboln), "%sClearBufferuiv", symbol_prefix);
+ SET_ClearBufferuiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetStringi) {
+ snprintf(symboln, sizeof(symboln), "%sGetStringi", symbol_prefix);
+ SET_GetStringi(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexBuffer) {
+ snprintf(symboln, sizeof(symboln), "%sTexBuffer", symbol_prefix);
+ SET_TexBuffer(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture", symbol_prefix);
+ SET_FramebufferTexture(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferParameteri64v) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameteri64v", symbol_prefix);
+ SET_GetBufferParameteri64v(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetInteger64i_v) {
+ snprintf(symboln, sizeof(symboln), "%sGetInteger64i_v", symbol_prefix);
+ SET_GetInteger64i_v(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribDivisor) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisor", symbol_prefix);
+ SET_VertexAttribDivisor(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadTransposeMatrixdARB) {
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixd", symbol_prefix);
+ SET_LoadTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadTransposeMatrixdARB) {
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixdARB", symbol_prefix);
+ SET_LoadTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadTransposeMatrixfARB) {
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixf", symbol_prefix);
+ SET_LoadTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadTransposeMatrixfARB) {
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixfARB", symbol_prefix);
+ SET_LoadTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultTransposeMatrixdARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixd", symbol_prefix);
+ SET_MultTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultTransposeMatrixdARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixdARB", symbol_prefix);
+ SET_MultTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultTransposeMatrixfARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixf", symbol_prefix);
+ SET_MultTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultTransposeMatrixfARB) {
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixfARB", symbol_prefix);
+ SET_MultTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SampleCoverageARB) {
+ snprintf(symboln, sizeof(symboln), "%sSampleCoverage", symbol_prefix);
+ SET_SampleCoverageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SampleCoverageARB) {
+ snprintf(symboln, sizeof(symboln), "%sSampleCoverageARB", symbol_prefix);
+ SET_SampleCoverageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage1DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1D", symbol_prefix);
+ SET_CompressedTexImage1DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage1DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1DARB", symbol_prefix);
+ SET_CompressedTexImage1DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage2DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2D", symbol_prefix);
+ SET_CompressedTexImage2DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage2DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2DARB", symbol_prefix);
+ SET_CompressedTexImage2DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage3DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3D", symbol_prefix);
+ SET_CompressedTexImage3DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexImage3DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3DARB", symbol_prefix);
+ SET_CompressedTexImage3DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage1DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1D", symbol_prefix);
+ SET_CompressedTexSubImage1DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage1DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1DARB", symbol_prefix);
+ SET_CompressedTexSubImage1DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage2DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2D", symbol_prefix);
+ SET_CompressedTexSubImage2DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage2DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2DARB", symbol_prefix);
+ SET_CompressedTexSubImage2DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage3DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3D", symbol_prefix);
+ SET_CompressedTexSubImage3DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompressedTexSubImage3DARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3DARB", symbol_prefix);
+ SET_CompressedTexSubImage3DARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCompressedTexImageARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImage", symbol_prefix);
+ SET_GetCompressedTexImageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCompressedTexImageARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImageARB", symbol_prefix);
+ SET_GetCompressedTexImageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DisableVertexAttribArrayARB) {
+ snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArray", symbol_prefix);
+ SET_DisableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DisableVertexAttribArrayARB) {
+ snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArrayARB", symbol_prefix);
+ SET_DisableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EnableVertexAttribArrayARB) {
+ snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArray", symbol_prefix);
+ SET_EnableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EnableVertexAttribArrayARB) {
+ snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArrayARB", symbol_prefix);
+ SET_EnableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramEnvParameterdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterdvARB", symbol_prefix);
+ SET_GetProgramEnvParameterdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramEnvParameterfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterfvARB", symbol_prefix);
+ SET_GetProgramEnvParameterfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramLocalParameterdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterdvARB", symbol_prefix);
+ SET_GetProgramLocalParameterdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramLocalParameterfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterfvARB", symbol_prefix);
+ SET_GetProgramLocalParameterfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramStringARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramStringARB", symbol_prefix);
+ SET_GetProgramStringARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramivARB", symbol_prefix);
+ SET_GetProgramivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdv", symbol_prefix);
+ SET_GetVertexAttribdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvARB", symbol_prefix);
+ SET_GetVertexAttribdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfv", symbol_prefix);
+ SET_GetVertexAttribfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvARB", symbol_prefix);
+ SET_GetVertexAttribfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribiv", symbol_prefix);
+ SET_GetVertexAttribivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivARB", symbol_prefix);
+ SET_GetVertexAttribivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dARB", symbol_prefix);
+ SET_ProgramEnvParameter4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4dNV", symbol_prefix);
+ SET_ProgramEnvParameter4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dvARB", symbol_prefix);
+ SET_ProgramEnvParameter4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4dvNV", symbol_prefix);
+ SET_ProgramEnvParameter4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fARB", symbol_prefix);
+ SET_ProgramEnvParameter4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4fNV", symbol_prefix);
+ SET_ProgramEnvParameter4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fvARB", symbol_prefix);
+ SET_ProgramEnvParameter4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameter4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4fvNV", symbol_prefix);
+ SET_ProgramEnvParameter4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramLocalParameter4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dARB", symbol_prefix);
+ SET_ProgramLocalParameter4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramLocalParameter4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dvARB", symbol_prefix);
+ SET_ProgramLocalParameter4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramLocalParameter4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fARB", symbol_prefix);
+ SET_ProgramLocalParameter4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramLocalParameter4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fvARB", symbol_prefix);
+ SET_ProgramLocalParameter4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramStringARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramStringARB", symbol_prefix);
+ SET_ProgramStringARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1d", symbol_prefix);
+ SET_VertexAttrib1dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dARB", symbol_prefix);
+ SET_VertexAttrib1dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dv", symbol_prefix);
+ SET_VertexAttrib1dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvARB", symbol_prefix);
+ SET_VertexAttrib1dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1f", symbol_prefix);
+ SET_VertexAttrib1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fARB", symbol_prefix);
+ SET_VertexAttrib1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fv", symbol_prefix);
+ SET_VertexAttrib1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvARB", symbol_prefix);
+ SET_VertexAttrib1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1s", symbol_prefix);
+ SET_VertexAttrib1sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sARB", symbol_prefix);
+ SET_VertexAttrib1sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sv", symbol_prefix);
+ SET_VertexAttrib1svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svARB", symbol_prefix);
+ SET_VertexAttrib1svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2d", symbol_prefix);
+ SET_VertexAttrib2dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dARB", symbol_prefix);
+ SET_VertexAttrib2dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dv", symbol_prefix);
+ SET_VertexAttrib2dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvARB", symbol_prefix);
+ SET_VertexAttrib2dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2f", symbol_prefix);
+ SET_VertexAttrib2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fARB", symbol_prefix);
+ SET_VertexAttrib2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fv", symbol_prefix);
+ SET_VertexAttrib2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvARB", symbol_prefix);
+ SET_VertexAttrib2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2s", symbol_prefix);
+ SET_VertexAttrib2sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sARB", symbol_prefix);
+ SET_VertexAttrib2sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sv", symbol_prefix);
+ SET_VertexAttrib2svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svARB", symbol_prefix);
+ SET_VertexAttrib2svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3d", symbol_prefix);
+ SET_VertexAttrib3dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dARB", symbol_prefix);
+ SET_VertexAttrib3dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dv", symbol_prefix);
+ SET_VertexAttrib3dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvARB", symbol_prefix);
+ SET_VertexAttrib3dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3f", symbol_prefix);
+ SET_VertexAttrib3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fARB", symbol_prefix);
+ SET_VertexAttrib3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fv", symbol_prefix);
+ SET_VertexAttrib3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvARB", symbol_prefix);
+ SET_VertexAttrib3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3s", symbol_prefix);
+ SET_VertexAttrib3sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sARB", symbol_prefix);
+ SET_VertexAttrib3sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sv", symbol_prefix);
+ SET_VertexAttrib3svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svARB", symbol_prefix);
+ SET_VertexAttrib3svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NbvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nbv", symbol_prefix);
+ SET_VertexAttrib4NbvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NbvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NbvARB", symbol_prefix);
+ SET_VertexAttrib4NbvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Niv", symbol_prefix);
+ SET_VertexAttrib4NivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NivARB", symbol_prefix);
+ SET_VertexAttrib4NivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NsvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nsv", symbol_prefix);
+ SET_VertexAttrib4NsvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NsvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NsvARB", symbol_prefix);
+ SET_VertexAttrib4NsvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NubARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nub", symbol_prefix);
+ SET_VertexAttrib4NubARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NubARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubARB", symbol_prefix);
+ SET_VertexAttrib4NubARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NubvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nubv", symbol_prefix);
+ SET_VertexAttrib4NubvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NubvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubvARB", symbol_prefix);
+ SET_VertexAttrib4NubvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nuiv", symbol_prefix);
+ SET_VertexAttrib4NuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NuivARB", symbol_prefix);
+ SET_VertexAttrib4NuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NusvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nusv", symbol_prefix);
+ SET_VertexAttrib4NusvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4NusvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NusvARB", symbol_prefix);
+ SET_VertexAttrib4NusvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4bvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bv", symbol_prefix);
+ SET_VertexAttrib4bvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4bvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bvARB", symbol_prefix);
+ SET_VertexAttrib4bvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4d", symbol_prefix);
+ SET_VertexAttrib4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dARB", symbol_prefix);
+ SET_VertexAttrib4dARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dv", symbol_prefix);
+ SET_VertexAttrib4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvARB", symbol_prefix);
+ SET_VertexAttrib4dvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4f", symbol_prefix);
+ SET_VertexAttrib4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fARB", symbol_prefix);
+ SET_VertexAttrib4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fv", symbol_prefix);
+ SET_VertexAttrib4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvARB", symbol_prefix);
+ SET_VertexAttrib4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4iv", symbol_prefix);
+ SET_VertexAttrib4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ivARB", symbol_prefix);
+ SET_VertexAttrib4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4s", symbol_prefix);
+ SET_VertexAttrib4sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4sARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sARB", symbol_prefix);
+ SET_VertexAttrib4sARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sv", symbol_prefix);
+ SET_VertexAttrib4svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4svARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svARB", symbol_prefix);
+ SET_VertexAttrib4svARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ubvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubv", symbol_prefix);
+ SET_VertexAttrib4ubvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ubvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvARB", symbol_prefix);
+ SET_VertexAttrib4ubvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4uivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uiv", symbol_prefix);
+ SET_VertexAttrib4uivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4uivARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uivARB", symbol_prefix);
+ SET_VertexAttrib4uivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4usvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usv", symbol_prefix);
+ SET_VertexAttrib4usvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4usvARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usvARB", symbol_prefix);
+ SET_VertexAttrib4usvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribPointerARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointer", symbol_prefix);
+ SET_VertexAttribPointerARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribPointerARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerARB", symbol_prefix);
+ SET_VertexAttribPointerARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sBindBuffer", symbol_prefix);
+ SET_BindBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferARB", symbol_prefix);
+ SET_BindBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BufferDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sBufferData", symbol_prefix);
+ SET_BufferDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BufferDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sBufferDataARB", symbol_prefix);
+ SET_BufferDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BufferSubDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sBufferSubData", symbol_prefix);
+ SET_BufferSubDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BufferSubDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sBufferSubDataARB", symbol_prefix);
+ SET_BufferSubDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteBuffers", symbol_prefix);
+ SET_DeleteBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteBuffersARB", symbol_prefix);
+ SET_DeleteBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sGenBuffers", symbol_prefix);
+ SET_GenBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sGenBuffersARB", symbol_prefix);
+ SET_GenBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferParameterivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameteriv", symbol_prefix);
+ SET_GetBufferParameterivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferParameterivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameterivARB", symbol_prefix);
+ SET_GetBufferParameterivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferPointervARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferPointerv", symbol_prefix);
+ SET_GetBufferPointervARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferPointervARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferPointervARB", symbol_prefix);
+ SET_GetBufferPointervARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferSubDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferSubData", symbol_prefix);
+ SET_GetBufferSubDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBufferSubDataARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetBufferSubDataARB", symbol_prefix);
+ SET_GetBufferSubDataARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sIsBuffer", symbol_prefix);
+ SET_IsBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sIsBufferARB", symbol_prefix);
+ SET_IsBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sMapBuffer", symbol_prefix);
+ SET_MapBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sMapBufferARB", symbol_prefix);
+ SET_MapBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UnmapBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sUnmapBuffer", symbol_prefix);
+ SET_UnmapBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UnmapBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sUnmapBufferARB", symbol_prefix);
+ SET_UnmapBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sBeginQuery", symbol_prefix);
+ SET_BeginQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sBeginQueryARB", symbol_prefix);
+ SET_BeginQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteQueriesARB) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteQueries", symbol_prefix);
+ SET_DeleteQueriesARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteQueriesARB) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteQueriesARB", symbol_prefix);
+ SET_DeleteQueriesARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sEndQuery", symbol_prefix);
+ SET_EndQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sEndQueryARB", symbol_prefix);
+ SET_EndQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenQueriesARB) {
+ snprintf(symboln, sizeof(symboln), "%sGenQueries", symbol_prefix);
+ SET_GenQueriesARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenQueriesARB) {
+ snprintf(symboln, sizeof(symboln), "%sGenQueriesARB", symbol_prefix);
+ SET_GenQueriesARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjectivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectiv", symbol_prefix);
+ SET_GetQueryObjectivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjectivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectivARB", symbol_prefix);
+ SET_GetQueryObjectivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjectuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuiv", symbol_prefix);
+ SET_GetQueryObjectuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjectuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuivARB", symbol_prefix);
+ SET_GetQueryObjectuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryiv", symbol_prefix);
+ SET_GetQueryivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryivARB", symbol_prefix);
+ SET_GetQueryivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sIsQuery", symbol_prefix);
+ SET_IsQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsQueryARB) {
+ snprintf(symboln, sizeof(symboln), "%sIsQueryARB", symbol_prefix);
+ SET_IsQueryARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AttachObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sAttachObjectARB", symbol_prefix);
+ SET_AttachObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompileShaderARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompileShader", symbol_prefix);
+ SET_CompileShaderARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CompileShaderARB) {
+ snprintf(symboln, sizeof(symboln), "%sCompileShaderARB", symbol_prefix);
+ SET_CompileShaderARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CreateProgramObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sCreateProgramObjectARB", symbol_prefix);
+ SET_CreateProgramObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CreateShaderObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sCreateShaderObjectARB", symbol_prefix);
+ SET_CreateShaderObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteObjectARB", symbol_prefix);
+ SET_DeleteObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DetachObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sDetachObjectARB", symbol_prefix);
+ SET_DetachObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetActiveUniformARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetActiveUniform", symbol_prefix);
+ SET_GetActiveUniformARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetActiveUniformARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetActiveUniformARB", symbol_prefix);
+ SET_GetActiveUniformARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetAttachedObjectsARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetAttachedObjectsARB", symbol_prefix);
+ SET_GetAttachedObjectsARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetHandleARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetHandleARB", symbol_prefix);
+ SET_GetHandleARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetInfoLogARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetInfoLogARB", symbol_prefix);
+ SET_GetInfoLogARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetObjectParameterfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterfvARB", symbol_prefix);
+ SET_GetObjectParameterfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetObjectParameterivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivARB", symbol_prefix);
+ SET_GetObjectParameterivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetShaderSourceARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetShaderSource", symbol_prefix);
+ SET_GetShaderSourceARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetShaderSourceARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetShaderSourceARB", symbol_prefix);
+ SET_GetShaderSourceARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformLocation", symbol_prefix);
+ SET_GetUniformLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformLocationARB", symbol_prefix);
+ SET_GetUniformLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformfv", symbol_prefix);
+ SET_GetUniformfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformfvARB", symbol_prefix);
+ SET_GetUniformfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformiv", symbol_prefix);
+ SET_GetUniformivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformivARB", symbol_prefix);
+ SET_GetUniformivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LinkProgramARB) {
+ snprintf(symboln, sizeof(symboln), "%sLinkProgram", symbol_prefix);
+ SET_LinkProgramARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LinkProgramARB) {
+ snprintf(symboln, sizeof(symboln), "%sLinkProgramARB", symbol_prefix);
+ SET_LinkProgramARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ShaderSourceARB) {
+ snprintf(symboln, sizeof(symboln), "%sShaderSource", symbol_prefix);
+ SET_ShaderSourceARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ShaderSourceARB) {
+ snprintf(symboln, sizeof(symboln), "%sShaderSourceARB", symbol_prefix);
+ SET_ShaderSourceARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1f", symbol_prefix);
+ SET_Uniform1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1fARB", symbol_prefix);
+ SET_Uniform1fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1fv", symbol_prefix);
+ SET_Uniform1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1fvARB", symbol_prefix);
+ SET_Uniform1fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1i", symbol_prefix);
+ SET_Uniform1iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1iARB", symbol_prefix);
+ SET_Uniform1iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1iv", symbol_prefix);
+ SET_Uniform1ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1ivARB", symbol_prefix);
+ SET_Uniform1ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2f", symbol_prefix);
+ SET_Uniform2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2fARB", symbol_prefix);
+ SET_Uniform2fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2fv", symbol_prefix);
+ SET_Uniform2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2fvARB", symbol_prefix);
+ SET_Uniform2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2i", symbol_prefix);
+ SET_Uniform2iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2iARB", symbol_prefix);
+ SET_Uniform2iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2iv", symbol_prefix);
+ SET_Uniform2ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2ivARB", symbol_prefix);
+ SET_Uniform2ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3f", symbol_prefix);
+ SET_Uniform3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3fARB", symbol_prefix);
+ SET_Uniform3fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3fv", symbol_prefix);
+ SET_Uniform3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3fvARB", symbol_prefix);
+ SET_Uniform3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3i", symbol_prefix);
+ SET_Uniform3iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3iARB", symbol_prefix);
+ SET_Uniform3iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3iv", symbol_prefix);
+ SET_Uniform3ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3ivARB", symbol_prefix);
+ SET_Uniform3ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4f", symbol_prefix);
+ SET_Uniform4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4fARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4fARB", symbol_prefix);
+ SET_Uniform4fARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4fv", symbol_prefix);
+ SET_Uniform4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4fvARB", symbol_prefix);
+ SET_Uniform4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4i", symbol_prefix);
+ SET_Uniform4iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4iARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4iARB", symbol_prefix);
+ SET_Uniform4iARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4iv", symbol_prefix);
+ SET_Uniform4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4ivARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4ivARB", symbol_prefix);
+ SET_Uniform4ivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fv", symbol_prefix);
+ SET_UniformMatrix2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix2fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fvARB", symbol_prefix);
+ SET_UniformMatrix2fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fv", symbol_prefix);
+ SET_UniformMatrix3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix3fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fvARB", symbol_prefix);
+ SET_UniformMatrix3fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fv", symbol_prefix);
+ SET_UniformMatrix4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UniformMatrix4fvARB) {
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fvARB", symbol_prefix);
+ SET_UniformMatrix4fvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UseProgramObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sUseProgram", symbol_prefix);
+ SET_UseProgramObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UseProgramObjectARB) {
+ snprintf(symboln, sizeof(symboln), "%sUseProgramObjectARB", symbol_prefix);
+ SET_UseProgramObjectARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ValidateProgramARB) {
+ snprintf(symboln, sizeof(symboln), "%sValidateProgram", symbol_prefix);
+ SET_ValidateProgramARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ValidateProgramARB) {
+ snprintf(symboln, sizeof(symboln), "%sValidateProgramARB", symbol_prefix);
+ SET_ValidateProgramARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindAttribLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sBindAttribLocation", symbol_prefix);
+ SET_BindAttribLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindAttribLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sBindAttribLocationARB", symbol_prefix);
+ SET_BindAttribLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetActiveAttribARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetActiveAttrib", symbol_prefix);
+ SET_GetActiveAttribARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetActiveAttribARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetActiveAttribARB", symbol_prefix);
+ SET_GetActiveAttribARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetAttribLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetAttribLocation", symbol_prefix);
+ SET_GetAttribLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetAttribLocationARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetAttribLocationARB", symbol_prefix);
+ SET_GetAttribLocationARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffers", symbol_prefix);
+ SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffersARB", symbol_prefix);
+ SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawBuffersARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffersATI", symbol_prefix);
+ SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClampColorARB) {
+ snprintf(symboln, sizeof(symboln), "%sClampColorARB", symbol_prefix);
+ SET_ClampColorARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawArraysInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedARB", symbol_prefix);
+ SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawArraysInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedEXT", symbol_prefix);
+ SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawArraysInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstanced", symbol_prefix);
+ SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElementsInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedARB", symbol_prefix);
+ SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElementsInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedEXT", symbol_prefix);
+ SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElementsInstancedARB) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstanced", symbol_prefix);
+ SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RenderbufferStorageMultisample) {
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisample", symbol_prefix);
+ SET_RenderbufferStorageMultisample(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RenderbufferStorageMultisample) {
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisampleEXT", symbol_prefix);
+ SET_RenderbufferStorageMultisample(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTextureARB) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureARB", symbol_prefix);
+ SET_FramebufferTextureARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTextureFaceARB) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureFaceARB", symbol_prefix);
+ SET_FramebufferTextureFaceARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramParameteriARB) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameteriARB", symbol_prefix);
+ SET_ProgramParameteriARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribDivisorARB) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisorARB", symbol_prefix);
+ SET_VertexAttribDivisorARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FlushMappedBufferRange) {
+ snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRange", symbol_prefix);
+ SET_FlushMappedBufferRange(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MapBufferRange) {
+ snprintf(symboln, sizeof(symboln), "%sMapBufferRange", symbol_prefix);
+ SET_MapBufferRange(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexBufferARB) {
+ snprintf(symboln, sizeof(symboln), "%sTexBufferARB", symbol_prefix);
+ SET_TexBufferARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindVertexArray) {
+ snprintf(symboln, sizeof(symboln), "%sBindVertexArray", symbol_prefix);
+ SET_BindVertexArray(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenVertexArrays) {
+ snprintf(symboln, sizeof(symboln), "%sGenVertexArrays", symbol_prefix);
+ SET_GenVertexArrays(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CopyBufferSubData) {
+ snprintf(symboln, sizeof(symboln), "%sCopyBufferSubData", symbol_prefix);
+ SET_CopyBufferSubData(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClientWaitSync) {
+ snprintf(symboln, sizeof(symboln), "%sClientWaitSync", symbol_prefix);
+ SET_ClientWaitSync(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteSync) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteSync", symbol_prefix);
+ SET_DeleteSync(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FenceSync) {
+ snprintf(symboln, sizeof(symboln), "%sFenceSync", symbol_prefix);
+ SET_FenceSync(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetInteger64v) {
+ snprintf(symboln, sizeof(symboln), "%sGetInteger64v", symbol_prefix);
+ SET_GetInteger64v(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSynciv) {
+ snprintf(symboln, sizeof(symboln), "%sGetSynciv", symbol_prefix);
+ SET_GetSynciv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsSync) {
+ snprintf(symboln, sizeof(symboln), "%sIsSync", symbol_prefix);
+ SET_IsSync(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WaitSync) {
+ snprintf(symboln, sizeof(symboln), "%sWaitSync", symbol_prefix);
+ SET_WaitSync(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElementsBaseVertex) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsBaseVertex", symbol_prefix);
+ SET_DrawElementsBaseVertex(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawElementsInstancedBaseVertex) {
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedBaseVertex", symbol_prefix);
+ SET_DrawElementsInstancedBaseVertex(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawRangeElementsBaseVertex) {
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsBaseVertex", symbol_prefix);
+ SET_DrawRangeElementsBaseVertex(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiDrawElementsBaseVertex) {
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsBaseVertex", symbol_prefix);
+ SET_MultiDrawElementsBaseVertex(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationSeparateiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateiARB", symbol_prefix);
+ SET_BlendEquationSeparateiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationSeparateiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateIndexedAMD", symbol_prefix);
+ SET_BlendEquationSeparateiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationiARB", symbol_prefix);
+ SET_BlendEquationiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationIndexedAMD", symbol_prefix);
+ SET_BlendEquationiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFuncSeparateiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateiARB", symbol_prefix);
+ SET_BlendFuncSeparateiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFuncSeparateiARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateIndexedAMD", symbol_prefix);
+ SET_BlendFuncSeparateiARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFunciARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFunciARB", symbol_prefix);
+ SET_BlendFunciARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFunciARB) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncIndexedAMD", symbol_prefix);
+ SET_BlendFunciARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindSampler) {
+ snprintf(symboln, sizeof(symboln), "%sBindSampler", symbol_prefix);
+ SET_BindSampler(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteSamplers) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteSamplers", symbol_prefix);
+ SET_DeleteSamplers(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenSamplers) {
+ snprintf(symboln, sizeof(symboln), "%sGenSamplers", symbol_prefix);
+ SET_GenSamplers(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSamplerParameterIiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIiv", symbol_prefix);
+ SET_GetSamplerParameterIiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSamplerParameterIuiv) {
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIuiv", symbol_prefix);
+ SET_GetSamplerParameterIuiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSamplerParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterfv", symbol_prefix);
+ SET_GetSamplerParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetSamplerParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameteriv", symbol_prefix);
+ SET_GetSamplerParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsSampler) {
+ snprintf(symboln, sizeof(symboln), "%sIsSampler", symbol_prefix);
+ SET_IsSampler(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameterIiv) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterIiv", symbol_prefix);
+ SET_SamplerParameterIiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameterIuiv) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterIuiv", symbol_prefix);
+ SET_SamplerParameterIuiv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameterf) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterf", symbol_prefix);
+ SET_SamplerParameterf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameterfv) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterfv", symbol_prefix);
+ SET_SamplerParameterfv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameteri) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameteri", symbol_prefix);
+ SET_SamplerParameteri(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplerParameteriv) {
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameteriv", symbol_prefix);
+ SET_SamplerParameteriv(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindTransformFeedback) {
+ snprintf(symboln, sizeof(symboln), "%sBindTransformFeedback", symbol_prefix);
+ SET_BindTransformFeedback(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteTransformFeedbacks) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteTransformFeedbacks", symbol_prefix);
+ SET_DeleteTransformFeedbacks(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DrawTransformFeedback) {
+ snprintf(symboln, sizeof(symboln), "%sDrawTransformFeedback", symbol_prefix);
+ SET_DrawTransformFeedback(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenTransformFeedbacks) {
+ snprintf(symboln, sizeof(symboln), "%sGenTransformFeedbacks", symbol_prefix);
+ SET_GenTransformFeedbacks(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsTransformFeedback) {
+ snprintf(symboln, sizeof(symboln), "%sIsTransformFeedback", symbol_prefix);
+ SET_IsTransformFeedback(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PauseTransformFeedback) {
+ snprintf(symboln, sizeof(symboln), "%sPauseTransformFeedback", symbol_prefix);
+ SET_PauseTransformFeedback(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResumeTransformFeedback) {
+ snprintf(symboln, sizeof(symboln), "%sResumeTransformFeedback", symbol_prefix);
+ SET_ResumeTransformFeedback(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearDepthf) {
+ snprintf(symboln, sizeof(symboln), "%sClearDepthf", symbol_prefix);
+ SET_ClearDepthf(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DepthRangef) {
+ snprintf(symboln, sizeof(symboln), "%sDepthRangef", symbol_prefix);
+ SET_DepthRangef(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetShaderPrecisionFormat) {
+ snprintf(symboln, sizeof(symboln), "%sGetShaderPrecisionFormat", symbol_prefix);
+ SET_GetShaderPrecisionFormat(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ReleaseShaderCompiler) {
+ snprintf(symboln, sizeof(symboln), "%sReleaseShaderCompiler", symbol_prefix);
+ SET_ReleaseShaderCompiler(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ShaderBinary) {
+ snprintf(symboln, sizeof(symboln), "%sShaderBinary", symbol_prefix);
+ SET_ShaderBinary(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetGraphicsResetStatusARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetGraphicsResetStatusARB", symbol_prefix);
+ SET_GetGraphicsResetStatusARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnColorTableARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnColorTableARB", symbol_prefix);
+ SET_GetnColorTableARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnCompressedTexImageARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnCompressedTexImageARB", symbol_prefix);
+ SET_GetnCompressedTexImageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnConvolutionFilterARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnConvolutionFilterARB", symbol_prefix);
+ SET_GetnConvolutionFilterARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnHistogramARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnHistogramARB", symbol_prefix);
+ SET_GetnHistogramARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnMapdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnMapdvARB", symbol_prefix);
+ SET_GetnMapdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnMapfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnMapfvARB", symbol_prefix);
+ SET_GetnMapfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnMapivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnMapivARB", symbol_prefix);
+ SET_GetnMapivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnMinmaxARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnMinmaxARB", symbol_prefix);
+ SET_GetnMinmaxARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnPixelMapfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapfvARB", symbol_prefix);
+ SET_GetnPixelMapfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnPixelMapuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapuivARB", symbol_prefix);
+ SET_GetnPixelMapuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnPixelMapusvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapusvARB", symbol_prefix);
+ SET_GetnPixelMapusvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnPolygonStippleARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnPolygonStippleARB", symbol_prefix);
+ SET_GetnPolygonStippleARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnSeparableFilterARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnSeparableFilterARB", symbol_prefix);
+ SET_GetnSeparableFilterARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnTexImageARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnTexImageARB", symbol_prefix);
+ SET_GetnTexImageARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnUniformdvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformdvARB", symbol_prefix);
+ SET_GetnUniformdvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnUniformfvARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformfvARB", symbol_prefix);
+ SET_GetnUniformfvARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnUniformivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformivARB", symbol_prefix);
+ SET_GetnUniformivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetnUniformuivARB) {
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformuivARB", symbol_prefix);
+ SET_GetnUniformuivARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ReadnPixelsARB) {
+ snprintf(symboln, sizeof(symboln), "%sReadnPixelsARB", symbol_prefix);
+ SET_ReadnPixelsARB(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PolygonOffsetEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPolygonOffsetEXT", symbol_prefix);
+ SET_PolygonOffsetEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPixelTexGenParameterfvSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterfvSGIS", symbol_prefix);
+ SET_GetPixelTexGenParameterfvSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetPixelTexGenParameterivSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterivSGIS", symbol_prefix);
+ SET_GetPixelTexGenParameterivSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTexGenParameterfSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfSGIS", symbol_prefix);
+ SET_PixelTexGenParameterfSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTexGenParameterfvSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfvSGIS", symbol_prefix);
+ SET_PixelTexGenParameterfvSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTexGenParameteriSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameteriSGIS", symbol_prefix);
+ SET_PixelTexGenParameteriSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTexGenParameterivSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterivSGIS", symbol_prefix);
+ SET_PixelTexGenParameterivSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SampleMaskSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sSampleMaskSGIS", symbol_prefix);
+ SET_SampleMaskSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SampleMaskSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sSampleMaskEXT", symbol_prefix);
+ SET_SampleMaskSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplePatternSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sSamplePatternSGIS", symbol_prefix);
+ SET_SamplePatternSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SamplePatternSGIS) {
+ snprintf(symboln, sizeof(symboln), "%sSamplePatternEXT", symbol_prefix);
+ SET_SamplePatternSGIS(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sColorPointerEXT", symbol_prefix);
+ SET_ColorPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EdgeFlagPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointerEXT", symbol_prefix);
+ SET_EdgeFlagPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IndexPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIndexPointerEXT", symbol_prefix);
+ SET_IndexPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->NormalPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sNormalPointerEXT", symbol_prefix);
+ SET_NormalPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexCoordPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTexCoordPointerEXT", symbol_prefix);
+ SET_TexCoordPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexPointerEXT", symbol_prefix);
+ SET_VertexPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterf", symbol_prefix);
+ SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfARB", symbol_prefix);
+ SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfEXT", symbol_prefix);
+ SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfSGIS", symbol_prefix);
+ SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfv", symbol_prefix);
+ SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvARB", symbol_prefix);
+ SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvEXT", symbol_prefix);
+ SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvSGIS", symbol_prefix);
+ SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LockArraysEXT) {
+ snprintf(symboln, sizeof(symboln), "%sLockArraysEXT", symbol_prefix);
+ SET_LockArraysEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UnlockArraysEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUnlockArraysEXT", symbol_prefix);
+ SET_UnlockArraysEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3bEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3b", symbol_prefix);
+ SET_SecondaryColor3bEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3bEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bEXT", symbol_prefix);
+ SET_SecondaryColor3bEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3bvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bv", symbol_prefix);
+ SET_SecondaryColor3bvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3bvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bvEXT", symbol_prefix);
+ SET_SecondaryColor3bvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3dEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3d", symbol_prefix);
+ SET_SecondaryColor3dEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3dEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dEXT", symbol_prefix);
+ SET_SecondaryColor3dEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3dvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dv", symbol_prefix);
+ SET_SecondaryColor3dvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3dvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dvEXT", symbol_prefix);
+ SET_SecondaryColor3dvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3fEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3f", symbol_prefix);
+ SET_SecondaryColor3fEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3fEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fEXT", symbol_prefix);
+ SET_SecondaryColor3fEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3fvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fv", symbol_prefix);
+ SET_SecondaryColor3fvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3fvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fvEXT", symbol_prefix);
+ SET_SecondaryColor3fvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3i", symbol_prefix);
+ SET_SecondaryColor3iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iEXT", symbol_prefix);
+ SET_SecondaryColor3iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iv", symbol_prefix);
+ SET_SecondaryColor3ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ivEXT", symbol_prefix);
+ SET_SecondaryColor3ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3sEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3s", symbol_prefix);
+ SET_SecondaryColor3sEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3sEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sEXT", symbol_prefix);
+ SET_SecondaryColor3sEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3svEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sv", symbol_prefix);
+ SET_SecondaryColor3svEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3svEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3svEXT", symbol_prefix);
+ SET_SecondaryColor3svEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ubEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ub", symbol_prefix);
+ SET_SecondaryColor3ubEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ubEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubEXT", symbol_prefix);
+ SET_SecondaryColor3ubEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ubvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubv", symbol_prefix);
+ SET_SecondaryColor3ubvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3ubvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubvEXT", symbol_prefix);
+ SET_SecondaryColor3ubvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ui", symbol_prefix);
+ SET_SecondaryColor3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiEXT", symbol_prefix);
+ SET_SecondaryColor3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiv", symbol_prefix);
+ SET_SecondaryColor3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uivEXT", symbol_prefix);
+ SET_SecondaryColor3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3usEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3us", symbol_prefix);
+ SET_SecondaryColor3usEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3usEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usEXT", symbol_prefix);
+ SET_SecondaryColor3usEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3usvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usv", symbol_prefix);
+ SET_SecondaryColor3usvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColor3usvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usvEXT", symbol_prefix);
+ SET_SecondaryColor3usvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColorPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointer", symbol_prefix);
+ SET_SecondaryColorPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SecondaryColorPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointerEXT", symbol_prefix);
+ SET_SecondaryColorPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiDrawArraysEXT) {
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawArrays", symbol_prefix);
+ SET_MultiDrawArraysEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiDrawArraysEXT) {
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawArraysEXT", symbol_prefix);
+ SET_MultiDrawArraysEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiDrawElementsEXT) {
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElements", symbol_prefix);
+ SET_MultiDrawElementsEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiDrawElementsEXT) {
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsEXT", symbol_prefix);
+ SET_MultiDrawElementsEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordPointer", symbol_prefix);
+ SET_FogCoordPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordPointerEXT", symbol_prefix);
+ SET_FogCoordPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoorddEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordd", symbol_prefix);
+ SET_FogCoorddEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoorddEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddEXT", symbol_prefix);
+ SET_FogCoorddEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoorddvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddv", symbol_prefix);
+ SET_FogCoorddvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoorddvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddvEXT", symbol_prefix);
+ SET_FogCoorddvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordf", symbol_prefix);
+ SET_FogCoordfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordfEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfEXT", symbol_prefix);
+ SET_FogCoordfEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfv", symbol_prefix);
+ SET_FogCoordfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FogCoordfvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfvEXT", symbol_prefix);
+ SET_FogCoordfvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PixelTexGenSGIX) {
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenSGIX", symbol_prefix);
+ SET_PixelTexGenSGIX(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFuncSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparate", symbol_prefix);
+ SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFuncSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateEXT", symbol_prefix);
+ SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendFuncSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateINGR", symbol_prefix);
+ SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FlushVertexArrayRangeNV) {
+ snprintf(symboln, sizeof(symboln), "%sFlushVertexArrayRangeNV", symbol_prefix);
+ SET_FlushVertexArrayRangeNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexArrayRangeNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexArrayRangeNV", symbol_prefix);
+ SET_VertexArrayRangeNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerInputNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerInputNV", symbol_prefix);
+ SET_CombinerInputNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerOutputNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerOutputNV", symbol_prefix);
+ SET_CombinerOutputNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerParameterfNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterfNV", symbol_prefix);
+ SET_CombinerParameterfNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterfvNV", symbol_prefix);
+ SET_CombinerParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerParameteriNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameteriNV", symbol_prefix);
+ SET_CombinerParameteriNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CombinerParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterivNV", symbol_prefix);
+ SET_CombinerParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FinalCombinerInputNV) {
+ snprintf(symboln, sizeof(symboln), "%sFinalCombinerInputNV", symbol_prefix);
+ SET_FinalCombinerInputNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCombinerInputParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterfvNV", symbol_prefix);
+ SET_GetCombinerInputParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCombinerInputParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterivNV", symbol_prefix);
+ SET_GetCombinerInputParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCombinerOutputParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterfvNV", symbol_prefix);
+ SET_GetCombinerOutputParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetCombinerOutputParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterivNV", symbol_prefix);
+ SET_GetCombinerOutputParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFinalCombinerInputParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterfvNV", symbol_prefix);
+ SET_GetFinalCombinerInputParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFinalCombinerInputParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterivNV", symbol_prefix);
+ SET_GetFinalCombinerInputParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ResizeBuffersMESA) {
+ snprintf(symboln, sizeof(symboln), "%sResizeBuffersMESA", symbol_prefix);
+ SET_ResizeBuffersMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2d", symbol_prefix);
+ SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dARB", symbol_prefix);
+ SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dMESA", symbol_prefix);
+ SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dv", symbol_prefix);
+ SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dvARB", symbol_prefix);
+ SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dvMESA", symbol_prefix);
+ SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2f", symbol_prefix);
+ SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fARB", symbol_prefix);
+ SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fMESA", symbol_prefix);
+ SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fv", symbol_prefix);
+ SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fvARB", symbol_prefix);
+ SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fvMESA", symbol_prefix);
+ SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2i", symbol_prefix);
+ SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iARB", symbol_prefix);
+ SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iMESA", symbol_prefix);
+ SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iv", symbol_prefix);
+ SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2ivARB", symbol_prefix);
+ SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2ivMESA", symbol_prefix);
+ SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2s", symbol_prefix);
+ SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sARB", symbol_prefix);
+ SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sMESA", symbol_prefix);
+ SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sv", symbol_prefix);
+ SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2svARB", symbol_prefix);
+ SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos2svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2svMESA", symbol_prefix);
+ SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3d", symbol_prefix);
+ SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dARB", symbol_prefix);
+ SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dMESA", symbol_prefix);
+ SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dv", symbol_prefix);
+ SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dvARB", symbol_prefix);
+ SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dvMESA", symbol_prefix);
+ SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3f", symbol_prefix);
+ SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fARB", symbol_prefix);
+ SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fMESA", symbol_prefix);
+ SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fv", symbol_prefix);
+ SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fvARB", symbol_prefix);
+ SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fvMESA", symbol_prefix);
+ SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3i", symbol_prefix);
+ SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iARB", symbol_prefix);
+ SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iMESA", symbol_prefix);
+ SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iv", symbol_prefix);
+ SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3ivARB", symbol_prefix);
+ SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3ivMESA", symbol_prefix);
+ SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3s", symbol_prefix);
+ SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sARB", symbol_prefix);
+ SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sMESA", symbol_prefix);
+ SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sv", symbol_prefix);
+ SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3svARB", symbol_prefix);
+ SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos3svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3svMESA", symbol_prefix);
+ SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4dMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4dMESA", symbol_prefix);
+ SET_WindowPos4dMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4dvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4dvMESA", symbol_prefix);
+ SET_WindowPos4dvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4fMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4fMESA", symbol_prefix);
+ SET_WindowPos4fMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4fvMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4fvMESA", symbol_prefix);
+ SET_WindowPos4fvMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4iMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4iMESA", symbol_prefix);
+ SET_WindowPos4iMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4ivMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4ivMESA", symbol_prefix);
+ SET_WindowPos4ivMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4sMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4sMESA", symbol_prefix);
+ SET_WindowPos4sMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->WindowPos4svMESA) {
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4svMESA", symbol_prefix);
+ SET_WindowPos4svMESA(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiModeDrawArraysIBM) {
+ snprintf(symboln, sizeof(symboln), "%sMultiModeDrawArraysIBM", symbol_prefix);
+ SET_MultiModeDrawArraysIBM(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->MultiModeDrawElementsIBM) {
+ snprintf(symboln, sizeof(symboln), "%sMultiModeDrawElementsIBM", symbol_prefix);
+ SET_MultiModeDrawElementsIBM(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteFencesNV) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteFencesNV", symbol_prefix);
+ SET_DeleteFencesNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FinishFenceNV) {
+ snprintf(symboln, sizeof(symboln), "%sFinishFenceNV", symbol_prefix);
+ SET_FinishFenceNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenFencesNV) {
+ snprintf(symboln, sizeof(symboln), "%sGenFencesNV", symbol_prefix);
+ SET_GenFencesNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFenceivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetFenceivNV", symbol_prefix);
+ SET_GetFenceivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsFenceNV) {
+ snprintf(symboln, sizeof(symboln), "%sIsFenceNV", symbol_prefix);
+ SET_IsFenceNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SetFenceNV) {
+ snprintf(symboln, sizeof(symboln), "%sSetFenceNV", symbol_prefix);
+ SET_SetFenceNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TestFenceNV) {
+ snprintf(symboln, sizeof(symboln), "%sTestFenceNV", symbol_prefix);
+ SET_TestFenceNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AreProgramsResidentNV) {
+ snprintf(symboln, sizeof(symboln), "%sAreProgramsResidentNV", symbol_prefix);
+ SET_AreProgramsResidentNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sBindProgramARB", symbol_prefix);
+ SET_BindProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sBindProgramNV", symbol_prefix);
+ SET_BindProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteProgramsNV) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgramsARB", symbol_prefix);
+ SET_DeleteProgramsNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteProgramsNV) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgramsNV", symbol_prefix);
+ SET_DeleteProgramsNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ExecuteProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sExecuteProgramNV", symbol_prefix);
+ SET_ExecuteProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenProgramsNV) {
+ snprintf(symboln, sizeof(symboln), "%sGenProgramsARB", symbol_prefix);
+ SET_GenProgramsNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenProgramsNV) {
+ snprintf(symboln, sizeof(symboln), "%sGenProgramsNV", symbol_prefix);
+ SET_GenProgramsNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramParameterdvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramParameterdvNV", symbol_prefix);
+ SET_GetProgramParameterdvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramParameterfvNV", symbol_prefix);
+ SET_GetProgramParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramStringNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramStringNV", symbol_prefix);
+ SET_GetProgramStringNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramivNV", symbol_prefix);
+ SET_GetProgramivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTrackMatrixivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetTrackMatrixivNV", symbol_prefix);
+ SET_GetTrackMatrixivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribPointervNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointerv", symbol_prefix);
+ SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribPointervNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervARB", symbol_prefix);
+ SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribPointervNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervNV", symbol_prefix);
+ SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribdvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvNV", symbol_prefix);
+ SET_GetVertexAttribdvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvNV", symbol_prefix);
+ SET_GetVertexAttribfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribivNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivNV", symbol_prefix);
+ SET_GetVertexAttribivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sIsProgramARB", symbol_prefix);
+ SET_IsProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sIsProgramNV", symbol_prefix);
+ SET_IsProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->LoadProgramNV) {
+ snprintf(symboln, sizeof(symboln), "%sLoadProgramNV", symbol_prefix);
+ SET_LoadProgramNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramParameters4dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameters4dvNV", symbol_prefix);
+ SET_ProgramParameters4dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramParameters4fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramParameters4fvNV", symbol_prefix);
+ SET_ProgramParameters4fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RequestResidentProgramsNV) {
+ snprintf(symboln, sizeof(symboln), "%sRequestResidentProgramsNV", symbol_prefix);
+ SET_RequestResidentProgramsNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TrackMatrixNV) {
+ snprintf(symboln, sizeof(symboln), "%sTrackMatrixNV", symbol_prefix);
+ SET_TrackMatrixNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dNV", symbol_prefix);
+ SET_VertexAttrib1dNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvNV", symbol_prefix);
+ SET_VertexAttrib1dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fNV", symbol_prefix);
+ SET_VertexAttrib1fNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvNV", symbol_prefix);
+ SET_VertexAttrib1fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1sNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sNV", symbol_prefix);
+ SET_VertexAttrib1sNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib1svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svNV", symbol_prefix);
+ SET_VertexAttrib1svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dNV", symbol_prefix);
+ SET_VertexAttrib2dNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvNV", symbol_prefix);
+ SET_VertexAttrib2dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fNV", symbol_prefix);
+ SET_VertexAttrib2fNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvNV", symbol_prefix);
+ SET_VertexAttrib2fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2sNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sNV", symbol_prefix);
+ SET_VertexAttrib2sNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib2svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svNV", symbol_prefix);
+ SET_VertexAttrib2svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dNV", symbol_prefix);
+ SET_VertexAttrib3dNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvNV", symbol_prefix);
+ SET_VertexAttrib3dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fNV", symbol_prefix);
+ SET_VertexAttrib3fNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvNV", symbol_prefix);
+ SET_VertexAttrib3fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3sNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sNV", symbol_prefix);
+ SET_VertexAttrib3sNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib3svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svNV", symbol_prefix);
+ SET_VertexAttrib3svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dNV", symbol_prefix);
+ SET_VertexAttrib4dNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvNV", symbol_prefix);
+ SET_VertexAttrib4dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fNV", symbol_prefix);
+ SET_VertexAttrib4fNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvNV", symbol_prefix);
+ SET_VertexAttrib4fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4sNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sNV", symbol_prefix);
+ SET_VertexAttrib4sNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svNV", symbol_prefix);
+ SET_VertexAttrib4svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ubNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubNV", symbol_prefix);
+ SET_VertexAttrib4ubNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttrib4ubvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvNV", symbol_prefix);
+ SET_VertexAttrib4ubvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribPointerNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerNV", symbol_prefix);
+ SET_VertexAttribPointerNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs1dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1dvNV", symbol_prefix);
+ SET_VertexAttribs1dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs1fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1fvNV", symbol_prefix);
+ SET_VertexAttribs1fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs1svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1svNV", symbol_prefix);
+ SET_VertexAttribs1svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs2dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2dvNV", symbol_prefix);
+ SET_VertexAttribs2dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs2fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2fvNV", symbol_prefix);
+ SET_VertexAttribs2fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs2svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2svNV", symbol_prefix);
+ SET_VertexAttribs2svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs3dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3dvNV", symbol_prefix);
+ SET_VertexAttribs3dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs3fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3fvNV", symbol_prefix);
+ SET_VertexAttribs3fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs3svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3svNV", symbol_prefix);
+ SET_VertexAttribs3svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs4dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4dvNV", symbol_prefix);
+ SET_VertexAttribs4dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs4fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4fvNV", symbol_prefix);
+ SET_VertexAttribs4fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs4svNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4svNV", symbol_prefix);
+ SET_VertexAttribs4svNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribs4ubvNV) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4ubvNV", symbol_prefix);
+ SET_VertexAttribs4ubvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexBumpParameterfvATI) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterfvATI", symbol_prefix);
+ SET_GetTexBumpParameterfvATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexBumpParameterivATI) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterivATI", symbol_prefix);
+ SET_GetTexBumpParameterivATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexBumpParameterfvATI) {
+ snprintf(symboln, sizeof(symboln), "%sTexBumpParameterfvATI", symbol_prefix);
+ SET_TexBumpParameterfvATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexBumpParameterivATI) {
+ snprintf(symboln, sizeof(symboln), "%sTexBumpParameterivATI", symbol_prefix);
+ SET_TexBumpParameterivATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AlphaFragmentOp1ATI) {
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp1ATI", symbol_prefix);
+ SET_AlphaFragmentOp1ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AlphaFragmentOp2ATI) {
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp2ATI", symbol_prefix);
+ SET_AlphaFragmentOp2ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->AlphaFragmentOp3ATI) {
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp3ATI", symbol_prefix);
+ SET_AlphaFragmentOp3ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginFragmentShaderATI) {
+ snprintf(symboln, sizeof(symboln), "%sBeginFragmentShaderATI", symbol_prefix);
+ SET_BeginFragmentShaderATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindFragmentShaderATI) {
+ snprintf(symboln, sizeof(symboln), "%sBindFragmentShaderATI", symbol_prefix);
+ SET_BindFragmentShaderATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorFragmentOp1ATI) {
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp1ATI", symbol_prefix);
+ SET_ColorFragmentOp1ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorFragmentOp2ATI) {
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp2ATI", symbol_prefix);
+ SET_ColorFragmentOp2ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorFragmentOp3ATI) {
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp3ATI", symbol_prefix);
+ SET_ColorFragmentOp3ATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteFragmentShaderATI) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteFragmentShaderATI", symbol_prefix);
+ SET_DeleteFragmentShaderATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndFragmentShaderATI) {
+ snprintf(symboln, sizeof(symboln), "%sEndFragmentShaderATI", symbol_prefix);
+ SET_EndFragmentShaderATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenFragmentShadersATI) {
+ snprintf(symboln, sizeof(symboln), "%sGenFragmentShadersATI", symbol_prefix);
+ SET_GenFragmentShadersATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PassTexCoordATI) {
+ snprintf(symboln, sizeof(symboln), "%sPassTexCoordATI", symbol_prefix);
+ SET_PassTexCoordATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SampleMapATI) {
+ snprintf(symboln, sizeof(symboln), "%sSampleMapATI", symbol_prefix);
+ SET_SampleMapATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->SetFragmentShaderConstantATI) {
+ snprintf(symboln, sizeof(symboln), "%sSetFragmentShaderConstantATI", symbol_prefix);
+ SET_SetFragmentShaderConstantATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameteriNV) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameteri", symbol_prefix);
+ SET_PointParameteriNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameteriNV) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameteriNV", symbol_prefix);
+ SET_PointParameteriNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameteriv", symbol_prefix);
+ SET_PointParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PointParameterivNV) {
+ snprintf(symboln, sizeof(symboln), "%sPointParameterivNV", symbol_prefix);
+ SET_PointParameterivNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ActiveStencilFaceEXT) {
+ snprintf(symboln, sizeof(symboln), "%sActiveStencilFaceEXT", symbol_prefix);
+ SET_ActiveStencilFaceEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindVertexArrayAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sBindVertexArrayAPPLE", symbol_prefix);
+ SET_BindVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteVertexArraysAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteVertexArrays", symbol_prefix);
+ SET_DeleteVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteVertexArraysAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteVertexArraysAPPLE", symbol_prefix);
+ SET_DeleteVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenVertexArraysAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sGenVertexArraysAPPLE", symbol_prefix);
+ SET_GenVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsVertexArrayAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sIsVertexArray", symbol_prefix);
+ SET_IsVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsVertexArrayAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sIsVertexArrayAPPLE", symbol_prefix);
+ SET_IsVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramNamedParameterdvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterdvNV", symbol_prefix);
+ SET_GetProgramNamedParameterdvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetProgramNamedParameterfvNV) {
+ snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterfvNV", symbol_prefix);
+ SET_GetProgramNamedParameterfvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramNamedParameter4dNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dNV", symbol_prefix);
+ SET_ProgramNamedParameter4dNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramNamedParameter4dvNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dvNV", symbol_prefix);
+ SET_ProgramNamedParameter4dvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramNamedParameter4fNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fNV", symbol_prefix);
+ SET_ProgramNamedParameter4fNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramNamedParameter4fvNV) {
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fvNV", symbol_prefix);
+ SET_ProgramNamedParameter4fvNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PrimitiveRestartIndexNV) {
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndexNV", symbol_prefix);
+ SET_PrimitiveRestartIndexNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PrimitiveRestartIndexNV) {
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndex", symbol_prefix);
+ SET_PrimitiveRestartIndexNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->PrimitiveRestartNV) {
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartNV", symbol_prefix);
+ SET_PrimitiveRestartNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DepthBoundsEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDepthBoundsEXT", symbol_prefix);
+ SET_DepthBoundsEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparate", symbol_prefix);
+ SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateEXT", symbol_prefix);
+ SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlendEquationSeparateEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateATI", symbol_prefix);
+ SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindFramebuffer", symbol_prefix);
+ SET_BindFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindFramebufferEXT", symbol_prefix);
+ SET_BindFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindRenderbuffer", symbol_prefix);
+ SET_BindRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindRenderbufferEXT", symbol_prefix);
+ SET_BindRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CheckFramebufferStatusEXT) {
+ snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatus", symbol_prefix);
+ SET_CheckFramebufferStatusEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CheckFramebufferStatusEXT) {
+ snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatusEXT", symbol_prefix);
+ SET_CheckFramebufferStatusEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteFramebuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffers", symbol_prefix);
+ SET_DeleteFramebuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteFramebuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffersEXT", symbol_prefix);
+ SET_DeleteFramebuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteRenderbuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffers", symbol_prefix);
+ SET_DeleteRenderbuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DeleteRenderbuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffersEXT", symbol_prefix);
+ SET_DeleteRenderbuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbuffer", symbol_prefix);
+ SET_FramebufferRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbufferEXT", symbol_prefix);
+ SET_FramebufferRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture1DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1D", symbol_prefix);
+ SET_FramebufferTexture1DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture1DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1DEXT", symbol_prefix);
+ SET_FramebufferTexture1DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture2DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2D", symbol_prefix);
+ SET_FramebufferTexture2DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture2DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2DEXT", symbol_prefix);
+ SET_FramebufferTexture2DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture3DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3D", symbol_prefix);
+ SET_FramebufferTexture3DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTexture3DEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3DEXT", symbol_prefix);
+ SET_FramebufferTexture3DEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenFramebuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenFramebuffers", symbol_prefix);
+ SET_GenFramebuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenFramebuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenFramebuffersEXT", symbol_prefix);
+ SET_GenFramebuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenRenderbuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenRenderbuffers", symbol_prefix);
+ SET_GenRenderbuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenRenderbuffersEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenRenderbuffersEXT", symbol_prefix);
+ SET_GenRenderbuffersEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenerateMipmapEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenerateMipmap", symbol_prefix);
+ SET_GenerateMipmapEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GenerateMipmapEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGenerateMipmapEXT", symbol_prefix);
+ SET_GenerateMipmapEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFramebufferAttachmentParameterivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameteriv", symbol_prefix);
+ SET_GetFramebufferAttachmentParameterivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFramebufferAttachmentParameterivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameterivEXT", symbol_prefix);
+ SET_GetFramebufferAttachmentParameterivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetRenderbufferParameterivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameteriv", symbol_prefix);
+ SET_GetRenderbufferParameterivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetRenderbufferParameterivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameterivEXT", symbol_prefix);
+ SET_GetRenderbufferParameterivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsFramebuffer", symbol_prefix);
+ SET_IsFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsFramebufferEXT", symbol_prefix);
+ SET_IsFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsRenderbuffer", symbol_prefix);
+ SET_IsRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsRenderbufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsRenderbufferEXT", symbol_prefix);
+ SET_IsRenderbufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RenderbufferStorageEXT) {
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorage", symbol_prefix);
+ SET_RenderbufferStorageEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->RenderbufferStorageEXT) {
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageEXT", symbol_prefix);
+ SET_RenderbufferStorageEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlitFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlitFramebuffer", symbol_prefix);
+ SET_BlitFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BlitFramebufferEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBlitFramebufferEXT", symbol_prefix);
+ SET_BlitFramebufferEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BufferParameteriAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sBufferParameteriAPPLE", symbol_prefix);
+ SET_BufferParameteriAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FlushMappedBufferRangeAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRangeAPPLE", symbol_prefix);
+ SET_FlushMappedBufferRangeAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindFragDataLocationEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindFragDataLocationEXT", symbol_prefix);
+ SET_BindFragDataLocationEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindFragDataLocationEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindFragDataLocation", symbol_prefix);
+ SET_BindFragDataLocationEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFragDataLocationEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetFragDataLocationEXT", symbol_prefix);
+ SET_GetFragDataLocationEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetFragDataLocationEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetFragDataLocation", symbol_prefix);
+ SET_GetFragDataLocationEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformuivEXT", symbol_prefix);
+ SET_GetUniformuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetUniformuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetUniformuiv", symbol_prefix);
+ SET_GetUniformuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIivEXT", symbol_prefix);
+ SET_GetVertexAttribIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIiv", symbol_prefix);
+ SET_GetVertexAttribIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuivEXT", symbol_prefix);
+ SET_GetVertexAttribIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetVertexAttribIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuiv", symbol_prefix);
+ SET_GetVertexAttribIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1uiEXT", symbol_prefix);
+ SET_Uniform1uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1ui", symbol_prefix);
+ SET_Uniform1uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1uivEXT", symbol_prefix);
+ SET_Uniform1uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform1uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform1uiv", symbol_prefix);
+ SET_Uniform1uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2uiEXT", symbol_prefix);
+ SET_Uniform2uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2ui", symbol_prefix);
+ SET_Uniform2uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2uivEXT", symbol_prefix);
+ SET_Uniform2uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform2uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform2uiv", symbol_prefix);
+ SET_Uniform2uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3uiEXT", symbol_prefix);
+ SET_Uniform3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3ui", symbol_prefix);
+ SET_Uniform3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3uivEXT", symbol_prefix);
+ SET_Uniform3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform3uiv", symbol_prefix);
+ SET_Uniform3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4uiEXT", symbol_prefix);
+ SET_Uniform4uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4ui", symbol_prefix);
+ SET_Uniform4uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4uivEXT", symbol_prefix);
+ SET_Uniform4uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->Uniform4uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUniform4uiv", symbol_prefix);
+ SET_Uniform4uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iEXT", symbol_prefix);
+ SET_VertexAttribI1iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1i", symbol_prefix);
+ SET_VertexAttribI1iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ivEXT", symbol_prefix);
+ SET_VertexAttribI1ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iv", symbol_prefix);
+ SET_VertexAttribI1ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiEXT", symbol_prefix);
+ SET_VertexAttribI1uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ui", symbol_prefix);
+ SET_VertexAttribI1uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uivEXT", symbol_prefix);
+ SET_VertexAttribI1uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI1uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiv", symbol_prefix);
+ SET_VertexAttribI1uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iEXT", symbol_prefix);
+ SET_VertexAttribI2iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2i", symbol_prefix);
+ SET_VertexAttribI2iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ivEXT", symbol_prefix);
+ SET_VertexAttribI2ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iv", symbol_prefix);
+ SET_VertexAttribI2ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiEXT", symbol_prefix);
+ SET_VertexAttribI2uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ui", symbol_prefix);
+ SET_VertexAttribI2uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uivEXT", symbol_prefix);
+ SET_VertexAttribI2uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI2uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiv", symbol_prefix);
+ SET_VertexAttribI2uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iEXT", symbol_prefix);
+ SET_VertexAttribI3iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3i", symbol_prefix);
+ SET_VertexAttribI3iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ivEXT", symbol_prefix);
+ SET_VertexAttribI3ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iv", symbol_prefix);
+ SET_VertexAttribI3ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiEXT", symbol_prefix);
+ SET_VertexAttribI3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ui", symbol_prefix);
+ SET_VertexAttribI3uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uivEXT", symbol_prefix);
+ SET_VertexAttribI3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI3uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiv", symbol_prefix);
+ SET_VertexAttribI3uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4bvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bvEXT", symbol_prefix);
+ SET_VertexAttribI4bvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4bvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bv", symbol_prefix);
+ SET_VertexAttribI4bvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iEXT", symbol_prefix);
+ SET_VertexAttribI4iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4iEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4i", symbol_prefix);
+ SET_VertexAttribI4iEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ivEXT", symbol_prefix);
+ SET_VertexAttribI4ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4ivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iv", symbol_prefix);
+ SET_VertexAttribI4ivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4svEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4svEXT", symbol_prefix);
+ SET_VertexAttribI4svEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4svEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4sv", symbol_prefix);
+ SET_VertexAttribI4svEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4ubvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubvEXT", symbol_prefix);
+ SET_VertexAttribI4ubvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4ubvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubv", symbol_prefix);
+ SET_VertexAttribI4ubvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiEXT", symbol_prefix);
+ SET_VertexAttribI4uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4uiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ui", symbol_prefix);
+ SET_VertexAttribI4uiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uivEXT", symbol_prefix);
+ SET_VertexAttribI4uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4uivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiv", symbol_prefix);
+ SET_VertexAttribI4uivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4usvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usvEXT", symbol_prefix);
+ SET_VertexAttribI4usvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribI4usvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usv", symbol_prefix);
+ SET_VertexAttribI4usvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribIPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointerEXT", symbol_prefix);
+ SET_VertexAttribIPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->VertexAttribIPointerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointer", symbol_prefix);
+ SET_VertexAttribIPointerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTextureLayerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayer", symbol_prefix);
+ SET_FramebufferTextureLayerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->FramebufferTextureLayerEXT) {
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayerEXT", symbol_prefix);
+ SET_FramebufferTextureLayerEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorMaskIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sColorMaskIndexedEXT", symbol_prefix);
+ SET_ColorMaskIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ColorMaskIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sColorMaski", symbol_prefix);
+ SET_ColorMaskIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DisableIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDisableIndexedEXT", symbol_prefix);
+ SET_DisableIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->DisableIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sDisablei", symbol_prefix);
+ SET_DisableIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EnableIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sEnableIndexedEXT", symbol_prefix);
+ SET_EnableIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EnableIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sEnablei", symbol_prefix);
+ SET_EnableIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBooleanIndexedvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetBooleanIndexedvEXT", symbol_prefix);
+ SET_GetBooleanIndexedvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetBooleanIndexedvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetBooleani_v", symbol_prefix);
+ SET_GetBooleanIndexedvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetIntegerIndexedvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetIntegerIndexedvEXT", symbol_prefix);
+ SET_GetIntegerIndexedvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetIntegerIndexedvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetIntegeri_v", symbol_prefix);
+ SET_GetIntegerIndexedvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsEnabledIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsEnabledIndexedEXT", symbol_prefix);
+ SET_IsEnabledIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->IsEnabledIndexedEXT) {
+ snprintf(symboln, sizeof(symboln), "%sIsEnabledi", symbol_prefix);
+ SET_IsEnabledIndexedEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearColorIiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sClearColorIiEXT", symbol_prefix);
+ SET_ClearColorIiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ClearColorIuiEXT) {
+ snprintf(symboln, sizeof(symboln), "%sClearColorIuiEXT", symbol_prefix);
+ SET_ClearColorIuiEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIivEXT", symbol_prefix);
+ SET_GetTexParameterIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIiv", symbol_prefix);
+ SET_GetTexParameterIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuivEXT", symbol_prefix);
+ SET_GetTexParameterIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuiv", symbol_prefix);
+ SET_GetTexParameterIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIivEXT", symbol_prefix);
+ SET_TexParameterIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterIivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIiv", symbol_prefix);
+ SET_TexParameterIivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIuivEXT", symbol_prefix);
+ SET_TexParameterIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TexParameterIuivEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIuiv", symbol_prefix);
+ SET_TexParameterIuivEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginConditionalRenderNV) {
+ snprintf(symboln, sizeof(symboln), "%sBeginConditionalRenderNV", symbol_prefix);
+ SET_BeginConditionalRenderNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginConditionalRenderNV) {
+ snprintf(symboln, sizeof(symboln), "%sBeginConditionalRender", symbol_prefix);
+ SET_BeginConditionalRenderNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndConditionalRenderNV) {
+ snprintf(symboln, sizeof(symboln), "%sEndConditionalRenderNV", symbol_prefix);
+ SET_EndConditionalRenderNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndConditionalRenderNV) {
+ snprintf(symboln, sizeof(symboln), "%sEndConditionalRender", symbol_prefix);
+ SET_EndConditionalRenderNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginTransformFeedbackEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedbackEXT", symbol_prefix);
+ SET_BeginTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BeginTransformFeedbackEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedback", symbol_prefix);
+ SET_BeginTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferBaseEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferBaseEXT", symbol_prefix);
+ SET_BindBufferBaseEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferBaseEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferBase", symbol_prefix);
+ SET_BindBufferBaseEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferOffsetEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferOffsetEXT", symbol_prefix);
+ SET_BindBufferOffsetEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferRangeEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferRangeEXT", symbol_prefix);
+ SET_BindBufferRangeEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->BindBufferRangeEXT) {
+ snprintf(symboln, sizeof(symboln), "%sBindBufferRange", symbol_prefix);
+ SET_BindBufferRangeEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndTransformFeedbackEXT) {
+ snprintf(symboln, sizeof(symboln), "%sEndTransformFeedbackEXT", symbol_prefix);
+ SET_EndTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EndTransformFeedbackEXT) {
+ snprintf(symboln, sizeof(symboln), "%sEndTransformFeedback", symbol_prefix);
+ SET_EndTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTransformFeedbackVaryingEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVaryingEXT", symbol_prefix);
+ SET_GetTransformFeedbackVaryingEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTransformFeedbackVaryingEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVarying", symbol_prefix);
+ SET_GetTransformFeedbackVaryingEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TransformFeedbackVaryingsEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryingsEXT", symbol_prefix);
+ SET_TransformFeedbackVaryingsEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TransformFeedbackVaryingsEXT) {
+ snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryings", symbol_prefix);
+ SET_TransformFeedbackVaryingsEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProvokingVertexEXT) {
+ snprintf(symboln, sizeof(symboln), "%sProvokingVertexEXT", symbol_prefix);
+ SET_ProvokingVertexEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProvokingVertexEXT) {
+ snprintf(symboln, sizeof(symboln), "%sProvokingVertex", symbol_prefix);
+ SET_ProvokingVertexEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetTexParameterPointervAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterPointervAPPLE", symbol_prefix);
+ SET_GetTexParameterPointervAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TextureRangeAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sTextureRangeAPPLE", symbol_prefix);
+ SET_TextureRangeAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetObjectParameterivAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivAPPLE", symbol_prefix);
+ SET_GetObjectParameterivAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ObjectPurgeableAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sObjectPurgeableAPPLE", symbol_prefix);
+ SET_ObjectPurgeableAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ObjectUnpurgeableAPPLE) {
+ snprintf(symboln, sizeof(symboln), "%sObjectUnpurgeableAPPLE", symbol_prefix);
+ SET_ObjectUnpurgeableAPPLE(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ActiveProgramEXT) {
+ snprintf(symboln, sizeof(symboln), "%sActiveProgramEXT", symbol_prefix);
+ SET_ActiveProgramEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->CreateShaderProgramEXT) {
+ snprintf(symboln, sizeof(symboln), "%sCreateShaderProgramEXT", symbol_prefix);
+ SET_CreateShaderProgramEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->UseShaderProgramEXT) {
+ snprintf(symboln, sizeof(symboln), "%sUseShaderProgramEXT", symbol_prefix);
+ SET_UseShaderProgramEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->TextureBarrierNV) {
+ snprintf(symboln, sizeof(symboln), "%sTextureBarrierNV", symbol_prefix);
+ SET_TextureBarrierNV(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->StencilFuncSeparateATI) {
+ snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparateATI", symbol_prefix);
+ SET_StencilFuncSeparateATI(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramEnvParameters4fvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameters4fvEXT", symbol_prefix);
+ SET_ProgramEnvParameters4fvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->ProgramLocalParameters4fvEXT) {
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameters4fvEXT", symbol_prefix);
+ SET_ProgramLocalParameters4fvEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjecti64vEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjecti64vEXT", symbol_prefix);
+ SET_GetQueryObjecti64vEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->GetQueryObjectui64vEXT) {
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectui64vEXT", symbol_prefix);
+ SET_GetQueryObjectui64vEXT(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EGLImageTargetRenderbufferStorageOES) {
+ snprintf(symboln, sizeof(symboln), "%sEGLImageTargetRenderbufferStorageOES", symbol_prefix);
+ SET_EGLImageTargetRenderbufferStorageOES(disp, dlsym(handle, symboln));
+ }
+
+
+ if(!disp->EGLImageTargetTexture2DOES) {
+ snprintf(symboln, sizeof(symboln), "%sEGLImageTargetTexture2DOES", symbol_prefix);
+ SET_EGLImageTargetTexture2DOES(disp, dlsym(handle, symboln));
+ }
+
+
+ return disp;
+}
+
diff --git a/src/mapi/glapi/sources.mak b/src/mapi/glapi/sources.mak
index 0b4d8cf65df..dfc6cc6db22 100644
--- a/src/mapi/glapi/sources.mak
+++ b/src/mapi/glapi/sources.mak
@@ -3,6 +3,7 @@
GLAPI_SOURCES = \
glapi_dispatch.c \
glapi_entrypoint.c \
+ glapi_gentable.c \
glapi_getproc.c \
glapi_nop.c \
glthread.c \
From f35913b96e743c5014e99220b1a1c5532a894d69 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Thu, 9 Jun 2011 17:29:51 -0700
Subject: [PATCH 019/406] apple: Use _glapi_create_table_from_handle to
initialize our dispatch table
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_glapi.c | 1118 +----------------------------------
1 file changed, 1 insertion(+), 1117 deletions(-)
diff --git a/src/glx/apple/apple_glapi.c b/src/glx/apple/apple_glapi.c
index f60cacece76..66933f5a20c 100644
--- a/src/glx/apple/apple_glapi.c
+++ b/src/glx/apple/apple_glapi.c
@@ -75,1125 +75,9 @@ void apple_xgl_init_direct(void) {
abort();
}
- __ogl_framework_api = calloc(1, sizeof(struct _glapi_table));
+ __ogl_framework_api = _glapi_create_table_from_handle(handle, "gl");
assert(__ogl_framework_api);
- /* to update:
- * for f in $(grep SET_ ../../mesa/main/dispatch.h | grep INLINE | sed 's:^.*\(SET_[^(]*\)(.*$:\1:' | sort -u); do grep -q "$f(" apple_glapi.c || echo $f ; done | sed 's:SET_\(.*\)$: SET_\1(__ogl_framework_api, dlsym(handle, "gl\1"))\;:'
- */
-
- SET_Accum(__ogl_framework_api, dlsym(handle, "glAccum"));
- SET_AlphaFunc(__ogl_framework_api, dlsym(handle, "glAlphaFunc"));
- SET_AreTexturesResident(__ogl_framework_api, dlsym(handle, "glAreTexturesResident"));
- SET_ArrayElement(__ogl_framework_api, dlsym(handle, "glArrayElement"));
- SET_Begin(__ogl_framework_api, dlsym(handle, "glBegin"));
- SET_BindTexture(__ogl_framework_api, dlsym(handle, "glBindTexture"));
- SET_Bitmap(__ogl_framework_api, dlsym(handle, "glBitmap"));
- SET_BlendColor(__ogl_framework_api, dlsym(handle, "glBlendColor"));
- SET_BlendEquation(__ogl_framework_api, dlsym(handle, "glBlendEquation"));
- SET_BlendFunc(__ogl_framework_api, dlsym(handle, "glBlendFunc"));
- SET_CallList(__ogl_framework_api, dlsym(handle, "glCallList"));
- SET_CallLists(__ogl_framework_api, dlsym(handle, "glCallLists"));
- SET_Clear(__ogl_framework_api, dlsym(handle, "glClear"));
- SET_ClearAccum(__ogl_framework_api, dlsym(handle, "glClearAccum"));
- SET_ClearColor(__ogl_framework_api, dlsym(handle, "glClearColor"));
- SET_ClearDepth(__ogl_framework_api, dlsym(handle, "glClearDepth"));
- SET_ClearIndex(__ogl_framework_api, dlsym(handle, "glClearIndex"));
- SET_ClearStencil(__ogl_framework_api, dlsym(handle, "glClearStencil"));
- SET_ClipPlane(__ogl_framework_api, dlsym(handle, "glClipPlane"));
- SET_Color3b(__ogl_framework_api, dlsym(handle, "glColor3b"));
- SET_Color3bv(__ogl_framework_api, dlsym(handle, "glColor3bv"));
- SET_Color3d(__ogl_framework_api, dlsym(handle, "glColor3d"));
- SET_Color3dv(__ogl_framework_api, dlsym(handle, "glColor3dv"));
- SET_Color3f(__ogl_framework_api, dlsym(handle, "glColor3f"));
- SET_Color3fv(__ogl_framework_api, dlsym(handle, "glColor3fv"));
- SET_Color3i(__ogl_framework_api, dlsym(handle, "glColor3i"));
- SET_Color3iv(__ogl_framework_api, dlsym(handle, "glColor3iv"));
- SET_Color3s(__ogl_framework_api, dlsym(handle, "glColor3s"));
- SET_Color3sv(__ogl_framework_api, dlsym(handle, "glColor3sv"));
- SET_Color3ub(__ogl_framework_api, dlsym(handle, "glColor3ub"));
- SET_Color3ubv(__ogl_framework_api, dlsym(handle, "glColor3ubv"));
- SET_Color3ui(__ogl_framework_api, dlsym(handle, "glColor3ui"));
- SET_Color3uiv(__ogl_framework_api, dlsym(handle, "glColor3uiv"));
- SET_Color3us(__ogl_framework_api, dlsym(handle, "glColor3us"));
- SET_Color3usv(__ogl_framework_api, dlsym(handle, "glColor3usv"));
- SET_Color4b(__ogl_framework_api, dlsym(handle, "glColor4b"));
- SET_Color4bv(__ogl_framework_api, dlsym(handle, "glColor4bv"));
- SET_Color4d(__ogl_framework_api, dlsym(handle, "glColor4d"));
- SET_Color4dv(__ogl_framework_api, dlsym(handle, "glColor4dv"));
- SET_Color4f(__ogl_framework_api, dlsym(handle, "glColor4f"));
- SET_Color4fv(__ogl_framework_api, dlsym(handle, "glColor4fv"));
- SET_Color4i(__ogl_framework_api, dlsym(handle, "glColor4i"));
- SET_Color4iv(__ogl_framework_api, dlsym(handle, "glColor4iv"));
- SET_Color4s(__ogl_framework_api, dlsym(handle, "glColor4s"));
- SET_Color4sv(__ogl_framework_api, dlsym(handle, "glColor4sv"));
- SET_Color4ub(__ogl_framework_api, dlsym(handle, "glColor4ub"));
- SET_Color4ubv(__ogl_framework_api, dlsym(handle, "glColor4ubv"));
- SET_Color4ui(__ogl_framework_api, dlsym(handle, "glColor4ui"));
- SET_Color4uiv(__ogl_framework_api, dlsym(handle, "glColor4uiv"));
- SET_Color4us(__ogl_framework_api, dlsym(handle, "glColor4us"));
- SET_Color4usv(__ogl_framework_api, dlsym(handle, "glColor4usv"));
- SET_ColorMask(__ogl_framework_api, dlsym(handle, "glColorMask"));
- SET_ColorMaterial(__ogl_framework_api, dlsym(handle, "glColorMaterial"));
- SET_ColorPointer(__ogl_framework_api, dlsym(handle, "glColorPointer"));
- SET_ColorSubTable(__ogl_framework_api, dlsym(handle, "glColorSubTable"));
- SET_ColorTable(__ogl_framework_api, dlsym(handle, "glColorTable"));
- SET_ColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glColorTableParameterfv"));
- SET_ColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glColorTableParameteriv"));
- SET_ConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter1D"));
- SET_ConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glConvolutionFilter2D"));
- SET_ConvolutionParameterf(__ogl_framework_api, dlsym(handle, "glConvolutionParameterf"));
- SET_ConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glConvolutionParameterfv"));
- SET_ConvolutionParameteri(__ogl_framework_api, dlsym(handle, "glConvolutionParameteri"));
- SET_ConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glConvolutionParameteriv"));
- SET_CopyColorSubTable(__ogl_framework_api, dlsym(handle, "glCopyColorSubTable"));
- SET_CopyColorTable(__ogl_framework_api, dlsym(handle, "glCopyColorTable"));
- SET_CopyConvolutionFilter1D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter1D"));
- SET_CopyConvolutionFilter2D(__ogl_framework_api, dlsym(handle, "glCopyConvolutionFilter2D"));
- SET_CopyPixels(__ogl_framework_api, dlsym(handle, "glCopyPixels"));
- SET_CopyTexImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexImage1D"));
- SET_CopyTexImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexImage2D"));
- SET_CopyTexSubImage1D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage1D"));
- SET_CopyTexSubImage2D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage2D"));
- SET_CopyTexSubImage3D(__ogl_framework_api, dlsym(handle, "glCopyTexSubImage3D"));
- SET_CullFace(__ogl_framework_api, dlsym(handle, "glCullFace"));
- SET_DeleteLists(__ogl_framework_api, dlsym(handle, "glDeleteLists"));
- SET_DeleteTextures(__ogl_framework_api, dlsym(handle, "glDeleteTextures"));
- SET_DepthFunc(__ogl_framework_api, dlsym(handle, "glDepthFunc"));
- SET_DepthMask(__ogl_framework_api, dlsym(handle, "glDepthMask"));
- SET_DepthRange(__ogl_framework_api, dlsym(handle, "glDepthRange"));
- SET_Disable(__ogl_framework_api, dlsym(handle, "glDisable"));
- SET_DisableClientState(__ogl_framework_api, dlsym(handle, "glDisableClientState"));
- SET_DrawArrays(__ogl_framework_api, dlsym(handle, "glDrawArrays"));
- SET_DrawBuffer(__ogl_framework_api, dlsym(handle, "glDrawBuffer"));
- SET_DrawElements(__ogl_framework_api, dlsym(handle, "glDrawElements"));
- SET_DrawPixels(__ogl_framework_api, dlsym(handle, "glDrawPixels"));
- SET_DrawRangeElements(__ogl_framework_api, dlsym(handle, "glDrawRangeElements"));
- SET_EdgeFlag(__ogl_framework_api, dlsym(handle, "glEdgeFlag"));
- SET_EdgeFlagPointer(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointer"));
- SET_EdgeFlagv(__ogl_framework_api, dlsym(handle, "glEdgeFlagv"));
- SET_Enable(__ogl_framework_api, dlsym(handle, "glEnable"));
- SET_EnableClientState(__ogl_framework_api, dlsym(handle, "glEnableClientState"));
- SET_End(__ogl_framework_api, dlsym(handle, "glEnd"));
- SET_EndList(__ogl_framework_api, dlsym(handle, "glEndList"));
- SET_EvalCoord1d(__ogl_framework_api, dlsym(handle, "glEvalCoord1d"));
- SET_EvalCoord1dv(__ogl_framework_api, dlsym(handle, "glEvalCoord1dv"));
- SET_EvalCoord1f(__ogl_framework_api, dlsym(handle, "glEvalCoord1f"));
- SET_EvalCoord1fv(__ogl_framework_api, dlsym(handle, "glEvalCoord1fv"));
- SET_EvalCoord2d(__ogl_framework_api, dlsym(handle, "glEvalCoord2d"));
- SET_EvalCoord2dv(__ogl_framework_api, dlsym(handle, "glEvalCoord2dv"));
- SET_EvalCoord2f(__ogl_framework_api, dlsym(handle, "glEvalCoord2f"));
- SET_EvalCoord2fv(__ogl_framework_api, dlsym(handle, "glEvalCoord2fv"));
- SET_EvalMesh1(__ogl_framework_api, dlsym(handle, "glEvalMesh1"));
- SET_EvalMesh2(__ogl_framework_api, dlsym(handle, "glEvalMesh2"));
- SET_EvalPoint1(__ogl_framework_api, dlsym(handle, "glEvalPoint1"));
- SET_EvalPoint2(__ogl_framework_api, dlsym(handle, "glEvalPoint2"));
- SET_FeedbackBuffer(__ogl_framework_api, dlsym(handle, "glFeedbackBuffer"));
- SET_Finish(__ogl_framework_api, dlsym(handle, "glFinish"));
- SET_Flush(__ogl_framework_api, dlsym(handle, "glFlush"));
- SET_Fogf(__ogl_framework_api, dlsym(handle, "glFogf"));
- SET_Fogfv(__ogl_framework_api, dlsym(handle, "glFogfv"));
- SET_Fogi(__ogl_framework_api, dlsym(handle, "glFogi"));
- SET_Fogiv(__ogl_framework_api, dlsym(handle, "glFogiv"));
- SET_FrontFace(__ogl_framework_api, dlsym(handle, "glFrontFace"));
- SET_Frustum(__ogl_framework_api, dlsym(handle, "glFrustum"));
- SET_GenLists(__ogl_framework_api, dlsym(handle, "glGenLists"));
- SET_GenTextures(__ogl_framework_api, dlsym(handle, "glGenTextures"));
- SET_GetBooleanv(__ogl_framework_api, dlsym(handle, "glGetBooleanv"));
- SET_GetClipPlane(__ogl_framework_api, dlsym(handle, "glGetClipPlane"));
- SET_GetColorTable(__ogl_framework_api, dlsym(handle, "glGetColorTable"));
- SET_GetColorTableParameterfv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameterfv"));
- SET_GetColorTableParameteriv(__ogl_framework_api, dlsym(handle, "glGetColorTableParameteriv"));
- SET_GetConvolutionFilter(__ogl_framework_api, dlsym(handle, "glGetConvolutionFilter"));
- SET_GetConvolutionParameterfv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameterfv"));
- SET_GetConvolutionParameteriv(__ogl_framework_api, dlsym(handle, "glGetConvolutionParameteriv"));
- SET_GetDoublev(__ogl_framework_api, dlsym(handle, "glGetDoublev"));
- SET_GetError(__ogl_framework_api, dlsym(handle, "glGetError"));
- SET_GetFloatv(__ogl_framework_api, dlsym(handle, "glGetFloatv"));
- SET_GetHistogram(__ogl_framework_api, dlsym(handle, "glGetHistogram"));
- SET_GetHistogramParameterfv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameterfv"));
- SET_GetHistogramParameteriv(__ogl_framework_api, dlsym(handle, "glGetHistogramParameteriv"));
- SET_GetIntegerv(__ogl_framework_api, dlsym(handle, "glGetIntegerv"));
- SET_GetLightfv(__ogl_framework_api, dlsym(handle, "glGetLightfv"));
- SET_GetLightiv(__ogl_framework_api, dlsym(handle, "glGetLightiv"));
- SET_GetMapdv(__ogl_framework_api, dlsym(handle, "glGetMapdv"));
- SET_GetMapfv(__ogl_framework_api, dlsym(handle, "glGetMapfv"));
- SET_GetMapiv(__ogl_framework_api, dlsym(handle, "glGetMapiv"));
- SET_GetMaterialfv(__ogl_framework_api, dlsym(handle, "glGetMaterialfv"));
- SET_GetMaterialiv(__ogl_framework_api, dlsym(handle, "glGetMaterialiv"));
- SET_GetMinmax(__ogl_framework_api, dlsym(handle, "glGetMinmax"));
- SET_GetMinmaxParameterfv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameterfv"));
- SET_GetMinmaxParameteriv(__ogl_framework_api, dlsym(handle, "glGetMinmaxParameteriv"));
- SET_GetPixelMapfv(__ogl_framework_api, dlsym(handle, "glGetPixelMapfv"));
- SET_GetPixelMapuiv(__ogl_framework_api, dlsym(handle, "glGetPixelMapuiv"));
- SET_GetPixelMapusv(__ogl_framework_api, dlsym(handle, "glGetPixelMapusv"));
- SET_GetPointerv(__ogl_framework_api, dlsym(handle, "glGetPointerv"));
- SET_GetPolygonStipple(__ogl_framework_api, dlsym(handle, "glGetPolygonStipple"));
- SET_GetSeparableFilter(__ogl_framework_api, dlsym(handle, "glGetSeparableFilter"));
- SET_GetString(__ogl_framework_api, dlsym(handle, "glGetString"));
- SET_GetTexEnvfv(__ogl_framework_api, dlsym(handle, "glGetTexEnvfv"));
- SET_GetTexEnviv(__ogl_framework_api, dlsym(handle, "glGetTexEnviv"));
- SET_GetTexGendv(__ogl_framework_api, dlsym(handle, "glGetTexGendv"));
- SET_GetTexGenfv(__ogl_framework_api, dlsym(handle, "glGetTexGenfv"));
- SET_GetTexGeniv(__ogl_framework_api, dlsym(handle, "glGetTexGeniv"));
- SET_GetTexImage(__ogl_framework_api, dlsym(handle, "glGetTexImage"));
- SET_GetTexLevelParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameterfv"));
- SET_GetTexLevelParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexLevelParameteriv"));
- SET_GetTexParameterfv(__ogl_framework_api, dlsym(handle, "glGetTexParameterfv"));
- SET_GetTexParameteriv(__ogl_framework_api, dlsym(handle, "glGetTexParameteriv"));
- SET_Hint(__ogl_framework_api, dlsym(handle, "glHint"));
- SET_Histogram(__ogl_framework_api, dlsym(handle, "glHistogram"));
- SET_IndexMask(__ogl_framework_api, dlsym(handle, "glIndexMask"));
- SET_IndexPointer(__ogl_framework_api, dlsym(handle, "glIndexPointer"));
- SET_Indexd(__ogl_framework_api, dlsym(handle, "glIndexd"));
- SET_Indexdv(__ogl_framework_api, dlsym(handle, "glIndexdv"));
- SET_Indexf(__ogl_framework_api, dlsym(handle, "glIndexf"));
- SET_Indexfv(__ogl_framework_api, dlsym(handle, "glIndexfv"));
- SET_Indexi(__ogl_framework_api, dlsym(handle, "glIndexi"));
- SET_Indexiv(__ogl_framework_api, dlsym(handle, "glIndexiv"));
- SET_Indexs(__ogl_framework_api, dlsym(handle, "glIndexs"));
- SET_Indexsv(__ogl_framework_api, dlsym(handle, "glIndexsv"));
- SET_Indexub(__ogl_framework_api, dlsym(handle, "glIndexub"));
- SET_Indexubv(__ogl_framework_api, dlsym(handle, "glIndexubv"));
- SET_InitNames(__ogl_framework_api, dlsym(handle, "glInitNames"));
- SET_InterleavedArrays(__ogl_framework_api, dlsym(handle, "glInterleavedArrays"));
- SET_IsEnabled(__ogl_framework_api, dlsym(handle, "glIsEnabled"));
- SET_IsList(__ogl_framework_api, dlsym(handle, "glIsList"));
- SET_IsTexture(__ogl_framework_api, dlsym(handle, "glIsTexture"));
- SET_LightModelf(__ogl_framework_api, dlsym(handle, "glLightModelf"));
- SET_LightModelfv(__ogl_framework_api, dlsym(handle, "glLightModelfv"));
- SET_LightModeli(__ogl_framework_api, dlsym(handle, "glLightModeli"));
- SET_LightModeliv(__ogl_framework_api, dlsym(handle, "glLightModeliv"));
- SET_Lightf(__ogl_framework_api, dlsym(handle, "glLightf"));
- SET_Lightfv(__ogl_framework_api, dlsym(handle, "glLightfv"));
- SET_Lighti(__ogl_framework_api, dlsym(handle, "glLighti"));
- SET_Lightiv(__ogl_framework_api, dlsym(handle, "glLightiv"));
- SET_LineStipple(__ogl_framework_api, dlsym(handle, "glLineStipple"));
- SET_LineWidth(__ogl_framework_api, dlsym(handle, "glLineWidth"));
- SET_ListBase(__ogl_framework_api, dlsym(handle, "glListBase"));
- SET_LoadIdentity(__ogl_framework_api, dlsym(handle, "glLoadIdentity"));
- SET_LoadMatrixd(__ogl_framework_api, dlsym(handle, "glLoadMatrixd"));
- SET_LoadMatrixf(__ogl_framework_api, dlsym(handle, "glLoadMatrixf"));
- SET_LoadName(__ogl_framework_api, dlsym(handle, "glLoadName"));
- SET_LogicOp(__ogl_framework_api, dlsym(handle, "glLogicOp"));
- SET_Map1d(__ogl_framework_api, dlsym(handle, "glMap1d"));
- SET_Map1f(__ogl_framework_api, dlsym(handle, "glMap1f"));
- SET_Map2d(__ogl_framework_api, dlsym(handle, "glMap2d"));
- SET_Map2f(__ogl_framework_api, dlsym(handle, "glMap2f"));
- SET_MapGrid1d(__ogl_framework_api, dlsym(handle, "glMapGrid1d"));
- SET_MapGrid1f(__ogl_framework_api, dlsym(handle, "glMapGrid1f"));
- SET_MapGrid2d(__ogl_framework_api, dlsym(handle, "glMapGrid2d"));
- SET_MapGrid2f(__ogl_framework_api, dlsym(handle, "glMapGrid2f"));
- SET_Materialf(__ogl_framework_api, dlsym(handle, "glMaterialf"));
- SET_Materialfv(__ogl_framework_api, dlsym(handle, "glMaterialfv"));
- SET_Materiali(__ogl_framework_api, dlsym(handle, "glMateriali"));
- SET_Materialiv(__ogl_framework_api, dlsym(handle, "glMaterialiv"));
- SET_MatrixMode(__ogl_framework_api, dlsym(handle, "glMatrixMode"));
- SET_Minmax(__ogl_framework_api, dlsym(handle, "glMinmax"));
- SET_MultMatrixd(__ogl_framework_api, dlsym(handle, "glMultMatrixd"));
- SET_MultMatrixf(__ogl_framework_api, dlsym(handle, "glMultMatrixf"));
- SET_NewList(__ogl_framework_api, dlsym(handle, "glNewList"));
- SET_Normal3b(__ogl_framework_api, dlsym(handle, "glNormal3b"));
- SET_Normal3bv(__ogl_framework_api, dlsym(handle, "glNormal3bv"));
- SET_Normal3d(__ogl_framework_api, dlsym(handle, "glNormal3d"));
- SET_Normal3dv(__ogl_framework_api, dlsym(handle, "glNormal3dv"));
- SET_Normal3f(__ogl_framework_api, dlsym(handle, "glNormal3f"));
- SET_Normal3fv(__ogl_framework_api, dlsym(handle, "glNormal3fv"));
- SET_Normal3i(__ogl_framework_api, dlsym(handle, "glNormal3i"));
- SET_Normal3iv(__ogl_framework_api, dlsym(handle, "glNormal3iv"));
- SET_Normal3s(__ogl_framework_api, dlsym(handle, "glNormal3s"));
- SET_Normal3sv(__ogl_framework_api, dlsym(handle, "glNormal3sv"));
- SET_NormalPointer(__ogl_framework_api, dlsym(handle, "glNormalPointer"));
- SET_Ortho(__ogl_framework_api, dlsym(handle, "glOrtho"));
- SET_PassThrough(__ogl_framework_api, dlsym(handle, "glPassThrough"));
- SET_PixelMapfv(__ogl_framework_api, dlsym(handle, "glPixelMapfv"));
- SET_PixelMapuiv(__ogl_framework_api, dlsym(handle, "glPixelMapuiv"));
- SET_PixelMapusv(__ogl_framework_api, dlsym(handle, "glPixelMapusv"));
- SET_PixelStoref(__ogl_framework_api, dlsym(handle, "glPixelStoref"));
- SET_PixelStorei(__ogl_framework_api, dlsym(handle, "glPixelStorei"));
- SET_PixelTransferf(__ogl_framework_api, dlsym(handle, "glPixelTransferf"));
- SET_PixelTransferi(__ogl_framework_api, dlsym(handle, "glPixelTransferi"));
- SET_PixelZoom(__ogl_framework_api, dlsym(handle, "glPixelZoom"));
- SET_PointSize(__ogl_framework_api, dlsym(handle, "glPointSize"));
- SET_PolygonMode(__ogl_framework_api, dlsym(handle, "glPolygonMode"));
- SET_PolygonOffset(__ogl_framework_api, dlsym(handle, "glPolygonOffset"));
- SET_PolygonStipple(__ogl_framework_api, dlsym(handle, "glPolygonStipple"));
- SET_PopAttrib(__ogl_framework_api, dlsym(handle, "glPopAttrib"));
- SET_PopClientAttrib(__ogl_framework_api, dlsym(handle, "glPopClientAttrib"));
- SET_PopMatrix(__ogl_framework_api, dlsym(handle, "glPopMatrix"));
- SET_PopName(__ogl_framework_api, dlsym(handle, "glPopName"));
- SET_PrioritizeTextures(__ogl_framework_api, dlsym(handle, "glPrioritizeTextures"));
- SET_PushAttrib(__ogl_framework_api, dlsym(handle, "glPushAttrib"));
- SET_PushClientAttrib(__ogl_framework_api, dlsym(handle, "glPushClientAttrib"));
- SET_PushMatrix(__ogl_framework_api, dlsym(handle, "glPushMatrix"));
- SET_PushName(__ogl_framework_api, dlsym(handle, "glPushName"));
- SET_RasterPos2d(__ogl_framework_api, dlsym(handle, "glRasterPos2d"));
- SET_RasterPos2dv(__ogl_framework_api, dlsym(handle, "glRasterPos2dv"));
- SET_RasterPos2f(__ogl_framework_api, dlsym(handle, "glRasterPos2f"));
- SET_RasterPos2fv(__ogl_framework_api, dlsym(handle, "glRasterPos2fv"));
- SET_RasterPos2i(__ogl_framework_api, dlsym(handle, "glRasterPos2i"));
- SET_RasterPos2iv(__ogl_framework_api, dlsym(handle, "glRasterPos2iv"));
- SET_RasterPos2s(__ogl_framework_api, dlsym(handle, "glRasterPos2s"));
- SET_RasterPos2sv(__ogl_framework_api, dlsym(handle, "glRasterPos2sv"));
- SET_RasterPos3d(__ogl_framework_api, dlsym(handle, "glRasterPos3d"));
- SET_RasterPos3dv(__ogl_framework_api, dlsym(handle, "glRasterPos3dv"));
- SET_RasterPos3f(__ogl_framework_api, dlsym(handle, "glRasterPos3f"));
- SET_RasterPos3fv(__ogl_framework_api, dlsym(handle, "glRasterPos3fv"));
- SET_RasterPos3i(__ogl_framework_api, dlsym(handle, "glRasterPos3i"));
- SET_RasterPos3iv(__ogl_framework_api, dlsym(handle, "glRasterPos3iv"));
- SET_RasterPos3s(__ogl_framework_api, dlsym(handle, "glRasterPos3s"));
- SET_RasterPos3sv(__ogl_framework_api, dlsym(handle, "glRasterPos3sv"));
- SET_RasterPos4d(__ogl_framework_api, dlsym(handle, "glRasterPos4d"));
- SET_RasterPos4dv(__ogl_framework_api, dlsym(handle, "glRasterPos4dv"));
- SET_RasterPos4f(__ogl_framework_api, dlsym(handle, "glRasterPos4f"));
- SET_RasterPos4fv(__ogl_framework_api, dlsym(handle, "glRasterPos4fv"));
- SET_RasterPos4i(__ogl_framework_api, dlsym(handle, "glRasterPos4i"));
- SET_RasterPos4iv(__ogl_framework_api, dlsym(handle, "glRasterPos4iv"));
- SET_RasterPos4s(__ogl_framework_api, dlsym(handle, "glRasterPos4s"));
- SET_RasterPos4sv(__ogl_framework_api, dlsym(handle, "glRasterPos4sv"));
- SET_ReadBuffer(__ogl_framework_api, dlsym(handle, "glReadBuffer"));
- SET_ReadPixels(__ogl_framework_api, dlsym(handle, "glReadPixels"));
- SET_Rectd(__ogl_framework_api, dlsym(handle, "glRectd"));
- SET_Rectdv(__ogl_framework_api, dlsym(handle, "glRectdv"));
- SET_Rectf(__ogl_framework_api, dlsym(handle, "glRectf"));
- SET_Rectfv(__ogl_framework_api, dlsym(handle, "glRectfv"));
- SET_Recti(__ogl_framework_api, dlsym(handle, "glRecti"));
- SET_Rectiv(__ogl_framework_api, dlsym(handle, "glRectiv"));
- SET_Rects(__ogl_framework_api, dlsym(handle, "glRects"));
- SET_Rectsv(__ogl_framework_api, dlsym(handle, "glRectsv"));
- SET_RenderMode(__ogl_framework_api, dlsym(handle, "glRenderMode"));
- SET_ResetHistogram(__ogl_framework_api, dlsym(handle, "glResetHistogram"));
- SET_ResetMinmax(__ogl_framework_api, dlsym(handle, "glResetMinmax"));
- SET_Rotated(__ogl_framework_api, dlsym(handle, "glRotated"));
- SET_Rotatef(__ogl_framework_api, dlsym(handle, "glRotatef"));
- SET_Scaled(__ogl_framework_api, dlsym(handle, "glScaled"));
- SET_Scalef(__ogl_framework_api, dlsym(handle, "glScalef"));
- SET_Scissor(__ogl_framework_api, dlsym(handle, "glScissor"));
- SET_SelectBuffer(__ogl_framework_api, dlsym(handle, "glSelectBuffer"));
- SET_SeparableFilter2D(__ogl_framework_api, dlsym(handle, "glSeparableFilter2D"));
- SET_ShadeModel(__ogl_framework_api, dlsym(handle, "glShadeModel"));
- SET_StencilFunc(__ogl_framework_api, dlsym(handle, "glStencilFunc"));
- SET_StencilMask(__ogl_framework_api, dlsym(handle, "glStencilMask"));
- SET_StencilOp(__ogl_framework_api, dlsym(handle, "glStencilOp"));
- SET_TexCoord1d(__ogl_framework_api, dlsym(handle, "glTexCoord1d"));
- SET_TexCoord1dv(__ogl_framework_api, dlsym(handle, "glTexCoord1dv"));
- SET_TexCoord1f(__ogl_framework_api, dlsym(handle, "glTexCoord1f"));
- SET_TexCoord1fv(__ogl_framework_api, dlsym(handle, "glTexCoord1fv"));
- SET_TexCoord1i(__ogl_framework_api, dlsym(handle, "glTexCoord1i"));
- SET_TexCoord1iv(__ogl_framework_api, dlsym(handle, "glTexCoord1iv"));
- SET_TexCoord1s(__ogl_framework_api, dlsym(handle, "glTexCoord1s"));
- SET_TexCoord1sv(__ogl_framework_api, dlsym(handle, "glTexCoord1sv"));
- SET_TexCoord2d(__ogl_framework_api, dlsym(handle, "glTexCoord2d"));
- SET_TexCoord2dv(__ogl_framework_api, dlsym(handle, "glTexCoord2dv"));
- SET_TexCoord2f(__ogl_framework_api, dlsym(handle, "glTexCoord2f"));
- SET_TexCoord2fv(__ogl_framework_api, dlsym(handle, "glTexCoord2fv"));
- SET_TexCoord2i(__ogl_framework_api, dlsym(handle, "glTexCoord2i"));
- SET_TexCoord2iv(__ogl_framework_api, dlsym(handle, "glTexCoord2iv"));
- SET_TexCoord2s(__ogl_framework_api, dlsym(handle, "glTexCoord2s"));
- SET_TexCoord2sv(__ogl_framework_api, dlsym(handle, "glTexCoord2sv"));
- SET_TexCoord3d(__ogl_framework_api, dlsym(handle, "glTexCoord3d"));
- SET_TexCoord3dv(__ogl_framework_api, dlsym(handle, "glTexCoord3dv"));
- SET_TexCoord3f(__ogl_framework_api, dlsym(handle, "glTexCoord3f"));
- SET_TexCoord3fv(__ogl_framework_api, dlsym(handle, "glTexCoord3fv"));
- SET_TexCoord3i(__ogl_framework_api, dlsym(handle, "glTexCoord3i"));
- SET_TexCoord3iv(__ogl_framework_api, dlsym(handle, "glTexCoord3iv"));
- SET_TexCoord3s(__ogl_framework_api, dlsym(handle, "glTexCoord3s"));
- SET_TexCoord3sv(__ogl_framework_api, dlsym(handle, "glTexCoord3sv"));
- SET_TexCoord4d(__ogl_framework_api, dlsym(handle, "glTexCoord4d"));
- SET_TexCoord4dv(__ogl_framework_api, dlsym(handle, "glTexCoord4dv"));
- SET_TexCoord4f(__ogl_framework_api, dlsym(handle, "glTexCoord4f"));
- SET_TexCoord4fv(__ogl_framework_api, dlsym(handle, "glTexCoord4fv"));
- SET_TexCoord4i(__ogl_framework_api, dlsym(handle, "glTexCoord4i"));
- SET_TexCoord4iv(__ogl_framework_api, dlsym(handle, "glTexCoord4iv"));
- SET_TexCoord4s(__ogl_framework_api, dlsym(handle, "glTexCoord4s"));
- SET_TexCoord4sv(__ogl_framework_api, dlsym(handle, "glTexCoord4sv"));
- SET_TexCoordPointer(__ogl_framework_api, dlsym(handle, "glTexCoordPointer"));
- SET_TexEnvf(__ogl_framework_api, dlsym(handle, "glTexEnvf"));
- SET_TexEnvfv(__ogl_framework_api, dlsym(handle, "glTexEnvfv"));
- SET_TexEnvi(__ogl_framework_api, dlsym(handle, "glTexEnvi"));
- SET_TexEnviv(__ogl_framework_api, dlsym(handle, "glTexEnviv"));
- SET_TexGend(__ogl_framework_api, dlsym(handle, "glTexGend"));
- SET_TexGendv(__ogl_framework_api, dlsym(handle, "glTexGendv"));
- SET_TexGenf(__ogl_framework_api, dlsym(handle, "glTexGenf"));
- SET_TexGenfv(__ogl_framework_api, dlsym(handle, "glTexGenfv"));
- SET_TexGeni(__ogl_framework_api, dlsym(handle, "glTexGeni"));
- SET_TexGeniv(__ogl_framework_api, dlsym(handle, "glTexGeniv"));
- SET_TexImage1D(__ogl_framework_api, dlsym(handle, "glTexImage1D"));
- SET_TexImage2D(__ogl_framework_api, dlsym(handle, "glTexImage2D"));
- SET_TexImage3D(__ogl_framework_api, dlsym(handle, "glTexImage3D"));
- SET_TexParameterf(__ogl_framework_api, dlsym(handle, "glTexParameterf"));
- SET_TexParameterfv(__ogl_framework_api, dlsym(handle, "glTexParameterfv"));
- SET_TexParameteri(__ogl_framework_api, dlsym(handle, "glTexParameteri"));
- SET_TexParameteriv(__ogl_framework_api, dlsym(handle, "glTexParameteriv"));
- SET_TexSubImage1D(__ogl_framework_api, dlsym(handle, "glTexSubImage1D"));
- SET_TexSubImage2D(__ogl_framework_api, dlsym(handle, "glTexSubImage2D"));
- SET_TexSubImage3D(__ogl_framework_api, dlsym(handle, "glTexSubImage3D"));
- SET_Translated(__ogl_framework_api, dlsym(handle, "glTranslated"));
- SET_Translatef(__ogl_framework_api, dlsym(handle, "glTranslatef"));
- SET_Vertex2d(__ogl_framework_api, dlsym(handle, "glVertex2d"));
- SET_Vertex2dv(__ogl_framework_api, dlsym(handle, "glVertex2dv"));
- SET_Vertex2f(__ogl_framework_api, dlsym(handle, "glVertex2f"));
- SET_Vertex2fv(__ogl_framework_api, dlsym(handle, "glVertex2fv"));
- SET_Vertex2i(__ogl_framework_api, dlsym(handle, "glVertex2i"));
- SET_Vertex2iv(__ogl_framework_api, dlsym(handle, "glVertex2iv"));
- SET_Vertex2s(__ogl_framework_api, dlsym(handle, "glVertex2s"));
- SET_Vertex2sv(__ogl_framework_api, dlsym(handle, "glVertex2sv"));
- SET_Vertex3d(__ogl_framework_api, dlsym(handle, "glVertex3d"));
- SET_Vertex3dv(__ogl_framework_api, dlsym(handle, "glVertex3dv"));
- SET_Vertex3f(__ogl_framework_api, dlsym(handle, "glVertex3f"));
- SET_Vertex3fv(__ogl_framework_api, dlsym(handle, "glVertex3fv"));
- SET_Vertex3i(__ogl_framework_api, dlsym(handle, "glVertex3i"));
- SET_Vertex3iv(__ogl_framework_api, dlsym(handle, "glVertex3iv"));
- SET_Vertex3s(__ogl_framework_api, dlsym(handle, "glVertex3s"));
- SET_Vertex3sv(__ogl_framework_api, dlsym(handle, "glVertex3sv"));
- SET_Vertex4d(__ogl_framework_api, dlsym(handle, "glVertex4d"));
- SET_Vertex4dv(__ogl_framework_api, dlsym(handle, "glVertex4dv"));
- SET_Vertex4f(__ogl_framework_api, dlsym(handle, "glVertex4f"));
- SET_Vertex4fv(__ogl_framework_api, dlsym(handle, "glVertex4fv"));
- SET_Vertex4i(__ogl_framework_api, dlsym(handle, "glVertex4i"));
- SET_Vertex4iv(__ogl_framework_api, dlsym(handle, "glVertex4iv"));
- SET_Vertex4s(__ogl_framework_api, dlsym(handle, "glVertex4s"));
- SET_Vertex4sv(__ogl_framework_api, dlsym(handle, "glVertex4sv"));
- SET_VertexPointer(__ogl_framework_api, dlsym(handle, "glVertexPointer"));
- SET_Viewport(__ogl_framework_api, dlsym(handle, "glViewport"));
-
- /* GL_VERSION_2_0 */
- SET_AttachShader(__ogl_framework_api, dlsym(handle, "glAttachShader"));
- SET_CreateProgram(__ogl_framework_api, dlsym(handle, "glCreateProgram"));
- SET_CreateShader(__ogl_framework_api, dlsym(handle, "glCreateShader"));
- SET_DeleteProgram(__ogl_framework_api, dlsym(handle, "glDeleteProgram"));
- SET_DeleteShader(__ogl_framework_api, dlsym(handle, "glDeleteShader"));
- SET_DetachShader(__ogl_framework_api, dlsym(handle, "glDetachShader"));
- SET_GetAttachedShaders(__ogl_framework_api, dlsym(handle, "glGetAttachedShaders"));
- SET_GetProgramiv(__ogl_framework_api, dlsym(handle, "glGetProgramiv"));
- SET_GetProgramInfoLog(__ogl_framework_api, dlsym(handle, "glGetProgramInfoLog"));
- SET_GetShaderInfoLog(__ogl_framework_api, dlsym(handle, "glGetShaderInfoLog"));
- SET_GetShaderiv(__ogl_framework_api, dlsym(handle, "glGetShaderiv"));
- SET_IsProgram(__ogl_framework_api, dlsym(handle, "glIsProgram"));
- SET_IsShader(__ogl_framework_api, dlsym(handle, "glIsShader"));
- SET_StencilFuncSeparate(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparate"));
- SET_StencilMaskSeparate(__ogl_framework_api, dlsym(handle, "glStencilMaskSeparate"));
- SET_StencilOpSeparate(__ogl_framework_api, dlsym(handle, "glStencilOpSeparate"));
-
- /* GL_VERSION_2_1 */
- SET_UniformMatrix2x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x3fv"));
- SET_UniformMatrix2x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix2x4fv"));
- SET_UniformMatrix3x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x2fv"));
- SET_UniformMatrix3x4fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix3x4fv"));
- SET_UniformMatrix4x2fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x2fv"));
- SET_UniformMatrix4x3fv(__ogl_framework_api, dlsym(handle, "glUniformMatrix4x3fv"));
-
- /* GL_VERSION_3_0 */
- SET_ClampColor(__ogl_framework_api, dlsym(handle, "glClampColor"));
- SET_ClearBufferfi(__ogl_framework_api, dlsym(handle, "glClearBufferfi"));
- SET_ClearBufferfv(__ogl_framework_api, dlsym(handle, "glClearBufferfv"));
- SET_ClearBufferiv(__ogl_framework_api, dlsym(handle, "glClearBufferiv"));
- SET_ClearBufferuiv(__ogl_framework_api, dlsym(handle, "glClearBufferuiv"));
- SET_GetStringi(__ogl_framework_api, dlsym(handle, "glGetStringi"));
-
- /* GL_VERSION_3_1 */
- SET_TexBuffer(__ogl_framework_api, dlsym(handle, "glTexBuffer"));
-
- /* GL_VERSION_3_2 */
- SET_FramebufferTexture(__ogl_framework_api, dlsym(handle, "glFramebufferTexture"));
- SET_GetBufferParameteri64v(__ogl_framework_api, dlsym(handle, "glGetBufferParameteri64v"));
- SET_GetInteger64i_v(__ogl_framework_api, dlsym(handle, "glGetInteger64i_v"));
-
- /* GL_APPLE_vertex_array_object */
- SET_BindVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glBindVertexArrayAPPLE"));
- SET_DeleteVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glDeleteVertexArraysAPPLE"));
- SET_GenVertexArraysAPPLE(__ogl_framework_api, dlsym(handle, "glGenVertexArraysAPPLE"));
- SET_IsVertexArrayAPPLE(__ogl_framework_api, dlsym(handle, "glIsVertexArrayAPPLE"));
-
- /* GL_ARB_draw_buffers */
- SET_DrawBuffersARB(__ogl_framework_api, dlsym(handle, "glDrawBuffersARB"));
-
- /* GL_ARB_multisample */
- SET_SampleCoverageARB(__ogl_framework_api, dlsym(handle, "glSampleCoverageARB"));
-
- /* GL_ARB_multitexture */
- SET_ActiveTextureARB(__ogl_framework_api, dlsym(handle, "glActiveTextureARB"));
- SET_ClientActiveTextureARB(__ogl_framework_api, dlsym(handle, "glClientActiveTextureARB"));
- SET_MultiTexCoord1dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dARB"));
- SET_MultiTexCoord1dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1dvARB"));
- SET_MultiTexCoord1fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fARB"));
- SET_MultiTexCoord1fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1fvARB"));
- SET_MultiTexCoord1iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1iARB"));
- SET_MultiTexCoord1ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1ivARB"));
- SET_MultiTexCoord1sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1sARB"));
- SET_MultiTexCoord1svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord1svARB"));
- SET_MultiTexCoord2dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dARB"));
- SET_MultiTexCoord2dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2dvARB"));
- SET_MultiTexCoord2fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fARB"));
- SET_MultiTexCoord2fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2fvARB"));
- SET_MultiTexCoord2iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2iARB"));
- SET_MultiTexCoord2ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2ivARB"));
- SET_MultiTexCoord2sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2sARB"));
- SET_MultiTexCoord2svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord2svARB"));
- SET_MultiTexCoord3dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dARB"));
- SET_MultiTexCoord3dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3dvARB"));
- SET_MultiTexCoord3fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fARB"));
- SET_MultiTexCoord3fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3fvARB"));
- SET_MultiTexCoord3iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3iARB"));
- SET_MultiTexCoord3ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3ivARB"));
- SET_MultiTexCoord3sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3sARB"));
- SET_MultiTexCoord3svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord3svARB"));
- SET_MultiTexCoord4dARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dARB"));
- SET_MultiTexCoord4dvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4dvARB"));
- SET_MultiTexCoord4fARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fARB"));
- SET_MultiTexCoord4fvARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4fvARB"));
- SET_MultiTexCoord4iARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4iARB"));
- SET_MultiTexCoord4ivARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4ivARB"));
- SET_MultiTexCoord4sARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4sARB"));
- SET_MultiTexCoord4svARB(__ogl_framework_api, dlsym(handle, "glMultiTexCoord4svARB"));
-
- /* GL_ARB_occlusion_query */
- SET_BeginQueryARB(__ogl_framework_api, dlsym(handle, "glBeginQueryARB"));
- SET_DeleteQueriesARB(__ogl_framework_api, dlsym(handle, "glDeleteQueriesARB"));
- SET_EndQueryARB(__ogl_framework_api, dlsym(handle, "glEndQueryARB"));
- SET_GenQueriesARB(__ogl_framework_api, dlsym(handle, "glGenQueriesARB"));
- SET_GetQueryObjectivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectivARB"));
- SET_GetQueryObjectuivARB(__ogl_framework_api, dlsym(handle, "glGetQueryObjectuivARB"));
- SET_GetQueryivARB(__ogl_framework_api, dlsym(handle, "glGetQueryivARB"));
- SET_IsQueryARB(__ogl_framework_api, dlsym(handle, "glIsQueryARB"));
-
- /* GL_ARB_shader_objects */
- SET_AttachObjectARB(__ogl_framework_api, dlsym(handle, "glAttachObjectARB"));
- SET_CompileShaderARB(__ogl_framework_api, dlsym(handle, "glCompileShaderARB"));
- SET_DeleteObjectARB(__ogl_framework_api, dlsym(handle, "glDeleteObjectARB"));
- SET_GetHandleARB(__ogl_framework_api, dlsym(handle, "glGetHandleARB"));
- SET_DetachObjectARB(__ogl_framework_api, dlsym(handle, "glDetachObjectARB"));
- SET_CreateProgramObjectARB(__ogl_framework_api, dlsym(handle, "glCreateProgramObjectARB"));
- SET_CreateShaderObjectARB(__ogl_framework_api, dlsym(handle, "glCreateShaderObjectARB"));
- SET_GetInfoLogARB(__ogl_framework_api, dlsym(handle, "glGetInfoLogARB"));
- SET_GetActiveUniformARB(__ogl_framework_api, dlsym(handle, "glGetActiveUniformARB"));
- SET_GetAttachedObjectsARB(__ogl_framework_api, dlsym(handle, "glGetAttachedObjectsARB"));
- SET_GetObjectParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterfvARB"));
- SET_GetObjectParameterivARB(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivARB"));
- SET_GetShaderSourceARB(__ogl_framework_api, dlsym(handle, "glGetShaderSourceARB"));
- SET_GetUniformLocationARB(__ogl_framework_api, dlsym(handle, "glGetUniformLocationARB"));
- SET_GetUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetUniformfvARB"));
- SET_GetUniformivARB(__ogl_framework_api, dlsym(handle, "glGetUniformivARB"));
- SET_LinkProgramARB(__ogl_framework_api, dlsym(handle, "glLinkProgramARB"));
- SET_ShaderSourceARB(__ogl_framework_api, dlsym(handle, "glShaderSourceARB"));
- SET_Uniform1fARB(__ogl_framework_api, dlsym(handle, "glUniform1fARB"));
- SET_Uniform1fvARB(__ogl_framework_api, dlsym(handle, "glUniform1fvARB"));
- SET_Uniform1iARB(__ogl_framework_api, dlsym(handle, "glUniform1iARB"));
- SET_Uniform1ivARB(__ogl_framework_api, dlsym(handle, "glUniform1ivARB"));
- SET_Uniform2fARB(__ogl_framework_api, dlsym(handle, "glUniform2fARB"));
- SET_Uniform2fvARB(__ogl_framework_api, dlsym(handle, "glUniform2fvARB"));
- SET_Uniform2iARB(__ogl_framework_api, dlsym(handle, "glUniform2iARB"));
- SET_Uniform2ivARB(__ogl_framework_api, dlsym(handle, "glUniform2ivARB"));
- SET_Uniform3fARB(__ogl_framework_api, dlsym(handle, "glUniform3fARB"));
- SET_Uniform3fvARB(__ogl_framework_api, dlsym(handle, "glUniform3fvARB"));
- SET_Uniform3iARB(__ogl_framework_api, dlsym(handle, "glUniform3iARB"));
- SET_Uniform3ivARB(__ogl_framework_api, dlsym(handle, "glUniform3ivARB"));
- SET_Uniform4fARB(__ogl_framework_api, dlsym(handle, "glUniform4fARB"));
- SET_Uniform4fvARB(__ogl_framework_api, dlsym(handle, "glUniform4fvARB"));
- SET_Uniform4iARB(__ogl_framework_api, dlsym(handle, "glUniform4iARB"));
- SET_Uniform4ivARB(__ogl_framework_api, dlsym(handle, "glUniform4ivARB"));
- SET_UniformMatrix2fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix2fvARB"));
- SET_UniformMatrix3fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix3fvARB"));
- SET_UniformMatrix4fvARB(__ogl_framework_api, dlsym(handle, "glUniformMatrix4fvARB"));
- SET_UseProgramObjectARB(__ogl_framework_api, dlsym(handle, "glUseProgramObjectARB"));
- SET_ValidateProgramARB(__ogl_framework_api, dlsym(handle, "glValidateProgramARB"));
-
- /* GL_ARB_texture_compression */
- SET_CompressedTexImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage1DARB"));
- SET_CompressedTexImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage2DARB"));
- SET_CompressedTexImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexImage3DARB"));
- SET_CompressedTexSubImage1DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage1DARB"));
- SET_CompressedTexSubImage2DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage2DARB"));
- SET_CompressedTexSubImage3DARB(__ogl_framework_api, dlsym(handle, "glCompressedTexSubImage3DARB"));
- SET_GetCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetCompressedTexImageARB"));
-
- /* GL_ARB_transpose_matrix */
- SET_LoadTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixdARB"));
- SET_LoadTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glLoadTransposeMatrixfARB"));
- SET_MultTransposeMatrixdARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixdARB"));
- SET_MultTransposeMatrixfARB(__ogl_framework_api, dlsym(handle, "glMultTransposeMatrixfARB"));
-
- /* GL_ARB_vertex_buffer_object */
- SET_BindBufferARB(__ogl_framework_api, dlsym(handle, "glBindBufferARB"));
- SET_BufferDataARB(__ogl_framework_api, dlsym(handle, "glBufferDataARB"));
- SET_BufferSubDataARB(__ogl_framework_api, dlsym(handle, "glBufferSubDataARB"));
- SET_DeleteBuffersARB(__ogl_framework_api, dlsym(handle, "glDeleteBuffersARB"));
- SET_GenBuffersARB(__ogl_framework_api, dlsym(handle, "glGenBuffersARB"));
- SET_GetBufferParameterivARB(__ogl_framework_api, dlsym(handle, "glGetBufferParameterivARB"));
- SET_GetBufferPointervARB(__ogl_framework_api, dlsym(handle, "glGetBufferPointervARB"));
- SET_GetBufferSubDataARB(__ogl_framework_api, dlsym(handle, "glGetBufferSubDataARB"));
- SET_IsBufferARB(__ogl_framework_api, dlsym(handle, "glIsBufferARB"));
- SET_MapBufferARB(__ogl_framework_api, dlsym(handle, "glMapBufferARB"));
- SET_UnmapBufferARB(__ogl_framework_api, dlsym(handle, "glUnmapBufferARB"));
-
- /* GL_ARB_vertex_program */
- SET_DisableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glDisableVertexAttribArrayARB"));
- SET_EnableVertexAttribArrayARB(__ogl_framework_api, dlsym(handle, "glEnableVertexAttribArrayARB"));
- SET_GetProgramEnvParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterdvARB"));
- SET_GetProgramEnvParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramEnvParameterfvARB"));
- SET_GetProgramLocalParameterdvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterdvARB"));
- SET_GetProgramLocalParameterfvARB(__ogl_framework_api, dlsym(handle, "glGetProgramLocalParameterfvARB"));
- SET_GetProgramStringARB(__ogl_framework_api, dlsym(handle, "glGetProgramStringARB"));
- SET_GetProgramivARB(__ogl_framework_api, dlsym(handle, "glGetProgramivARB"));
- SET_GetVertexAttribdvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvARB"));
- SET_GetVertexAttribfvARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvARB"));
- SET_GetVertexAttribivARB(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivARB"));
- SET_ProgramEnvParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dARB"));
- SET_ProgramEnvParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4dvARB"));
- SET_ProgramEnvParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fARB"));
- SET_ProgramEnvParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramEnvParameter4fvARB"));
- SET_ProgramLocalParameter4dARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dARB"));
- SET_ProgramLocalParameter4dvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4dvARB"));
- SET_ProgramLocalParameter4fARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fARB"));
- SET_ProgramLocalParameter4fvARB(__ogl_framework_api, dlsym(handle, "glProgramLocalParameter4fvARB"));
- SET_ProgramStringARB(__ogl_framework_api, dlsym(handle, "glProgramStringARB"));
- SET_VertexAttrib1dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dARB"));
- SET_VertexAttrib1dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvARB"));
- SET_VertexAttrib1fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fARB"));
- SET_VertexAttrib1fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvARB"));
- SET_VertexAttrib1sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sARB"));
- SET_VertexAttrib1svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svARB"));
- SET_VertexAttrib2dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dARB"));
- SET_VertexAttrib2dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvARB"));
- SET_VertexAttrib2fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fARB"));
- SET_VertexAttrib2fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvARB"));
- SET_VertexAttrib2sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sARB"));
- SET_VertexAttrib2svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svARB"));
- SET_VertexAttrib3dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dARB"));
- SET_VertexAttrib3dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvARB"));
- SET_VertexAttrib3fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fARB"));
- SET_VertexAttrib3fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvARB"));
- SET_VertexAttrib3sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sARB"));
- SET_VertexAttrib3svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svARB"));
- SET_VertexAttrib4NbvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NbvARB"));
- SET_VertexAttrib4NivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NivARB"));
- SET_VertexAttrib4NsvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NsvARB"));
- SET_VertexAttrib4NubARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubARB"));
- SET_VertexAttrib4NubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NubvARB"));
- SET_VertexAttrib4NuivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NuivARB"));
- SET_VertexAttrib4NusvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4NusvARB"));
- SET_VertexAttrib4bvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4bvARB"));
- SET_VertexAttrib4dARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dARB"));
- SET_VertexAttrib4dvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvARB"));
- SET_VertexAttrib4fARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fARB"));
- SET_VertexAttrib4fvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvARB"));
- SET_VertexAttrib4ivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ivARB"));
- SET_VertexAttrib4sARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sARB"));
- SET_VertexAttrib4svARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svARB"));
- SET_VertexAttrib4ubvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvARB"));
- SET_VertexAttrib4uivARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4uivARB"));
- SET_VertexAttrib4usvARB(__ogl_framework_api, dlsym(handle, "glVertexAttrib4usvARB"));
- SET_VertexAttribPointerARB(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerARB"));
-
- /* GL_ARB_vertex_shader */
- SET_BindAttribLocationARB(__ogl_framework_api, dlsym(handle, "glBindAttribLocationARB"));
- SET_GetActiveAttribARB(__ogl_framework_api, dlsym(handle, "glGetActiveAttribARB"));
- SET_GetAttribLocationARB(__ogl_framework_api, dlsym(handle, "glGetAttribLocationARB"));
-
- /* GL_ARB_window_pos */
- SET_WindowPos2dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dARB"));
- SET_WindowPos2dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2dvARB"));
- SET_WindowPos2fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fARB"));
- SET_WindowPos2fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2fvARB"));
- SET_WindowPos2iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2iARB"));
- SET_WindowPos2ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2ivARB"));
- SET_WindowPos2sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2sARB"));
- SET_WindowPos2svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos2svARB"));
- SET_WindowPos3dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dARB"));
- SET_WindowPos3dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3dvARB"));
- SET_WindowPos3fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fARB"));
- SET_WindowPos3fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3fvARB"));
- SET_WindowPos3iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3iARB"));
- SET_WindowPos3ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3ivARB"));
- SET_WindowPos3sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3sARB"));
- SET_WindowPos3svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos3svARB"));
-
- /* GL_ATI_fragment_shader / GL_EXT_fragment_shader */
- if(dlsym(handle, "glAlphaFragmentOp1ATI")) {
- /* GL_ATI_fragment_shader */
- SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1ATI"));
- SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2ATI"));
- SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3ATI"));
- SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderATI"));
- SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderATI"));
- SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1ATI"));
- SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2ATI"));
- SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3ATI"));
- SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderATI"));
- SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderATI"));
- SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersATI"));
- SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordATI"));
- SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapATI"));
- SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantATI"));
- } else {
- /* GL_EXT_fragment_shader */
- SET_AlphaFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp1EXT"));
- SET_AlphaFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp2EXT"));
- SET_AlphaFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glAlphaFragmentOp3EXT"));
- SET_BeginFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBeginFragmentShaderEXT"));
- SET_BindFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glBindFragmentShaderEXT"));
- SET_ColorFragmentOp1ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp1EXT"));
- SET_ColorFragmentOp2ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp2EXT"));
- SET_ColorFragmentOp3ATI(__ogl_framework_api, dlsym(handle, "glColorFragmentOp3EXT"));
- SET_DeleteFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glDeleteFragmentShaderEXT"));
- SET_EndFragmentShaderATI(__ogl_framework_api, dlsym(handle, "glEndFragmentShaderEXT"));
- SET_GenFragmentShadersATI(__ogl_framework_api, dlsym(handle, "glGenFragmentShadersEXT"));
- SET_PassTexCoordATI(__ogl_framework_api, dlsym(handle, "glPassTexCoordEXT"));
- SET_SampleMapATI(__ogl_framework_api, dlsym(handle, "glSampleMapEXT"));
- SET_SetFragmentShaderConstantATI(__ogl_framework_api, dlsym(handle, "glSetFragmentShaderConstantEXT"));
- }
-
- /* GL_ATI_separate_stencil */
- SET_StencilFuncSeparateATI(__ogl_framework_api, dlsym(handle, "glStencilFuncSeparateATI"));
-
- /* GL_EXT_blend_equation_separate */
- SET_BlendEquationSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateEXT"));
-
- /* GL_EXT_blend_func_separate */
- SET_BlendFuncSeparateEXT(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateEXT"));
-
- /* GL_EXT_depth_bounds_test */
- SET_DepthBoundsEXT(__ogl_framework_api, dlsym(handle, "glDepthBoundsEXT"));
-
- /* GL_EXT_compiled_vertex_array */
- SET_LockArraysEXT(__ogl_framework_api, dlsym(handle, "glLockArraysEXT"));
- SET_UnlockArraysEXT(__ogl_framework_api, dlsym(handle, "glUnlockArraysEXT"));
-
- /* GL_EXT_cull_vertex */
-// SET_CullParameterdvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterdvEXT"));
-// SET_CullParameterfvEXT(__ogl_framework_api, dlsym(handle, "glCullParameterfvEXT"));
-
- /* GL_EXT_fog_coord */
- SET_FogCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glFogCoordPointerEXT"));
- SET_FogCoorddEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddEXT"));
- SET_FogCoorddvEXT(__ogl_framework_api, dlsym(handle, "glFogCoorddvEXT"));
- SET_FogCoordfEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfEXT"));
- SET_FogCoordfvEXT(__ogl_framework_api, dlsym(handle, "glFogCoordfvEXT"));
-
- /* GL_EXT_framebuffer_blit */
- SET_BlitFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBlitFramebufferEXT"));
-
- /* GL_EXT_framebuffer_object */
- SET_BindFramebufferEXT(__ogl_framework_api, dlsym(handle, "glBindFramebufferEXT"));
- SET_BindRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glBindRenderbufferEXT"));
- SET_CheckFramebufferStatusEXT(__ogl_framework_api, dlsym(handle, "glCheckFramebufferStatusEXT"));
- SET_DeleteFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteFramebuffersEXT"));
- SET_DeleteRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glDeleteRenderbuffersEXT"));
- SET_FramebufferRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glFramebufferRenderbufferEXT"));
- SET_FramebufferTexture1DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture1DEXT"));
- SET_FramebufferTexture2DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture2DEXT"));
- SET_FramebufferTexture3DEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTexture3DEXT"));
- SET_GenerateMipmapEXT(__ogl_framework_api, dlsym(handle, "glGenerateMipmapEXT"));
- SET_GenFramebuffersEXT(__ogl_framework_api, dlsym(handle, "glGenFramebuffersEXT"));
- SET_GenRenderbuffersEXT(__ogl_framework_api, dlsym(handle, "glGenRenderbuffersEXT"));
- SET_GetFramebufferAttachmentParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetFramebufferAttachmentParameterivEXT"));
- SET_GetRenderbufferParameterivEXT(__ogl_framework_api, dlsym(handle, "glGetRenderbufferParameterivEXT"));
- SET_IsFramebufferEXT(__ogl_framework_api, dlsym(handle, "glIsFramebufferEXT"));
- SET_IsRenderbufferEXT(__ogl_framework_api, dlsym(handle, "glIsRenderbufferEXT"));
- SET_RenderbufferStorageEXT(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageEXT"));
-
- /* GL_EXT_gpu_program_parameters */
- SET_ProgramEnvParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramEnvParameters4fvEXT"));
- SET_ProgramLocalParameters4fvEXT(__ogl_framework_api, dlsym(handle, "glProgramLocalParameters4fvEXT"));
-
- /* GL_EXT_multi_draw_arrays */
- SET_MultiDrawArraysEXT(__ogl_framework_api, (void *)dlsym(handle, "glMultiDrawArraysEXT"));
- SET_MultiDrawElementsEXT(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsEXT"));
-
- /* GL_EXT_point_parameters / GL_ARB_point_parameters */
- if(dlsym(handle, "glPointParameterfEXT")) {
- /* GL_EXT_point_parameters */
- SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfEXT"));
- SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvEXT"));
- } else {
- /* GL_ARB_point_parameters */
- SET_PointParameterfEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfARB"));
- SET_PointParameterfvEXT(__ogl_framework_api, dlsym(handle, "glPointParameterfvARB"));
- }
-
- /* GL_EXT_polygon_offset */
- SET_PolygonOffsetEXT(__ogl_framework_api, dlsym(handle, "glPolygonOffsetEXT"));
-
- /* GL_EXT_secondary_color */
- SET_SecondaryColor3bEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bEXT"));
- SET_SecondaryColor3bvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3bvEXT"));
- SET_SecondaryColor3dEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dEXT"));
- SET_SecondaryColor3dvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3dvEXT"));
- SET_SecondaryColor3fEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fEXT"));
- SET_SecondaryColor3fvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3fvEXT"));
- SET_SecondaryColor3iEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3iEXT"));
- SET_SecondaryColor3ivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ivEXT"));
- SET_SecondaryColor3sEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3sEXT"));
- SET_SecondaryColor3svEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3svEXT"));
- SET_SecondaryColor3ubEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubEXT"));
- SET_SecondaryColor3ubvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3ubvEXT"));
- SET_SecondaryColor3uiEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uiEXT"));
- SET_SecondaryColor3uivEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3uivEXT"));
- SET_SecondaryColor3usEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usEXT"));
- SET_SecondaryColor3usvEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColor3usvEXT"));
- SET_SecondaryColorPointerEXT(__ogl_framework_api, dlsym(handle, "glSecondaryColorPointerEXT"));
-
- /* GL_EXT_stencil_two_side */
- SET_ActiveStencilFaceEXT(__ogl_framework_api, dlsym(handle, "glActiveStencilFaceEXT"));
-
- /* GL_EXT_timer_query */
- SET_GetQueryObjecti64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjecti64vEXT"));
- SET_GetQueryObjectui64vEXT(__ogl_framework_api, dlsym(handle, "glGetQueryObjectui64vEXT"));
-
- /* GL_EXT_vertex_array */
- SET_ColorPointerEXT(__ogl_framework_api, dlsym(handle, "glColorPointerEXT"));
- SET_EdgeFlagPointerEXT(__ogl_framework_api, dlsym(handle, "glEdgeFlagPointerEXT"));
- SET_IndexPointerEXT(__ogl_framework_api, dlsym(handle, "glIndexPointerEXT"));
- SET_NormalPointerEXT(__ogl_framework_api, dlsym(handle, "glNormalPointerEXT"));
- SET_TexCoordPointerEXT(__ogl_framework_api, dlsym(handle, "glTexCoordPointerEXT"));
- SET_VertexPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexPointerEXT"));
-
- /* GL_IBM_multimode_draw_arrays */
- SET_MultiModeDrawArraysIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawArraysIBM"));
- SET_MultiModeDrawElementsIBM(__ogl_framework_api, dlsym(handle, "glMultiModeDrawElementsIBM"));
-
- /* GL_MESA_resize_buffers */
- SET_ResizeBuffersMESA(__ogl_framework_api, dlsym(handle, "glResizeBuffersMESA"));
-
- /* GL_MESA_window_pos */
- SET_WindowPos4dMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dMESA"));
- SET_WindowPos4dvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4dvMESA"));
- SET_WindowPos4fMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fMESA"));
- SET_WindowPos4fvMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4fvMESA"));
- SET_WindowPos4iMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4iMESA"));
- SET_WindowPos4ivMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4ivMESA"));
- SET_WindowPos4sMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4sMESA"));
- SET_WindowPos4svMESA(__ogl_framework_api, dlsym(handle, "glWindowPos4svMESA"));
-
- /* GL_NV_fence */
- SET_DeleteFencesNV(__ogl_framework_api, dlsym(handle, "glDeleteFencesNV"));
- SET_FinishFenceNV(__ogl_framework_api, dlsym(handle, "glFinishFenceNV"));
- SET_GenFencesNV(__ogl_framework_api, dlsym(handle, "glGenFencesNV"));
- SET_GetFenceivNV(__ogl_framework_api, dlsym(handle, "glGetFenceivNV"));
- SET_IsFenceNV(__ogl_framework_api, dlsym(handle, "glIsFenceNV"));
- SET_SetFenceNV(__ogl_framework_api, dlsym(handle, "glSetFenceNV"));
- SET_TestFenceNV(__ogl_framework_api, dlsym(handle, "glTestFenceNV"));
-
- /* GL_NV_fragment_program */
- SET_GetProgramNamedParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterdvNV"));
- SET_GetProgramNamedParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramNamedParameterfvNV"));
- SET_ProgramNamedParameter4dNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dNV"));
- SET_ProgramNamedParameter4dvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4dvNV"));
- SET_ProgramNamedParameter4fNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fNV"));
- SET_ProgramNamedParameter4fvNV(__ogl_framework_api, dlsym(handle, "glProgramNamedParameter4fvNV"));
-
- /* GL_NV_geometry_program4 */
- SET_FramebufferTextureLayerEXT(__ogl_framework_api, dlsym(handle, "glFramebufferTextureLayerEXT"));
-
- /* GL_NV_point_sprite */
- SET_PointParameteriNV(__ogl_framework_api, dlsym(handle, "glPointParameteriNV"));
- SET_PointParameterivNV(__ogl_framework_api, dlsym(handle, "glPointParameterivNV"));
-
- /* GL_NV_register_combiners */
- SET_CombinerInputNV(__ogl_framework_api, dlsym(handle, "glCombinerInputNV"));
- SET_CombinerOutputNV(__ogl_framework_api, dlsym(handle, "glCombinerOutputNV"));
- SET_CombinerParameterfNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfNV"));
- SET_CombinerParameterfvNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterfvNV"));
- SET_CombinerParameteriNV(__ogl_framework_api, dlsym(handle, "glCombinerParameteriNV"));
- SET_CombinerParameterivNV(__ogl_framework_api, dlsym(handle, "glCombinerParameterivNV"));
- SET_FinalCombinerInputNV(__ogl_framework_api, dlsym(handle, "glFinalCombinerInputNV"));
- SET_GetCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterfvNV"));
- SET_GetCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerInputParameterivNV"));
- SET_GetCombinerOutputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterfvNV"));
- SET_GetCombinerOutputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetCombinerOutputParameterivNV"));
- SET_GetFinalCombinerInputParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterfvNV"));
- SET_GetFinalCombinerInputParameterivNV(__ogl_framework_api, dlsym(handle, "glGetFinalCombinerInputParameterivNV"));
-
- /* GL_NV_vertex_array_range */
- SET_FlushVertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glFlushVertexArrayRangeNV"));
- SET_VertexArrayRangeNV(__ogl_framework_api, dlsym(handle, "glVertexArrayRangeNV"));
-
- /* GL_NV_vertex_program */
- SET_AreProgramsResidentNV(__ogl_framework_api, dlsym(handle, "glAreProgramsResidentNV"));
- SET_BindProgramNV(__ogl_framework_api, dlsym(handle, "glBindProgramNV"));
- SET_DeleteProgramsNV(__ogl_framework_api, dlsym(handle, "glDeleteProgramsNV"));
- SET_ExecuteProgramNV(__ogl_framework_api, dlsym(handle, "glExecuteProgramNV"));
- SET_GenProgramsNV(__ogl_framework_api, dlsym(handle, "glGenProgramsNV"));
- SET_GetProgramParameterdvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterdvNV"));
- SET_GetProgramParameterfvNV(__ogl_framework_api, dlsym(handle, "glGetProgramParameterfvNV"));
- SET_GetProgramStringNV(__ogl_framework_api, dlsym(handle, "glGetProgramStringNV"));
- SET_GetProgramivNV(__ogl_framework_api, dlsym(handle, "glGetProgramivNV"));
- SET_GetTrackMatrixivNV(__ogl_framework_api, dlsym(handle, "glGetTrackMatrixivNV"));
- SET_GetVertexAttribPointervNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribPointervNV"));
- SET_GetVertexAttribdvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribdvNV"));
- SET_GetVertexAttribfvNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribfvNV"));
- SET_GetVertexAttribivNV(__ogl_framework_api, dlsym(handle, "glGetVertexAttribivNV"));
- SET_IsProgramNV(__ogl_framework_api, dlsym(handle, "glIsProgramNV"));
- SET_LoadProgramNV(__ogl_framework_api, dlsym(handle, "glLoadProgramNV"));
- SET_ProgramParameters4dvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4dvNV"));
- SET_ProgramParameters4fvNV(__ogl_framework_api, dlsym(handle, "glProgramParameters4fvNV"));
- SET_RequestResidentProgramsNV(__ogl_framework_api, dlsym(handle, "glRequestResidentProgramsNV"));
- SET_TrackMatrixNV(__ogl_framework_api, dlsym(handle, "glTrackMatrixNV"));
- SET_VertexAttrib1dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dNV"));
- SET_VertexAttrib1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1dvNV"));
- SET_VertexAttrib1fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fNV"));
- SET_VertexAttrib1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1fvNV"));
- SET_VertexAttrib1sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1sNV"));
- SET_VertexAttrib1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib1svNV"));
- SET_VertexAttrib2dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dNV"));
- SET_VertexAttrib2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2dvNV"));
- SET_VertexAttrib2fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fNV"));
- SET_VertexAttrib2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2fvNV"));
- SET_VertexAttrib2sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2sNV"));
- SET_VertexAttrib2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib2svNV"));
- SET_VertexAttrib3dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dNV"));
- SET_VertexAttrib3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3dvNV"));
- SET_VertexAttrib3fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fNV"));
- SET_VertexAttrib3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3fvNV"));
- SET_VertexAttrib3sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3sNV"));
- SET_VertexAttrib3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib3svNV"));
- SET_VertexAttrib4dNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dNV"));
- SET_VertexAttrib4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4dvNV"));
- SET_VertexAttrib4fNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fNV"));
- SET_VertexAttrib4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4fvNV"));
- SET_VertexAttrib4sNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4sNV"));
- SET_VertexAttrib4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4svNV"));
- SET_VertexAttrib4ubNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubNV"));
- SET_VertexAttrib4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttrib4ubvNV"));
- SET_VertexAttribPointerNV(__ogl_framework_api, dlsym(handle, "glVertexAttribPointerNV"));
- SET_VertexAttribs1dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1dvNV"));
- SET_VertexAttribs1fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1fvNV"));
- SET_VertexAttribs1svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs1svNV"));
- SET_VertexAttribs2dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2dvNV"));
- SET_VertexAttribs2fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2fvNV"));
- SET_VertexAttribs2svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs2svNV"));
- SET_VertexAttribs3dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3dvNV"));
- SET_VertexAttribs3fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3fvNV"));
- SET_VertexAttribs3svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs3svNV"));
- SET_VertexAttribs4dvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4dvNV"));
- SET_VertexAttribs4fvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4fvNV"));
- SET_VertexAttribs4svNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4svNV"));
- SET_VertexAttribs4ubvNV(__ogl_framework_api, dlsym(handle, "glVertexAttribs4ubvNV"));
-
- /* GL_SGIS_multisample */
- SET_SampleMaskSGIS(__ogl_framework_api, dlsym(handle, "glSampleMaskSGIS"));
- SET_SamplePatternSGIS(__ogl_framework_api, dlsym(handle, "glSamplePatternSGIS"));
-
- /* GL_SGIS_pixel_texture */
- SET_GetPixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterfvSGIS"));
- SET_GetPixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glGetPixelTexGenParameterivSGIS"));
- SET_PixelTexGenParameterfSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfSGIS"));
- SET_PixelTexGenParameterfvSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterfvSGIS"));
- SET_PixelTexGenParameteriSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameteriSGIS"));
- SET_PixelTexGenParameterivSGIS(__ogl_framework_api, dlsym(handle, "glPixelTexGenParameterivSGIS"));
- SET_PixelTexGenSGIX(__ogl_framework_api, dlsym(handle, "glPixelTexGenSGIX"));
-
- /* GL_EXT_separate_shader_objects */
- SET_ActiveProgramEXT(__ogl_framework_api, dlsym(handle, "glActiveProgramEXT"));
- SET_CreateShaderProgramEXT(__ogl_framework_api, dlsym(handle, "glCreateShaderProgramEXT"));
- SET_UseShaderProgramEXT(__ogl_framework_api, dlsym(handle, "glUseShaderProgramEXT"));
-
- /* GL_NV_conditional_render */
- SET_BeginConditionalRenderNV(__ogl_framework_api, dlsym(handle, "glBeginConditionalRenderNV"));
- SET_EndConditionalRenderNV(__ogl_framework_api, dlsym(handle, "glEndConditionalRenderNV"));
-
- /* GL_EXT_transform_feedback */
- SET_BeginTransformFeedbackEXT(__ogl_framework_api, dlsym(handle, "glBeginTransformFeedbackEXT"));
- SET_EndTransformFeedbackEXT(__ogl_framework_api, dlsym(handle, "glEndTransformFeedbackEXT"));
- SET_BindBufferBaseEXT(__ogl_framework_api, dlsym(handle, "glBindBufferBaseEXT"));
- SET_BindBufferOffsetEXT(__ogl_framework_api, dlsym(handle, "glBindBufferOffsetEXT"));
- SET_BindBufferRangeEXT(__ogl_framework_api, dlsym(handle, "glBindBufferRangeEXT"));
- SET_TransformFeedbackVaryingsEXT(__ogl_framework_api, dlsym(handle, "glTransformFeedbackVaryingsEXT"));
- SET_GetTransformFeedbackVaryingEXT(__ogl_framework_api, dlsym(handle, "glGetTransformFeedbackVaryingEXT"));
-
- /* GL_EXT_gpu_shader4 */
- SET_BindFragDataLocationEXT(__ogl_framework_api, dlsym(handle, "glBindFragDataLocationEXT"));
- SET_GetFragDataLocationEXT(__ogl_framework_api, dlsym(handle, "glGetFragDataLocationEXT"));
- SET_GetUniformuivEXT(__ogl_framework_api, dlsym(handle, "glGetUniformuivEXT"));
- SET_Uniform1uiEXT(__ogl_framework_api, dlsym(handle, "glUniform1uiEXT"));
- SET_Uniform1uivEXT(__ogl_framework_api, dlsym(handle, "glUniform1uivEXT"));
- SET_Uniform2uiEXT(__ogl_framework_api, dlsym(handle, "glUniform2uiEXT"));
- SET_Uniform2uivEXT(__ogl_framework_api, dlsym(handle, "glUniform2uivEXT"));
- SET_Uniform3uiEXT(__ogl_framework_api, dlsym(handle, "glUniform3uiEXT"));
- SET_Uniform3uivEXT(__ogl_framework_api, dlsym(handle, "glUniform3uivEXT"));
- SET_Uniform4uiEXT(__ogl_framework_api, dlsym(handle, "glUniform4uiEXT"));
- SET_Uniform4uivEXT(__ogl_framework_api, dlsym(handle, "glUniform4uivEXT"));
-
- /* GL_ARB_sampler_objects */
- SET_BindSampler(__ogl_framework_api, dlsym(handle, "glBindSampler"));
- SET_DeleteSamplers(__ogl_framework_api, dlsym(handle, "glDeleteSamplers"));
- SET_GenSamplers(__ogl_framework_api, dlsym(handle, "glGenSamplers"));
- SET_GetSamplerParameterIiv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterIiv"));
- SET_GetSamplerParameterIuiv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterIuiv"));
- SET_GetSamplerParameterfv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameterfv"));
- SET_GetSamplerParameteriv(__ogl_framework_api, dlsym(handle, "glGetSamplerParameteriv"));
- SET_IsSampler(__ogl_framework_api, dlsym(handle, "glIsSampler"));
- SET_SamplerParameterIiv(__ogl_framework_api, dlsym(handle, "glSamplerParameterIiv"));
- SET_SamplerParameterIuiv(__ogl_framework_api, dlsym(handle, "glSamplerParameterIuiv"));
- SET_SamplerParameterf(__ogl_framework_api, dlsym(handle, "glSamplerParameterf"));
- SET_SamplerParameterfv(__ogl_framework_api, dlsym(handle, "glSamplerParameterfv"));
- SET_SamplerParameteri(__ogl_framework_api, dlsym(handle, "glSamplerParameteri"));
- SET_SamplerParameteriv(__ogl_framework_api, dlsym(handle, "glSamplerParameteriv"));
-
- /* GL_ARB_transform_feedback2 */
- SET_BindTransformFeedback(__ogl_framework_api, dlsym(handle, "glBindTransformFeedback"));
- SET_DeleteTransformFeedbacks(__ogl_framework_api, dlsym(handle, "glDeleteTransformFeedbacks"));
- SET_DrawTransformFeedback(__ogl_framework_api, dlsym(handle, "glDrawTransformFeedback"));
- SET_GenTransformFeedbacks(__ogl_framework_api, dlsym(handle, "glGenTransformFeedbacks"));
- SET_IsTransformFeedback(__ogl_framework_api, dlsym(handle, "glIsTransformFeedback"));
- SET_PauseTransformFeedback(__ogl_framework_api, dlsym(handle, "glPauseTransformFeedback"));
- SET_ResumeTransformFeedback(__ogl_framework_api, dlsym(handle, "glResumeTransformFeedback"));
-
- /* GL_ARB_vertex_array_object */
- SET_BindVertexArray(__ogl_framework_api, dlsym(handle, "glBindVertexArray"));
- SET_GenVertexArrays(__ogl_framework_api, dlsym(handle, "glGenVertexArrays"));
-
- /* GL_ARB_draw_buffers_blend */
- SET_BlendEquationSeparateiARB(__ogl_framework_api, dlsym(handle, "glBlendEquationSeparateiARB"));
- SET_BlendEquationiARB(__ogl_framework_api, dlsym(handle, "glBlendEquationiARB"));
- SET_BlendFuncSeparateiARB(__ogl_framework_api, dlsym(handle, "glBlendFuncSeparateiARB"));
- SET_BlendFunciARB(__ogl_framework_api, dlsym(handle, "glBlendFunciARB"));
-
- /* GL_APPLE_flush_buffer_range */
- SET_BufferParameteriAPPLE(__ogl_framework_api, dlsym(handle, "glBufferParameteriAPPLE"));
- SET_FlushMappedBufferRangeAPPLE(__ogl_framework_api, dlsym(handle, "glFlushMappedBufferRangeAPPLE"));
-
- /* GL_ARB_color_buffer_float */
- SET_ClampColorARB(__ogl_framework_api, dlsym(handle, "glClampColorARB"));
-
- /* GL_EXT_texture_integer */
- SET_ClearColorIiEXT(__ogl_framework_api, dlsym(handle, "glClearColorIiEXT"));
- SET_ClearColorIuiEXT(__ogl_framework_api, dlsym(handle, "glClearColorIuiEXT"));
- SET_TexParameterIivEXT(__ogl_framework_api, dlsym(handle, "glTexParameterIivEXT"));
- SET_TexParameterIuivEXT(__ogl_framework_api, dlsym(handle, "glTexParameterIuivEXT"));
- SET_GetTexParameterIivEXT(__ogl_framework_api, dlsym(handle, "glGetTexParameterIivEXT"));
- SET_GetTexParameterIuivEXT(__ogl_framework_api, dlsym(handle, "glGetTexParameterIuivEXT"));
-
- /* GL_ARB_ES2_compatibility */
- SET_ClearDepthf(__ogl_framework_api, dlsym(handle, "glClearDepthf"));
- SET_DepthRangef(__ogl_framework_api, dlsym(handle, "glDepthRangef"));
- SET_GetShaderPrecisionFormat(__ogl_framework_api, dlsym(handle, "glGetShaderPrecisionFormat"));
- SET_ReleaseShaderCompiler(__ogl_framework_api, dlsym(handle, "glReleaseShaderCompiler"));
- SET_ShaderBinary(__ogl_framework_api, dlsym(handle, "glShaderBinary"));
-
- /* GL_EXT_draw_buffers2 */
- SET_ColorMaskIndexedEXT(__ogl_framework_api, dlsym(handle, "glColorMaskIndexedEXT"));
- SET_DisableIndexedEXT(__ogl_framework_api, dlsym(handle, "glDisableIndexedEXT"));
- SET_EnableIndexedEXT(__ogl_framework_api, dlsym(handle, "glEnableIndexedEXT"));
- SET_GetBooleanIndexedvEXT(__ogl_framework_api, dlsym(handle, "glGetBooleanIndexedvEXT"));
- SET_GetIntegerIndexedvEXT(__ogl_framework_api, dlsym(handle, "glGetIntegerIndexedvEXT"));
- SET_IsEnabledIndexedEXT(__ogl_framework_api, dlsym(handle, "glIsEnabledIndexedEXT"));
-
- /* GL_ARB_draw_instanced */
- SET_DrawArraysInstancedARB(__ogl_framework_api, dlsym(handle, "glDrawArraysInstancedARB"));
- SET_DrawElementsInstancedARB(__ogl_framework_api, dlsym(handle, "glDrawElementsInstancedARB"));
-
- /* GL_ARB_geometry_shader4 */
- SET_FramebufferTextureARB(__ogl_framework_api, dlsym(handle, "glFramebufferTextureARB"));
- SET_FramebufferTextureFaceARB(__ogl_framework_api, dlsym(handle, "glFramebufferTextureFaceARB"));
- SET_ProgramParameteriARB(__ogl_framework_api, dlsym(handle, "glProgramParameteriARB"));
-
- /* GL_ARB_sync */
- SET_ClientWaitSync(__ogl_framework_api, dlsym(handle, "glClientWaitSync"));
- SET_DeleteSync(__ogl_framework_api, dlsym(handle, "glDeleteSync"));
- SET_FenceSync(__ogl_framework_api, dlsym(handle, "glFenceSync"));
- SET_GetInteger64v(__ogl_framework_api, dlsym(handle, "glGetInteger64v"));
- SET_GetSynciv(__ogl_framework_api, dlsym(handle, "glGetSynciv"));
- SET_IsSync(__ogl_framework_api, dlsym(handle, "glIsSync"));
- SET_WaitSync(__ogl_framework_api, dlsym(handle, "glWaitSync"));
-
- /* GL_ARB_copy_buffer */
- SET_CopyBufferSubData(__ogl_framework_api, dlsym(handle, "glCopyBufferSubData"));
-
- /* GL_ARB_draw_elements_base_vertex */
- SET_DrawElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawElementsBaseVertex"));
- SET_DrawElementsInstancedBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawElementsInstancedBaseVertex"));
- SET_DrawRangeElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glDrawRangeElementsBaseVertex"));
- SET_MultiDrawElementsBaseVertex(__ogl_framework_api, dlsym(handle, "glMultiDrawElementsBaseVertex"));
-
- /* GL_ARB_map_buffer_range */
- SET_FlushMappedBufferRange(__ogl_framework_api, dlsym(handle, "glFlushMappedBufferRange"));
- SET_MapBufferRange(__ogl_framework_api, dlsym(handle, "glMapBufferRange"));
-
- /* GL_ARB_robustness */
- SET_GetGraphicsResetStatusARB(__ogl_framework_api, dlsym(handle, "glGetGraphicsResetStatusARB"));
- SET_GetnColorTableARB(__ogl_framework_api, dlsym(handle, "glGetnColorTableARB"));
- SET_GetnCompressedTexImageARB(__ogl_framework_api, dlsym(handle, "glGetnCompressedTexImageARB"));
- SET_GetnConvolutionFilterARB(__ogl_framework_api, dlsym(handle, "glGetnConvolutionFilterARB"));
- SET_GetnHistogramARB(__ogl_framework_api, dlsym(handle, "glGetnHistogramARB"));
- SET_GetnMapdvARB(__ogl_framework_api, dlsym(handle, "glGetnMapdvARB"));
- SET_GetnMapfvARB(__ogl_framework_api, dlsym(handle, "glGetnMapfvARB"));
- SET_GetnMapivARB(__ogl_framework_api, dlsym(handle, "glGetnMapivARB"));
- SET_GetnMinmaxARB(__ogl_framework_api, dlsym(handle, "glGetnMinmaxARB"));
- SET_GetnPixelMapfvARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapfvARB"));
- SET_GetnPixelMapuivARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapuivARB"));
- SET_GetnPixelMapusvARB(__ogl_framework_api, dlsym(handle, "glGetnPixelMapusvARB"));
- SET_GetnPolygonStippleARB(__ogl_framework_api, dlsym(handle, "glGetnPolygonStippleARB"));
- SET_GetnSeparableFilterARB(__ogl_framework_api, dlsym(handle, "glGetnSeparableFilterARB"));
- SET_GetnTexImageARB(__ogl_framework_api, dlsym(handle, "glGetnTexImageARB"));
- SET_GetnUniformdvARB(__ogl_framework_api, dlsym(handle, "glGetnUniformdvARB"));
- SET_GetnUniformfvARB(__ogl_framework_api, dlsym(handle, "glGetnUniformfvARB"));
- SET_GetnUniformivARB(__ogl_framework_api, dlsym(handle, "glGetnUniformivARB"));
- SET_GetnUniformuivARB(__ogl_framework_api, dlsym(handle, "glGetnUniformuivARB"));
- SET_ReadnPixelsARB(__ogl_framework_api, dlsym(handle, "glReadnPixelsARB"));
-
- /* GL_APPLE_object_purgeable */
- SET_GetObjectParameterivAPPLE(__ogl_framework_api, dlsym(handle, "glGetObjectParameterivAPPLE"));
- SET_ObjectPurgeableAPPLE(__ogl_framework_api, dlsym(handle, "glObjectPurgeableAPPLE"));
- SET_ObjectUnpurgeableAPPLE(__ogl_framework_api, dlsym(handle, "glObjectUnpurgeableAPPLE"));
-
- /* GL_ATI_envmap_bumpmap */
- SET_GetTexBumpParameterfvATI(__ogl_framework_api, dlsym(handle, "glGetTexBumpParameterfvATI"));
- SET_GetTexBumpParameterivATI(__ogl_framework_api, dlsym(handle, "glGetTexBumpParameterivATI"));
- SET_TexBumpParameterfvATI(__ogl_framework_api, dlsym(handle, "glTexBumpParameterfvATI"));
- SET_TexBumpParameterivATI(__ogl_framework_api, dlsym(handle, "glTexBumpParameterivATI"));
-
- /* GL_APPLE_texture_range */
- SET_GetTexParameterPointervAPPLE(__ogl_framework_api, dlsym(handle, "glGetTexParameterPointervAPPLE"));
- SET_TextureRangeAPPLE(__ogl_framework_api, dlsym(handle, "glTextureRangeAPPLE"));
-
- /* GL_NV_vertex_program4 */
- SET_GetVertexAttribIivEXT(__ogl_framework_api, dlsym(handle, "glGetVertexAttribIivEXT"));
- SET_GetVertexAttribIuivEXT(__ogl_framework_api, dlsym(handle, "glGetVertexAttribIuivEXT"));
- SET_VertexAttribDivisor(__ogl_framework_api, dlsym(handle, "glVertexAttribDivisor"));
- SET_VertexAttribDivisorARB(__ogl_framework_api, dlsym(handle, "glVertexAttribDivisorARB"));
- SET_VertexAttribI1iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1iEXT"));
- SET_VertexAttribI1ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1ivEXT"));
- SET_VertexAttribI1uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1uiEXT"));
- SET_VertexAttribI1uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI1uivEXT"));
- SET_VertexAttribI2iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2iEXT"));
- SET_VertexAttribI2ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2ivEXT"));
- SET_VertexAttribI2uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2uiEXT"));
- SET_VertexAttribI2uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI2uivEXT"));
- SET_VertexAttribI3iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3iEXT"));
- SET_VertexAttribI3ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3ivEXT"));
- SET_VertexAttribI3uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3uiEXT"));
- SET_VertexAttribI3uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI3uivEXT"));
- SET_VertexAttribI4bvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4bvEXT"));
- SET_VertexAttribI4iEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4iEXT"));
- SET_VertexAttribI4ivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4ivEXT"));
- SET_VertexAttribI4svEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4svEXT"));
- SET_VertexAttribI4ubvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4ubvEXT"));
- SET_VertexAttribI4uiEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4uiEXT"));
- SET_VertexAttribI4uivEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4uivEXT"));
- SET_VertexAttribI4usvEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribI4usvEXT"));
- SET_VertexAttribIPointerEXT(__ogl_framework_api, dlsym(handle, "glVertexAttribIPointerEXT"));
-
- /* GL_NV_primitive_restart */
- SET_PrimitiveRestartIndexNV(__ogl_framework_api, dlsym(handle, "glPrimitiveRestartIndexNV"));
- SET_PrimitiveRestartNV(__ogl_framework_api, dlsym(handle, "glPrimitiveRestartNV"));
-
- /* GL_EXT_provoking_vertex */
- SET_ProvokingVertexEXT(__ogl_framework_api, dlsym(handle, "glProvokingVertexEXT"));
-
- /* GL_ARB_texture_buffer_object */
- SET_TexBufferARB(__ogl_framework_api, dlsym(handle, "glTexBufferARB"));
-
- /* GL_NV_texture_barrier */
- SET_TextureBarrierNV(__ogl_framework_api, dlsym(handle, "glTextureBarrierNV"));
-
- /* GL_ARB_framebuffer_object */
- SET_RenderbufferStorageMultisample(__ogl_framework_api, dlsym(handle, "glRenderbufferStorageMultisample"));
-
- /* GL_OES_EGL_image */
- SET_EGLImageTargetRenderbufferStorageOES(__ogl_framework_api, dlsym(handle, "glEGLImageTargetRenderbufferStorageOES"));
- SET_EGLImageTargetTexture2DOES(__ogl_framework_api, dlsym(handle, "glEGLImageTargetTexture2DOES"));
-
__applegl_api = malloc(sizeof(struct _glapi_table));
assert(__applegl_api);
memcpy(__applegl_api, __ogl_framework_api, sizeof(struct _glapi_table));
From 02b6e97c75bf2e013064e789b70704c6376e0628 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Sat, 11 Jun 2011 22:54:59 -0700
Subject: [PATCH 020/406] apple: Use a struct glx_config * rather than a void *
in apple_visual_create_pfobj
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_visual.c | 32 +++++++++++++++-----------------
src/glx/apple/apple_visual.h | 4 ++--
2 files changed, 17 insertions(+), 19 deletions(-)
diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c
index 29c6f16c4ac..5a7fc325a31 100644
--- a/src/glx/apple/apple_visual.c
+++ b/src/glx/apple/apple_visual.c
@@ -54,14 +54,12 @@ enum
MAX_ATTR = 60
};
-/*mode is a __GlcontextModes*/
void
-apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode,
+apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * mode,
bool * double_buffered, bool * uses_stereo,
bool offscreen)
{
CGLPixelFormatAttribute attr[MAX_ATTR];
- const struct glx_config *c = mode;
int numattr = 0;
GLint vsref = 0;
CGLError error = 0;
@@ -95,7 +93,7 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode,
*/
attr[numattr++] = kCGLPFAClosestPolicy;
- if (c->stereoMode) {
+ if (mode->stereoMode) {
attr[numattr++] = kCGLPFAStereo;
*uses_stereo = true;
}
@@ -103,7 +101,7 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode,
*uses_stereo = false;
}
- if (c->doubleBufferMode) {
+ if (mode->doubleBufferMode) {
attr[numattr++] = kCGLPFADoubleBuffer;
*double_buffered = true;
}
@@ -112,32 +110,32 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode,
}
attr[numattr++] = kCGLPFAColorSize;
- attr[numattr++] = c->redBits + c->greenBits + c->blueBits;
+ attr[numattr++] = mode->redBits + mode->greenBits + mode->blueBits;
attr[numattr++] = kCGLPFAAlphaSize;
- attr[numattr++] = c->alphaBits;
+ attr[numattr++] = mode->alphaBits;
- if ((c->accumRedBits + c->accumGreenBits + c->accumBlueBits) > 0) {
+ if ((mode->accumRedBits + mode->accumGreenBits + mode->accumBlueBits) > 0) {
attr[numattr++] = kCGLPFAAccumSize;
- attr[numattr++] = c->accumRedBits + c->accumGreenBits +
- c->accumBlueBits + c->accumAlphaBits;
+ attr[numattr++] = mode->accumRedBits + mode->accumGreenBits +
+ mode->accumBlueBits + mode->accumAlphaBits;
}
- if (c->depthBits > 0) {
+ if (mode->depthBits > 0) {
attr[numattr++] = kCGLPFADepthSize;
- attr[numattr++] = c->depthBits;
+ attr[numattr++] = mode->depthBits;
}
- if (c->stencilBits > 0) {
+ if (mode->stencilBits > 0) {
attr[numattr++] = kCGLPFAStencilSize;
- attr[numattr++] = c->stencilBits;
+ attr[numattr++] = mode->stencilBits;
}
- if (c->sampleBuffers > 0) {
+ if (mode->sampleBuffers > 0) {
attr[numattr++] = kCGLPFAMultisample;
attr[numattr++] = kCGLPFASampleBuffers;
- attr[numattr++] = c->sampleBuffers;
+ attr[numattr++] = mode->sampleBuffers;
attr[numattr++] = kCGLPFASamples;
- attr[numattr++] = c->samples;
+ attr[numattr++] = mode->samples;
}
attr[numattr++] = 0;
diff --git a/src/glx/apple/apple_visual.h b/src/glx/apple/apple_visual.h
index 2cf9a9e2513..65bbc2e10ab 100644
--- a/src/glx/apple/apple_visual.h
+++ b/src/glx/apple/apple_visual.h
@@ -32,9 +32,9 @@
#include
#include
+#include "glxconfig.h"
-/* mode is expected to be of type struct glx_config. */
-void apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const void *mode,
+void apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * mode,
bool * double_buffered, bool * uses_stereo,
bool offscreen);
From df1dacf093058e74ec102d8828d2751a9ed6e34e Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Sat, 11 Jun 2011 23:43:03 -0700
Subject: [PATCH 021/406] apple: Store the CGL API version number for future
reference
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_cgl.c | 7 +++----
src/glx/apple/apple_cgl.h | 3 ++-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/glx/apple/apple_cgl.c b/src/glx/apple/apple_cgl.c
index 737d757ed52..648ed869497 100644
--- a/src/glx/apple/apple_cgl.c
+++ b/src/glx/apple/apple_cgl.c
@@ -64,7 +64,6 @@ void
apple_cgl_init(void)
{
void *h;
- GLint major = 0, minor = 0;
const char *opengl_framework_path;
if (initialized)
@@ -88,11 +87,11 @@ apple_cgl_init(void)
apple_cgl.get_version = sym(h, "CGLGetVersion");
- apple_cgl.get_version(&major, &minor);
+ apple_cgl.get_version(&apple_cgl.version_major, &apple_cgl.version_minor);
- apple_glx_diagnostic("CGL major %d minor %d\n", major, minor);
+ apple_glx_diagnostic("CGL major %d minor %d\n", apple_cgl.version_major, apple_cgl.version_minor);
- if (1 != major) {
+ if (1 != apple_cgl.version_major) {
fprintf(stderr, "WARNING: the CGL major version has changed!\n"
"libGL may be incompatible!\n");
}
diff --git a/src/glx/apple/apple_cgl.h b/src/glx/apple/apple_cgl.h
index 5e98a00fe79..002c7e64bad 100644
--- a/src/glx/apple/apple_cgl.h
+++ b/src/glx/apple/apple_cgl.h
@@ -40,7 +40,8 @@
struct apple_cgl_api
{
- void (*get_version) (GLint * majorvers, GLint * minorvers);
+ GLint version_major, version_minor;
+ void (*get_version) (GLint * version_major, GLint * version_minor);
CGLError(*choose_pixel_format) (const CGLPixelFormatAttribute * attribs,
CGLPixelFormatObj * pix, GLint * npix);
From 9a00dd974699e369b1eb292103fbde8bc6adfb87 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Sat, 11 Jun 2011 23:43:38 -0700
Subject: [PATCH 022/406] apple: Request OpenGL 3.2 from OpenGL.framework if
available
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_visual.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c
index 5a7fc325a31..a24616480ab 100644
--- a/src/glx/apple/apple_visual.c
+++ b/src/glx/apple/apple_visual.c
@@ -40,10 +40,19 @@
#include
#include
#include
+#include
#undef glTexImage1D
#undef glTexImage2D
#undef glTexImage3D
+#ifndef kCGLPFAOpenGLProfile
+#define kCGLPFAOpenGLProfile 99
+#endif
+
+#ifndef kCGLOGLPVersion_3_2_Core
+#define kCGLOGLPVersion_3_2_Core 0x3200
+#endif
+
#include "apple_cgl.h"
#include "apple_visual.h"
#include "apple_glx.h"
@@ -64,6 +73,12 @@ apple_visual_create_pfobj(CGLPixelFormatObj * pfobj, const struct glx_config * m
GLint vsref = 0;
CGLError error = 0;
+ /* Request an OpenGL 3.2 profile if one is available */
+ if(apple_cgl.version_major > 1 || (apple_cgl.version_major == 1 && apple_cgl.version_minor >= 3)) {
+ attr[numattr++] = kCGLPFAOpenGLProfile;
+ attr[numattr++] = kCGLOGLPVersion_3_2_Core;
+ }
+
if (offscreen) {
apple_glx_diagnostic
("offscreen rendering enabled. Using kCGLPFAOffScreen\n");
From b8325fd2554aafde3d0b784b7944b1473af7d144 Mon Sep 17 00:00:00 2001
From: Benjamin Franzke
Date: Sat, 11 Jun 2011 22:07:02 +0200
Subject: [PATCH 023/406] egl_dri2/wayland: Add support for EGL_DEFAULT_DISPLAY
---
src/egl/drivers/dri2/egl_dri2.c | 18 ++++++++++++++++--
src/egl/drivers/dri2/platform_wayland.c | 8 +++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index ea8c8fba8c0..a9430055258 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -528,10 +528,24 @@ dri2_terminate(_EGLDriver *drv, _EGLDisplay *disp)
if (dri2_dpy->fd)
close(dri2_dpy->fd);
dlclose(dri2_dpy->driver);
+
+ if (disp->PlatformDisplay == NULL) {
+ switch (disp->Platform) {
#ifdef HAVE_X11_PLATFORM
- if (disp->PlatformDisplay == NULL)
- xcb_disconnect(dri2_dpy->conn);
+ case _EGL_PLATFORM_X11:
+ xcb_disconnect(dri2_dpy->conn);
+ break;
#endif
+#ifdef HAVE_WAYLAND_PLATFORM
+ case _EGL_PLATFORM_WAYLAND:
+ wl_display_destroy(dri2_dpy->wl_dpy);
+ break;
+#endif
+ default:
+ break;
+ }
+ }
+
free(dri2_dpy);
disp->DriverData = NULL;
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 1d6ce2ec49c..e786780d3fb 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -676,7 +676,13 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
memset(dri2_dpy, 0, sizeof *dri2_dpy);
disp->DriverData = (void *) dri2_dpy;
- dri2_dpy->wl_dpy = disp->PlatformDisplay;
+ if (disp->PlatformDisplay == NULL) {
+ dri2_dpy->wl_dpy = wl_display_connect(NULL);
+ if (dri2_dpy->wl_dpy == NULL)
+ goto cleanup_dpy;
+ } else {
+ dri2_dpy->wl_dpy = disp->PlatformDisplay;
+ }
id = wl_display_get_global(dri2_dpy->wl_dpy, "wl_drm", 1);
if (id == 0)
From a23bf646bdeb72381e7f2bc784d47748cdd7d1ce Mon Sep 17 00:00:00 2001
From: Benjamin Franzke
Date: Sat, 11 Jun 2011 22:24:14 +0200
Subject: [PATCH 024/406] st/eglwayland: Add support for EGL_DEFAULT_DISPLAY
---
src/gallium/state_trackers/egl/wayland/native_drm.c | 2 ++
src/gallium/state_trackers/egl/wayland/native_shm.c | 2 ++
.../state_trackers/egl/wayland/native_wayland.c | 10 ++++++++++
.../state_trackers/egl/wayland/native_wayland.h | 1 +
4 files changed, 15 insertions(+)
diff --git a/src/gallium/state_trackers/egl/wayland/native_drm.c b/src/gallium/state_trackers/egl/wayland/native_drm.c
index 15383e89301..a9fd30319eb 100644
--- a/src/gallium/state_trackers/egl/wayland/native_drm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_drm.c
@@ -98,6 +98,8 @@ wayland_drm_display_destroy(struct native_display *ndpy)
FREE(drmdpy->device_name);
if (drmdpy->base.config)
FREE(drmdpy->base.config);
+ if (drmdpy->base.own_dpy)
+ wl_display_destroy(drmdpy->base.dpy);
ndpy_uninit(ndpy);
diff --git a/src/gallium/state_trackers/egl/wayland/native_shm.c b/src/gallium/state_trackers/egl/wayland/native_shm.c
index 609fc0cd04a..8614a761abf 100644
--- a/src/gallium/state_trackers/egl/wayland/native_shm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_shm.c
@@ -65,6 +65,8 @@ wayland_shm_display_destroy(struct native_display *ndpy)
if (shmdpy->base.config)
FREE(shmdpy->base.config);
+ if (shmdpy->base.own_dpy)
+ wl_display_destroy(shmdpy->base.dpy);
ndpy_uninit(ndpy);
diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.c b/src/gallium/state_trackers/egl/wayland/native_wayland.c
index 0292d5631d6..3d1bb6ff8b1 100644
--- a/src/gallium/state_trackers/egl/wayland/native_wayland.c
+++ b/src/gallium/state_trackers/egl/wayland/native_wayland.c
@@ -459,9 +459,17 @@ static struct native_display *
native_create_display(void *dpy, boolean use_sw, void *user_data)
{
struct wayland_display *display = NULL;
+ boolean own_dpy = FALSE;
use_sw = use_sw || debug_get_bool_option("EGL_SOFTWARE", FALSE);
+ if (dpy == NULL) {
+ dpy = wl_display_connect(NULL);
+ if (dpy == NULL)
+ return NULL;
+ own_dpy = TRUE;
+ }
+
if (use_sw) {
_eglLog(_EGL_INFO, "use software fallback");
display = wayland_create_shm_display((struct wl_display *) dpy,
@@ -482,6 +490,8 @@ native_create_display(void *dpy, boolean use_sw, void *user_data)
display->base.create_window_surface = wayland_create_window_surface;
display->base.create_pixmap_surface = wayland_create_pixmap_surface;
+ display->own_dpy = own_dpy;
+
return &display->base;
}
diff --git a/src/gallium/state_trackers/egl/wayland/native_wayland.h b/src/gallium/state_trackers/egl/wayland/native_wayland.h
index e69a8f00f82..81c7a8b4840 100644
--- a/src/gallium/state_trackers/egl/wayland/native_wayland.h
+++ b/src/gallium/state_trackers/egl/wayland/native_wayland.h
@@ -41,6 +41,7 @@ struct wayland_display {
struct wayland_config *config;
struct wl_display *dpy;
+ boolean own_dpy;
struct wl_buffer *(*create_buffer)(struct wayland_display *display,
struct wayland_surface *surface,
From 16e30276e843b6f788aee75547136ea24e4a4248 Mon Sep 17 00:00:00 2001
From: Benjamin Franzke
Date: Sat, 11 Jun 2011 23:00:40 +0200
Subject: [PATCH 025/406] egl_dri2: Compare configs before matching them
This compares attribs like buffer size, and will prevent merging
unequal configs because of match criterion is e.g. ATLEAST.
---
src/egl/drivers/dri2/egl_dri2.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index a9430055258..3d5827e15a1 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -97,6 +97,18 @@ EGLint dri2_to_egl_attribute_map[] = {
0, /* __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE */
};
+static EGLBoolean
+dri2_match_config(const _EGLConfig *conf, const _EGLConfig *criteria)
+{
+ if (_eglCompareConfigs(conf, criteria, NULL, EGL_FALSE) != 0)
+ return EGL_FALSE;
+
+ if (!_eglMatchConfig(conf, criteria))
+ return EGL_FALSE;
+
+ return EGL_TRUE;
+}
+
struct dri2_egl_config *
dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
int depth, EGLint surface_type, const EGLint *attr_list)
@@ -190,7 +202,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
base.ConfigID = EGL_DONT_CARE;
base.SurfaceType = EGL_DONT_CARE;
num_configs = _eglFilterArray(disp->Configs, (void **) &matching_config, 1,
- (_EGLArrayForEach) _eglMatchConfig, &base);
+ (_EGLArrayForEach) dri2_match_config, &base);
if (num_configs == 1) {
conf = (struct dri2_egl_config *) matching_config;
From cf69eeacc6931e833e7894a379af4fae085881e9 Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Wed, 8 Jun 2011 16:33:55 +0800
Subject: [PATCH 026/406] egl_dri2: add dri2_load_driver_swrast
Refactor dri2_load_driver and add dri2_load_driver_swrast for loading
swrast DRI driver.
---
src/egl/drivers/dri2/egl_dri2.c | 56 ++++++++++++++++++++---------
src/egl/drivers/dri2/egl_dri2.h | 3 ++
src/egl/drivers/dri2/platform_x11.c | 4 +--
3 files changed, 44 insertions(+), 19 deletions(-)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 3d5827e15a1..a38bff5711d 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -334,8 +334,8 @@ dri2_bind_extensions(struct dri2_egl_display *dri2_dpy,
return ret;
}
-EGLBoolean
-dri2_load_driver(_EGLDisplay *disp)
+static const __DRIextension **
+dri2_open_driver(_EGLDisplay *disp)
{
struct dri2_egl_display *dri2_dpy = disp->DriverData;
const __DRIextension **extensions;
@@ -374,9 +374,9 @@ dri2_load_driver(_EGLDisplay *disp)
if (dri2_dpy->driver == NULL) {
_eglLog(_EGL_WARNING,
- "DRI2: failed to open any driver (search paths %s)",
- search_paths);
- return EGL_FALSE;
+ "DRI2: failed to open %s (search paths %s)",
+ dri2_dpy->driver_name, search_paths);
+ return NULL;
}
_eglLog(_EGL_DEBUG, "DRI2: dlopen(%s)", path);
@@ -385,20 +385,44 @@ dri2_load_driver(_EGLDisplay *disp)
_eglLog(_EGL_WARNING,
"DRI2: driver exports no extensions (%s)", dlerror());
dlclose(dri2_dpy->driver);
+ }
+
+ return extensions;
+}
+
+EGLBoolean
+dri2_load_driver(_EGLDisplay *disp)
+{
+ struct dri2_egl_display *dri2_dpy = disp->DriverData;
+ const __DRIextension **extensions;
+
+ extensions = dri2_open_driver(disp);
+ if (!extensions)
+ return EGL_FALSE;
+
+ if (!dri2_bind_extensions(dri2_dpy, dri2_driver_extensions, extensions)) {
+ dlclose(dri2_dpy->driver);
return EGL_FALSE;
}
- if (strcmp(dri2_dpy->driver_name, "swrast") == 0) {
- if (!dri2_bind_extensions(dri2_dpy, swrast_driver_extensions, extensions)) {
- dlclose(dri2_dpy->driver);
- return EGL_FALSE;
- }
- } else {
- if (!dri2_bind_extensions(dri2_dpy, dri2_driver_extensions, extensions)) {
- dlclose(dri2_dpy->driver);
- return EGL_FALSE;
- }
- }
+ return EGL_TRUE;
+}
+
+EGLBoolean
+dri2_load_driver_swrast(_EGLDisplay *disp)
+{
+ struct dri2_egl_display *dri2_dpy = disp->DriverData;
+ const __DRIextension **extensions;
+
+ dri2_dpy->driver_name = "swrast";
+ extensions = dri2_open_driver(disp);
+ if (!extensions)
+ return EGL_FALSE;
+
+ if (!dri2_bind_extensions(dri2_dpy, swrast_driver_extensions, extensions)) {
+ dlclose(dri2_dpy->driver);
+ return EGL_FALSE;
+ }
return EGL_TRUE;
}
diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
index 97f541b5e83..dd9eb94cf7a 100644
--- a/src/egl/drivers/dri2/egl_dri2.h
+++ b/src/egl/drivers/dri2/egl_dri2.h
@@ -182,6 +182,9 @@ extern const __DRIuseInvalidateExtension use_invalidate;
EGLBoolean
dri2_load_driver(_EGLDisplay *disp);
+EGLBoolean
+dri2_load_driver_swrast(_EGLDisplay *disp);
+
EGLBoolean
dri2_create_screen(_EGLDisplay *disp);
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 2e26ff00b67..8bff294c9e6 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -906,9 +906,7 @@ dri2_initialize_x11_swrast(_EGLDriver *drv, _EGLDisplay *disp)
goto cleanup_dpy;
}
- dri2_dpy->driver_name = dri2_strndup("swrast", strlen("swrast"));
-
- if (!dri2_load_driver(disp))
+ if (!dri2_load_driver_swrast(disp))
goto cleanup_conn;
dri2_dpy->swrast_loader_extension.base.name = __DRI_SWRAST_LOADER;
From 77e031a1c423affde99934f0fd059d49852e2729 Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Wed, 8 Jun 2011 16:33:56 +0800
Subject: [PATCH 027/406] egl_dri2: try swrastg_dri if swrast_dri fails
Per libGL.
---
src/egl/drivers/dri2/egl_dri2.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index a38bff5711d..d430145d09c 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -416,6 +416,12 @@ dri2_load_driver_swrast(_EGLDisplay *disp)
dri2_dpy->driver_name = "swrast";
extensions = dri2_open_driver(disp);
+ if (!extensions) {
+ /* try again with swrastg */
+ dri2_dpy->driver_name = "swrastg";
+ extensions = dri2_open_driver(disp);
+ }
+
if (!extensions)
return EGL_FALSE;
From 982cb365848ebb7e64dc0915e37793e5823e4bbf Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Mon, 13 Jun 2011 11:35:21 +0800
Subject: [PATCH 028/406] wayland-drm: remove depend on "make clean"
---
src/egl/wayland/wayland-drm/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/egl/wayland/wayland-drm/Makefile b/src/egl/wayland/wayland-drm/Makefile
index 789b020a592..bc010b6d9cb 100644
--- a/src/egl/wayland/wayland-drm/Makefile
+++ b/src/egl/wayland/wayland-drm/Makefile
@@ -34,6 +34,7 @@ depend:
clean:
rm -rf libwayland-drm.a $(wayland_drm_OBJECTS) \
$(GEN_SOURCES) $(GEN_HEADERS)
+ rm -f depend depend.bak
install:
@echo -n ""
From 3e1caf5d2666ed220f4a740db4fe5a7ad54e455a Mon Sep 17 00:00:00 2001
From: Benjamin Franzke
Date: Wed, 8 Jun 2011 15:50:25 +0200
Subject: [PATCH 029/406] mapi: Fix tls with shared/es-glapi on x86-64
x86_64_entry_start needs to be declared static in the C code,
in order to have the correct address in entry_get_public
(seems not to be needed on x86).
The compiler needs to lookup a local not a global object.
Otherwise addresses needed for _glapi_proc_address will be computed
from some random offset (0x6400229a61058b48 in my case).
---
src/mapi/mapi/entry_x86-64_tls.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/mapi/mapi/entry_x86-64_tls.h b/src/mapi/mapi/entry_x86-64_tls.h
index d3b606c8ac5..72d4125a694 100644
--- a/src/mapi/mapi/entry_x86-64_tls.h
+++ b/src/mapi/mapi/entry_x86-64_tls.h
@@ -76,10 +76,12 @@ entry_patch_public(void)
{
}
+static char
+x86_64_entry_start[];
+
mapi_func
entry_get_public(int slot)
{
- extern char x86_64_entry_start[];
return (mapi_func) (x86_64_entry_start + slot * 32);
}
From 77b7e1b58fcc4823b6b1f4fa4296c810db218f8a Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Mon, 13 Jun 2011 11:41:41 +0800
Subject: [PATCH 030/406] mapi: declare x86_entry_start/end static
x86_entry_start and x86_entry_end are defined by the inline assembly.
Declaring them static saves one instruction in entry_get_public.
---
src/mapi/mapi/entry_x86_tls.h | 6 +++---
src/mapi/mapi/entry_x86_tsd.h | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/mapi/mapi/entry_x86_tls.h b/src/mapi/mapi/entry_x86_tls.h
index 5169069a132..de918128eee 100644
--- a/src/mapi/mapi/entry_x86_tls.h
+++ b/src/mapi/mapi/entry_x86_tls.h
@@ -86,12 +86,13 @@ __asm__(".text");
extern unsigned long
x86_current_tls();
+static char x86_entry_start[];
+static char x86_entry_end[];
+
void
entry_patch_public(void)
{
#ifndef GLX_X86_READONLY_TEXT
- extern char x86_entry_start[];
- extern char x86_entry_end[];
char patch[8] = {
0x65, 0xa1, 0x00, 0x00, 0x00, 0x00, /* movl %gs:0x0, %eax */
0x90, 0x90 /* nop's */
@@ -108,7 +109,6 @@ entry_patch_public(void)
mapi_func
entry_get_public(int slot)
{
- extern char x86_entry_start[];
return (mapi_func) (x86_entry_start + slot * 16);
}
diff --git a/src/mapi/mapi/entry_x86_tsd.h b/src/mapi/mapi/entry_x86_tsd.h
index 1491478d470..c479c199e23 100644
--- a/src/mapi/mapi/entry_x86_tsd.h
+++ b/src/mapi/mapi/entry_x86_tsd.h
@@ -60,6 +60,9 @@ __asm__(".balign 32\n"
#include
#include "u_execmem.h"
+static const char x86_entry_start[];
+static const char x86_entry_end[];
+
void
entry_patch_public(void)
{
@@ -68,7 +71,6 @@ entry_patch_public(void)
mapi_func
entry_get_public(int slot)
{
- extern const char x86_entry_start[];
return (mapi_func) (x86_entry_start + slot * X86_ENTRY_SIZE);
}
@@ -84,7 +86,6 @@ entry_patch(mapi_func entry, int slot)
mapi_func
entry_generate(int slot)
{
- extern const char x86_entry_end[];
const char *code_templ = x86_entry_end - X86_ENTRY_SIZE;
void *code;
mapi_func entry;
From b19d86701eb6b04a0b7bcf43af06c4ce4fc30299 Mon Sep 17 00:00:00 2001
From: Pierre-Eric Pelloux-Prayer
Date: Fri, 10 Jun 2011 13:57:21 +0200
Subject: [PATCH 031/406] r600g: fixed bo memory leak issue
pipe_resource_reference call was miossing, thus creating massive memory under certain conditions.
Fix : https://bugs.freedesktop.org/show_bug.cgi?id=37168
---
src/gallium/drivers/r600/r600_translate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/drivers/r600/r600_translate.c b/src/gallium/drivers/r600/r600_translate.c
index 7482d15e12f..307fd57e21a 100644
--- a/src/gallium/drivers/r600/r600_translate.c
+++ b/src/gallium/drivers/r600/r600_translate.c
@@ -48,6 +48,7 @@ void r600_translate_index_buffer(struct r600_pipe_context *r600,
&r600->context, *index_buffer, 0, *start, count, ptr);
pipe_resource_reference(index_buffer, out_buffer);
+ pipe_resource_reference(&out_buffer, NULL);
*index_size = 2;
*start = out_offset / 2;
break;
From 317247390a3af61f2913e4446959975c9ab2478a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 12 Jun 2011 23:21:41 +0200
Subject: [PATCH 032/406] st/mesa: rebind vertex arrays if _NEW_BUFFER_OBJECT
is dirty
This fixes piglit/vbo-bufferdata. It's a regression in 7.11.
Reviewed-by: Brian Paul
---
src/mesa/state_tracker/st_draw.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 56955d357b1..dd26db2f678 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -650,7 +650,8 @@ st_draw_vbo(struct gl_context *ctx,
struct pipe_draw_info info;
unsigned i, num_instances = 1;
GLboolean new_array =
- st->dirty.st && (st->dirty.mesa & (_NEW_ARRAY | _NEW_PROGRAM)) != 0;
+ st->dirty.st &&
+ (st->dirty.mesa & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) != 0;
/* Mesa core state should have been validated already */
assert(ctx->NewState == 0x0);
From 92563476e451a7df131822a8bcdedc2c161ed75f Mon Sep 17 00:00:00 2001
From: Pierre-Eric Pelloux-Prayer
Date: Fri, 10 Jun 2011 15:45:01 +0200
Subject: [PATCH 033/406] r600g: remove useless call to u_upload_flush
No regressions found with :
- piglit (quick.tests)
- Unigine Heaven
- Lightsmark
- openarena
- Imprudence (Second Life fork)
agd5f Note: this patch was previously reverted due to piglit
regressions, but I'm not able to reproduce them here.
See this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=34008
and discussion:
http://lists.freedesktop.org/archives/dri-devel/2011-June/011996.html
Signed-off-by: Alex Deucher
---
src/gallium/drivers/r600/r600_pipe.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index f924d798765..ce2db888f7a 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -138,11 +138,6 @@ static void r600_flush(struct pipe_context *ctx,
dc++;
#endif
r600_context_flush(&rctx->ctx);
-
- /* XXX This shouldn't be really necessary, but removing it breaks some tests.
- * Needless buffer reallocations may significantly increase memory consumption,
- * so getting rid of this call is important. */
- u_upload_flush(rctx->vbuf_mgr->uploader);
}
static void r600_update_num_contexts(struct r600_screen *rscreen, int diff)
From e2529442e6cc208a4f62ff7dc00d5e2ba7c92624 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?=
Date: Wed, 8 Jun 2011 17:33:57 +0200
Subject: [PATCH 034/406] r600g: Fix typo.
Fix an obvious typo in the yet unused part of the shader setup.
---
src/gallium/drivers/r600/r600_state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 5a1c456309b..98f5c511f5b 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1243,7 +1243,7 @@ void r600_init_config(struct r600_pipe_context *rctx)
/* SQ_GPR_RESOURCE_MGMT_2 */
tmp = 0;
tmp |= S_008C08_NUM_GS_GPRS(num_gs_gprs);
- tmp |= S_008C08_NUM_GS_GPRS(num_es_gprs);
+ tmp |= S_008C08_NUM_ES_GPRS(num_es_gprs);
r600_pipe_state_add_reg(rstate, R_008C08_SQ_GPR_RESOURCE_MGMT_2, tmp, 0xFFFFFFFF, NULL);
/* SQ_THREAD_RESOURCE_MGMT */
From e1f88016ec51ccf7e07fac4d77ad9077b6b9a1eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?=
Date: Sun, 12 Jun 2011 14:25:26 +0200
Subject: [PATCH 035/406] r600g: Set the domains value also for recycled buffer
objects.
---
src/gallium/winsys/r600/drm/r600_bo.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/src/gallium/winsys/r600/drm/r600_bo.c b/src/gallium/winsys/r600/drm/r600_bo.c
index 8bb216dc7a8..093660f8d01 100644
--- a/src/gallium/winsys/r600/drm/r600_bo.c
+++ b/src/gallium/winsys/r600/drm/r600_bo.c
@@ -38,11 +38,23 @@ struct r600_bo *r600_bo(struct radeon *radeon,
{
struct r600_bo *bo;
struct radeon_bo *rbo;
- uint32_t initial_domain;
+ uint32_t initial_domain, domains;
+ /* Staging resources particpate in transfers and blits only
+ * and are used for uploads and downloads from regular
+ * resources. We generate them internally for some transfers.
+ */
+ if (usage == PIPE_USAGE_STAGING)
+ domains = RADEON_GEM_DOMAIN_CPU | RADEON_GEM_DOMAIN_GTT;
+ else
+ domains = (RADEON_GEM_DOMAIN_CPU |
+ RADEON_GEM_DOMAIN_GTT |
+ RADEON_GEM_DOMAIN_VRAM);
+
if (binding & (PIPE_BIND_CONSTANT_BUFFER | PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_INDEX_BUFFER)) {
bo = r600_bomgr_bo_create(radeon->bomgr, size, alignment, *radeon->cfence);
if (bo) {
+ bo->domains = domains;
return bo;
}
}
@@ -72,22 +84,12 @@ struct r600_bo *r600_bo(struct radeon *radeon,
bo = calloc(1, sizeof(struct r600_bo));
bo->size = size;
bo->alignment = alignment;
+ bo->domains = domains;
bo->bo = rbo;
if (binding & (PIPE_BIND_CONSTANT_BUFFER | PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_INDEX_BUFFER)) {
r600_bomgr_bo_init(radeon->bomgr, bo);
}
- /* Staging resources particpate in transfers and blits only
- * and are used for uploads and downloads from regular
- * resources. We generate them internally for some transfers.
- */
- if (usage == PIPE_USAGE_STAGING)
- bo->domains = RADEON_GEM_DOMAIN_CPU | RADEON_GEM_DOMAIN_GTT;
- else
- bo->domains = (RADEON_GEM_DOMAIN_CPU |
- RADEON_GEM_DOMAIN_GTT |
- RADEON_GEM_DOMAIN_VRAM);
-
pipe_reference_init(&bo->reference, 1);
return bo;
}
From b0f1767d776e2c80cab4343b4cd59553fbf5e48a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?=
Date: Sun, 12 Jun 2011 14:32:03 +0200
Subject: [PATCH 036/406] r600g: Allow VRAM for the initial domain for every
buffer binding.
---
src/gallium/winsys/r600/drm/r600_bo.c | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/src/gallium/winsys/r600/drm/r600_bo.c b/src/gallium/winsys/r600/drm/r600_bo.c
index 093660f8d01..4098a6e1998 100644
--- a/src/gallium/winsys/r600/drm/r600_bo.c
+++ b/src/gallium/winsys/r600/drm/r600_bo.c
@@ -59,22 +59,18 @@ struct r600_bo *r600_bo(struct radeon *radeon,
}
}
- if (binding & (PIPE_BIND_CONSTANT_BUFFER | PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_INDEX_BUFFER)) {
+ switch(usage) {
+ case PIPE_USAGE_DYNAMIC:
+ case PIPE_USAGE_STREAM:
+ case PIPE_USAGE_STAGING:
initial_domain = RADEON_GEM_DOMAIN_GTT;
- } else {
- switch(usage) {
- case PIPE_USAGE_DYNAMIC:
- case PIPE_USAGE_STREAM:
- case PIPE_USAGE_STAGING:
- initial_domain = RADEON_GEM_DOMAIN_GTT;
- break;
- case PIPE_USAGE_DEFAULT:
- case PIPE_USAGE_STATIC:
- case PIPE_USAGE_IMMUTABLE:
- default:
- initial_domain = RADEON_GEM_DOMAIN_VRAM;
- break;
- }
+ break;
+ case PIPE_USAGE_DEFAULT:
+ case PIPE_USAGE_STATIC:
+ case PIPE_USAGE_IMMUTABLE:
+ default:
+ initial_domain = RADEON_GEM_DOMAIN_VRAM;
+ break;
}
rbo = radeon_bo(radeon, 0, size, alignment, initial_domain);
if (rbo == NULL) {
From 2f0b44f981d1715b62b189f465546d865b10d0f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mathias=20Fr=C3=B6hlich?=
Date: Sat, 4 Jun 2011 00:21:29 +0200
Subject: [PATCH 037/406] r600g: Put shaders into immutable buffers.
Put the shader programs into an immutable buffer object.
Also make sure that those object can be taken from the user
space buffer object pool.
---
src/gallium/drivers/r600/r600_asm.c | 2 +-
src/gallium/drivers/r600/r600_shader.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 3196d97dbbb..aeb1175958c 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -2258,7 +2258,7 @@ int r600_vertex_elements_build_fetch_shader(struct r600_pipe_context *rctx, stru
ve->fs_size = bc.ndw*4;
/* use PIPE_BIND_VERTEX_BUFFER so we use the cache buffer manager */
- ve->fetch_shader = r600_bo(rctx->radeon, ve->fs_size, 256, PIPE_BIND_VERTEX_BUFFER, 0);
+ ve->fetch_shader = r600_bo(rctx->radeon, ve->fs_size, 256, PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_IMMUTABLE);
if (ve->fetch_shader == NULL) {
r600_bc_clear(&bc);
return -ENOMEM;
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 39e6d85d7b4..d111caa6449 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -85,7 +85,8 @@ static int r600_pipe_shader(struct pipe_context *ctx, struct r600_pipe_shader *s
/* copy new shader */
if (shader->bo == NULL) {
- shader->bo = r600_bo(rctx->radeon, rshader->bc.ndw * 4, 4096, 0, 0);
+ /* use PIPE_BIND_VERTEX_BUFFER so we use the cache buffer manager */
+ shader->bo = r600_bo(rctx->radeon, rshader->bc.ndw * 4, 4096, PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_IMMUTABLE);
if (shader->bo == NULL) {
return -ENOMEM;
}
From e6e1864f1c6c9be46b255e390d67de10f8f39509 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 08:18:11 -0600
Subject: [PATCH 038/406] mesa: move invariant code out of loop in
get_tex_rgba()
---
src/mesa/main/texgetimage.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 97d10122541..26c2ff98ba1 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -233,6 +233,7 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions,
const GLint width = texImage->Width;
const GLint height = texImage->Height;
const GLint depth = texImage->Depth;
+ const GLenum dataType = _mesa_get_format_datatype(texImage->TexFormat);
/* Normally, no pixel transfer ops are performed during glGetTexImage.
* The only possible exception is component clamping to [0,1].
*/
@@ -248,6 +249,19 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions,
return;
}
+ /* Clamping does not apply to GetTexImage (final conversion)?
+ * Looks like we need clamp though when going from format
+ * containing negative values to unsigned format.
+ */
+ if (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA) {
+ transferOps |= IMAGE_CLAMP_BIT;
+ }
+ else if (!type_with_negative_values(type) &&
+ (dataType == GL_FLOAT ||
+ dataType == GL_SIGNED_NORMALIZED)) {
+ transferOps |= IMAGE_CLAMP_BIT;
+ }
+
/* glGetTexImage always returns sRGB data for sRGB textures. Make sure the
* fetch functions return sRGB data without linearizing it.
*/
@@ -262,20 +276,6 @@ get_tex_rgba(struct gl_context *ctx, GLuint dimensions,
width, height, format, type,
img, row, 0);
GLint col;
- GLenum dataType = _mesa_get_format_datatype(texImage->TexFormat);
-
- /* clamp does not apply to GetTexImage (final conversion)?
- * Looks like we need clamp though when going from format
- * containing negative values to unsigned format.
- */
- if (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA) {
- transferOps |= IMAGE_CLAMP_BIT;
- }
- else if (!type_with_negative_values(type) &&
- (dataType == GL_FLOAT ||
- dataType == GL_SIGNED_NORMALIZED)) {
- transferOps |= IMAGE_CLAMP_BIT;
- }
for (col = 0; col < width; col++) {
texImage->FetchTexelf(texImage, col, row, img, rgba[col]);
From 8852e35e29ff941172540e1ec7158b9259f46c3c Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 13:42:53 -0600
Subject: [PATCH 039/406] vbo: minor simplification in print_draw_arrays()
debug function
---
src/mesa/vbo/vbo_exec_array.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 5e9b2798c43..7959337decb 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -337,7 +337,8 @@ print_draw_arrays(struct gl_context *ctx,
mode, start, count);
for (i = 0; i < 32; i++) {
- GLuint bufName = exec->array.inputs[i]->BufferObj->Name;
+ struct gl_buffer_object *bufObj = exec->array.inputs[i]->BufferObj;
+ GLuint bufName = bufObj->Name;
GLint stride = exec->array.inputs[i]->Stride;
printf("attr %2d: size %d stride %d enabled %d "
"ptr %p Bufobj %u\n",
@@ -350,9 +351,8 @@ print_draw_arrays(struct gl_context *ctx,
bufName);
if (bufName) {
- struct gl_buffer_object *buf = _mesa_lookup_bufferobj(ctx, bufName);
GLubyte *p = ctx->Driver.MapBuffer(ctx, GL_ARRAY_BUFFER_ARB,
- GL_READ_ONLY_ARB, buf);
+ GL_READ_ONLY_ARB, bufObj);
int offset = (int) (GLintptr) exec->array.inputs[i]->Ptr;
float *f = (float *) (p + offset);
int *k = (int *) f;
@@ -364,7 +364,7 @@ print_draw_arrays(struct gl_context *ctx,
for (i = 0; i < n; i++) {
printf(" float[%d] = 0x%08x %f\n", i, k[i], f[i]);
}
- ctx->Driver.UnmapBuffer(ctx, GL_ARRAY_BUFFER_ARB, buf);
+ ctx->Driver.UnmapBuffer(ctx, GL_ARRAY_BUFFER_ARB, bufObj);
}
}
}
From 755f2e2ae597df9208523b0996bbdabf3db463b0 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 13:44:35 -0600
Subject: [PATCH 040/406] mesa: move texrender.c to swrast
This stuff is really for software rendering, it's not core Mesa.
A small step toward pushing the FetchTexel() stuff down into swrast.
Reviewed-by: Eric Anholt
---
src/mesa/SConscript | 2 +-
src/mesa/drivers/common/driverfuncs.c | 5 ++--
src/mesa/drivers/dri/intel/intel_fbo.c | 8 +++---
src/mesa/drivers/dri/radeon/radeon_fbo.c | 8 +++---
src/mesa/main/texrender.h | 18 -------------
src/mesa/sources.mak | 2 +-
.../texrender.c => swrast/s_texrender.c} | 26 +++++++++----------
src/mesa/swrast/swrast.h | 10 +++++++
8 files changed, 35 insertions(+), 44 deletions(-)
delete mode 100644 src/mesa/main/texrender.h
rename src/mesa/{main/texrender.c => swrast/s_texrender.c} (97%)
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index fdb4d5a5814..24e2155c387 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -121,7 +121,6 @@ main_sources = [
'main/texobj.c',
'main/texpal.c',
'main/texparam.c',
- 'main/texrender.c',
'main/texstate.c',
'main/texstore.c',
'main/texturebarrier.c',
@@ -174,6 +173,7 @@ swrast_sources = [
'swrast/s_stencil.c',
'swrast/s_texcombine.c',
'swrast/s_texfilter.c',
+ 'swrast/s_texrender.c',
'swrast/s_triangle.c',
'swrast/s_zoom.c',
]
diff --git a/src/mesa/drivers/common/driverfuncs.c b/src/mesa/drivers/common/driverfuncs.c
index 0dbc7c3e853..8ab129dd73d 100644
--- a/src/mesa/drivers/common/driverfuncs.c
+++ b/src/mesa/drivers/common/driverfuncs.c
@@ -40,7 +40,6 @@
#include "main/texstore.h"
#include "main/bufferobj.h"
#include "main/fbobject.h"
-#include "main/texrender.h"
#include "main/samplerobj.h"
#include "main/syncobj.h"
#include "main/texturebarrier.h"
@@ -183,8 +182,8 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
driver->NewFramebuffer = _mesa_new_framebuffer;
driver->NewRenderbuffer = _mesa_new_soft_renderbuffer;
- driver->RenderTexture = _mesa_render_texture;
- driver->FinishRenderTexture = _mesa_finish_render_texture;
+ driver->RenderTexture = _swrast_render_texture;
+ driver->FinishRenderTexture = _swrast_finish_render_texture;
driver->FramebufferRenderbuffer = _mesa_framebuffer_renderbuffer;
driver->ValidateFramebuffer = _mesa_validate_framebuffer;
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 83f622d437e..8277477c82c 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -35,7 +35,7 @@
#include "main/renderbuffer.h"
#include "main/context.h"
#include "main/teximage.h"
-#include "main/texrender.h"
+#include "swrast/s_texrender.h"
#include "drivers/common/meta.h"
#include "intel_context.h"
@@ -557,7 +557,7 @@ intel_render_texture(struct gl_context * ctx,
* (has a border, width/height 0, etc.)
*/
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
else if (!irb) {
@@ -568,14 +568,14 @@ intel_render_texture(struct gl_context * ctx,
}
else {
/* fallback to software rendering */
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
}
if (!intel_update_wrapper(ctx, irb, newImage)) {
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c
index d3c9257fb66..0986adec57e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_fbo.c
+++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c
@@ -35,7 +35,7 @@
#include "main/framebuffer.h"
#include "main/renderbuffer.h"
#include "main/context.h"
-#include "main/texrender.h"
+#include "swrast/s_texrender.h"
#include "drivers/common/meta.h"
#include "radeon_common.h"
@@ -557,7 +557,7 @@ radeon_render_texture(struct gl_context * ctx,
/* Fallback on drawing to a texture without a miptree.
*/
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
else if (!rrb) {
@@ -568,14 +568,14 @@ radeon_render_texture(struct gl_context * ctx,
}
else {
/* fallback to software rendering */
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
}
if (!radeon_update_wrapper(ctx, rrb, newImage)) {
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
- _mesa_render_texture(ctx, fb, att);
+ _swrast_render_texture(ctx, fb, att);
return;
}
diff --git a/src/mesa/main/texrender.h b/src/mesa/main/texrender.h
deleted file mode 100644
index cacd091160e..00000000000
--- a/src/mesa/main/texrender.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef TEXRENDER_H
-#define TEXRENDER_H
-
-struct gl_context;
-struct gl_framebuffer;
-struct gl_renderbuffer_attachment;
-
-extern void
-_mesa_render_texture(struct gl_context *ctx,
- struct gl_framebuffer *fb,
- struct gl_renderbuffer_attachment *att);
-
-extern void
-_mesa_finish_render_texture(struct gl_context *ctx,
- struct gl_renderbuffer_attachment *att);
-
-
-#endif /* TEXRENDER_H */
diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak
index 9b2cb1a3c14..4b2ec08bbb0 100644
--- a/src/mesa/sources.mak
+++ b/src/mesa/sources.mak
@@ -92,7 +92,6 @@ MAIN_SOURCES = \
main/texobj.c \
main/texpal.c \
main/texparam.c \
- main/texrender.c \
main/texstate.c \
main/texstore.c \
main/texturebarrier.c \
@@ -145,6 +144,7 @@ SWRAST_SOURCES = \
swrast/s_stencil.c \
swrast/s_texcombine.c \
swrast/s_texfilter.c \
+ swrast/s_texrender.c \
swrast/s_triangle.c \
swrast/s_zoom.c
diff --git a/src/mesa/main/texrender.c b/src/mesa/swrast/s_texrender.c
similarity index 97%
rename from src/mesa/main/texrender.c
rename to src/mesa/swrast/s_texrender.c
index a7641a5f9a4..52d03c92ac7 100644
--- a/src/mesa/main/texrender.c
+++ b/src/mesa/swrast/s_texrender.c
@@ -1,12 +1,12 @@
-#include "context.h"
-#include "colormac.h"
-#include "fbobject.h"
-#include "macros.h"
-#include "texfetch.h"
-#include "teximage.h"
-#include "texrender.h"
-#include "renderbuffer.h"
+#include "main/context.h"
+#include "main/colormac.h"
+#include "main/fbobject.h"
+#include "main/macros.h"
+#include "main/texfetch.h"
+#include "main/teximage.h"
+#include "main/renderbuffer.h"
+#include "swrast/swrast.h"
/*
@@ -628,9 +628,9 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
* \sa _mesa_framebuffer_renderbuffer
*/
void
-_mesa_render_texture(struct gl_context *ctx,
- struct gl_framebuffer *fb,
- struct gl_renderbuffer_attachment *att)
+_swrast_render_texture(struct gl_context *ctx,
+ struct gl_framebuffer *fb,
+ struct gl_renderbuffer_attachment *att)
{
(void) fb;
@@ -642,8 +642,8 @@ _mesa_render_texture(struct gl_context *ctx,
void
-_mesa_finish_render_texture(struct gl_context *ctx,
- struct gl_renderbuffer_attachment *att)
+_swrast_finish_render_texture(struct gl_context *ctx,
+ struct gl_renderbuffer_attachment *att)
{
/* do nothing */
/* The renderbuffer texture wrapper will get deleted by the
diff --git a/src/mesa/swrast/swrast.h b/src/mesa/swrast/swrast.h
index 9b88c70220e..27b74c32486 100644
--- a/src/mesa/swrast/swrast.h
+++ b/src/mesa/swrast/swrast.h
@@ -206,6 +206,16 @@ extern void
_swrast_eject_texture_images(struct gl_context *ctx);
+extern void
+_swrast_render_texture(struct gl_context *ctx,
+ struct gl_framebuffer *fb,
+ struct gl_renderbuffer_attachment *att);
+
+extern void
+_swrast_finish_render_texture(struct gl_context *ctx,
+ struct gl_renderbuffer_attachment *att);
+
+
/**
* The driver interface for the software rasterizer.
From df8d26ec09e7aecea91d8babbe82caf722f3dd2b Mon Sep 17 00:00:00 2001
From: Daniel Vetter
Date: Mon, 13 Jun 2011 23:03:00 +0200
Subject: [PATCH 041/406] i915g: add a few more render target formats
Snatched from xvmc.
Signed-off-by: Daniel Vetter
---
src/gallium/drivers/i915/i915_reg.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/gallium/drivers/i915/i915_reg.h b/src/gallium/drivers/i915/i915_reg.h
index 6fe032cdb6e..14e786d0f2a 100644
--- a/src/gallium/drivers/i915/i915_reg.h
+++ b/src/gallium/drivers/i915/i915_reg.h
@@ -170,6 +170,13 @@
#define COLOR_BUF_RGB555 (1<<8)
#define COLOR_BUF_RGB565 (2<<8)
#define COLOR_BUF_ARGB8888 (3<<8)
+#define COLOR_BUF_YCRCB_SWAP (4<<8)
+#define COLOR_BUF_YCRCB_NORMAL (5<<8)
+#define COLOR_BUF_YCRCB_SWAPUV (6<<8)
+#define COLOR_BUF_YCRCB_SWAPUVY (7<<8)
+#define COLOR_BUF_ARGB4444 (8<<8)
+#define COLOR_BUF_ARGB1555 (9<<8)
+#define COLOR_BUF_ARGB2101010 (10<<8)
#define DEPTH_FRMT_16_FIXED 0
#define DEPTH_FRMT_16_FLOAT (1<<2)
#define DEPTH_FRMT_24_FIXED_8_OTHER (2<<2)
From b44d13e67bfe81b2d7af4aeda2c3caf7f252bd0f Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Mon, 13 Jun 2011 11:35:18 -0700
Subject: [PATCH 042/406] glapi: Add check for NULL symbol_prefix in gentable
and fix warnings
Signed-off-by: Jeremy Huddleston
---
src/mapi/glapi/gen/gl_gentable.py | 11 +-
src/mapi/glapi/glapi_gentable.c | 6474 +++++++++++++++++------------
2 files changed, 3891 insertions(+), 2594 deletions(-)
diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py
index 0dfebf87f2b..73986f27253 100644
--- a/src/mapi/glapi/gen/gl_gentable.py
+++ b/src/mapi/glapi/gen/gl_gentable.py
@@ -42,7 +42,6 @@ header = """
#include "glapi.h"
#include "glapitable.h"
-#include "main/dispatch.h"
struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
@@ -50,7 +49,10 @@ _glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
char symboln[512];
if(!disp)
- return NULL;
+ return NULL;
+
+ if(symbol_prefix == NULL)
+ symbol_prefix = "";
"""
footer = """
@@ -60,8 +62,9 @@ footer = """
body_template = """
if(!disp->%(name)s) {
- snprintf(symboln, sizeof(symboln), "%%s%(entry_point)s", symbol_prefix);
- SET_%(name)s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%%s%(entry_point)s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->%(name)s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
"""
diff --git a/src/mapi/glapi/glapi_gentable.c b/src/mapi/glapi/glapi_gentable.c
index 7f09b412b73..dcbed1c7839 100644
--- a/src/mapi/glapi/glapi_gentable.c
+++ b/src/mapi/glapi/glapi_gentable.c
@@ -36,7769 +36,9063 @@
#include "glapi.h"
#include "glapitable.h"
-#include "main/dispatch.h"
struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
- struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
- char symboln[512];
+ struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
+ char symboln[512];
- if(!disp)
- return NULL;
+ if(!disp)
+ return NULL;
+
+ if(symbol_prefix == NULL)
+ symbol_prefix = "";
if(!disp->NewList) {
- snprintf(symboln, sizeof(symboln), "%sNewList", symbol_prefix);
- SET_NewList(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNewList", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->NewList;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndList) {
- snprintf(symboln, sizeof(symboln), "%sEndList", symbol_prefix);
- SET_EndList(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndList", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndList;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CallList) {
- snprintf(symboln, sizeof(symboln), "%sCallList", symbol_prefix);
- SET_CallList(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCallList", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CallList;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CallLists) {
- snprintf(symboln, sizeof(symboln), "%sCallLists", symbol_prefix);
- SET_CallLists(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCallLists", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CallLists;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteLists) {
- snprintf(symboln, sizeof(symboln), "%sDeleteLists", symbol_prefix);
- SET_DeleteLists(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteLists", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteLists;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenLists) {
- snprintf(symboln, sizeof(symboln), "%sGenLists", symbol_prefix);
- SET_GenLists(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenLists", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenLists;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ListBase) {
- snprintf(symboln, sizeof(symboln), "%sListBase", symbol_prefix);
- SET_ListBase(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sListBase", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ListBase;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Begin) {
- snprintf(symboln, sizeof(symboln), "%sBegin", symbol_prefix);
- SET_Begin(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBegin", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Begin;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Bitmap) {
- snprintf(symboln, sizeof(symboln), "%sBitmap", symbol_prefix);
- SET_Bitmap(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBitmap", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Bitmap;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3b) {
- snprintf(symboln, sizeof(symboln), "%sColor3b", symbol_prefix);
- SET_Color3b(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3b", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3b;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3bv) {
- snprintf(symboln, sizeof(symboln), "%sColor3bv", symbol_prefix);
- SET_Color3bv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3bv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3d) {
- snprintf(symboln, sizeof(symboln), "%sColor3d", symbol_prefix);
- SET_Color3d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3dv) {
- snprintf(symboln, sizeof(symboln), "%sColor3dv", symbol_prefix);
- SET_Color3dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3f) {
- snprintf(symboln, sizeof(symboln), "%sColor3f", symbol_prefix);
- SET_Color3f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3fv) {
- snprintf(symboln, sizeof(symboln), "%sColor3fv", symbol_prefix);
- SET_Color3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3i) {
- snprintf(symboln, sizeof(symboln), "%sColor3i", symbol_prefix);
- SET_Color3i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3iv) {
- snprintf(symboln, sizeof(symboln), "%sColor3iv", symbol_prefix);
- SET_Color3iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3s) {
- snprintf(symboln, sizeof(symboln), "%sColor3s", symbol_prefix);
- SET_Color3s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3sv) {
- snprintf(symboln, sizeof(symboln), "%sColor3sv", symbol_prefix);
- SET_Color3sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3ub) {
- snprintf(symboln, sizeof(symboln), "%sColor3ub", symbol_prefix);
- SET_Color3ub(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3ub", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3ub;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3ubv) {
- snprintf(symboln, sizeof(symboln), "%sColor3ubv", symbol_prefix);
- SET_Color3ubv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3ubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3ubv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3ui) {
- snprintf(symboln, sizeof(symboln), "%sColor3ui", symbol_prefix);
- SET_Color3ui(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3ui;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3uiv) {
- snprintf(symboln, sizeof(symboln), "%sColor3uiv", symbol_prefix);
- SET_Color3uiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3uiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3us) {
- snprintf(symboln, sizeof(symboln), "%sColor3us", symbol_prefix);
- SET_Color3us(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3us", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3us;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color3usv) {
- snprintf(symboln, sizeof(symboln), "%sColor3usv", symbol_prefix);
- SET_Color3usv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor3usv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color3usv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4b) {
- snprintf(symboln, sizeof(symboln), "%sColor4b", symbol_prefix);
- SET_Color4b(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4b", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4b;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4bv) {
- snprintf(symboln, sizeof(symboln), "%sColor4bv", symbol_prefix);
- SET_Color4bv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4bv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4d) {
- snprintf(symboln, sizeof(symboln), "%sColor4d", symbol_prefix);
- SET_Color4d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4dv) {
- snprintf(symboln, sizeof(symboln), "%sColor4dv", symbol_prefix);
- SET_Color4dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4f) {
- snprintf(symboln, sizeof(symboln), "%sColor4f", symbol_prefix);
- SET_Color4f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4fv) {
- snprintf(symboln, sizeof(symboln), "%sColor4fv", symbol_prefix);
- SET_Color4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4i) {
- snprintf(symboln, sizeof(symboln), "%sColor4i", symbol_prefix);
- SET_Color4i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4iv) {
- snprintf(symboln, sizeof(symboln), "%sColor4iv", symbol_prefix);
- SET_Color4iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4s) {
- snprintf(symboln, sizeof(symboln), "%sColor4s", symbol_prefix);
- SET_Color4s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4sv) {
- snprintf(symboln, sizeof(symboln), "%sColor4sv", symbol_prefix);
- SET_Color4sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4ub) {
- snprintf(symboln, sizeof(symboln), "%sColor4ub", symbol_prefix);
- SET_Color4ub(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4ub", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4ub;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4ubv) {
- snprintf(symboln, sizeof(symboln), "%sColor4ubv", symbol_prefix);
- SET_Color4ubv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4ubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4ubv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4ui) {
- snprintf(symboln, sizeof(symboln), "%sColor4ui", symbol_prefix);
- SET_Color4ui(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4ui;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4uiv) {
- snprintf(symboln, sizeof(symboln), "%sColor4uiv", symbol_prefix);
- SET_Color4uiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4uiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4us) {
- snprintf(symboln, sizeof(symboln), "%sColor4us", symbol_prefix);
- SET_Color4us(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4us", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4us;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Color4usv) {
- snprintf(symboln, sizeof(symboln), "%sColor4usv", symbol_prefix);
- SET_Color4usv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColor4usv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Color4usv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EdgeFlag) {
- snprintf(symboln, sizeof(symboln), "%sEdgeFlag", symbol_prefix);
- SET_EdgeFlag(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlag", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlag;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EdgeFlagv) {
- snprintf(symboln, sizeof(symboln), "%sEdgeFlagv", symbol_prefix);
- SET_EdgeFlagv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->End) {
- snprintf(symboln, sizeof(symboln), "%sEnd", symbol_prefix);
- SET_End(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->End;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexd) {
- snprintf(symboln, sizeof(symboln), "%sIndexd", symbol_prefix);
- SET_Indexd(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexd;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexdv) {
- snprintf(symboln, sizeof(symboln), "%sIndexdv", symbol_prefix);
- SET_Indexdv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexdv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexdv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexf) {
- snprintf(symboln, sizeof(symboln), "%sIndexf", symbol_prefix);
- SET_Indexf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexfv) {
- snprintf(symboln, sizeof(symboln), "%sIndexfv", symbol_prefix);
- SET_Indexfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexi) {
- snprintf(symboln, sizeof(symboln), "%sIndexi", symbol_prefix);
- SET_Indexi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexiv) {
- snprintf(symboln, sizeof(symboln), "%sIndexiv", symbol_prefix);
- SET_Indexiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexs) {
- snprintf(symboln, sizeof(symboln), "%sIndexs", symbol_prefix);
- SET_Indexs(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexs", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexs;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexsv) {
- snprintf(symboln, sizeof(symboln), "%sIndexsv", symbol_prefix);
- SET_Indexsv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexsv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexsv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3b) {
- snprintf(symboln, sizeof(symboln), "%sNormal3b", symbol_prefix);
- SET_Normal3b(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3b", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3b;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3bv) {
- snprintf(symboln, sizeof(symboln), "%sNormal3bv", symbol_prefix);
- SET_Normal3bv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3bv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3d) {
- snprintf(symboln, sizeof(symboln), "%sNormal3d", symbol_prefix);
- SET_Normal3d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3dv) {
- snprintf(symboln, sizeof(symboln), "%sNormal3dv", symbol_prefix);
- SET_Normal3dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3f) {
- snprintf(symboln, sizeof(symboln), "%sNormal3f", symbol_prefix);
- SET_Normal3f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3fv) {
- snprintf(symboln, sizeof(symboln), "%sNormal3fv", symbol_prefix);
- SET_Normal3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3i) {
- snprintf(symboln, sizeof(symboln), "%sNormal3i", symbol_prefix);
- SET_Normal3i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3iv) {
- snprintf(symboln, sizeof(symboln), "%sNormal3iv", symbol_prefix);
- SET_Normal3iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3s) {
- snprintf(symboln, sizeof(symboln), "%sNormal3s", symbol_prefix);
- SET_Normal3s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Normal3sv) {
- snprintf(symboln, sizeof(symboln), "%sNormal3sv", symbol_prefix);
- SET_Normal3sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormal3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Normal3sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2d) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2d", symbol_prefix);
- SET_RasterPos2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2dv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2dv", symbol_prefix);
- SET_RasterPos2dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2f) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2f", symbol_prefix);
- SET_RasterPos2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2fv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2fv", symbol_prefix);
- SET_RasterPos2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2i) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2i", symbol_prefix);
- SET_RasterPos2i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2iv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2iv", symbol_prefix);
- SET_RasterPos2iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2s) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2s", symbol_prefix);
- SET_RasterPos2s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos2sv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos2sv", symbol_prefix);
- SET_RasterPos2sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3d) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3d", symbol_prefix);
- SET_RasterPos3d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3dv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3dv", symbol_prefix);
- SET_RasterPos3dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3f) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3f", symbol_prefix);
- SET_RasterPos3f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3fv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3fv", symbol_prefix);
- SET_RasterPos3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3i) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3i", symbol_prefix);
- SET_RasterPos3i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3iv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3iv", symbol_prefix);
- SET_RasterPos3iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3s) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3s", symbol_prefix);
- SET_RasterPos3s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos3sv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos3sv", symbol_prefix);
- SET_RasterPos3sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4d) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4d", symbol_prefix);
- SET_RasterPos4d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4dv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4dv", symbol_prefix);
- SET_RasterPos4dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4f) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4f", symbol_prefix);
- SET_RasterPos4f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4fv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4fv", symbol_prefix);
- SET_RasterPos4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4i) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4i", symbol_prefix);
- SET_RasterPos4i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4iv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4iv", symbol_prefix);
- SET_RasterPos4iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4s) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4s", symbol_prefix);
- SET_RasterPos4s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RasterPos4sv) {
- snprintf(symboln, sizeof(symboln), "%sRasterPos4sv", symbol_prefix);
- SET_RasterPos4sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRasterPos4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectd) {
- snprintf(symboln, sizeof(symboln), "%sRectd", symbol_prefix);
- SET_Rectd(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectd;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectdv) {
- snprintf(symboln, sizeof(symboln), "%sRectdv", symbol_prefix);
- SET_Rectdv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectdv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectdv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectf) {
- snprintf(symboln, sizeof(symboln), "%sRectf", symbol_prefix);
- SET_Rectf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectfv) {
- snprintf(symboln, sizeof(symboln), "%sRectfv", symbol_prefix);
- SET_Rectfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Recti) {
- snprintf(symboln, sizeof(symboln), "%sRecti", symbol_prefix);
- SET_Recti(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRecti", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Recti;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectiv) {
- snprintf(symboln, sizeof(symboln), "%sRectiv", symbol_prefix);
- SET_Rectiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rects) {
- snprintf(symboln, sizeof(symboln), "%sRects", symbol_prefix);
- SET_Rects(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRects", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rects;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rectsv) {
- snprintf(symboln, sizeof(symboln), "%sRectsv", symbol_prefix);
- SET_Rectsv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRectsv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rectsv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1d) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1d", symbol_prefix);
- SET_TexCoord1d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1dv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1dv", symbol_prefix);
- SET_TexCoord1dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1f) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1f", symbol_prefix);
- SET_TexCoord1f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1fv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1fv", symbol_prefix);
- SET_TexCoord1fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1i) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1i", symbol_prefix);
- SET_TexCoord1i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1iv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1iv", symbol_prefix);
- SET_TexCoord1iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1s) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1s", symbol_prefix);
- SET_TexCoord1s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord1sv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord1sv", symbol_prefix);
- SET_TexCoord1sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord1sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2d) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2d", symbol_prefix);
- SET_TexCoord2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2dv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2dv", symbol_prefix);
- SET_TexCoord2dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2f) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2f", symbol_prefix);
- SET_TexCoord2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2fv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2fv", symbol_prefix);
- SET_TexCoord2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2i) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2i", symbol_prefix);
- SET_TexCoord2i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2iv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2iv", symbol_prefix);
- SET_TexCoord2iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2s) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2s", symbol_prefix);
- SET_TexCoord2s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord2sv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord2sv", symbol_prefix);
- SET_TexCoord2sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3d) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3d", symbol_prefix);
- SET_TexCoord3d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3dv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3dv", symbol_prefix);
- SET_TexCoord3dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3f) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3f", symbol_prefix);
- SET_TexCoord3f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3fv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3fv", symbol_prefix);
- SET_TexCoord3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3i) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3i", symbol_prefix);
- SET_TexCoord3i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3iv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3iv", symbol_prefix);
- SET_TexCoord3iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3s) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3s", symbol_prefix);
- SET_TexCoord3s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord3sv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord3sv", symbol_prefix);
- SET_TexCoord3sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4d) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4d", symbol_prefix);
- SET_TexCoord4d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4dv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4dv", symbol_prefix);
- SET_TexCoord4dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4f) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4f", symbol_prefix);
- SET_TexCoord4f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4fv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4fv", symbol_prefix);
- SET_TexCoord4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4i) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4i", symbol_prefix);
- SET_TexCoord4i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4iv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4iv", symbol_prefix);
- SET_TexCoord4iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4s) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4s", symbol_prefix);
- SET_TexCoord4s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoord4sv) {
- snprintf(symboln, sizeof(symboln), "%sTexCoord4sv", symbol_prefix);
- SET_TexCoord4sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoord4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2d) {
- snprintf(symboln, sizeof(symboln), "%sVertex2d", symbol_prefix);
- SET_Vertex2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2dv) {
- snprintf(symboln, sizeof(symboln), "%sVertex2dv", symbol_prefix);
- SET_Vertex2dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2f) {
- snprintf(symboln, sizeof(symboln), "%sVertex2f", symbol_prefix);
- SET_Vertex2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2fv) {
- snprintf(symboln, sizeof(symboln), "%sVertex2fv", symbol_prefix);
- SET_Vertex2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2i) {
- snprintf(symboln, sizeof(symboln), "%sVertex2i", symbol_prefix);
- SET_Vertex2i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2iv) {
- snprintf(symboln, sizeof(symboln), "%sVertex2iv", symbol_prefix);
- SET_Vertex2iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2s) {
- snprintf(symboln, sizeof(symboln), "%sVertex2s", symbol_prefix);
- SET_Vertex2s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex2sv) {
- snprintf(symboln, sizeof(symboln), "%sVertex2sv", symbol_prefix);
- SET_Vertex2sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3d) {
- snprintf(symboln, sizeof(symboln), "%sVertex3d", symbol_prefix);
- SET_Vertex3d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3dv) {
- snprintf(symboln, sizeof(symboln), "%sVertex3dv", symbol_prefix);
- SET_Vertex3dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3f) {
- snprintf(symboln, sizeof(symboln), "%sVertex3f", symbol_prefix);
- SET_Vertex3f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3fv) {
- snprintf(symboln, sizeof(symboln), "%sVertex3fv", symbol_prefix);
- SET_Vertex3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3i) {
- snprintf(symboln, sizeof(symboln), "%sVertex3i", symbol_prefix);
- SET_Vertex3i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3iv) {
- snprintf(symboln, sizeof(symboln), "%sVertex3iv", symbol_prefix);
- SET_Vertex3iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3s) {
- snprintf(symboln, sizeof(symboln), "%sVertex3s", symbol_prefix);
- SET_Vertex3s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex3sv) {
- snprintf(symboln, sizeof(symboln), "%sVertex3sv", symbol_prefix);
- SET_Vertex3sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4d) {
- snprintf(symboln, sizeof(symboln), "%sVertex4d", symbol_prefix);
- SET_Vertex4d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4dv) {
- snprintf(symboln, sizeof(symboln), "%sVertex4dv", symbol_prefix);
- SET_Vertex4dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4f) {
- snprintf(symboln, sizeof(symboln), "%sVertex4f", symbol_prefix);
- SET_Vertex4f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4fv) {
- snprintf(symboln, sizeof(symboln), "%sVertex4fv", symbol_prefix);
- SET_Vertex4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4i) {
- snprintf(symboln, sizeof(symboln), "%sVertex4i", symbol_prefix);
- SET_Vertex4i(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4i;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4iv) {
- snprintf(symboln, sizeof(symboln), "%sVertex4iv", symbol_prefix);
- SET_Vertex4iv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4iv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4s) {
- snprintf(symboln, sizeof(symboln), "%sVertex4s", symbol_prefix);
- SET_Vertex4s(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4s;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Vertex4sv) {
- snprintf(symboln, sizeof(symboln), "%sVertex4sv", symbol_prefix);
- SET_Vertex4sv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertex4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4sv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClipPlane) {
- snprintf(symboln, sizeof(symboln), "%sClipPlane", symbol_prefix);
- SET_ClipPlane(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClipPlane", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClipPlane;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorMaterial) {
- snprintf(symboln, sizeof(symboln), "%sColorMaterial", symbol_prefix);
- SET_ColorMaterial(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorMaterial", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaterial;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CullFace) {
- snprintf(symboln, sizeof(symboln), "%sCullFace", symbol_prefix);
- SET_CullFace(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCullFace", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CullFace;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Fogf) {
- snprintf(symboln, sizeof(symboln), "%sFogf", symbol_prefix);
- SET_Fogf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Fogf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Fogfv) {
- snprintf(symboln, sizeof(symboln), "%sFogfv", symbol_prefix);
- SET_Fogfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Fogfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Fogi) {
- snprintf(symboln, sizeof(symboln), "%sFogi", symbol_prefix);
- SET_Fogi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Fogi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Fogiv) {
- snprintf(symboln, sizeof(symboln), "%sFogiv", symbol_prefix);
- SET_Fogiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Fogiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FrontFace) {
- snprintf(symboln, sizeof(symboln), "%sFrontFace", symbol_prefix);
- SET_FrontFace(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFrontFace", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FrontFace;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Hint) {
- snprintf(symboln, sizeof(symboln), "%sHint", symbol_prefix);
- SET_Hint(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sHint", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Hint;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Lightf) {
- snprintf(symboln, sizeof(symboln), "%sLightf", symbol_prefix);
- SET_Lightf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Lightf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Lightfv) {
- snprintf(symboln, sizeof(symboln), "%sLightfv", symbol_prefix);
- SET_Lightfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Lightfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Lighti) {
- snprintf(symboln, sizeof(symboln), "%sLighti", symbol_prefix);
- SET_Lighti(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLighti", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Lighti;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Lightiv) {
- snprintf(symboln, sizeof(symboln), "%sLightiv", symbol_prefix);
- SET_Lightiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Lightiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LightModelf) {
- snprintf(symboln, sizeof(symboln), "%sLightModelf", symbol_prefix);
- SET_LightModelf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightModelf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LightModelf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LightModelfv) {
- snprintf(symboln, sizeof(symboln), "%sLightModelfv", symbol_prefix);
- SET_LightModelfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightModelfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LightModelfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LightModeli) {
- snprintf(symboln, sizeof(symboln), "%sLightModeli", symbol_prefix);
- SET_LightModeli(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightModeli", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LightModeli;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LightModeliv) {
- snprintf(symboln, sizeof(symboln), "%sLightModeliv", symbol_prefix);
- SET_LightModeliv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLightModeliv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LightModeliv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LineStipple) {
- snprintf(symboln, sizeof(symboln), "%sLineStipple", symbol_prefix);
- SET_LineStipple(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLineStipple", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LineStipple;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LineWidth) {
- snprintf(symboln, sizeof(symboln), "%sLineWidth", symbol_prefix);
- SET_LineWidth(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLineWidth", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LineWidth;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Materialf) {
- snprintf(symboln, sizeof(symboln), "%sMaterialf", symbol_prefix);
- SET_Materialf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMaterialf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Materialf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Materialfv) {
- snprintf(symboln, sizeof(symboln), "%sMaterialfv", symbol_prefix);
- SET_Materialfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMaterialfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Materialfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Materiali) {
- snprintf(symboln, sizeof(symboln), "%sMateriali", symbol_prefix);
- SET_Materiali(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMateriali", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Materiali;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Materialiv) {
- snprintf(symboln, sizeof(symboln), "%sMaterialiv", symbol_prefix);
- SET_Materialiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMaterialiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Materialiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointSize) {
- snprintf(symboln, sizeof(symboln), "%sPointSize", symbol_prefix);
- SET_PointSize(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointSize", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointSize;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PolygonMode) {
- snprintf(symboln, sizeof(symboln), "%sPolygonMode", symbol_prefix);
- SET_PolygonMode(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPolygonMode", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PolygonMode;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PolygonStipple) {
- snprintf(symboln, sizeof(symboln), "%sPolygonStipple", symbol_prefix);
- SET_PolygonStipple(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPolygonStipple", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PolygonStipple;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Scissor) {
- snprintf(symboln, sizeof(symboln), "%sScissor", symbol_prefix);
- SET_Scissor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sScissor", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Scissor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ShadeModel) {
- snprintf(symboln, sizeof(symboln), "%sShadeModel", symbol_prefix);
- SET_ShadeModel(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sShadeModel", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ShadeModel;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterf) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterf", symbol_prefix);
- SET_TexParameterf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterfv", symbol_prefix);
- SET_TexParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameteri) {
- snprintf(symboln, sizeof(symboln), "%sTexParameteri", symbol_prefix);
- SET_TexParameteri(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameteri", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameteri;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sTexParameteriv", symbol_prefix);
- SET_TexParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexImage1D) {
- snprintf(symboln, sizeof(symboln), "%sTexImage1D", symbol_prefix);
- SET_TexImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexImage2D) {
- snprintf(symboln, sizeof(symboln), "%sTexImage2D", symbol_prefix);
- SET_TexImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexEnvf) {
- snprintf(symboln, sizeof(symboln), "%sTexEnvf", symbol_prefix);
- SET_TexEnvf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexEnvf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexEnvfv) {
- snprintf(symboln, sizeof(symboln), "%sTexEnvfv", symbol_prefix);
- SET_TexEnvfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexEnvfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexEnvi) {
- snprintf(symboln, sizeof(symboln), "%sTexEnvi", symbol_prefix);
- SET_TexEnvi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexEnvi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexEnviv) {
- snprintf(symboln, sizeof(symboln), "%sTexEnviv", symbol_prefix);
- SET_TexEnviv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexEnviv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexEnviv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGend) {
- snprintf(symboln, sizeof(symboln), "%sTexGend", symbol_prefix);
- SET_TexGend(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGend", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGend;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGendv) {
- snprintf(symboln, sizeof(symboln), "%sTexGendv", symbol_prefix);
- SET_TexGendv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGendv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGendv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGenf) {
- snprintf(symboln, sizeof(symboln), "%sTexGenf", symbol_prefix);
- SET_TexGenf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGenf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGenf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGenfv) {
- snprintf(symboln, sizeof(symboln), "%sTexGenfv", symbol_prefix);
- SET_TexGenfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGenfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGenfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGeni) {
- snprintf(symboln, sizeof(symboln), "%sTexGeni", symbol_prefix);
- SET_TexGeni(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGeni", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGeni;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexGeniv) {
- snprintf(symboln, sizeof(symboln), "%sTexGeniv", symbol_prefix);
- SET_TexGeniv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexGeniv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexGeniv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FeedbackBuffer) {
- snprintf(symboln, sizeof(symboln), "%sFeedbackBuffer", symbol_prefix);
- SET_FeedbackBuffer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFeedbackBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FeedbackBuffer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SelectBuffer) {
- snprintf(symboln, sizeof(symboln), "%sSelectBuffer", symbol_prefix);
- SET_SelectBuffer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSelectBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SelectBuffer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RenderMode) {
- snprintf(symboln, sizeof(symboln), "%sRenderMode", symbol_prefix);
- SET_RenderMode(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRenderMode", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RenderMode;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->InitNames) {
- snprintf(symboln, sizeof(symboln), "%sInitNames", symbol_prefix);
- SET_InitNames(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sInitNames", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->InitNames;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadName) {
- snprintf(symboln, sizeof(symboln), "%sLoadName", symbol_prefix);
- SET_LoadName(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadName", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadName;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PassThrough) {
- snprintf(symboln, sizeof(symboln), "%sPassThrough", symbol_prefix);
- SET_PassThrough(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPassThrough", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PassThrough;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PopName) {
- snprintf(symboln, sizeof(symboln), "%sPopName", symbol_prefix);
- SET_PopName(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPopName", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PopName;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PushName) {
- snprintf(symboln, sizeof(symboln), "%sPushName", symbol_prefix);
- SET_PushName(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPushName", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PushName;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawBuffer) {
- snprintf(symboln, sizeof(symboln), "%sDrawBuffer", symbol_prefix);
- SET_DrawBuffer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Clear) {
- snprintf(symboln, sizeof(symboln), "%sClear", symbol_prefix);
- SET_Clear(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClear", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Clear;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearAccum) {
- snprintf(symboln, sizeof(symboln), "%sClearAccum", symbol_prefix);
- SET_ClearAccum(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearAccum", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearAccum;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearIndex) {
- snprintf(symboln, sizeof(symboln), "%sClearIndex", symbol_prefix);
- SET_ClearIndex(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearIndex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearIndex;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearColor) {
- snprintf(symboln, sizeof(symboln), "%sClearColor", symbol_prefix);
- SET_ClearColor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearColor", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearColor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearStencil) {
- snprintf(symboln, sizeof(symboln), "%sClearStencil", symbol_prefix);
- SET_ClearStencil(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearStencil", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearStencil;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearDepth) {
- snprintf(symboln, sizeof(symboln), "%sClearDepth", symbol_prefix);
- SET_ClearDepth(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearDepth", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearDepth;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilMask) {
- snprintf(symboln, sizeof(symboln), "%sStencilMask", symbol_prefix);
- SET_StencilMask(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilMask", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilMask;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorMask) {
- snprintf(symboln, sizeof(symboln), "%sColorMask", symbol_prefix);
- SET_ColorMask(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorMask", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorMask;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DepthMask) {
- snprintf(symboln, sizeof(symboln), "%sDepthMask", symbol_prefix);
- SET_DepthMask(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDepthMask", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DepthMask;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IndexMask) {
- snprintf(symboln, sizeof(symboln), "%sIndexMask", symbol_prefix);
- SET_IndexMask(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexMask", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IndexMask;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Accum) {
- snprintf(symboln, sizeof(symboln), "%sAccum", symbol_prefix);
- SET_Accum(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAccum", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Accum;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Disable) {
- snprintf(symboln, sizeof(symboln), "%sDisable", symbol_prefix);
- SET_Disable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Disable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Enable) {
- snprintf(symboln, sizeof(symboln), "%sEnable", symbol_prefix);
- SET_Enable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Enable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Finish) {
- snprintf(symboln, sizeof(symboln), "%sFinish", symbol_prefix);
- SET_Finish(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFinish", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Finish;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Flush) {
- snprintf(symboln, sizeof(symboln), "%sFlush", symbol_prefix);
- SET_Flush(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFlush", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Flush;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PopAttrib) {
- snprintf(symboln, sizeof(symboln), "%sPopAttrib", symbol_prefix);
- SET_PopAttrib(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPopAttrib", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PopAttrib;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PushAttrib) {
- snprintf(symboln, sizeof(symboln), "%sPushAttrib", symbol_prefix);
- SET_PushAttrib(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPushAttrib", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PushAttrib;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Map1d) {
- snprintf(symboln, sizeof(symboln), "%sMap1d", symbol_prefix);
- SET_Map1d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMap1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Map1d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Map1f) {
- snprintf(symboln, sizeof(symboln), "%sMap1f", symbol_prefix);
- SET_Map1f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMap1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Map1f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Map2d) {
- snprintf(symboln, sizeof(symboln), "%sMap2d", symbol_prefix);
- SET_Map2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMap2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Map2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Map2f) {
- snprintf(symboln, sizeof(symboln), "%sMap2f", symbol_prefix);
- SET_Map2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMap2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Map2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapGrid1d) {
- snprintf(symboln, sizeof(symboln), "%sMapGrid1d", symbol_prefix);
- SET_MapGrid1d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapGrid1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid1d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapGrid1f) {
- snprintf(symboln, sizeof(symboln), "%sMapGrid1f", symbol_prefix);
- SET_MapGrid1f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapGrid1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid1f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapGrid2d) {
- snprintf(symboln, sizeof(symboln), "%sMapGrid2d", symbol_prefix);
- SET_MapGrid2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapGrid2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapGrid2f) {
- snprintf(symboln, sizeof(symboln), "%sMapGrid2f", symbol_prefix);
- SET_MapGrid2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapGrid2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord1d) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord1d", symbol_prefix);
- SET_EvalCoord1d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord1dv) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord1dv", symbol_prefix);
- SET_EvalCoord1dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord1f) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord1f", symbol_prefix);
- SET_EvalCoord1f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord1fv) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord1fv", symbol_prefix);
- SET_EvalCoord1fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord1fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord2d) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord2d", symbol_prefix);
- SET_EvalCoord2d(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2d;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord2dv) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord2dv", symbol_prefix);
- SET_EvalCoord2dv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2dv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord2f) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord2f", symbol_prefix);
- SET_EvalCoord2f(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2f;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalCoord2fv) {
- snprintf(symboln, sizeof(symboln), "%sEvalCoord2fv", symbol_prefix);
- SET_EvalCoord2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalCoord2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalMesh1) {
- snprintf(symboln, sizeof(symboln), "%sEvalMesh1", symbol_prefix);
- SET_EvalMesh1(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalMesh1", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalMesh1;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalPoint1) {
- snprintf(symboln, sizeof(symboln), "%sEvalPoint1", symbol_prefix);
- SET_EvalPoint1(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalPoint1", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalPoint1;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalMesh2) {
- snprintf(symboln, sizeof(symboln), "%sEvalMesh2", symbol_prefix);
- SET_EvalMesh2(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalMesh2", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalMesh2;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EvalPoint2) {
- snprintf(symboln, sizeof(symboln), "%sEvalPoint2", symbol_prefix);
- SET_EvalPoint2(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEvalPoint2", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EvalPoint2;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AlphaFunc) {
- snprintf(symboln, sizeof(symboln), "%sAlphaFunc", symbol_prefix);
- SET_AlphaFunc(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAlphaFunc", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFunc;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFunc) {
- snprintf(symboln, sizeof(symboln), "%sBlendFunc", symbol_prefix);
- SET_BlendFunc(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFunc", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunc;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LogicOp) {
- snprintf(symboln, sizeof(symboln), "%sLogicOp", symbol_prefix);
- SET_LogicOp(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLogicOp", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LogicOp;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilFunc) {
- snprintf(symboln, sizeof(symboln), "%sStencilFunc", symbol_prefix);
- SET_StencilFunc(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilFunc", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilFunc;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilOp) {
- snprintf(symboln, sizeof(symboln), "%sStencilOp", symbol_prefix);
- SET_StencilOp(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilOp", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilOp;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DepthFunc) {
- snprintf(symboln, sizeof(symboln), "%sDepthFunc", symbol_prefix);
- SET_DepthFunc(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDepthFunc", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DepthFunc;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelZoom) {
- snprintf(symboln, sizeof(symboln), "%sPixelZoom", symbol_prefix);
- SET_PixelZoom(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelZoom", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelZoom;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTransferf) {
- snprintf(symboln, sizeof(symboln), "%sPixelTransferf", symbol_prefix);
- SET_PixelTransferf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTransferf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTransferf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTransferi) {
- snprintf(symboln, sizeof(symboln), "%sPixelTransferi", symbol_prefix);
- SET_PixelTransferi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTransferi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTransferi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelStoref) {
- snprintf(symboln, sizeof(symboln), "%sPixelStoref", symbol_prefix);
- SET_PixelStoref(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelStoref", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelStoref;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelStorei) {
- snprintf(symboln, sizeof(symboln), "%sPixelStorei", symbol_prefix);
- SET_PixelStorei(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelStorei", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelStorei;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelMapfv) {
- snprintf(symboln, sizeof(symboln), "%sPixelMapfv", symbol_prefix);
- SET_PixelMapfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelMapfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelMapuiv) {
- snprintf(symboln, sizeof(symboln), "%sPixelMapuiv", symbol_prefix);
- SET_PixelMapuiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelMapuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapuiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelMapusv) {
- snprintf(symboln, sizeof(symboln), "%sPixelMapusv", symbol_prefix);
- SET_PixelMapusv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelMapusv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapusv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ReadBuffer) {
- snprintf(symboln, sizeof(symboln), "%sReadBuffer", symbol_prefix);
- SET_ReadBuffer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sReadBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ReadBuffer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyPixels) {
- snprintf(symboln, sizeof(symboln), "%sCopyPixels", symbol_prefix);
- SET_CopyPixels(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyPixels", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyPixels;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ReadPixels) {
- snprintf(symboln, sizeof(symboln), "%sReadPixels", symbol_prefix);
- SET_ReadPixels(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sReadPixels", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ReadPixels;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawPixels) {
- snprintf(symboln, sizeof(symboln), "%sDrawPixels", symbol_prefix);
- SET_DrawPixels(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawPixels", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawPixels;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBooleanv) {
- snprintf(symboln, sizeof(symboln), "%sGetBooleanv", symbol_prefix);
- SET_GetBooleanv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBooleanv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetClipPlane) {
- snprintf(symboln, sizeof(symboln), "%sGetClipPlane", symbol_prefix);
- SET_GetClipPlane(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetClipPlane", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetClipPlane;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetDoublev) {
- snprintf(symboln, sizeof(symboln), "%sGetDoublev", symbol_prefix);
- SET_GetDoublev(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetDoublev", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetDoublev;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetError) {
- snprintf(symboln, sizeof(symboln), "%sGetError", symbol_prefix);
- SET_GetError(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetError", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetError;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFloatv) {
- snprintf(symboln, sizeof(symboln), "%sGetFloatv", symbol_prefix);
- SET_GetFloatv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFloatv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFloatv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetIntegerv) {
- snprintf(symboln, sizeof(symboln), "%sGetIntegerv", symbol_prefix);
- SET_GetIntegerv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetIntegerv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetLightfv) {
- snprintf(symboln, sizeof(symboln), "%sGetLightfv", symbol_prefix);
- SET_GetLightfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetLightfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetLightfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetLightiv) {
- snprintf(symboln, sizeof(symboln), "%sGetLightiv", symbol_prefix);
- SET_GetLightiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetLightiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetLightiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMapdv) {
- snprintf(symboln, sizeof(symboln), "%sGetMapdv", symbol_prefix);
- SET_GetMapdv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMapdv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMapdv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMapfv) {
- snprintf(symboln, sizeof(symboln), "%sGetMapfv", symbol_prefix);
- SET_GetMapfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMapfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMapfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMapiv) {
- snprintf(symboln, sizeof(symboln), "%sGetMapiv", symbol_prefix);
- SET_GetMapiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMapiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMapiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMaterialfv) {
- snprintf(symboln, sizeof(symboln), "%sGetMaterialfv", symbol_prefix);
- SET_GetMaterialfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMaterialfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMaterialfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMaterialiv) {
- snprintf(symboln, sizeof(symboln), "%sGetMaterialiv", symbol_prefix);
- SET_GetMaterialiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMaterialiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMaterialiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPixelMapfv) {
- snprintf(symboln, sizeof(symboln), "%sGetPixelMapfv", symbol_prefix);
- SET_GetPixelMapfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPixelMapuiv) {
- snprintf(symboln, sizeof(symboln), "%sGetPixelMapuiv", symbol_prefix);
- SET_GetPixelMapuiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapuiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPixelMapusv) {
- snprintf(symboln, sizeof(symboln), "%sGetPixelMapusv", symbol_prefix);
- SET_GetPixelMapusv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPixelMapusv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapusv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPolygonStipple) {
- snprintf(symboln, sizeof(symboln), "%sGetPolygonStipple", symbol_prefix);
- SET_GetPolygonStipple(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPolygonStipple", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPolygonStipple;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetString) {
- snprintf(symboln, sizeof(symboln), "%sGetString", symbol_prefix);
- SET_GetString(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetString", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetString;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexEnvfv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexEnvfv", symbol_prefix);
- SET_GetTexEnvfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexEnvfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexEnvfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexEnviv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexEnviv", symbol_prefix);
- SET_GetTexEnviv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexEnviv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexEnviv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexGendv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexGendv", symbol_prefix);
- SET_GetTexGendv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexGendv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGendv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexGenfv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexGenfv", symbol_prefix);
- SET_GetTexGenfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexGenfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGenfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexGeniv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexGeniv", symbol_prefix);
- SET_GetTexGeniv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexGeniv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGeniv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexImage) {
- snprintf(symboln, sizeof(symboln), "%sGetTexImage", symbol_prefix);
- SET_GetTexImage(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexImage", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexImage;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterfv", symbol_prefix);
- SET_GetTexParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameteriv", symbol_prefix);
- SET_GetTexParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexLevelParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameterfv", symbol_prefix);
- SET_GetTexLevelParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexLevelParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexLevelParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameteriv", symbol_prefix);
- SET_GetTexLevelParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexLevelParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsEnabled) {
- snprintf(symboln, sizeof(symboln), "%sIsEnabled", symbol_prefix);
- SET_IsEnabled(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsEnabled", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabled;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsList) {
- snprintf(symboln, sizeof(symboln), "%sIsList", symbol_prefix);
- SET_IsList(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsList", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsList;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DepthRange) {
- snprintf(symboln, sizeof(symboln), "%sDepthRange", symbol_prefix);
- SET_DepthRange(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDepthRange", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DepthRange;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Frustum) {
- snprintf(symboln, sizeof(symboln), "%sFrustum", symbol_prefix);
- SET_Frustum(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFrustum", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Frustum;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadIdentity) {
- snprintf(symboln, sizeof(symboln), "%sLoadIdentity", symbol_prefix);
- SET_LoadIdentity(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadIdentity", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadIdentity;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadMatrixf) {
- snprintf(symboln, sizeof(symboln), "%sLoadMatrixf", symbol_prefix);
- SET_LoadMatrixf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadMatrixf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadMatrixf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadMatrixd) {
- snprintf(symboln, sizeof(symboln), "%sLoadMatrixd", symbol_prefix);
- SET_LoadMatrixd(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadMatrixd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadMatrixd;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MatrixMode) {
- snprintf(symboln, sizeof(symboln), "%sMatrixMode", symbol_prefix);
- SET_MatrixMode(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMatrixMode", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MatrixMode;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultMatrixf) {
- snprintf(symboln, sizeof(symboln), "%sMultMatrixf", symbol_prefix);
- SET_MultMatrixf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultMatrixf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultMatrixf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultMatrixd) {
- snprintf(symboln, sizeof(symboln), "%sMultMatrixd", symbol_prefix);
- SET_MultMatrixd(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultMatrixd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultMatrixd;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Ortho) {
- snprintf(symboln, sizeof(symboln), "%sOrtho", symbol_prefix);
- SET_Ortho(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sOrtho", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Ortho;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PopMatrix) {
- snprintf(symboln, sizeof(symboln), "%sPopMatrix", symbol_prefix);
- SET_PopMatrix(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPopMatrix", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PopMatrix;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PushMatrix) {
- snprintf(symboln, sizeof(symboln), "%sPushMatrix", symbol_prefix);
- SET_PushMatrix(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPushMatrix", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PushMatrix;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rotated) {
- snprintf(symboln, sizeof(symboln), "%sRotated", symbol_prefix);
- SET_Rotated(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRotated", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rotated;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Rotatef) {
- snprintf(symboln, sizeof(symboln), "%sRotatef", symbol_prefix);
- SET_Rotatef(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRotatef", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Rotatef;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Scaled) {
- snprintf(symboln, sizeof(symboln), "%sScaled", symbol_prefix);
- SET_Scaled(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sScaled", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Scaled;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Scalef) {
- snprintf(symboln, sizeof(symboln), "%sScalef", symbol_prefix);
- SET_Scalef(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sScalef", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Scalef;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Translated) {
- snprintf(symboln, sizeof(symboln), "%sTranslated", symbol_prefix);
- SET_Translated(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTranslated", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Translated;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Translatef) {
- snprintf(symboln, sizeof(symboln), "%sTranslatef", symbol_prefix);
- SET_Translatef(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTranslatef", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Translatef;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Viewport) {
- snprintf(symboln, sizeof(symboln), "%sViewport", symbol_prefix);
- SET_Viewport(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sViewport", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Viewport;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ArrayElement) {
- snprintf(symboln, sizeof(symboln), "%sArrayElement", symbol_prefix);
- SET_ArrayElement(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sArrayElement", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ArrayElement;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ArrayElement) {
- snprintf(symboln, sizeof(symboln), "%sArrayElementEXT", symbol_prefix);
- SET_ArrayElement(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sArrayElementEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ArrayElement;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindTexture) {
- snprintf(symboln, sizeof(symboln), "%sBindTexture", symbol_prefix);
- SET_BindTexture(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindTexture", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindTexture;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindTexture) {
- snprintf(symboln, sizeof(symboln), "%sBindTextureEXT", symbol_prefix);
- SET_BindTexture(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindTextureEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindTexture;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorPointer) {
- snprintf(symboln, sizeof(symboln), "%sColorPointer", symbol_prefix);
- SET_ColorPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DisableClientState) {
- snprintf(symboln, sizeof(symboln), "%sDisableClientState", symbol_prefix);
- SET_DisableClientState(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisableClientState", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DisableClientState;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawArrays) {
- snprintf(symboln, sizeof(symboln), "%sDrawArrays", symbol_prefix);
- SET_DrawArrays(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawArrays", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawArrays;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawArrays) {
- snprintf(symboln, sizeof(symboln), "%sDrawArraysEXT", symbol_prefix);
- SET_DrawArrays(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawArrays;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElements) {
- snprintf(symboln, sizeof(symboln), "%sDrawElements", symbol_prefix);
- SET_DrawElements(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElements", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElements;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EdgeFlagPointer) {
- snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointer", symbol_prefix);
- SET_EdgeFlagPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EnableClientState) {
- snprintf(symboln, sizeof(symboln), "%sEnableClientState", symbol_prefix);
- SET_EnableClientState(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnableClientState", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EnableClientState;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IndexPointer) {
- snprintf(symboln, sizeof(symboln), "%sIndexPointer", symbol_prefix);
- SET_IndexPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IndexPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexub) {
- snprintf(symboln, sizeof(symboln), "%sIndexub", symbol_prefix);
- SET_Indexub(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexub", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexub;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Indexubv) {
- snprintf(symboln, sizeof(symboln), "%sIndexubv", symbol_prefix);
- SET_Indexubv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Indexubv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->InterleavedArrays) {
- snprintf(symboln, sizeof(symboln), "%sInterleavedArrays", symbol_prefix);
- SET_InterleavedArrays(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sInterleavedArrays", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->InterleavedArrays;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->NormalPointer) {
- snprintf(symboln, sizeof(symboln), "%sNormalPointer", symbol_prefix);
- SET_NormalPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormalPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->NormalPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PolygonOffset) {
- snprintf(symboln, sizeof(symboln), "%sPolygonOffset", symbol_prefix);
- SET_PolygonOffset(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPolygonOffset", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PolygonOffset;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoordPointer) {
- snprintf(symboln, sizeof(symboln), "%sTexCoordPointer", symbol_prefix);
- SET_TexCoordPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoordPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoordPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexPointer) {
- snprintf(symboln, sizeof(symboln), "%sVertexPointer", symbol_prefix);
- SET_VertexPointer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexPointer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AreTexturesResident) {
- snprintf(symboln, sizeof(symboln), "%sAreTexturesResident", symbol_prefix);
- SET_AreTexturesResident(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAreTexturesResident", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AreTexturesResident;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AreTexturesResident) {
- snprintf(symboln, sizeof(symboln), "%sAreTexturesResidentEXT", symbol_prefix);
- SET_AreTexturesResident(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAreTexturesResidentEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AreTexturesResident;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexImage1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexImage1D", symbol_prefix);
- SET_CopyTexImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexImage1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexImage1DEXT", symbol_prefix);
- SET_CopyTexImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexImage2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexImage2D", symbol_prefix);
- SET_CopyTexImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexImage2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexImage2DEXT", symbol_prefix);
- SET_CopyTexImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexImage2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1D", symbol_prefix);
- SET_CopyTexSubImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1DEXT", symbol_prefix);
- SET_CopyTexSubImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2D", symbol_prefix);
- SET_CopyTexSubImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2DEXT", symbol_prefix);
- SET_CopyTexSubImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteTextures) {
- snprintf(symboln, sizeof(symboln), "%sDeleteTextures", symbol_prefix);
- SET_DeleteTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteTextures", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteTextures) {
- snprintf(symboln, sizeof(symboln), "%sDeleteTexturesEXT", symbol_prefix);
- SET_DeleteTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteTexturesEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenTextures) {
- snprintf(symboln, sizeof(symboln), "%sGenTextures", symbol_prefix);
- SET_GenTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenTextures", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenTextures) {
- snprintf(symboln, sizeof(symboln), "%sGenTexturesEXT", symbol_prefix);
- SET_GenTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenTexturesEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPointerv) {
- snprintf(symboln, sizeof(symboln), "%sGetPointerv", symbol_prefix);
- SET_GetPointerv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPointerv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPointerv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPointerv) {
- snprintf(symboln, sizeof(symboln), "%sGetPointervEXT", symbol_prefix);
- SET_GetPointerv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPointervEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPointerv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsTexture) {
- snprintf(symboln, sizeof(symboln), "%sIsTexture", symbol_prefix);
- SET_IsTexture(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsTexture", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsTexture;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsTexture) {
- snprintf(symboln, sizeof(symboln), "%sIsTextureEXT", symbol_prefix);
- SET_IsTexture(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsTextureEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsTexture;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PrioritizeTextures) {
- snprintf(symboln, sizeof(symboln), "%sPrioritizeTextures", symbol_prefix);
- SET_PrioritizeTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPrioritizeTextures", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PrioritizeTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PrioritizeTextures) {
- snprintf(symboln, sizeof(symboln), "%sPrioritizeTexturesEXT", symbol_prefix);
- SET_PrioritizeTextures(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPrioritizeTexturesEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PrioritizeTextures;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage1D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage1D", symbol_prefix);
- SET_TexSubImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage1D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage1DEXT", symbol_prefix);
- SET_TexSubImage1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage2D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage2D", symbol_prefix);
- SET_TexSubImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage2D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage2DEXT", symbol_prefix);
- SET_TexSubImage2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PopClientAttrib) {
- snprintf(symboln, sizeof(symboln), "%sPopClientAttrib", symbol_prefix);
- SET_PopClientAttrib(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPopClientAttrib", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PopClientAttrib;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PushClientAttrib) {
- snprintf(symboln, sizeof(symboln), "%sPushClientAttrib", symbol_prefix);
- SET_PushClientAttrib(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPushClientAttrib", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PushClientAttrib;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendColor) {
- snprintf(symboln, sizeof(symboln), "%sBlendColor", symbol_prefix);
- SET_BlendColor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendColor", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendColor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendColor) {
- snprintf(symboln, sizeof(symboln), "%sBlendColorEXT", symbol_prefix);
- SET_BlendColor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendColorEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendColor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquation) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquation", symbol_prefix);
- SET_BlendEquation(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquation;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquation) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationEXT", symbol_prefix);
- SET_BlendEquation(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquation;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawRangeElements) {
- snprintf(symboln, sizeof(symboln), "%sDrawRangeElements", symbol_prefix);
- SET_DrawRangeElements(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElements", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElements;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawRangeElements) {
- snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsEXT", symbol_prefix);
- SET_DrawRangeElements(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElements;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTable) {
- snprintf(symboln, sizeof(symboln), "%sColorTable", symbol_prefix);
- SET_ColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTable) {
- snprintf(symboln, sizeof(symboln), "%sColorTableSGI", symbol_prefix);
- SET_ColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTable) {
- snprintf(symboln, sizeof(symboln), "%sColorTableEXT", symbol_prefix);
- SET_ColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTableParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sColorTableParameterfv", symbol_prefix);
- SET_ColorTableParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTableParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sColorTableParameterfvSGI", symbol_prefix);
- SET_ColorTableParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterfvSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTableParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sColorTableParameteriv", symbol_prefix);
- SET_ColorTableParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorTableParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sColorTableParameterivSGI", symbol_prefix);
- SET_ColorTableParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorTableParameterivSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyColorTable) {
- snprintf(symboln, sizeof(symboln), "%sCopyColorTable", symbol_prefix);
- SET_CopyColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyColorTable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyColorTable) {
- snprintf(symboln, sizeof(symboln), "%sCopyColorTableSGI", symbol_prefix);
- SET_CopyColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyColorTableSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTable", symbol_prefix);
- SET_GetColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableSGI", symbol_prefix);
- SET_GetColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableEXT", symbol_prefix);
- SET_GetColorTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfv", symbol_prefix);
- SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvSGI", symbol_prefix);
- SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvEXT", symbol_prefix);
- SET_GetColorTableParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameteriv", symbol_prefix);
- SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivSGI", symbol_prefix);
- SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivSGI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivEXT", symbol_prefix);
- SET_GetColorTableParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorSubTable) {
- snprintf(symboln, sizeof(symboln), "%sColorSubTable", symbol_prefix);
- SET_ColorSubTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorSubTable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorSubTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorSubTable) {
- snprintf(symboln, sizeof(symboln), "%sColorSubTableEXT", symbol_prefix);
- SET_ColorSubTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorSubTableEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorSubTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyColorSubTable) {
- snprintf(symboln, sizeof(symboln), "%sCopyColorSubTable", symbol_prefix);
- SET_CopyColorSubTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyColorSubTable", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorSubTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyColorSubTable) {
- snprintf(symboln, sizeof(symboln), "%sCopyColorSubTableEXT", symbol_prefix);
- SET_CopyColorSubTable(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyColorSubTableEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorSubTable;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter1D) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1D", symbol_prefix);
- SET_ConvolutionFilter1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter1D) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1DEXT", symbol_prefix);
- SET_ConvolutionFilter1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2D", symbol_prefix);
- SET_ConvolutionFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2DEXT", symbol_prefix);
- SET_ConvolutionFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterf) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameterf", symbol_prefix);
- SET_ConvolutionParameterf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterf) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfEXT", symbol_prefix);
- SET_ConvolutionParameterf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfv", symbol_prefix);
- SET_ConvolutionParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfvEXT", symbol_prefix);
- SET_ConvolutionParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteri) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameteri", symbol_prefix);
- SET_ConvolutionParameteri(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteri", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteri;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteri) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriEXT", symbol_prefix);
- SET_ConvolutionParameteri(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteri;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriv", symbol_prefix);
- SET_ConvolutionParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sConvolutionParameterivEXT", symbol_prefix);
- SET_ConvolutionParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sConvolutionParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1D", symbol_prefix);
- SET_CopyConvolutionFilter1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter1D) {
- snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1DEXT", symbol_prefix);
- SET_CopyConvolutionFilter1D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter1D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2D", symbol_prefix);
- SET_CopyConvolutionFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2DEXT", symbol_prefix);
- SET_CopyConvolutionFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionFilter) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilter", symbol_prefix);
- SET_GetConvolutionFilter(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilter", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionFilter;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionFilter) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilterEXT", symbol_prefix);
- SET_GetConvolutionFilter(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilterEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionFilter;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfv", symbol_prefix);
- SET_GetConvolutionParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfvEXT", symbol_prefix);
- SET_GetConvolutionParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameteriv", symbol_prefix);
- SET_GetConvolutionParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterivEXT", symbol_prefix);
- SET_GetConvolutionParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSeparableFilter) {
- snprintf(symboln, sizeof(symboln), "%sGetSeparableFilter", symbol_prefix);
- SET_GetSeparableFilter(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSeparableFilter", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSeparableFilter;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSeparableFilter) {
- snprintf(symboln, sizeof(symboln), "%sGetSeparableFilterEXT", symbol_prefix);
- SET_GetSeparableFilter(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSeparableFilterEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSeparableFilter;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SeparableFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sSeparableFilter2D", symbol_prefix);
- SET_SeparableFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSeparableFilter2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SeparableFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SeparableFilter2D) {
- snprintf(symboln, sizeof(symboln), "%sSeparableFilter2DEXT", symbol_prefix);
- SET_SeparableFilter2D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSeparableFilter2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SeparableFilter2D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogram) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogram", symbol_prefix);
- SET_GetHistogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogram) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogramEXT", symbol_prefix);
- SET_GetHistogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogramParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfv", symbol_prefix);
- SET_GetHistogramParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogramParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfvEXT", symbol_prefix);
- SET_GetHistogramParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogramParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogramParameteriv", symbol_prefix);
- SET_GetHistogramParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHistogramParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterivEXT", symbol_prefix);
- SET_GetHistogramParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmax) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmax", symbol_prefix);
- SET_GetMinmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmax", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmax) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmaxEXT", symbol_prefix);
- SET_GetMinmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfv", symbol_prefix);
- SET_GetMinmaxParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfvEXT", symbol_prefix);
- SET_GetMinmaxParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameteriv", symbol_prefix);
- SET_GetMinmaxParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterivEXT", symbol_prefix);
- SET_GetMinmaxParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Histogram) {
- snprintf(symboln, sizeof(symboln), "%sHistogram", symbol_prefix);
- SET_Histogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sHistogram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Histogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Histogram) {
- snprintf(symboln, sizeof(symboln), "%sHistogramEXT", symbol_prefix);
- SET_Histogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sHistogramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Histogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Minmax) {
- snprintf(symboln, sizeof(symboln), "%sMinmax", symbol_prefix);
- SET_Minmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMinmax", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Minmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Minmax) {
- snprintf(symboln, sizeof(symboln), "%sMinmaxEXT", symbol_prefix);
- SET_Minmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMinmaxEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Minmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResetHistogram) {
- snprintf(symboln, sizeof(symboln), "%sResetHistogram", symbol_prefix);
- SET_ResetHistogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResetHistogram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResetHistogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResetHistogram) {
- snprintf(symboln, sizeof(symboln), "%sResetHistogramEXT", symbol_prefix);
- SET_ResetHistogram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResetHistogramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResetHistogram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResetMinmax) {
- snprintf(symboln, sizeof(symboln), "%sResetMinmax", symbol_prefix);
- SET_ResetMinmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResetMinmax", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResetMinmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResetMinmax) {
- snprintf(symboln, sizeof(symboln), "%sResetMinmaxEXT", symbol_prefix);
- SET_ResetMinmax(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResetMinmaxEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResetMinmax;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexImage3D) {
- snprintf(symboln, sizeof(symboln), "%sTexImage3D", symbol_prefix);
- SET_TexImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexImage3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexImage3D) {
- snprintf(symboln, sizeof(symboln), "%sTexImage3DEXT", symbol_prefix);
- SET_TexImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexImage3DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage3D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage3D", symbol_prefix);
- SET_TexSubImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexSubImage3D) {
- snprintf(symboln, sizeof(symboln), "%sTexSubImage3DEXT", symbol_prefix);
- SET_TexSubImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexSubImage3DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage3D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3D", symbol_prefix);
- SET_CopyTexSubImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage3D) {
- snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3DEXT", symbol_prefix);
- SET_CopyTexSubImage3D(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage3D;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ActiveTextureARB) {
- snprintf(symboln, sizeof(symboln), "%sActiveTexture", symbol_prefix);
- SET_ActiveTextureARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sActiveTexture", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ActiveTextureARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ActiveTextureARB) {
- snprintf(symboln, sizeof(symboln), "%sActiveTextureARB", symbol_prefix);
- SET_ActiveTextureARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sActiveTextureARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ActiveTextureARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClientActiveTextureARB) {
- snprintf(symboln, sizeof(symboln), "%sClientActiveTexture", symbol_prefix);
- SET_ClientActiveTextureARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClientActiveTexture", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClientActiveTextureARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClientActiveTextureARB) {
- snprintf(symboln, sizeof(symboln), "%sClientActiveTextureARB", symbol_prefix);
- SET_ClientActiveTextureARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClientActiveTextureARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClientActiveTextureARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1d", symbol_prefix);
- SET_MultiTexCoord1dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dARB", symbol_prefix);
- SET_MultiTexCoord1dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dv", symbol_prefix);
- SET_MultiTexCoord1dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dvARB", symbol_prefix);
- SET_MultiTexCoord1dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1f", symbol_prefix);
- SET_MultiTexCoord1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fARB", symbol_prefix);
- SET_MultiTexCoord1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fv", symbol_prefix);
- SET_MultiTexCoord1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fvARB", symbol_prefix);
- SET_MultiTexCoord1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1i", symbol_prefix);
- SET_MultiTexCoord1iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iARB", symbol_prefix);
- SET_MultiTexCoord1iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iv", symbol_prefix);
- SET_MultiTexCoord1ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1ivARB", symbol_prefix);
- SET_MultiTexCoord1ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1s", symbol_prefix);
- SET_MultiTexCoord1sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sARB", symbol_prefix);
- SET_MultiTexCoord1sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sv", symbol_prefix);
- SET_MultiTexCoord1svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1svARB", symbol_prefix);
- SET_MultiTexCoord1svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2d", symbol_prefix);
- SET_MultiTexCoord2dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dARB", symbol_prefix);
- SET_MultiTexCoord2dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dv", symbol_prefix);
- SET_MultiTexCoord2dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dvARB", symbol_prefix);
- SET_MultiTexCoord2dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2f", symbol_prefix);
- SET_MultiTexCoord2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fARB", symbol_prefix);
- SET_MultiTexCoord2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fv", symbol_prefix);
- SET_MultiTexCoord2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fvARB", symbol_prefix);
- SET_MultiTexCoord2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2i", symbol_prefix);
- SET_MultiTexCoord2iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iARB", symbol_prefix);
- SET_MultiTexCoord2iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iv", symbol_prefix);
- SET_MultiTexCoord2ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2ivARB", symbol_prefix);
- SET_MultiTexCoord2ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2s", symbol_prefix);
- SET_MultiTexCoord2sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sARB", symbol_prefix);
- SET_MultiTexCoord2sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sv", symbol_prefix);
- SET_MultiTexCoord2svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2svARB", symbol_prefix);
- SET_MultiTexCoord2svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3d", symbol_prefix);
- SET_MultiTexCoord3dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dARB", symbol_prefix);
- SET_MultiTexCoord3dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dv", symbol_prefix);
- SET_MultiTexCoord3dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dvARB", symbol_prefix);
- SET_MultiTexCoord3dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3f", symbol_prefix);
- SET_MultiTexCoord3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fARB", symbol_prefix);
- SET_MultiTexCoord3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fv", symbol_prefix);
- SET_MultiTexCoord3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fvARB", symbol_prefix);
- SET_MultiTexCoord3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3i", symbol_prefix);
- SET_MultiTexCoord3iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iARB", symbol_prefix);
- SET_MultiTexCoord3iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iv", symbol_prefix);
- SET_MultiTexCoord3ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3ivARB", symbol_prefix);
- SET_MultiTexCoord3ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3s", symbol_prefix);
- SET_MultiTexCoord3sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sARB", symbol_prefix);
- SET_MultiTexCoord3sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sv", symbol_prefix);
- SET_MultiTexCoord3svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3svARB", symbol_prefix);
- SET_MultiTexCoord3svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4d", symbol_prefix);
- SET_MultiTexCoord4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dARB", symbol_prefix);
- SET_MultiTexCoord4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dv", symbol_prefix);
- SET_MultiTexCoord4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dvARB", symbol_prefix);
- SET_MultiTexCoord4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4f", symbol_prefix);
- SET_MultiTexCoord4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fARB", symbol_prefix);
- SET_MultiTexCoord4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fv", symbol_prefix);
- SET_MultiTexCoord4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fvARB", symbol_prefix);
- SET_MultiTexCoord4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4i", symbol_prefix);
- SET_MultiTexCoord4iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4iARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iARB", symbol_prefix);
- SET_MultiTexCoord4iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iv", symbol_prefix);
- SET_MultiTexCoord4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4ivARB", symbol_prefix);
- SET_MultiTexCoord4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4s", symbol_prefix);
- SET_MultiTexCoord4sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4sARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sARB", symbol_prefix);
- SET_MultiTexCoord4sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sv", symbol_prefix);
- SET_MultiTexCoord4svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4svARB) {
- snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4svARB", symbol_prefix);
- SET_MultiTexCoord4svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AttachShader) {
- snprintf(symboln, sizeof(symboln), "%sAttachShader", symbol_prefix);
- SET_AttachShader(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAttachShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AttachShader;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CreateProgram) {
- snprintf(symboln, sizeof(symboln), "%sCreateProgram", symbol_prefix);
- SET_CreateProgram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCreateProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CreateProgram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CreateShader) {
- snprintf(symboln, sizeof(symboln), "%sCreateShader", symbol_prefix);
- SET_CreateShader(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCreateShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CreateShader;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteProgram) {
- snprintf(symboln, sizeof(symboln), "%sDeleteProgram", symbol_prefix);
- SET_DeleteProgram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteShader) {
- snprintf(symboln, sizeof(symboln), "%sDeleteShader", symbol_prefix);
- SET_DeleteShader(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteShader;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DetachShader) {
- snprintf(symboln, sizeof(symboln), "%sDetachShader", symbol_prefix);
- SET_DetachShader(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDetachShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DetachShader;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetAttachedShaders) {
- snprintf(symboln, sizeof(symboln), "%sGetAttachedShaders", symbol_prefix);
- SET_GetAttachedShaders(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetAttachedShaders", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetAttachedShaders;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramInfoLog) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramInfoLog", symbol_prefix);
- SET_GetProgramInfoLog(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramInfoLog", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramInfoLog;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramiv) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramiv", symbol_prefix);
- SET_GetProgramiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetShaderInfoLog) {
- snprintf(symboln, sizeof(symboln), "%sGetShaderInfoLog", symbol_prefix);
- SET_GetShaderInfoLog(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetShaderInfoLog", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderInfoLog;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetShaderiv) {
- snprintf(symboln, sizeof(symboln), "%sGetShaderiv", symbol_prefix);
- SET_GetShaderiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetShaderiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsProgram) {
- snprintf(symboln, sizeof(symboln), "%sIsProgram", symbol_prefix);
- SET_IsProgram(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsProgram;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsShader) {
- snprintf(symboln, sizeof(symboln), "%sIsShader", symbol_prefix);
- SET_IsShader(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsShader;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilFuncSeparate) {
- snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparate", symbol_prefix);
- SET_StencilFuncSeparate(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparate", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilFuncSeparate;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilMaskSeparate) {
- snprintf(symboln, sizeof(symboln), "%sStencilMaskSeparate", symbol_prefix);
- SET_StencilMaskSeparate(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilMaskSeparate", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilMaskSeparate;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilOpSeparate) {
- snprintf(symboln, sizeof(symboln), "%sStencilOpSeparate", symbol_prefix);
- SET_StencilOpSeparate(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilOpSeparate", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilOpSeparate;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilOpSeparate) {
- snprintf(symboln, sizeof(symboln), "%sStencilOpSeparateATI", symbol_prefix);
- SET_StencilOpSeparate(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilOpSeparateATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilOpSeparate;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix2x3fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x3fv", symbol_prefix);
- SET_UniformMatrix2x3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2x3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix2x4fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x4fv", symbol_prefix);
- SET_UniformMatrix2x4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2x4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix3x2fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x2fv", symbol_prefix);
- SET_UniformMatrix3x2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3x2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix3x4fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x4fv", symbol_prefix);
- SET_UniformMatrix3x4fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3x4fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix4x2fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x2fv", symbol_prefix);
- SET_UniformMatrix4x2fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4x2fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix4x3fv) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x3fv", symbol_prefix);
- SET_UniformMatrix4x3fv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4x3fv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClampColor) {
- snprintf(symboln, sizeof(symboln), "%sClampColor", symbol_prefix);
- SET_ClampColor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClampColor", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClampColor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearBufferfi) {
- snprintf(symboln, sizeof(symboln), "%sClearBufferfi", symbol_prefix);
- SET_ClearBufferfi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearBufferfi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferfi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearBufferfv) {
- snprintf(symboln, sizeof(symboln), "%sClearBufferfv", symbol_prefix);
- SET_ClearBufferfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearBufferfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearBufferiv) {
- snprintf(symboln, sizeof(symboln), "%sClearBufferiv", symbol_prefix);
- SET_ClearBufferiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearBufferiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearBufferuiv) {
- snprintf(symboln, sizeof(symboln), "%sClearBufferuiv", symbol_prefix);
- SET_ClearBufferuiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearBufferuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferuiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetStringi) {
- snprintf(symboln, sizeof(symboln), "%sGetStringi", symbol_prefix);
- SET_GetStringi(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetStringi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetStringi;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexBuffer) {
- snprintf(symboln, sizeof(symboln), "%sTexBuffer", symbol_prefix);
- SET_TexBuffer(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexBuffer;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture", symbol_prefix);
- SET_FramebufferTexture(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferParameteri64v) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferParameteri64v", symbol_prefix);
- SET_GetBufferParameteri64v(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameteri64v", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameteri64v;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetInteger64i_v) {
- snprintf(symboln, sizeof(symboln), "%sGetInteger64i_v", symbol_prefix);
- SET_GetInteger64i_v(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetInteger64i_v", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetInteger64i_v;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribDivisor) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisor", symbol_prefix);
- SET_VertexAttribDivisor(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisor", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribDivisor;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixdARB) {
- snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixd", symbol_prefix);
- SET_LoadTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixdARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixdARB) {
- snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixdARB", symbol_prefix);
- SET_LoadTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixdARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixdARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixfARB) {
- snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixf", symbol_prefix);
- SET_LoadTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixfARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixfARB) {
- snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixfARB", symbol_prefix);
- SET_LoadTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixfARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixfARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixdARB) {
- snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixd", symbol_prefix);
- SET_MultTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixdARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixdARB) {
- snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixdARB", symbol_prefix);
- SET_MultTransposeMatrixdARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixdARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixdARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixfARB) {
- snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixf", symbol_prefix);
- SET_MultTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixfARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixfARB) {
- snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixfARB", symbol_prefix);
- SET_MultTransposeMatrixfARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixfARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixfARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SampleCoverageARB) {
- snprintf(symboln, sizeof(symboln), "%sSampleCoverage", symbol_prefix);
- SET_SampleCoverageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSampleCoverage", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SampleCoverageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SampleCoverageARB) {
- snprintf(symboln, sizeof(symboln), "%sSampleCoverageARB", symbol_prefix);
- SET_SampleCoverageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSampleCoverageARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SampleCoverageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage1DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1D", symbol_prefix);
- SET_CompressedTexImage1DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage1DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage1DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1DARB", symbol_prefix);
- SET_CompressedTexImage1DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage1DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage2DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2D", symbol_prefix);
- SET_CompressedTexImage2DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage2DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage2DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2DARB", symbol_prefix);
- SET_CompressedTexImage2DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage2DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage3DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3D", symbol_prefix);
- SET_CompressedTexImage3DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage3DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexImage3DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3DARB", symbol_prefix);
- SET_CompressedTexImage3DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage3DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage1DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1D", symbol_prefix);
- SET_CompressedTexSubImage1DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage1DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage1DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1DARB", symbol_prefix);
- SET_CompressedTexSubImage1DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage1DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage2DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2D", symbol_prefix);
- SET_CompressedTexSubImage2DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage2DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage2DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2DARB", symbol_prefix);
- SET_CompressedTexSubImage2DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage2DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage3DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3D", symbol_prefix);
- SET_CompressedTexSubImage3DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage3DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage3DARB) {
- snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3DARB", symbol_prefix);
- SET_CompressedTexSubImage3DARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3DARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage3DARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCompressedTexImageARB) {
- snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImage", symbol_prefix);
- SET_GetCompressedTexImageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImage", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCompressedTexImageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCompressedTexImageARB) {
- snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImageARB", symbol_prefix);
- SET_GetCompressedTexImageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImageARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCompressedTexImageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DisableVertexAttribArrayARB) {
- snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArray", symbol_prefix);
- SET_DisableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArray", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DisableVertexAttribArrayARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DisableVertexAttribArrayARB) {
- snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArrayARB", symbol_prefix);
- SET_DisableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArrayARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DisableVertexAttribArrayARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EnableVertexAttribArrayARB) {
- snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArray", symbol_prefix);
- SET_EnableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArray", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EnableVertexAttribArrayARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EnableVertexAttribArrayARB) {
- snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArrayARB", symbol_prefix);
- SET_EnableVertexAttribArrayARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArrayARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EnableVertexAttribArrayARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramEnvParameterdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterdvARB", symbol_prefix);
- SET_GetProgramEnvParameterdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterdvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramEnvParameterdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramEnvParameterfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterfvARB", symbol_prefix);
- SET_GetProgramEnvParameterfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramEnvParameterfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramLocalParameterdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterdvARB", symbol_prefix);
- SET_GetProgramLocalParameterdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterdvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramLocalParameterdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramLocalParameterfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterfvARB", symbol_prefix);
- SET_GetProgramLocalParameterfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramLocalParameterfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramStringARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramStringARB", symbol_prefix);
- SET_GetProgramStringARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramStringARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramStringARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramivARB", symbol_prefix);
- SET_GetProgramivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdv", symbol_prefix);
- SET_GetVertexAttribdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvARB", symbol_prefix);
- SET_GetVertexAttribdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfv", symbol_prefix);
- SET_GetVertexAttribfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvARB", symbol_prefix);
- SET_GetVertexAttribfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribiv", symbol_prefix);
- SET_GetVertexAttribivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivARB", symbol_prefix);
- SET_GetVertexAttribivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dARB", symbol_prefix);
- SET_ProgramEnvParameter4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameter4dNV", symbol_prefix);
- SET_ProgramEnvParameter4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dvARB", symbol_prefix);
- SET_ProgramEnvParameter4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameter4dvNV", symbol_prefix);
- SET_ProgramEnvParameter4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fARB", symbol_prefix);
- SET_ProgramEnvParameter4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameter4fNV", symbol_prefix);
- SET_ProgramEnvParameter4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fvARB", symbol_prefix);
- SET_ProgramEnvParameter4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameter4fvNV", symbol_prefix);
- SET_ProgramEnvParameter4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameter4fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4dARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dARB", symbol_prefix);
- SET_ProgramLocalParameter4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dvARB", symbol_prefix);
- SET_ProgramLocalParameter4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4fARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fARB", symbol_prefix);
- SET_ProgramLocalParameter4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fvARB", symbol_prefix);
- SET_ProgramLocalParameter4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramStringARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramStringARB", symbol_prefix);
- SET_ProgramStringARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramStringARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramStringARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1d", symbol_prefix);
- SET_VertexAttrib1dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dARB", symbol_prefix);
- SET_VertexAttrib1dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dv", symbol_prefix);
- SET_VertexAttrib1dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvARB", symbol_prefix);
- SET_VertexAttrib1dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1f", symbol_prefix);
- SET_VertexAttrib1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fARB", symbol_prefix);
- SET_VertexAttrib1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fv", symbol_prefix);
- SET_VertexAttrib1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvARB", symbol_prefix);
- SET_VertexAttrib1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1s", symbol_prefix);
- SET_VertexAttrib1sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sARB", symbol_prefix);
- SET_VertexAttrib1sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sv", symbol_prefix);
- SET_VertexAttrib1svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svARB", symbol_prefix);
- SET_VertexAttrib1svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2d", symbol_prefix);
- SET_VertexAttrib2dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dARB", symbol_prefix);
- SET_VertexAttrib2dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dv", symbol_prefix);
- SET_VertexAttrib2dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvARB", symbol_prefix);
- SET_VertexAttrib2dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2f", symbol_prefix);
- SET_VertexAttrib2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fARB", symbol_prefix);
- SET_VertexAttrib2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fv", symbol_prefix);
- SET_VertexAttrib2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvARB", symbol_prefix);
- SET_VertexAttrib2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2s", symbol_prefix);
- SET_VertexAttrib2sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sARB", symbol_prefix);
- SET_VertexAttrib2sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sv", symbol_prefix);
- SET_VertexAttrib2svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svARB", symbol_prefix);
- SET_VertexAttrib2svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3d", symbol_prefix);
- SET_VertexAttrib3dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dARB", symbol_prefix);
- SET_VertexAttrib3dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dv", symbol_prefix);
- SET_VertexAttrib3dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvARB", symbol_prefix);
- SET_VertexAttrib3dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3f", symbol_prefix);
- SET_VertexAttrib3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fARB", symbol_prefix);
- SET_VertexAttrib3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fv", symbol_prefix);
- SET_VertexAttrib3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvARB", symbol_prefix);
- SET_VertexAttrib3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3s", symbol_prefix);
- SET_VertexAttrib3sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sARB", symbol_prefix);
- SET_VertexAttrib3sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sv", symbol_prefix);
- SET_VertexAttrib3svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svARB", symbol_prefix);
- SET_VertexAttrib3svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NbvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nbv", symbol_prefix);
- SET_VertexAttrib4NbvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nbv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NbvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NbvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NbvARB", symbol_prefix);
- SET_VertexAttrib4NbvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NbvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NbvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Niv", symbol_prefix);
- SET_VertexAttrib4NivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Niv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NivARB", symbol_prefix);
- SET_VertexAttrib4NivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NsvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nsv", symbol_prefix);
- SET_VertexAttrib4NsvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nsv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NsvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NsvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NsvARB", symbol_prefix);
- SET_VertexAttrib4NsvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NsvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NsvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nub", symbol_prefix);
- SET_VertexAttrib4NubARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nub", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubARB", symbol_prefix);
- SET_VertexAttrib4NubARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nubv", symbol_prefix);
- SET_VertexAttrib4NubvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubvARB", symbol_prefix);
- SET_VertexAttrib4NubvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NuivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nuiv", symbol_prefix);
- SET_VertexAttrib4NuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NuivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NuivARB", symbol_prefix);
- SET_VertexAttrib4NuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NuivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NusvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nusv", symbol_prefix);
- SET_VertexAttrib4NusvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nusv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NusvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NusvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NusvARB", symbol_prefix);
- SET_VertexAttrib4NusvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NusvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NusvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4bvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bv", symbol_prefix);
- SET_VertexAttrib4bvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4bvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4bvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bvARB", symbol_prefix);
- SET_VertexAttrib4bvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4bvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4d", symbol_prefix);
- SET_VertexAttrib4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dARB", symbol_prefix);
- SET_VertexAttrib4dARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dv", symbol_prefix);
- SET_VertexAttrib4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvARB", symbol_prefix);
- SET_VertexAttrib4dvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4f", symbol_prefix);
- SET_VertexAttrib4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fARB", symbol_prefix);
- SET_VertexAttrib4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fv", symbol_prefix);
- SET_VertexAttrib4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvARB", symbol_prefix);
- SET_VertexAttrib4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4iv", symbol_prefix);
- SET_VertexAttrib4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ivARB", symbol_prefix);
- SET_VertexAttrib4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4s", symbol_prefix);
- SET_VertexAttrib4sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sARB", symbol_prefix);
- SET_VertexAttrib4sARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sv", symbol_prefix);
- SET_VertexAttrib4svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svARB", symbol_prefix);
- SET_VertexAttrib4svARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubv", symbol_prefix);
- SET_VertexAttrib4ubvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvARB", symbol_prefix);
- SET_VertexAttrib4ubvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4uivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uiv", symbol_prefix);
- SET_VertexAttrib4uivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4uivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4uivARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uivARB", symbol_prefix);
- SET_VertexAttrib4uivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4uivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4usvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usv", symbol_prefix);
- SET_VertexAttrib4usvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4usvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4usvARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usvARB", symbol_prefix);
- SET_VertexAttrib4usvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4usvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribPointer", symbol_prefix);
- SET_VertexAttribPointerARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerARB", symbol_prefix);
- SET_VertexAttribPointerARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sBindBuffer", symbol_prefix);
- SET_BindBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferARB", symbol_prefix);
- SET_BindBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BufferDataARB) {
- snprintf(symboln, sizeof(symboln), "%sBufferData", symbol_prefix);
- SET_BufferDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBufferData", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BufferDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BufferDataARB) {
- snprintf(symboln, sizeof(symboln), "%sBufferDataARB", symbol_prefix);
- SET_BufferDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBufferDataARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BufferDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BufferSubDataARB) {
- snprintf(symboln, sizeof(symboln), "%sBufferSubData", symbol_prefix);
- SET_BufferSubDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBufferSubData", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BufferSubDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BufferSubDataARB) {
- snprintf(symboln, sizeof(symboln), "%sBufferSubDataARB", symbol_prefix);
- SET_BufferSubDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBufferSubDataARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BufferSubDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sDeleteBuffers", symbol_prefix);
- SET_DeleteBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteBuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sDeleteBuffersARB", symbol_prefix);
- SET_DeleteBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteBuffersARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sGenBuffers", symbol_prefix);
- SET_GenBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenBuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sGenBuffersARB", symbol_prefix);
- SET_GenBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenBuffersARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferParameterivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferParameteriv", symbol_prefix);
- SET_GetBufferParameterivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameterivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferParameterivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferParameterivARB", symbol_prefix);
- SET_GetBufferParameterivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferParameterivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameterivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferPointervARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferPointerv", symbol_prefix);
- SET_GetBufferPointervARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferPointerv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferPointervARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferPointervARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferPointervARB", symbol_prefix);
- SET_GetBufferPointervARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferPointervARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferPointervARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferSubDataARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferSubData", symbol_prefix);
- SET_GetBufferSubDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferSubData", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferSubDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBufferSubDataARB) {
- snprintf(symboln, sizeof(symboln), "%sGetBufferSubDataARB", symbol_prefix);
- SET_GetBufferSubDataARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBufferSubDataARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferSubDataARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sIsBuffer", symbol_prefix);
- SET_IsBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sIsBufferARB", symbol_prefix);
- SET_IsBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsBufferARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sMapBuffer", symbol_prefix);
- SET_MapBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sMapBufferARB", symbol_prefix);
- SET_MapBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapBufferARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UnmapBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sUnmapBuffer", symbol_prefix);
- SET_UnmapBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUnmapBuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UnmapBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UnmapBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sUnmapBufferARB", symbol_prefix);
- SET_UnmapBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUnmapBufferARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UnmapBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sBeginQuery", symbol_prefix);
- SET_BeginQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginQuery", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sBeginQueryARB", symbol_prefix);
- SET_BeginQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginQueryARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteQueriesARB) {
- snprintf(symboln, sizeof(symboln), "%sDeleteQueries", symbol_prefix);
- SET_DeleteQueriesARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteQueries", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteQueriesARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteQueriesARB) {
- snprintf(symboln, sizeof(symboln), "%sDeleteQueriesARB", symbol_prefix);
- SET_DeleteQueriesARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteQueriesARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteQueriesARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sEndQuery", symbol_prefix);
- SET_EndQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndQuery", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sEndQueryARB", symbol_prefix);
- SET_EndQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndQueryARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenQueriesARB) {
- snprintf(symboln, sizeof(symboln), "%sGenQueries", symbol_prefix);
- SET_GenQueriesARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenQueries", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenQueriesARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenQueriesARB) {
- snprintf(symboln, sizeof(symboln), "%sGenQueriesARB", symbol_prefix);
- SET_GenQueriesARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenQueriesARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenQueriesARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjectivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjectiv", symbol_prefix);
- SET_GetQueryObjectivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjectivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjectivARB", symbol_prefix);
- SET_GetQueryObjectivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjectuivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuiv", symbol_prefix);
- SET_GetQueryObjectuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjectuivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuivARB", symbol_prefix);
- SET_GetQueryObjectuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryiv", symbol_prefix);
- SET_GetQueryivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryivARB", symbol_prefix);
- SET_GetQueryivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sIsQuery", symbol_prefix);
- SET_IsQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsQuery", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsQueryARB) {
- snprintf(symboln, sizeof(symboln), "%sIsQueryARB", symbol_prefix);
- SET_IsQueryARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsQueryARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsQueryARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AttachObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sAttachObjectARB", symbol_prefix);
- SET_AttachObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAttachObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AttachObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompileShaderARB) {
- snprintf(symboln, sizeof(symboln), "%sCompileShader", symbol_prefix);
- SET_CompileShaderARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompileShader", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompileShaderARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CompileShaderARB) {
- snprintf(symboln, sizeof(symboln), "%sCompileShaderARB", symbol_prefix);
- SET_CompileShaderARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCompileShaderARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CompileShaderARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CreateProgramObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sCreateProgramObjectARB", symbol_prefix);
- SET_CreateProgramObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCreateProgramObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CreateProgramObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CreateShaderObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sCreateShaderObjectARB", symbol_prefix);
- SET_CreateShaderObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCreateShaderObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CreateShaderObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sDeleteObjectARB", symbol_prefix);
- SET_DeleteObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DetachObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sDetachObjectARB", symbol_prefix);
- SET_DetachObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDetachObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DetachObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetActiveUniformARB) {
- snprintf(symboln, sizeof(symboln), "%sGetActiveUniform", symbol_prefix);
- SET_GetActiveUniformARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetActiveUniform", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveUniformARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetActiveUniformARB) {
- snprintf(symboln, sizeof(symboln), "%sGetActiveUniformARB", symbol_prefix);
- SET_GetActiveUniformARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetActiveUniformARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveUniformARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetAttachedObjectsARB) {
- snprintf(symboln, sizeof(symboln), "%sGetAttachedObjectsARB", symbol_prefix);
- SET_GetAttachedObjectsARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetAttachedObjectsARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetAttachedObjectsARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetHandleARB) {
- snprintf(symboln, sizeof(symboln), "%sGetHandleARB", symbol_prefix);
- SET_GetHandleARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetHandleARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetHandleARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetInfoLogARB) {
- snprintf(symboln, sizeof(symboln), "%sGetInfoLogARB", symbol_prefix);
- SET_GetInfoLogARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetInfoLogARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetInfoLogARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetObjectParameterfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetObjectParameterfvARB", symbol_prefix);
- SET_GetObjectParameterfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetObjectParameterivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivARB", symbol_prefix);
- SET_GetObjectParameterivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetShaderSourceARB) {
- snprintf(symboln, sizeof(symboln), "%sGetShaderSource", symbol_prefix);
- SET_GetShaderSourceARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetShaderSource", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderSourceARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetShaderSourceARB) {
- snprintf(symboln, sizeof(symboln), "%sGetShaderSourceARB", symbol_prefix);
- SET_GetShaderSourceARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetShaderSourceARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderSourceARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformLocation", symbol_prefix);
- SET_GetUniformLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformLocation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformLocationARB", symbol_prefix);
- SET_GetUniformLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformLocationARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformfv", symbol_prefix);
- SET_GetUniformfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformfvARB", symbol_prefix);
- SET_GetUniformfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformiv", symbol_prefix);
- SET_GetUniformivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformivARB", symbol_prefix);
- SET_GetUniformivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LinkProgramARB) {
- snprintf(symboln, sizeof(symboln), "%sLinkProgram", symbol_prefix);
- SET_LinkProgramARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLinkProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LinkProgramARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LinkProgramARB) {
- snprintf(symboln, sizeof(symboln), "%sLinkProgramARB", symbol_prefix);
- SET_LinkProgramARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLinkProgramARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LinkProgramARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ShaderSourceARB) {
- snprintf(symboln, sizeof(symboln), "%sShaderSource", symbol_prefix);
- SET_ShaderSourceARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sShaderSource", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ShaderSourceARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ShaderSourceARB) {
- snprintf(symboln, sizeof(symboln), "%sShaderSourceARB", symbol_prefix);
- SET_ShaderSourceARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sShaderSourceARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ShaderSourceARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1f", symbol_prefix);
- SET_Uniform1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1fARB", symbol_prefix);
- SET_Uniform1fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1fv", symbol_prefix);
- SET_Uniform1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1fvARB", symbol_prefix);
- SET_Uniform1fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1i", symbol_prefix);
- SET_Uniform1iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1iARB", symbol_prefix);
- SET_Uniform1iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1iv", symbol_prefix);
- SET_Uniform1ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform1ivARB", symbol_prefix);
- SET_Uniform1ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2f", symbol_prefix);
- SET_Uniform2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2fARB", symbol_prefix);
- SET_Uniform2fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2fv", symbol_prefix);
- SET_Uniform2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2fvARB", symbol_prefix);
- SET_Uniform2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2i", symbol_prefix);
- SET_Uniform2iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2iARB", symbol_prefix);
- SET_Uniform2iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2iv", symbol_prefix);
- SET_Uniform2ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform2ivARB", symbol_prefix);
- SET_Uniform2ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3f", symbol_prefix);
- SET_Uniform3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3fARB", symbol_prefix);
- SET_Uniform3fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3fv", symbol_prefix);
- SET_Uniform3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3fvARB", symbol_prefix);
- SET_Uniform3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3i", symbol_prefix);
- SET_Uniform3iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3iARB", symbol_prefix);
- SET_Uniform3iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3iv", symbol_prefix);
- SET_Uniform3ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform3ivARB", symbol_prefix);
- SET_Uniform3ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4f", symbol_prefix);
- SET_Uniform4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4fARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4fARB", symbol_prefix);
- SET_Uniform4fARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4fv", symbol_prefix);
- SET_Uniform4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4fvARB", symbol_prefix);
- SET_Uniform4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4i", symbol_prefix);
- SET_Uniform4iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4iARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4iARB", symbol_prefix);
- SET_Uniform4iARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4iARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4iv", symbol_prefix);
- SET_Uniform4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4ivARB) {
- snprintf(symboln, sizeof(symboln), "%sUniform4ivARB", symbol_prefix);
- SET_Uniform4ivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4ivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fv", symbol_prefix);
- SET_UniformMatrix2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix2fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fvARB", symbol_prefix);
- SET_UniformMatrix2fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fv", symbol_prefix);
- SET_UniformMatrix3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix3fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fvARB", symbol_prefix);
- SET_UniformMatrix3fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fv", symbol_prefix);
- SET_UniformMatrix4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UniformMatrix4fvARB) {
- snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fvARB", symbol_prefix);
- SET_UniformMatrix4fvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4fvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UseProgramObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sUseProgram", symbol_prefix);
- SET_UseProgramObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUseProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UseProgramObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UseProgramObjectARB) {
- snprintf(symboln, sizeof(symboln), "%sUseProgramObjectARB", symbol_prefix);
- SET_UseProgramObjectARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUseProgramObjectARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UseProgramObjectARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ValidateProgramARB) {
- snprintf(symboln, sizeof(symboln), "%sValidateProgram", symbol_prefix);
- SET_ValidateProgramARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sValidateProgram", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ValidateProgramARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ValidateProgramARB) {
- snprintf(symboln, sizeof(symboln), "%sValidateProgramARB", symbol_prefix);
- SET_ValidateProgramARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sValidateProgramARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ValidateProgramARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindAttribLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sBindAttribLocation", symbol_prefix);
- SET_BindAttribLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindAttribLocation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindAttribLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindAttribLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sBindAttribLocationARB", symbol_prefix);
- SET_BindAttribLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindAttribLocationARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindAttribLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetActiveAttribARB) {
- snprintf(symboln, sizeof(symboln), "%sGetActiveAttrib", symbol_prefix);
- SET_GetActiveAttribARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetActiveAttrib", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveAttribARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetActiveAttribARB) {
- snprintf(symboln, sizeof(symboln), "%sGetActiveAttribARB", symbol_prefix);
- SET_GetActiveAttribARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetActiveAttribARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveAttribARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetAttribLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sGetAttribLocation", symbol_prefix);
- SET_GetAttribLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetAttribLocation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetAttribLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetAttribLocationARB) {
- snprintf(symboln, sizeof(symboln), "%sGetAttribLocationARB", symbol_prefix);
- SET_GetAttribLocationARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetAttribLocationARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetAttribLocationARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawBuffers", symbol_prefix);
- SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawBuffersARB", symbol_prefix);
- SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffersARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawBuffersATI", symbol_prefix);
- SET_DrawBuffersARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawBuffersATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClampColorARB) {
- snprintf(symboln, sizeof(symboln), "%sClampColorARB", symbol_prefix);
- SET_ClampColorARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClampColorARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClampColorARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedARB", symbol_prefix);
- SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedEXT", symbol_prefix);
- SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawArraysInstanced", symbol_prefix);
- SET_DrawArraysInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawArraysInstanced", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedARB", symbol_prefix);
- SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedEXT", symbol_prefix);
- SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
- snprintf(symboln, sizeof(symboln), "%sDrawElementsInstanced", symbol_prefix);
- SET_DrawElementsInstancedARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstanced", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageMultisample) {
- snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisample", symbol_prefix);
- SET_RenderbufferStorageMultisample(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisample", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageMultisample;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageMultisample) {
- snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisampleEXT", symbol_prefix);
- SET_RenderbufferStorageMultisample(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisampleEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageMultisample;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTextureARB) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTextureARB", symbol_prefix);
- SET_FramebufferTextureARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTextureFaceARB) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTextureFaceARB", symbol_prefix);
- SET_FramebufferTextureFaceARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureFaceARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureFaceARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramParameteriARB) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameteriARB", symbol_prefix);
- SET_ProgramParameteriARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameteriARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameteriARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribDivisorARB) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisorARB", symbol_prefix);
- SET_VertexAttribDivisorARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisorARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribDivisorARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FlushMappedBufferRange) {
- snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRange", symbol_prefix);
- SET_FlushMappedBufferRange(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRange", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FlushMappedBufferRange;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MapBufferRange) {
- snprintf(symboln, sizeof(symboln), "%sMapBufferRange", symbol_prefix);
- SET_MapBufferRange(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMapBufferRange", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferRange;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexBufferARB) {
- snprintf(symboln, sizeof(symboln), "%sTexBufferARB", symbol_prefix);
- SET_TexBufferARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexBufferARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexBufferARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindVertexArray) {
- snprintf(symboln, sizeof(symboln), "%sBindVertexArray", symbol_prefix);
- SET_BindVertexArray(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindVertexArray", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindVertexArray;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenVertexArrays) {
- snprintf(symboln, sizeof(symboln), "%sGenVertexArrays", symbol_prefix);
- SET_GenVertexArrays(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenVertexArrays", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenVertexArrays;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CopyBufferSubData) {
- snprintf(symboln, sizeof(symboln), "%sCopyBufferSubData", symbol_prefix);
- SET_CopyBufferSubData(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCopyBufferSubData", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CopyBufferSubData;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClientWaitSync) {
- snprintf(symboln, sizeof(symboln), "%sClientWaitSync", symbol_prefix);
- SET_ClientWaitSync(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClientWaitSync", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClientWaitSync;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteSync) {
- snprintf(symboln, sizeof(symboln), "%sDeleteSync", symbol_prefix);
- SET_DeleteSync(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteSync", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteSync;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FenceSync) {
- snprintf(symboln, sizeof(symboln), "%sFenceSync", symbol_prefix);
- SET_FenceSync(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFenceSync", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FenceSync;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetInteger64v) {
- snprintf(symboln, sizeof(symboln), "%sGetInteger64v", symbol_prefix);
- SET_GetInteger64v(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetInteger64v", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetInteger64v;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSynciv) {
- snprintf(symboln, sizeof(symboln), "%sGetSynciv", symbol_prefix);
- SET_GetSynciv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSynciv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSynciv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsSync) {
- snprintf(symboln, sizeof(symboln), "%sIsSync", symbol_prefix);
- SET_IsSync(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsSync", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsSync;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WaitSync) {
- snprintf(symboln, sizeof(symboln), "%sWaitSync", symbol_prefix);
- SET_WaitSync(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWaitSync", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WaitSync;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElementsBaseVertex) {
- snprintf(symboln, sizeof(symboln), "%sDrawElementsBaseVertex", symbol_prefix);
- SET_DrawElementsBaseVertex(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsBaseVertex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsBaseVertex;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedBaseVertex) {
- snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedBaseVertex", symbol_prefix);
- SET_DrawElementsInstancedBaseVertex(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedBaseVertex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedBaseVertex;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawRangeElementsBaseVertex) {
- snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsBaseVertex", symbol_prefix);
- SET_DrawRangeElementsBaseVertex(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsBaseVertex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElementsBaseVertex;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsBaseVertex) {
- snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsBaseVertex", symbol_prefix);
- SET_MultiDrawElementsBaseVertex(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsBaseVertex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsBaseVertex;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateiARB", symbol_prefix);
- SET_BlendEquationSeparateiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateiARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateIndexedAMD", symbol_prefix);
- SET_BlendEquationSeparateiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateIndexedAMD", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationiARB", symbol_prefix);
- SET_BlendEquationiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationiARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationIndexedAMD", symbol_prefix);
- SET_BlendEquationiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationIndexedAMD", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateiARB", symbol_prefix);
- SET_BlendFuncSeparateiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateiARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateiARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateIndexedAMD", symbol_prefix);
- SET_BlendFuncSeparateiARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateIndexedAMD", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateiARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFunciARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendFunciARB", symbol_prefix);
- SET_BlendFunciARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFunciARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunciARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFunciARB) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncIndexedAMD", symbol_prefix);
- SET_BlendFunciARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncIndexedAMD", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunciARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindSampler) {
- snprintf(symboln, sizeof(symboln), "%sBindSampler", symbol_prefix);
- SET_BindSampler(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindSampler", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindSampler;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteSamplers) {
- snprintf(symboln, sizeof(symboln), "%sDeleteSamplers", symbol_prefix);
- SET_DeleteSamplers(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteSamplers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteSamplers;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenSamplers) {
- snprintf(symboln, sizeof(symboln), "%sGenSamplers", symbol_prefix);
- SET_GenSamplers(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenSamplers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenSamplers;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterIiv) {
- snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIiv", symbol_prefix);
- SET_GetSamplerParameterIiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterIiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterIuiv) {
- snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIuiv", symbol_prefix);
- SET_GetSamplerParameterIuiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterIuiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterfv", symbol_prefix);
- SET_GetSamplerParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetSamplerParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sGetSamplerParameteriv", symbol_prefix);
- SET_GetSamplerParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetSamplerParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsSampler) {
- snprintf(symboln, sizeof(symboln), "%sIsSampler", symbol_prefix);
- SET_IsSampler(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsSampler", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsSampler;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameterIiv) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameterIiv", symbol_prefix);
- SET_SamplerParameterIiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterIiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterIiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameterIuiv) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameterIuiv", symbol_prefix);
- SET_SamplerParameterIuiv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterIuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterIuiv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameterf) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameterf", symbol_prefix);
- SET_SamplerParameterf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameterfv) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameterfv", symbol_prefix);
- SET_SamplerParameterfv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterfv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameteri) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameteri", symbol_prefix);
- SET_SamplerParameteri(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameteri", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameteri;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplerParameteriv) {
- snprintf(symboln, sizeof(symboln), "%sSamplerParameteriv", symbol_prefix);
- SET_SamplerParameteriv(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplerParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameteriv;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindTransformFeedback) {
- snprintf(symboln, sizeof(symboln), "%sBindTransformFeedback", symbol_prefix);
- SET_BindTransformFeedback(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindTransformFeedback;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteTransformFeedbacks) {
- snprintf(symboln, sizeof(symboln), "%sDeleteTransformFeedbacks", symbol_prefix);
- SET_DeleteTransformFeedbacks(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteTransformFeedbacks", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTransformFeedbacks;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DrawTransformFeedback) {
- snprintf(symboln, sizeof(symboln), "%sDrawTransformFeedback", symbol_prefix);
- SET_DrawTransformFeedback(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDrawTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DrawTransformFeedback;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenTransformFeedbacks) {
- snprintf(symboln, sizeof(symboln), "%sGenTransformFeedbacks", symbol_prefix);
- SET_GenTransformFeedbacks(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenTransformFeedbacks", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenTransformFeedbacks;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsTransformFeedback) {
- snprintf(symboln, sizeof(symboln), "%sIsTransformFeedback", symbol_prefix);
- SET_IsTransformFeedback(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsTransformFeedback;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PauseTransformFeedback) {
- snprintf(symboln, sizeof(symboln), "%sPauseTransformFeedback", symbol_prefix);
- SET_PauseTransformFeedback(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPauseTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PauseTransformFeedback;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResumeTransformFeedback) {
- snprintf(symboln, sizeof(symboln), "%sResumeTransformFeedback", symbol_prefix);
- SET_ResumeTransformFeedback(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResumeTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResumeTransformFeedback;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearDepthf) {
- snprintf(symboln, sizeof(symboln), "%sClearDepthf", symbol_prefix);
- SET_ClearDepthf(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearDepthf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearDepthf;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DepthRangef) {
- snprintf(symboln, sizeof(symboln), "%sDepthRangef", symbol_prefix);
- SET_DepthRangef(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDepthRangef", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DepthRangef;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetShaderPrecisionFormat) {
- snprintf(symboln, sizeof(symboln), "%sGetShaderPrecisionFormat", symbol_prefix);
- SET_GetShaderPrecisionFormat(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetShaderPrecisionFormat", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderPrecisionFormat;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ReleaseShaderCompiler) {
- snprintf(symboln, sizeof(symboln), "%sReleaseShaderCompiler", symbol_prefix);
- SET_ReleaseShaderCompiler(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sReleaseShaderCompiler", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ReleaseShaderCompiler;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ShaderBinary) {
- snprintf(symboln, sizeof(symboln), "%sShaderBinary", symbol_prefix);
- SET_ShaderBinary(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sShaderBinary", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ShaderBinary;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetGraphicsResetStatusARB) {
- snprintf(symboln, sizeof(symboln), "%sGetGraphicsResetStatusARB", symbol_prefix);
- SET_GetGraphicsResetStatusARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetGraphicsResetStatusARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetGraphicsResetStatusARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnColorTableARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnColorTableARB", symbol_prefix);
- SET_GetnColorTableARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnColorTableARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnColorTableARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnCompressedTexImageARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnCompressedTexImageARB", symbol_prefix);
- SET_GetnCompressedTexImageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnCompressedTexImageARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnCompressedTexImageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnConvolutionFilterARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnConvolutionFilterARB", symbol_prefix);
- SET_GetnConvolutionFilterARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnConvolutionFilterARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnConvolutionFilterARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnHistogramARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnHistogramARB", symbol_prefix);
- SET_GetnHistogramARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnHistogramARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnHistogramARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnMapdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnMapdvARB", symbol_prefix);
- SET_GetnMapdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnMapdvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnMapfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnMapfvARB", symbol_prefix);
- SET_GetnMapfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnMapfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnMapivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnMapivARB", symbol_prefix);
- SET_GetnMapivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnMapivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnMinmaxARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnMinmaxARB", symbol_prefix);
- SET_GetnMinmaxARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnMinmaxARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnMinmaxARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnPixelMapfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnPixelMapfvARB", symbol_prefix);
- SET_GetnPixelMapfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnPixelMapuivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnPixelMapuivARB", symbol_prefix);
- SET_GetnPixelMapuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapuivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnPixelMapusvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnPixelMapusvARB", symbol_prefix);
- SET_GetnPixelMapusvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnPixelMapusvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapusvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnPolygonStippleARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnPolygonStippleARB", symbol_prefix);
- SET_GetnPolygonStippleARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnPolygonStippleARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnPolygonStippleARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnSeparableFilterARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnSeparableFilterARB", symbol_prefix);
- SET_GetnSeparableFilterARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnSeparableFilterARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnSeparableFilterARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnTexImageARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnTexImageARB", symbol_prefix);
- SET_GetnTexImageARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnTexImageARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnTexImageARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnUniformdvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnUniformdvARB", symbol_prefix);
- SET_GetnUniformdvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformdvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformdvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnUniformfvARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnUniformfvARB", symbol_prefix);
- SET_GetnUniformfvARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformfvARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnUniformivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnUniformivARB", symbol_prefix);
- SET_GetnUniformivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetnUniformuivARB) {
- snprintf(symboln, sizeof(symboln), "%sGetnUniformuivARB", symbol_prefix);
- SET_GetnUniformuivARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetnUniformuivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformuivARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ReadnPixelsARB) {
- snprintf(symboln, sizeof(symboln), "%sReadnPixelsARB", symbol_prefix);
- SET_ReadnPixelsARB(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sReadnPixelsARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ReadnPixelsARB;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PolygonOffsetEXT) {
- snprintf(symboln, sizeof(symboln), "%sPolygonOffsetEXT", symbol_prefix);
- SET_PolygonOffsetEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPolygonOffsetEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PolygonOffsetEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPixelTexGenParameterfvSGIS) {
- snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterfvSGIS", symbol_prefix);
- SET_GetPixelTexGenParameterfvSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterfvSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelTexGenParameterfvSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetPixelTexGenParameterivSGIS) {
- snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterivSGIS", symbol_prefix);
- SET_GetPixelTexGenParameterivSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterivSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelTexGenParameterivSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterfSGIS) {
- snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfSGIS", symbol_prefix);
- SET_PixelTexGenParameterfSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterfSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterfvSGIS) {
- snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfvSGIS", symbol_prefix);
- SET_PixelTexGenParameterfvSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfvSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterfvSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameteriSGIS) {
- snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameteriSGIS", symbol_prefix);
- SET_PixelTexGenParameteriSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameteriSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameteriSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterivSGIS) {
- snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterivSGIS", symbol_prefix);
- SET_PixelTexGenParameterivSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterivSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterivSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SampleMaskSGIS) {
- snprintf(symboln, sizeof(symboln), "%sSampleMaskSGIS", symbol_prefix);
- SET_SampleMaskSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSampleMaskSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SampleMaskSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SampleMaskSGIS) {
- snprintf(symboln, sizeof(symboln), "%sSampleMaskEXT", symbol_prefix);
- SET_SampleMaskSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSampleMaskEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SampleMaskSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplePatternSGIS) {
- snprintf(symboln, sizeof(symboln), "%sSamplePatternSGIS", symbol_prefix);
- SET_SamplePatternSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplePatternSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplePatternSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SamplePatternSGIS) {
- snprintf(symboln, sizeof(symboln), "%sSamplePatternEXT", symbol_prefix);
- SET_SamplePatternSGIS(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSamplePatternEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SamplePatternSGIS;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sColorPointerEXT", symbol_prefix);
- SET_ColorPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EdgeFlagPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointerEXT", symbol_prefix);
- SET_EdgeFlagPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IndexPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sIndexPointerEXT", symbol_prefix);
- SET_IndexPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIndexPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IndexPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->NormalPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sNormalPointerEXT", symbol_prefix);
- SET_NormalPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sNormalPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->NormalPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexCoordPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sTexCoordPointerEXT", symbol_prefix);
- SET_TexCoordPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexCoordPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexCoordPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexPointerEXT", symbol_prefix);
- SET_VertexPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterf", symbol_prefix);
- SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfARB", symbol_prefix);
- SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfEXT", symbol_prefix);
- SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfSGIS", symbol_prefix);
- SET_PointParameterfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfv", symbol_prefix);
- SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfvARB", symbol_prefix);
- SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfvEXT", symbol_prefix);
- SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterfvSGIS", symbol_prefix);
- SET_PointParameterfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterfvSGIS", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LockArraysEXT) {
- snprintf(symboln, sizeof(symboln), "%sLockArraysEXT", symbol_prefix);
- SET_LockArraysEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLockArraysEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LockArraysEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UnlockArraysEXT) {
- snprintf(symboln, sizeof(symboln), "%sUnlockArraysEXT", symbol_prefix);
- SET_UnlockArraysEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUnlockArraysEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UnlockArraysEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3b", symbol_prefix);
- SET_SecondaryColor3bEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3b", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bEXT", symbol_prefix);
- SET_SecondaryColor3bEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bv", symbol_prefix);
- SET_SecondaryColor3bvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bvEXT", symbol_prefix);
- SET_SecondaryColor3bvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3d", symbol_prefix);
- SET_SecondaryColor3dEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dEXT", symbol_prefix);
- SET_SecondaryColor3dEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dv", symbol_prefix);
- SET_SecondaryColor3dvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dvEXT", symbol_prefix);
- SET_SecondaryColor3dvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3f", symbol_prefix);
- SET_SecondaryColor3fEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fEXT", symbol_prefix);
- SET_SecondaryColor3fEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fv", symbol_prefix);
- SET_SecondaryColor3fvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fvEXT", symbol_prefix);
- SET_SecondaryColor3fvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3iEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3i", symbol_prefix);
- SET_SecondaryColor3iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3iEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iEXT", symbol_prefix);
- SET_SecondaryColor3iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iv", symbol_prefix);
- SET_SecondaryColor3ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ivEXT", symbol_prefix);
- SET_SecondaryColor3ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3sEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3s", symbol_prefix);
- SET_SecondaryColor3sEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3sEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3sEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sEXT", symbol_prefix);
- SET_SecondaryColor3sEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3sEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3svEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sv", symbol_prefix);
- SET_SecondaryColor3svEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3svEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3svEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3svEXT", symbol_prefix);
- SET_SecondaryColor3svEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3svEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3svEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ub", symbol_prefix);
- SET_SecondaryColor3ubEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ub", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubEXT", symbol_prefix);
- SET_SecondaryColor3ubEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubv", symbol_prefix);
- SET_SecondaryColor3ubvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubvEXT", symbol_prefix);
- SET_SecondaryColor3ubvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ui", symbol_prefix);
- SET_SecondaryColor3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiEXT", symbol_prefix);
- SET_SecondaryColor3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiv", symbol_prefix);
- SET_SecondaryColor3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uivEXT", symbol_prefix);
- SET_SecondaryColor3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3us", symbol_prefix);
- SET_SecondaryColor3usEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3us", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usEXT", symbol_prefix);
- SET_SecondaryColor3usEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usv", symbol_prefix);
- SET_SecondaryColor3usvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usvEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usvEXT", symbol_prefix);
- SET_SecondaryColor3usvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColorPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointer", symbol_prefix);
- SET_SecondaryColorPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColorPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SecondaryColorPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointerEXT", symbol_prefix);
- SET_SecondaryColorPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColorPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiDrawArraysEXT) {
- snprintf(symboln, sizeof(symboln), "%sMultiDrawArrays", symbol_prefix);
- SET_MultiDrawArraysEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawArrays", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawArraysEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiDrawArraysEXT) {
- snprintf(symboln, sizeof(symboln), "%sMultiDrawArraysEXT", symbol_prefix);
- SET_MultiDrawArraysEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawArraysEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawArraysEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsEXT) {
- snprintf(symboln, sizeof(symboln), "%sMultiDrawElements", symbol_prefix);
- SET_MultiDrawElementsEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElements", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsEXT) {
- snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsEXT", symbol_prefix);
- SET_MultiDrawElementsEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordPointer", symbol_prefix);
- SET_FogCoordPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordPointerEXT", symbol_prefix);
- SET_FogCoordPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoorddEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordd", symbol_prefix);
- SET_FogCoorddEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordd", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoorddEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoorddEXT", symbol_prefix);
- SET_FogCoorddEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoorddvEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoorddv", symbol_prefix);
- SET_FogCoorddvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoorddvEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoorddvEXT", symbol_prefix);
- SET_FogCoorddvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoorddvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordfEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordf", symbol_prefix);
- SET_FogCoordfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordf", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordfEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordfEXT", symbol_prefix);
- SET_FogCoordfEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordfv", symbol_prefix);
- SET_FogCoordfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FogCoordfvEXT) {
- snprintf(symboln, sizeof(symboln), "%sFogCoordfvEXT", symbol_prefix);
- SET_FogCoordfvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFogCoordfvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PixelTexGenSGIX) {
- snprintf(symboln, sizeof(symboln), "%sPixelTexGenSGIX", symbol_prefix);
- SET_PixelTexGenSGIX(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPixelTexGenSGIX", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenSGIX;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparate", symbol_prefix);
- SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparate", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateEXT", symbol_prefix);
- SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateINGR", symbol_prefix);
- SET_BlendFuncSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateINGR", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FlushVertexArrayRangeNV) {
- snprintf(symboln, sizeof(symboln), "%sFlushVertexArrayRangeNV", symbol_prefix);
- SET_FlushVertexArrayRangeNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFlushVertexArrayRangeNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FlushVertexArrayRangeNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexArrayRangeNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexArrayRangeNV", symbol_prefix);
- SET_VertexArrayRangeNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexArrayRangeNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexArrayRangeNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerInputNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerInputNV", symbol_prefix);
- SET_CombinerInputNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerInputNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerInputNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerOutputNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerOutputNV", symbol_prefix);
- SET_CombinerOutputNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerOutputNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerOutputNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerParameterfNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerParameterfNV", symbol_prefix);
- SET_CombinerParameterfNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterfNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterfNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerParameterfvNV", symbol_prefix);
- SET_CombinerParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerParameteriNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerParameteriNV", symbol_prefix);
- SET_CombinerParameteriNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameteriNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameteriNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CombinerParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sCombinerParameterivNV", symbol_prefix);
- SET_CombinerParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCombinerParameterivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FinalCombinerInputNV) {
- snprintf(symboln, sizeof(symboln), "%sFinalCombinerInputNV", symbol_prefix);
- SET_FinalCombinerInputNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFinalCombinerInputNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FinalCombinerInputNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCombinerInputParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterfvNV", symbol_prefix);
- SET_GetCombinerInputParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerInputParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCombinerInputParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterivNV", symbol_prefix);
- SET_GetCombinerInputParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerInputParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCombinerOutputParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterfvNV", symbol_prefix);
- SET_GetCombinerOutputParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerOutputParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetCombinerOutputParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterivNV", symbol_prefix);
- SET_GetCombinerOutputParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerOutputParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFinalCombinerInputParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterfvNV", symbol_prefix);
- SET_GetFinalCombinerInputParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFinalCombinerInputParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFinalCombinerInputParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterivNV", symbol_prefix);
- SET_GetFinalCombinerInputParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFinalCombinerInputParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ResizeBuffersMESA) {
- snprintf(symboln, sizeof(symboln), "%sResizeBuffersMESA", symbol_prefix);
- SET_ResizeBuffersMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sResizeBuffersMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ResizeBuffersMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2d", symbol_prefix);
- SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2dARB", symbol_prefix);
- SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2dMESA", symbol_prefix);
- SET_WindowPos2dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2dv", symbol_prefix);
- SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2dvARB", symbol_prefix);
- SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2dvMESA", symbol_prefix);
- SET_WindowPos2dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2dvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2f", symbol_prefix);
- SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2fARB", symbol_prefix);
- SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2fMESA", symbol_prefix);
- SET_WindowPos2fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2fv", symbol_prefix);
- SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2fvARB", symbol_prefix);
- SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2fvMESA", symbol_prefix);
- SET_WindowPos2fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2fvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2i", symbol_prefix);
- SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2iARB", symbol_prefix);
- SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2iMESA", symbol_prefix);
- SET_WindowPos2iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2iv", symbol_prefix);
- SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2ivARB", symbol_prefix);
- SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2ivMESA", symbol_prefix);
- SET_WindowPos2ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2ivMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2s", symbol_prefix);
- SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2sARB", symbol_prefix);
- SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2sMESA", symbol_prefix);
- SET_WindowPos2sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2sv", symbol_prefix);
- SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2svARB", symbol_prefix);
- SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos2svMESA", symbol_prefix);
- SET_WindowPos2svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos2svMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3d", symbol_prefix);
- SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3d", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3dARB", symbol_prefix);
- SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3dMESA", symbol_prefix);
- SET_WindowPos3dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3dv", symbol_prefix);
- SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3dvARB", symbol_prefix);
- SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3dvMESA", symbol_prefix);
- SET_WindowPos3dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3dvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3f", symbol_prefix);
- SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3f", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3fARB", symbol_prefix);
- SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3fMESA", symbol_prefix);
- SET_WindowPos3fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3fv", symbol_prefix);
- SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3fvARB", symbol_prefix);
- SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fvARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3fvMESA", symbol_prefix);
- SET_WindowPos3fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3fvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3i", symbol_prefix);
- SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3iARB", symbol_prefix);
- SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3iMESA", symbol_prefix);
- SET_WindowPos3iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3iv", symbol_prefix);
- SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3ivARB", symbol_prefix);
- SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3ivARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3ivMESA", symbol_prefix);
- SET_WindowPos3ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3ivMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3s", symbol_prefix);
- SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3s", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3sARB", symbol_prefix);
- SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3sMESA", symbol_prefix);
- SET_WindowPos3sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3sv", symbol_prefix);
- SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3svARB", symbol_prefix);
- SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3svARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos3svMESA", symbol_prefix);
- SET_WindowPos3svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos3svMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4dMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4dMESA", symbol_prefix);
- SET_WindowPos4dMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4dMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4dMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4dvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4dvMESA", symbol_prefix);
- SET_WindowPos4dvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4dvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4dvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4fMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4fMESA", symbol_prefix);
- SET_WindowPos4fMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4fMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4fMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4fvMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4fvMESA", symbol_prefix);
- SET_WindowPos4fvMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4fvMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4fvMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4iMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4iMESA", symbol_prefix);
- SET_WindowPos4iMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4iMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4iMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4ivMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4ivMESA", symbol_prefix);
- SET_WindowPos4ivMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4ivMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4ivMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4sMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4sMESA", symbol_prefix);
- SET_WindowPos4sMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4sMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4sMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->WindowPos4svMESA) {
- snprintf(symboln, sizeof(symboln), "%sWindowPos4svMESA", symbol_prefix);
- SET_WindowPos4svMESA(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sWindowPos4svMESA", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4svMESA;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiModeDrawArraysIBM) {
- snprintf(symboln, sizeof(symboln), "%sMultiModeDrawArraysIBM", symbol_prefix);
- SET_MultiModeDrawArraysIBM(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiModeDrawArraysIBM", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiModeDrawArraysIBM;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->MultiModeDrawElementsIBM) {
- snprintf(symboln, sizeof(symboln), "%sMultiModeDrawElementsIBM", symbol_prefix);
- SET_MultiModeDrawElementsIBM(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sMultiModeDrawElementsIBM", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->MultiModeDrawElementsIBM;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteFencesNV) {
- snprintf(symboln, sizeof(symboln), "%sDeleteFencesNV", symbol_prefix);
- SET_DeleteFencesNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteFencesNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFencesNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FinishFenceNV) {
- snprintf(symboln, sizeof(symboln), "%sFinishFenceNV", symbol_prefix);
- SET_FinishFenceNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFinishFenceNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FinishFenceNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenFencesNV) {
- snprintf(symboln, sizeof(symboln), "%sGenFencesNV", symbol_prefix);
- SET_GenFencesNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenFencesNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenFencesNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFenceivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetFenceivNV", symbol_prefix);
- SET_GetFenceivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFenceivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFenceivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsFenceNV) {
- snprintf(symboln, sizeof(symboln), "%sIsFenceNV", symbol_prefix);
- SET_IsFenceNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsFenceNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsFenceNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SetFenceNV) {
- snprintf(symboln, sizeof(symboln), "%sSetFenceNV", symbol_prefix);
- SET_SetFenceNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSetFenceNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SetFenceNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TestFenceNV) {
- snprintf(symboln, sizeof(symboln), "%sTestFenceNV", symbol_prefix);
- SET_TestFenceNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTestFenceNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TestFenceNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AreProgramsResidentNV) {
- snprintf(symboln, sizeof(symboln), "%sAreProgramsResidentNV", symbol_prefix);
- SET_AreProgramsResidentNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAreProgramsResidentNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AreProgramsResidentNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sBindProgramARB", symbol_prefix);
- SET_BindProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindProgramARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sBindProgramNV", symbol_prefix);
- SET_BindProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindProgramNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteProgramsNV) {
- snprintf(symboln, sizeof(symboln), "%sDeleteProgramsARB", symbol_prefix);
- SET_DeleteProgramsNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgramsARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgramsNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteProgramsNV) {
- snprintf(symboln, sizeof(symboln), "%sDeleteProgramsNV", symbol_prefix);
- SET_DeleteProgramsNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteProgramsNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgramsNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ExecuteProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sExecuteProgramNV", symbol_prefix);
- SET_ExecuteProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sExecuteProgramNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ExecuteProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenProgramsNV) {
- snprintf(symboln, sizeof(symboln), "%sGenProgramsARB", symbol_prefix);
- SET_GenProgramsNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenProgramsARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenProgramsNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenProgramsNV) {
- snprintf(symboln, sizeof(symboln), "%sGenProgramsNV", symbol_prefix);
- SET_GenProgramsNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenProgramsNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenProgramsNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramParameterdvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramParameterdvNV", symbol_prefix);
- SET_GetProgramParameterdvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramParameterdvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramParameterdvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramParameterfvNV", symbol_prefix);
- SET_GetProgramParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramStringNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramStringNV", symbol_prefix);
- SET_GetProgramStringNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramStringNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramStringNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramivNV", symbol_prefix);
- SET_GetProgramivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTrackMatrixivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetTrackMatrixivNV", symbol_prefix);
- SET_GetTrackMatrixivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTrackMatrixivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTrackMatrixivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointerv", symbol_prefix);
- SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointerv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervARB", symbol_prefix);
- SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervNV", symbol_prefix);
- SET_GetVertexAttribPointervNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvNV", symbol_prefix);
- SET_GetVertexAttribdvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvNV", symbol_prefix);
- SET_GetVertexAttribfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivNV) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivNV", symbol_prefix);
- SET_GetVertexAttribivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sIsProgramARB", symbol_prefix);
- SET_IsProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsProgramARB", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sIsProgramNV", symbol_prefix);
- SET_IsProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsProgramNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->LoadProgramNV) {
- snprintf(symboln, sizeof(symboln), "%sLoadProgramNV", symbol_prefix);
- SET_LoadProgramNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sLoadProgramNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->LoadProgramNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramParameters4dvNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameters4dvNV", symbol_prefix);
- SET_ProgramParameters4dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameters4dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameters4dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramParameters4fvNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramParameters4fvNV", symbol_prefix);
- SET_ProgramParameters4fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramParameters4fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameters4fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RequestResidentProgramsNV) {
- snprintf(symboln, sizeof(symboln), "%sRequestResidentProgramsNV", symbol_prefix);
- SET_RequestResidentProgramsNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRequestResidentProgramsNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RequestResidentProgramsNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TrackMatrixNV) {
- snprintf(symboln, sizeof(symboln), "%sTrackMatrixNV", symbol_prefix);
- SET_TrackMatrixNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTrackMatrixNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TrackMatrixNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dNV", symbol_prefix);
- SET_VertexAttrib1dNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvNV", symbol_prefix);
- SET_VertexAttrib1dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fNV", symbol_prefix);
- SET_VertexAttrib1fNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvNV", symbol_prefix);
- SET_VertexAttrib1fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sNV", symbol_prefix);
- SET_VertexAttrib1sNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svNV", symbol_prefix);
- SET_VertexAttrib1svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dNV", symbol_prefix);
- SET_VertexAttrib2dNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvNV", symbol_prefix);
- SET_VertexAttrib2dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fNV", symbol_prefix);
- SET_VertexAttrib2fNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvNV", symbol_prefix);
- SET_VertexAttrib2fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sNV", symbol_prefix);
- SET_VertexAttrib2sNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svNV", symbol_prefix);
- SET_VertexAttrib2svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dNV", symbol_prefix);
- SET_VertexAttrib3dNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvNV", symbol_prefix);
- SET_VertexAttrib3dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fNV", symbol_prefix);
- SET_VertexAttrib3fNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvNV", symbol_prefix);
- SET_VertexAttrib3fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sNV", symbol_prefix);
- SET_VertexAttrib3sNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svNV", symbol_prefix);
- SET_VertexAttrib3svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dNV", symbol_prefix);
- SET_VertexAttrib4dNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvNV", symbol_prefix);
- SET_VertexAttrib4dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fNV", symbol_prefix);
- SET_VertexAttrib4fNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvNV", symbol_prefix);
- SET_VertexAttrib4fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sNV", symbol_prefix);
- SET_VertexAttrib4sNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svNV", symbol_prefix);
- SET_VertexAttrib4svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubNV", symbol_prefix);
- SET_VertexAttrib4ubNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvNV", symbol_prefix);
- SET_VertexAttrib4ubvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerNV", symbol_prefix);
- SET_VertexAttribPointerNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs1dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs1dvNV", symbol_prefix);
- SET_VertexAttribs1dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs1fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs1fvNV", symbol_prefix);
- SET_VertexAttribs1fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs1svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs1svNV", symbol_prefix);
- SET_VertexAttribs1svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs1svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs2dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs2dvNV", symbol_prefix);
- SET_VertexAttribs2dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs2fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs2fvNV", symbol_prefix);
- SET_VertexAttribs2fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs2svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs2svNV", symbol_prefix);
- SET_VertexAttribs2svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs2svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs3dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs3dvNV", symbol_prefix);
- SET_VertexAttribs3dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs3fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs3fvNV", symbol_prefix);
- SET_VertexAttribs3fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs3svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs3svNV", symbol_prefix);
- SET_VertexAttribs3svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs3svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs4dvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs4dvNV", symbol_prefix);
- SET_VertexAttribs4dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs4fvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs4fvNV", symbol_prefix);
- SET_VertexAttribs4fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs4svNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs4svNV", symbol_prefix);
- SET_VertexAttribs4svNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4svNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4svNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribs4ubvNV) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribs4ubvNV", symbol_prefix);
- SET_VertexAttribs4ubvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribs4ubvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4ubvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexBumpParameterfvATI) {
- snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterfvATI", symbol_prefix);
- SET_GetTexBumpParameterfvATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterfvATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexBumpParameterfvATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexBumpParameterivATI) {
- snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterivATI", symbol_prefix);
- SET_GetTexBumpParameterivATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterivATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexBumpParameterivATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexBumpParameterfvATI) {
- snprintf(symboln, sizeof(symboln), "%sTexBumpParameterfvATI", symbol_prefix);
- SET_TexBumpParameterfvATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexBumpParameterfvATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexBumpParameterfvATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexBumpParameterivATI) {
- snprintf(symboln, sizeof(symboln), "%sTexBumpParameterivATI", symbol_prefix);
- SET_TexBumpParameterivATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexBumpParameterivATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexBumpParameterivATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp1ATI) {
- snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp1ATI", symbol_prefix);
- SET_AlphaFragmentOp1ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp1ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp1ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp2ATI) {
- snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp2ATI", symbol_prefix);
- SET_AlphaFragmentOp2ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp2ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp2ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp3ATI) {
- snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp3ATI", symbol_prefix);
- SET_AlphaFragmentOp3ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp3ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp3ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginFragmentShaderATI) {
- snprintf(symboln, sizeof(symboln), "%sBeginFragmentShaderATI", symbol_prefix);
- SET_BeginFragmentShaderATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginFragmentShaderATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginFragmentShaderATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindFragmentShaderATI) {
- snprintf(symboln, sizeof(symboln), "%sBindFragmentShaderATI", symbol_prefix);
- SET_BindFragmentShaderATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindFragmentShaderATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindFragmentShaderATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp1ATI) {
- snprintf(symboln, sizeof(symboln), "%sColorFragmentOp1ATI", symbol_prefix);
- SET_ColorFragmentOp1ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp1ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp1ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp2ATI) {
- snprintf(symboln, sizeof(symboln), "%sColorFragmentOp2ATI", symbol_prefix);
- SET_ColorFragmentOp2ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp2ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp2ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp3ATI) {
- snprintf(symboln, sizeof(symboln), "%sColorFragmentOp3ATI", symbol_prefix);
- SET_ColorFragmentOp3ATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorFragmentOp3ATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp3ATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteFragmentShaderATI) {
- snprintf(symboln, sizeof(symboln), "%sDeleteFragmentShaderATI", symbol_prefix);
- SET_DeleteFragmentShaderATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteFragmentShaderATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFragmentShaderATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndFragmentShaderATI) {
- snprintf(symboln, sizeof(symboln), "%sEndFragmentShaderATI", symbol_prefix);
- SET_EndFragmentShaderATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndFragmentShaderATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndFragmentShaderATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenFragmentShadersATI) {
- snprintf(symboln, sizeof(symboln), "%sGenFragmentShadersATI", symbol_prefix);
- SET_GenFragmentShadersATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenFragmentShadersATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenFragmentShadersATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PassTexCoordATI) {
- snprintf(symboln, sizeof(symboln), "%sPassTexCoordATI", symbol_prefix);
- SET_PassTexCoordATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPassTexCoordATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PassTexCoordATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SampleMapATI) {
- snprintf(symboln, sizeof(symboln), "%sSampleMapATI", symbol_prefix);
- SET_SampleMapATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSampleMapATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SampleMapATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->SetFragmentShaderConstantATI) {
- snprintf(symboln, sizeof(symboln), "%sSetFragmentShaderConstantATI", symbol_prefix);
- SET_SetFragmentShaderConstantATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sSetFragmentShaderConstantATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->SetFragmentShaderConstantATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameteriNV) {
- snprintf(symboln, sizeof(symboln), "%sPointParameteri", symbol_prefix);
- SET_PointParameteriNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameteri", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameteriNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameteriNV) {
- snprintf(symboln, sizeof(symboln), "%sPointParameteriNV", symbol_prefix);
- SET_PointParameteriNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameteriNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameteriNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sPointParameteriv", symbol_prefix);
- SET_PointParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PointParameterivNV) {
- snprintf(symboln, sizeof(symboln), "%sPointParameterivNV", symbol_prefix);
- SET_PointParameterivNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPointParameterivNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterivNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ActiveStencilFaceEXT) {
- snprintf(symboln, sizeof(symboln), "%sActiveStencilFaceEXT", symbol_prefix);
- SET_ActiveStencilFaceEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sActiveStencilFaceEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ActiveStencilFaceEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindVertexArrayAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sBindVertexArrayAPPLE", symbol_prefix);
- SET_BindVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindVertexArrayAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindVertexArrayAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteVertexArraysAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sDeleteVertexArrays", symbol_prefix);
- SET_DeleteVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteVertexArrays", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteVertexArraysAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteVertexArraysAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sDeleteVertexArraysAPPLE", symbol_prefix);
- SET_DeleteVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteVertexArraysAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteVertexArraysAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenVertexArraysAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sGenVertexArraysAPPLE", symbol_prefix);
- SET_GenVertexArraysAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenVertexArraysAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenVertexArraysAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsVertexArrayAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sIsVertexArray", symbol_prefix);
- SET_IsVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsVertexArray", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsVertexArrayAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsVertexArrayAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sIsVertexArrayAPPLE", symbol_prefix);
- SET_IsVertexArrayAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsVertexArrayAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsVertexArrayAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramNamedParameterdvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterdvNV", symbol_prefix);
- SET_GetProgramNamedParameterdvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterdvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramNamedParameterdvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetProgramNamedParameterfvNV) {
- snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterfvNV", symbol_prefix);
- SET_GetProgramNamedParameterfvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterfvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramNamedParameterfvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4dNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dNV", symbol_prefix);
- SET_ProgramNamedParameter4dNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4dNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4dvNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dvNV", symbol_prefix);
- SET_ProgramNamedParameter4dvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4dvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4fNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fNV", symbol_prefix);
- SET_ProgramNamedParameter4fNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4fNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4fvNV) {
- snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fvNV", symbol_prefix);
- SET_ProgramNamedParameter4fvNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fvNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4fvNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartIndexNV) {
- snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndexNV", symbol_prefix);
- SET_PrimitiveRestartIndexNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndexNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartIndexNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartIndexNV) {
- snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndex", symbol_prefix);
- SET_PrimitiveRestartIndexNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartIndexNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartNV) {
- snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartNV", symbol_prefix);
- SET_PrimitiveRestartNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DepthBoundsEXT) {
- snprintf(symboln, sizeof(symboln), "%sDepthBoundsEXT", symbol_prefix);
- SET_DepthBoundsEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDepthBoundsEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DepthBoundsEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparate", symbol_prefix);
- SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparate", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateEXT", symbol_prefix);
- SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateATI", symbol_prefix);
- SET_BlendEquationSeparateEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindFramebuffer", symbol_prefix);
- SET_BindFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindFramebuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindFramebufferEXT", symbol_prefix);
- SET_BindFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindFramebufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindRenderbuffer", symbol_prefix);
- SET_BindRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindRenderbuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindRenderbufferEXT", symbol_prefix);
- SET_BindRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindRenderbufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CheckFramebufferStatusEXT) {
- snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatus", symbol_prefix);
- SET_CheckFramebufferStatusEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatus", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CheckFramebufferStatusEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CheckFramebufferStatusEXT) {
- snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatusEXT", symbol_prefix);
- SET_CheckFramebufferStatusEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatusEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CheckFramebufferStatusEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteFramebuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffers", symbol_prefix);
- SET_DeleteFramebuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFramebuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteFramebuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffersEXT", symbol_prefix);
- SET_DeleteFramebuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffersEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFramebuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteRenderbuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffers", symbol_prefix);
- SET_DeleteRenderbuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteRenderbuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DeleteRenderbuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffersEXT", symbol_prefix);
- SET_DeleteRenderbuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffersEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DeleteRenderbuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbuffer", symbol_prefix);
- SET_FramebufferRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbufferEXT", symbol_prefix);
- SET_FramebufferRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture1DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1D", symbol_prefix);
- SET_FramebufferTexture1DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture1DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture1DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1DEXT", symbol_prefix);
- SET_FramebufferTexture1DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture1DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture2DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2D", symbol_prefix);
- SET_FramebufferTexture2DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture2DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture2DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2DEXT", symbol_prefix);
- SET_FramebufferTexture2DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture2DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture3DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3D", symbol_prefix);
- SET_FramebufferTexture3DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3D", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture3DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTexture3DEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3DEXT", symbol_prefix);
- SET_FramebufferTexture3DEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3DEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture3DEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenFramebuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenFramebuffers", symbol_prefix);
- SET_GenFramebuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenFramebuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenFramebuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenFramebuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenFramebuffersEXT", symbol_prefix);
- SET_GenFramebuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenFramebuffersEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenFramebuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenRenderbuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenRenderbuffers", symbol_prefix);
- SET_GenRenderbuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenRenderbuffers", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenRenderbuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenRenderbuffersEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenRenderbuffersEXT", symbol_prefix);
- SET_GenRenderbuffersEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenRenderbuffersEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenRenderbuffersEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenerateMipmapEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenerateMipmap", symbol_prefix);
- SET_GenerateMipmapEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenerateMipmap", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenerateMipmapEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GenerateMipmapEXT) {
- snprintf(symboln, sizeof(symboln), "%sGenerateMipmapEXT", symbol_prefix);
- SET_GenerateMipmapEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGenerateMipmapEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GenerateMipmapEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFramebufferAttachmentParameterivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameteriv", symbol_prefix);
- SET_GetFramebufferAttachmentParameterivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFramebufferAttachmentParameterivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFramebufferAttachmentParameterivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameterivEXT", symbol_prefix);
- SET_GetFramebufferAttachmentParameterivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFramebufferAttachmentParameterivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetRenderbufferParameterivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameteriv", symbol_prefix);
- SET_GetRenderbufferParameterivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameteriv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetRenderbufferParameterivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetRenderbufferParameterivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameterivEXT", symbol_prefix);
- SET_GetRenderbufferParameterivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameterivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetRenderbufferParameterivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsFramebuffer", symbol_prefix);
- SET_IsFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsFramebuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsFramebufferEXT", symbol_prefix);
- SET_IsFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsFramebufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsRenderbuffer", symbol_prefix);
- SET_IsRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsRenderbuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsRenderbufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsRenderbufferEXT", symbol_prefix);
- SET_IsRenderbufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsRenderbufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsRenderbufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageEXT) {
- snprintf(symboln, sizeof(symboln), "%sRenderbufferStorage", symbol_prefix);
- SET_RenderbufferStorageEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorage", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageEXT) {
- snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageEXT", symbol_prefix);
- SET_RenderbufferStorageEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlitFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlitFramebuffer", symbol_prefix);
- SET_BlitFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlitFramebuffer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlitFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BlitFramebufferEXT) {
- snprintf(symboln, sizeof(symboln), "%sBlitFramebufferEXT", symbol_prefix);
- SET_BlitFramebufferEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBlitFramebufferEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BlitFramebufferEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BufferParameteriAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sBufferParameteriAPPLE", symbol_prefix);
- SET_BufferParameteriAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBufferParameteriAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BufferParameteriAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FlushMappedBufferRangeAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRangeAPPLE", symbol_prefix);
- SET_FlushMappedBufferRangeAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRangeAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FlushMappedBufferRangeAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindFragDataLocationEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindFragDataLocationEXT", symbol_prefix);
- SET_BindFragDataLocationEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindFragDataLocationEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindFragDataLocationEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindFragDataLocationEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindFragDataLocation", symbol_prefix);
- SET_BindFragDataLocationEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindFragDataLocation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindFragDataLocationEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFragDataLocationEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetFragDataLocationEXT", symbol_prefix);
- SET_GetFragDataLocationEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFragDataLocationEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFragDataLocationEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetFragDataLocationEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetFragDataLocation", symbol_prefix);
- SET_GetFragDataLocationEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetFragDataLocation", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetFragDataLocationEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformuivEXT", symbol_prefix);
- SET_GetUniformuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformuivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetUniformuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetUniformuiv", symbol_prefix);
- SET_GetUniformuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetUniformuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIivEXT", symbol_prefix);
- SET_GetVertexAttribIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIiv", symbol_prefix);
- SET_GetVertexAttribIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuivEXT", symbol_prefix);
- SET_GetVertexAttribIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuiv", symbol_prefix);
- SET_GetVertexAttribIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform1uiEXT", symbol_prefix);
- SET_Uniform1uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform1ui", symbol_prefix);
- SET_Uniform1uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform1uivEXT", symbol_prefix);
- SET_Uniform1uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform1uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform1uiv", symbol_prefix);
- SET_Uniform1uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform1uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform2uiEXT", symbol_prefix);
- SET_Uniform2uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform2ui", symbol_prefix);
- SET_Uniform2uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform2uivEXT", symbol_prefix);
- SET_Uniform2uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform2uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform2uiv", symbol_prefix);
- SET_Uniform2uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform2uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform3uiEXT", symbol_prefix);
- SET_Uniform3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform3ui", symbol_prefix);
- SET_Uniform3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform3uivEXT", symbol_prefix);
- SET_Uniform3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform3uiv", symbol_prefix);
- SET_Uniform3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform3uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform4uiEXT", symbol_prefix);
- SET_Uniform4uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform4ui", symbol_prefix);
- SET_Uniform4uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform4uivEXT", symbol_prefix);
- SET_Uniform4uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->Uniform4uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sUniform4uiv", symbol_prefix);
- SET_Uniform4uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUniform4uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iEXT", symbol_prefix);
- SET_VertexAttribI1iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1i", symbol_prefix);
- SET_VertexAttribI1iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ivEXT", symbol_prefix);
- SET_VertexAttribI1ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iv", symbol_prefix);
- SET_VertexAttribI1ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiEXT", symbol_prefix);
- SET_VertexAttribI1uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ui", symbol_prefix);
- SET_VertexAttribI1uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uivEXT", symbol_prefix);
- SET_VertexAttribI1uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiv", symbol_prefix);
- SET_VertexAttribI1uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iEXT", symbol_prefix);
- SET_VertexAttribI2iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2i", symbol_prefix);
- SET_VertexAttribI2iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ivEXT", symbol_prefix);
- SET_VertexAttribI2ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iv", symbol_prefix);
- SET_VertexAttribI2ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiEXT", symbol_prefix);
- SET_VertexAttribI2uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ui", symbol_prefix);
- SET_VertexAttribI2uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uivEXT", symbol_prefix);
- SET_VertexAttribI2uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiv", symbol_prefix);
- SET_VertexAttribI2uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iEXT", symbol_prefix);
- SET_VertexAttribI3iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3i", symbol_prefix);
- SET_VertexAttribI3iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ivEXT", symbol_prefix);
- SET_VertexAttribI3ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iv", symbol_prefix);
- SET_VertexAttribI3ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiEXT", symbol_prefix);
- SET_VertexAttribI3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ui", symbol_prefix);
- SET_VertexAttribI3uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uivEXT", symbol_prefix);
- SET_VertexAttribI3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiv", symbol_prefix);
- SET_VertexAttribI3uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4bvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bvEXT", symbol_prefix);
- SET_VertexAttribI4bvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4bvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4bvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bv", symbol_prefix);
- SET_VertexAttribI4bvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4bvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iEXT", symbol_prefix);
- SET_VertexAttribI4iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4iEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4i", symbol_prefix);
- SET_VertexAttribI4iEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4i", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4iEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ivEXT", symbol_prefix);
- SET_VertexAttribI4ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iv", symbol_prefix);
- SET_VertexAttribI4ivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4svEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4svEXT", symbol_prefix);
- SET_VertexAttribI4svEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4svEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4svEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4svEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4sv", symbol_prefix);
- SET_VertexAttribI4svEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4sv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4svEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ubvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubvEXT", symbol_prefix);
- SET_VertexAttribI4ubvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ubvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ubvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubv", symbol_prefix);
- SET_VertexAttribI4ubvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ubvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiEXT", symbol_prefix);
- SET_VertexAttribI4uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uiEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ui", symbol_prefix);
- SET_VertexAttribI4uiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ui", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uivEXT", symbol_prefix);
- SET_VertexAttribI4uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uivEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiv", symbol_prefix);
- SET_VertexAttribI4uivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4usvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usvEXT", symbol_prefix);
- SET_VertexAttribI4usvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4usvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribI4usvEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usv", symbol_prefix);
- SET_VertexAttribI4usvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4usvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribIPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointerEXT", symbol_prefix);
- SET_VertexAttribIPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribIPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->VertexAttribIPointerEXT) {
- snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointer", symbol_prefix);
- SET_VertexAttribIPointerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribIPointerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTextureLayerEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayer", symbol_prefix);
- SET_FramebufferTextureLayerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayer", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureLayerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->FramebufferTextureLayerEXT) {
- snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayerEXT", symbol_prefix);
- SET_FramebufferTextureLayerEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayerEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureLayerEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorMaskIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sColorMaskIndexedEXT", symbol_prefix);
- SET_ColorMaskIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorMaskIndexedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaskIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ColorMaskIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sColorMaski", symbol_prefix);
- SET_ColorMaskIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sColorMaski", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaskIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DisableIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sDisableIndexedEXT", symbol_prefix);
- SET_DisableIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisableIndexedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DisableIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->DisableIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sDisablei", symbol_prefix);
- SET_DisableIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sDisablei", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->DisableIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EnableIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sEnableIndexedEXT", symbol_prefix);
- SET_EnableIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnableIndexedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EnableIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EnableIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sEnablei", symbol_prefix);
- SET_EnableIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEnablei", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EnableIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBooleanIndexedvEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetBooleanIndexedvEXT", symbol_prefix);
- SET_GetBooleanIndexedvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBooleanIndexedvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanIndexedvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetBooleanIndexedvEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetBooleani_v", symbol_prefix);
- SET_GetBooleanIndexedvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetBooleani_v", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanIndexedvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetIntegerIndexedvEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetIntegerIndexedvEXT", symbol_prefix);
- SET_GetIntegerIndexedvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetIntegerIndexedvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerIndexedvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetIntegerIndexedvEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetIntegeri_v", symbol_prefix);
- SET_GetIntegerIndexedvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetIntegeri_v", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerIndexedvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsEnabledIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsEnabledIndexedEXT", symbol_prefix);
- SET_IsEnabledIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsEnabledIndexedEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabledIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->IsEnabledIndexedEXT) {
- snprintf(symboln, sizeof(symboln), "%sIsEnabledi", symbol_prefix);
- SET_IsEnabledIndexedEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sIsEnabledi", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabledIndexedEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearColorIiEXT) {
- snprintf(symboln, sizeof(symboln), "%sClearColorIiEXT", symbol_prefix);
- SET_ClearColorIiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearColorIiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearColorIiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ClearColorIuiEXT) {
- snprintf(symboln, sizeof(symboln), "%sClearColorIuiEXT", symbol_prefix);
- SET_ClearColorIuiEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sClearColorIuiEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ClearColorIuiEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterIivEXT", symbol_prefix);
- SET_GetTexParameterIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterIiv", symbol_prefix);
- SET_GetTexParameterIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuivEXT", symbol_prefix);
- SET_GetTexParameterIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuiv", symbol_prefix);
- SET_GetTexParameterIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterIivEXT", symbol_prefix);
- SET_TexParameterIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterIivEXT) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterIiv", symbol_prefix);
- SET_TexParameterIivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterIuivEXT", symbol_prefix);
- SET_TexParameterIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIuivEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TexParameterIuivEXT) {
- snprintf(symboln, sizeof(symboln), "%sTexParameterIuiv", symbol_prefix);
- SET_TexParameterIuivEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTexParameterIuiv", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIuivEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginConditionalRenderNV) {
- snprintf(symboln, sizeof(symboln), "%sBeginConditionalRenderNV", symbol_prefix);
- SET_BeginConditionalRenderNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginConditionalRenderNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginConditionalRenderNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginConditionalRenderNV) {
- snprintf(symboln, sizeof(symboln), "%sBeginConditionalRender", symbol_prefix);
- SET_BeginConditionalRenderNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginConditionalRender", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginConditionalRenderNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndConditionalRenderNV) {
- snprintf(symboln, sizeof(symboln), "%sEndConditionalRenderNV", symbol_prefix);
- SET_EndConditionalRenderNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndConditionalRenderNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndConditionalRenderNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndConditionalRenderNV) {
- snprintf(symboln, sizeof(symboln), "%sEndConditionalRender", symbol_prefix);
- SET_EndConditionalRenderNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndConditionalRender", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndConditionalRenderNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginTransformFeedbackEXT) {
- snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedbackEXT", symbol_prefix);
- SET_BeginTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedbackEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginTransformFeedbackEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BeginTransformFeedbackEXT) {
- snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedback", symbol_prefix);
- SET_BeginTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BeginTransformFeedbackEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferBaseEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferBaseEXT", symbol_prefix);
- SET_BindBufferBaseEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferBaseEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferBaseEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferBaseEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferBase", symbol_prefix);
- SET_BindBufferBaseEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferBase", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferBaseEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferOffsetEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferOffsetEXT", symbol_prefix);
- SET_BindBufferOffsetEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferOffsetEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferOffsetEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferRangeEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferRangeEXT", symbol_prefix);
- SET_BindBufferRangeEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferRangeEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferRangeEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->BindBufferRangeEXT) {
- snprintf(symboln, sizeof(symboln), "%sBindBufferRange", symbol_prefix);
- SET_BindBufferRangeEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sBindBufferRange", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferRangeEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndTransformFeedbackEXT) {
- snprintf(symboln, sizeof(symboln), "%sEndTransformFeedbackEXT", symbol_prefix);
- SET_EndTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndTransformFeedbackEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndTransformFeedbackEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EndTransformFeedbackEXT) {
- snprintf(symboln, sizeof(symboln), "%sEndTransformFeedback", symbol_prefix);
- SET_EndTransformFeedbackEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEndTransformFeedback", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EndTransformFeedbackEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTransformFeedbackVaryingEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVaryingEXT", symbol_prefix);
- SET_GetTransformFeedbackVaryingEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVaryingEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTransformFeedbackVaryingEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTransformFeedbackVaryingEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVarying", symbol_prefix);
- SET_GetTransformFeedbackVaryingEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVarying", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTransformFeedbackVaryingEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TransformFeedbackVaryingsEXT) {
- snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryingsEXT", symbol_prefix);
- SET_TransformFeedbackVaryingsEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryingsEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TransformFeedbackVaryingsEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TransformFeedbackVaryingsEXT) {
- snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryings", symbol_prefix);
- SET_TransformFeedbackVaryingsEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryings", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TransformFeedbackVaryingsEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProvokingVertexEXT) {
- snprintf(symboln, sizeof(symboln), "%sProvokingVertexEXT", symbol_prefix);
- SET_ProvokingVertexEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProvokingVertexEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProvokingVertexEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProvokingVertexEXT) {
- snprintf(symboln, sizeof(symboln), "%sProvokingVertex", symbol_prefix);
- SET_ProvokingVertexEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProvokingVertex", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProvokingVertexEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetTexParameterPointervAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sGetTexParameterPointervAPPLE", symbol_prefix);
- SET_GetTexParameterPointervAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetTexParameterPointervAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterPointervAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TextureRangeAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sTextureRangeAPPLE", symbol_prefix);
- SET_TextureRangeAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTextureRangeAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TextureRangeAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetObjectParameterivAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivAPPLE", symbol_prefix);
- SET_GetObjectParameterivAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterivAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ObjectPurgeableAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sObjectPurgeableAPPLE", symbol_prefix);
- SET_ObjectPurgeableAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sObjectPurgeableAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ObjectPurgeableAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ObjectUnpurgeableAPPLE) {
- snprintf(symboln, sizeof(symboln), "%sObjectUnpurgeableAPPLE", symbol_prefix);
- SET_ObjectUnpurgeableAPPLE(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sObjectUnpurgeableAPPLE", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ObjectUnpurgeableAPPLE;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ActiveProgramEXT) {
- snprintf(symboln, sizeof(symboln), "%sActiveProgramEXT", symbol_prefix);
- SET_ActiveProgramEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sActiveProgramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ActiveProgramEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->CreateShaderProgramEXT) {
- snprintf(symboln, sizeof(symboln), "%sCreateShaderProgramEXT", symbol_prefix);
- SET_CreateShaderProgramEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sCreateShaderProgramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->CreateShaderProgramEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->UseShaderProgramEXT) {
- snprintf(symboln, sizeof(symboln), "%sUseShaderProgramEXT", symbol_prefix);
- SET_UseShaderProgramEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sUseShaderProgramEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->UseShaderProgramEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->TextureBarrierNV) {
- snprintf(symboln, sizeof(symboln), "%sTextureBarrierNV", symbol_prefix);
- SET_TextureBarrierNV(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sTextureBarrierNV", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->TextureBarrierNV;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->StencilFuncSeparateATI) {
- snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparateATI", symbol_prefix);
- SET_StencilFuncSeparateATI(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparateATI", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->StencilFuncSeparateATI;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameters4fvEXT) {
- snprintf(symboln, sizeof(symboln), "%sProgramEnvParameters4fvEXT", symbol_prefix);
- SET_ProgramEnvParameters4fvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramEnvParameters4fvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameters4fvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameters4fvEXT) {
- snprintf(symboln, sizeof(symboln), "%sProgramLocalParameters4fvEXT", symbol_prefix);
- SET_ProgramLocalParameters4fvEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sProgramLocalParameters4fvEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameters4fvEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjecti64vEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjecti64vEXT", symbol_prefix);
- SET_GetQueryObjecti64vEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjecti64vEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjecti64vEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->GetQueryObjectui64vEXT) {
- snprintf(symboln, sizeof(symboln), "%sGetQueryObjectui64vEXT", symbol_prefix);
- SET_GetQueryObjectui64vEXT(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sGetQueryObjectui64vEXT", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectui64vEXT;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EGLImageTargetRenderbufferStorageOES) {
- snprintf(symboln, sizeof(symboln), "%sEGLImageTargetRenderbufferStorageOES", symbol_prefix);
- SET_EGLImageTargetRenderbufferStorageOES(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEGLImageTargetRenderbufferStorageOES", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EGLImageTargetRenderbufferStorageOES;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
if(!disp->EGLImageTargetTexture2DOES) {
- snprintf(symboln, sizeof(symboln), "%sEGLImageTargetTexture2DOES", symbol_prefix);
- SET_EGLImageTargetTexture2DOES(disp, dlsym(handle, symboln));
+ snprintf(symboln, sizeof(symboln), "%sEGLImageTargetTexture2DOES", symbol_prefix);
+ _glapi_proc *procp = (_glapi_proc *)&disp->EGLImageTargetTexture2DOES;
+ *procp = (_glapi_proc) dlsym(handle, symboln);
}
- return disp;
+ return disp;
}
From e903cc17bbf7152b3f7d64fe7fbb5ceebcc7452e Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Mon, 13 Jun 2011 12:10:38 -0700
Subject: [PATCH 043/406] apple: Dead code removal
Signed-off-by: Jeremy Huddleston
---
src/glx/applegl_glx.c | 1 -
src/glx/glxclient.h | 1 -
2 files changed, 2 deletions(-)
diff --git a/src/glx/applegl_glx.c b/src/glx/applegl_glx.c
index 9b8605f4075..8e5bc0b66c0 100644
--- a/src/glx/applegl_glx.c
+++ b/src/glx/applegl_glx.c
@@ -116,7 +116,6 @@ applegl_create_context(struct glx_screen *psc,
gc->vtable = &applegl_context_vtable;
gc->driContext = NULL;
- gc->do_destroy = False;
/* TODO: darwin: Integrate with above to do indirect */
if(apple_glx_create_context(&gc->driContext, dpy, screen, config,
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index 9262f86f1f3..fa2e2d360ca 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -335,7 +335,6 @@ struct glx_context
#if defined(GLX_DIRECT_RENDERING) && defined(GLX_USE_APPLEGL)
void *driContext;
- Bool do_destroy;
#endif
/**
From c6cf82fb553405bee241170f6e51cafd751d46ea Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Mon, 13 Jun 2011 12:00:55 -0700
Subject: [PATCH 044/406] apple: applegl_destroy_context: Pass along the
correct display
Signed-off-by: Jeremy Huddleston
---
src/glx/applegl_glx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/glx/applegl_glx.c b/src/glx/applegl_glx.c
index 8e5bc0b66c0..92c785f988a 100644
--- a/src/glx/applegl_glx.c
+++ b/src/glx/applegl_glx.c
@@ -43,7 +43,7 @@
static void
applegl_destroy_context(struct glx_context *gc)
{
- apple_glx_destroy_context(&gc->driContext, gc->currentDpy);
+ apple_glx_destroy_context(&gc->driContext, gc->psc->dpy);
}
static int
From 816b8acfe81d5e2d666eb926f669d6015df0bbac Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Mon, 13 Jun 2011 12:13:44 -0700
Subject: [PATCH 045/406] glx: Remove check for gc->vtable->destroy
gc->vtable->destroy is always set and is used unconditionally
in other places, so don't bother checking for it first.
Signed-off-by: Jeremy Huddleston
---
src/glx/glxcmds.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index 774d38b2634..cd8bc97b192 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -377,8 +377,7 @@ DestroyContext(Display * dpy, GLXContext ctx)
}
__glXUnlock();
- if (gc->vtable->destroy)
- gc->vtable->destroy(gc);
+ gc->vtable->destroy(gc);
}
_X_EXPORT void
From 4fa01d705f0b795a5df30127925ced8e0522631f Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 16:07:32 -0600
Subject: [PATCH 046/406] dri: include swrast.h, not s_texrender.h
---
src/mesa/drivers/dri/intel/intel_fbo.c | 2 +-
src/mesa/drivers/dri/radeon/radeon_fbo.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 8277477c82c..65f35e1b487 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -35,7 +35,7 @@
#include "main/renderbuffer.h"
#include "main/context.h"
#include "main/teximage.h"
-#include "swrast/s_texrender.h"
+#include "swrast/swrast.h"
#include "drivers/common/meta.h"
#include "intel_context.h"
diff --git a/src/mesa/drivers/dri/radeon/radeon_fbo.c b/src/mesa/drivers/dri/radeon/radeon_fbo.c
index 0986adec57e..92c1854f098 100644
--- a/src/mesa/drivers/dri/radeon/radeon_fbo.c
+++ b/src/mesa/drivers/dri/radeon/radeon_fbo.c
@@ -35,7 +35,7 @@
#include "main/framebuffer.h"
#include "main/renderbuffer.h"
#include "main/context.h"
-#include "swrast/s_texrender.h"
+#include "swrast/swrast.h"
#include "drivers/common/meta.h"
#include "radeon_common.h"
From b17aab5753a6d14c9e757bedb186963b2dae8823 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Tue, 31 May 2011 14:27:18 -0700
Subject: [PATCH 047/406] intel: Move the draw_x/draw_y to the renderbuffer
where it belongs.
It was originally located in the region because the tracking of
depth/color buffers was on the regions, and getting back to the irb
would have been tricky. Now, we're keying off of the renderbuffer in
more places, which means we can move these fields where they belong.
This could fix potential rendering failure with a single texture
having multiple images attached to different renderbuffers across
shareCtx (as far as I can tell, this was the only failure we could
cause, since anything else should trigger intel_render_texture in
between, for example a BindFramebuffer).
Reviewed-by: Kenneth Graunke
Reviewed-by: Chad Versace
---
src/mesa/drivers/dri/i915/i830_vtbl.c | 26 +++++----
src/mesa/drivers/dri/i915/i915_vtbl.c | 26 +++++----
src/mesa/drivers/dri/i965/brw_misc_state.c | 2 +-
.../drivers/dri/i965/brw_wm_surface_state.c | 2 +-
src/mesa/drivers/dri/i965/gen7_misc_state.c | 2 +-
.../drivers/dri/i965/gen7_wm_surface_state.c | 2 +-
src/mesa/drivers/dri/intel/intel_blit.c | 8 +--
src/mesa/drivers/dri/intel/intel_fbo.c | 53 ++++++++++++++++---
src/mesa/drivers/dri/intel/intel_fbo.h | 8 ++-
src/mesa/drivers/dri/intel/intel_regions.c | 35 ------------
src/mesa/drivers/dri/intel/intel_regions.h | 7 ---
src/mesa/drivers/dri/intel/intel_tex_copy.c | 2 +-
12 files changed, 95 insertions(+), 78 deletions(-)
diff --git a/src/mesa/drivers/dri/i915/i830_vtbl.c b/src/mesa/drivers/dri/i915/i830_vtbl.c
index 19f08077599..08ea2870aa0 100644
--- a/src/mesa/drivers/dri/i915/i830_vtbl.c
+++ b/src/mesa/drivers/dri/i915/i830_vtbl.c
@@ -609,6 +609,8 @@ i830_set_draw_region(struct intel_context *intel,
struct gl_context *ctx = &intel->ctx;
struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0];
struct intel_renderbuffer *irb = intel_renderbuffer(rb);
+ struct gl_renderbuffer *drb;
+ struct intel_renderbuffer *idrb = NULL;
GLuint value;
struct i830_hw_state *state = &i830->state;
uint32_t draw_x, draw_y;
@@ -649,6 +651,13 @@ i830_set_draw_region(struct intel_context *intel,
}
state->Buffer[I830_DESTREG_DV1] = value;
+ drb = ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
+ if (!drb)
+ drb = ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer;
+
+ if (drb)
+ idrb = intel_renderbuffer(drb);
+
/* We set up the drawing rectangle to be offset into the color
* region's location in the miptree. If it doesn't match with
* depth's offsets, we can't render to it.
@@ -660,16 +669,15 @@ i830_set_draw_region(struct intel_context *intel,
* can't do in general due to tiling)
*/
FALLBACK(intel, I830_FALLBACK_DRAW_OFFSET,
- (depth_region && color_regions[0]) &&
- (depth_region->draw_x != color_regions[0]->draw_x ||
- depth_region->draw_y != color_regions[0]->draw_y));
+ idrb && irb && (idrb->draw_x != irb->draw_x ||
+ idrb->draw_y != irb->draw_y));
- if (color_regions[0]) {
- draw_x = color_regions[0]->draw_x;
- draw_y = color_regions[0]->draw_y;
- } else if (depth_region) {
- draw_x = depth_region->draw_x;
- draw_y = depth_region->draw_y;
+ if (irb) {
+ draw_x = irb->draw_x;
+ draw_y = irb->draw_y;
+ } else if (idrb) {
+ draw_x = idrb->draw_x;
+ draw_y = idrb->draw_y;
} else {
draw_x = 0;
draw_y = 0;
diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c
index 820feba04ba..baff49bb2f5 100644
--- a/src/mesa/drivers/dri/i915/i915_vtbl.c
+++ b/src/mesa/drivers/dri/i915/i915_vtbl.c
@@ -561,6 +561,8 @@ i915_set_draw_region(struct intel_context *intel,
struct gl_context *ctx = &intel->ctx;
struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[0];
struct intel_renderbuffer *irb = intel_renderbuffer(rb);
+ struct gl_renderbuffer *drb;
+ struct intel_renderbuffer *idrb = NULL;
GLuint value;
struct i915_hw_state *state = &i915->state;
uint32_t draw_x, draw_y, draw_offset;
@@ -609,6 +611,13 @@ i915_set_draw_region(struct intel_context *intel,
}
state->Buffer[I915_DESTREG_DV1] = value;
+ drb = ctx->DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
+ if (!drb)
+ drb = ctx->DrawBuffer->Attachment[BUFFER_STENCIL].Renderbuffer;
+
+ if (drb)
+ idrb = intel_renderbuffer(drb);
+
/* We set up the drawing rectangle to be offset into the color
* region's location in the miptree. If it doesn't match with
* depth's offsets, we can't render to it.
@@ -620,16 +629,15 @@ i915_set_draw_region(struct intel_context *intel,
* can't do in general due to tiling)
*/
FALLBACK(intel, I915_FALLBACK_DRAW_OFFSET,
- (depth_region && color_regions[0]) &&
- (depth_region->draw_x != color_regions[0]->draw_x ||
- depth_region->draw_y != color_regions[0]->draw_y));
+ idrb && irb && (idrb->draw_x != irb->draw_x ||
+ idrb->draw_y != irb->draw_y));
- if (color_regions[0]) {
- draw_x = color_regions[0]->draw_x;
- draw_y = color_regions[0]->draw_y;
- } else if (depth_region) {
- draw_x = depth_region->draw_x;
- draw_y = depth_region->draw_y;
+ if (irb) {
+ draw_x = irb->draw_x;
+ draw_y = irb->draw_y;
+ } else if (idrb) {
+ draw_x = idrb->draw_x;
+ draw_y = idrb->draw_y;
} else {
draw_x = 0;
draw_y = 0;
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 3d0983e6879..2b5ec8ac677 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -322,7 +322,7 @@ static void emit_depthbuffer(struct brw_context *brw)
return;
}
- offset = intel_region_tile_offsets(region, &tile_x, &tile_y);
+ offset = intel_renderbuffer_tile_offsets(depth_irb, &tile_x, &tile_y);
assert(intel->gen < 6 || region->tiling == I915_TILING_Y);
assert(!hiz_region || region->tiling == I915_TILING_Y);
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index f560bc3fa66..ac8005dc6c2 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -477,7 +477,7 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
format << BRW_SURFACE_FORMAT_SHIFT);
/* reloc */
- surf[1] = (intel_region_tile_offsets(region, &tile_x, &tile_y) +
+ surf[1] = (intel_renderbuffer_tile_offsets(irb, &tile_x, &tile_y) +
region->buffer->offset);
surf[2] = ((rb->Width - 1) << BRW_SURFACE_WIDTH_SHIFT |
diff --git a/src/mesa/drivers/dri/i965/gen7_misc_state.c b/src/mesa/drivers/dri/i965/gen7_misc_state.c
index dd0ccd27193..7544f961da9 100644
--- a/src/mesa/drivers/dri/i965/gen7_misc_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_misc_state.c
@@ -113,7 +113,7 @@ static void emit_depthbuffer(struct brw_context *brw)
struct intel_region *region = drb->region;
uint32_t tile_x, tile_y, offset;
- offset = intel_region_tile_offsets(region, &tile_x, &tile_y);
+ offset = intel_renderbuffer_tile_offsets(drb, &tile_x, &tile_y);
assert(region->tiling == I915_TILING_Y);
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index 00b562f2176..9994b67bfc5 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -273,7 +273,7 @@ gen7_update_renderbuffer_surface(struct brw_context *brw,
surf->ss0.surface_type = BRW_SURFACE_2D;
/* reloc */
- surf->ss1.base_addr = intel_region_tile_offsets(region, &tile_x, &tile_y);
+ surf->ss1.base_addr = intel_renderbuffer_tile_offsets(irb, &tile_x, &tile_y);
surf->ss1.base_addr += region->buffer->offset; /* reloc */
assert(brw->has_surface_tile_offset);
diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c
index 5aac1f6fa24..30be1b9382f 100644
--- a/src/mesa/drivers/dri/intel/intel_blit.c
+++ b/src/mesa/drivers/dri/intel/intel_blit.c
@@ -280,10 +280,10 @@ intelClearWithBlit(struct gl_context *ctx, GLbitfield mask)
write_buffer = intel_region_buffer(intel, irb->region,
all ? INTEL_WRITE_FULL :
INTEL_WRITE_PART);
- x1 = cx + irb->region->draw_x;
- y1 = cy + irb->region->draw_y;
- x2 = cx + cw + irb->region->draw_x;
- y2 = cy + ch + irb->region->draw_y;
+ x1 = cx + irb->draw_x;
+ y1 = cy + irb->draw_y;
+ x2 = cx + cw + irb->draw_x;
+ y2 = cy + ch + irb->draw_y;
pitch = irb->region->pitch;
cpp = irb->region->cpp;
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 65f35e1b487..3e7e0b9a248 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -513,8 +513,9 @@ intel_wrap_texture(struct gl_context * ctx, struct gl_texture_image *texImage)
}
static void
-intel_set_draw_offset_for_image(struct intel_texture_image *intel_image,
- int zoffset)
+intel_renderbuffer_set_draw_offset(struct intel_renderbuffer *irb,
+ struct intel_texture_image *intel_image,
+ int zoffset)
{
struct intel_mipmap_tree *mt = intel_image->mt;
unsigned int dst_x, dst_y;
@@ -526,9 +527,45 @@ intel_set_draw_offset_for_image(struct intel_texture_image *intel_image,
zoffset,
&dst_x, &dst_y);
- mt->region->draw_offset = (dst_y * mt->region->pitch + dst_x) * mt->cpp;
- mt->region->draw_x = dst_x;
- mt->region->draw_y = dst_y;
+ irb->draw_offset = (dst_y * mt->region->pitch + dst_x) * mt->cpp;
+ irb->draw_x = dst_x;
+ irb->draw_y = dst_y;
+}
+
+/**
+ * Rendering to tiled buffers requires that the base address of the
+ * buffer be aligned to a page boundary. We generally render to
+ * textures by pointing the surface at the mipmap image level, which
+ * may not be aligned to a tile boundary.
+ *
+ * This function returns an appropriately-aligned base offset
+ * according to the tiling restrictions, plus any required x/y offset
+ * from there.
+ */
+uint32_t
+intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb,
+ uint32_t *tile_x,
+ uint32_t *tile_y)
+{
+ int cpp = irb->region->cpp;
+ uint32_t pitch = irb->region->pitch * cpp;
+
+ if (irb->region->tiling == I915_TILING_NONE) {
+ *tile_x = 0;
+ *tile_y = 0;
+ return irb->draw_x * cpp + irb->draw_y * pitch;
+ } else if (irb->region->tiling == I915_TILING_X) {
+ *tile_x = irb->draw_x % (512 / cpp);
+ *tile_y = irb->draw_y % 8;
+ return ((irb->draw_y / 8) * (8 * pitch) +
+ (irb->draw_x - *tile_x) / (512 / cpp) * 4096);
+ } else {
+ assert(irb->region->tiling == I915_TILING_Y);
+ *tile_x = irb->draw_x % (128 / cpp);
+ *tile_y = irb->draw_y % 32;
+ return ((irb->draw_y / 32) * (32 * pitch) +
+ (irb->draw_x - *tile_x) / (128 / cpp) * 4096);
+ }
}
/**
@@ -584,12 +621,12 @@ intel_render_texture(struct gl_context * ctx,
att->Texture->Name, newImage->Width, newImage->Height,
irb->Base.RefCount);
- intel_set_draw_offset_for_image(intel_image, att->Zoffset);
+ intel_renderbuffer_set_draw_offset(irb, intel_image, att->Zoffset);
intel_image->used_as_render_target = GL_TRUE;
#ifndef I915
if (!brw_context(ctx)->has_surface_tile_offset &&
- (intel_image->mt->region->draw_offset & 4095) != 0) {
+ (irb->draw_offset & 4095) != 0) {
/* Original gen4 hardware couldn't draw to a non-tile-aligned
* destination in a miptree unless you actually setup your
* renderbuffer as a miptree and used the fragile
@@ -625,7 +662,7 @@ intel_render_texture(struct gl_context * ctx,
intel_miptree_release(intel, &intel_image->mt);
intel_image->mt = new_mt;
- intel_set_draw_offset_for_image(intel_image, att->Zoffset);
+ intel_renderbuffer_set_draw_offset(irb, intel_image, att->Zoffset);
intel_region_release(&irb->region);
intel_region_reference(&irb->region, intel_image->mt->region);
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.h b/src/mesa/drivers/dri/intel/intel_fbo.h
index e9929b095ff..509f5887225 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.h
+++ b/src/mesa/drivers/dri/intel/intel_fbo.h
@@ -44,6 +44,9 @@ struct intel_renderbuffer
/** Only used by depth renderbuffers for which HiZ is enabled. */
struct intel_region *hiz_region;
+
+ GLuint draw_offset; /**< Offset of drawing address within the region */
+ GLuint draw_x, draw_y; /**< Offset of drawing within the region */
};
@@ -130,6 +133,10 @@ intel_fbo_init(struct intel_context *intel);
extern void
intel_flip_renderbuffers(struct gl_framebuffer *fb);
+uint32_t
+intel_renderbuffer_tile_offsets(struct intel_renderbuffer *irb,
+ uint32_t *tile_x,
+ uint32_t *tile_y);
static INLINE struct intel_region *
intel_get_rb_region(struct gl_framebuffer *fb, GLuint attIndex)
@@ -141,5 +148,4 @@ intel_get_rb_region(struct gl_framebuffer *fb, GLuint attIndex)
return NULL;
}
-
#endif /* INTEL_FBO_H */
diff --git a/src/mesa/drivers/dri/intel/intel_regions.c b/src/mesa/drivers/dri/intel/intel_regions.c
index 0253bbc2aa0..a4da1ce4fa5 100644
--- a/src/mesa/drivers/dri/intel/intel_regions.c
+++ b/src/mesa/drivers/dri/intel/intel_regions.c
@@ -524,38 +524,3 @@ intel_region_buffer(struct intel_context *intel,
return region->buffer;
}
-
-/**
- * Rendering to tiled buffers requires that the base address of the
- * buffer be aligned to a page boundary. We generally render to
- * textures by pointing the surface at the mipmap image level, which
- * may not be aligned to a tile boundary.
- *
- * This function returns an appropriately-aligned base offset
- * according to the tiling restrictions, plus any required x/y offset
- * from there.
- */
-uint32_t
-intel_region_tile_offsets(struct intel_region *region,
- uint32_t *tile_x,
- uint32_t *tile_y)
-{
- uint32_t pitch = region->pitch * region->cpp;
-
- if (region->tiling == I915_TILING_NONE) {
- *tile_x = 0;
- *tile_y = 0;
- return region->draw_x * region->cpp + region->draw_y * pitch;
- } else if (region->tiling == I915_TILING_X) {
- *tile_x = region->draw_x % (512 / region->cpp);
- *tile_y = region->draw_y % 8;
- return ((region->draw_y / 8) * (8 * pitch) +
- (region->draw_x - *tile_x) / (512 / region->cpp) * 4096);
- } else {
- assert(region->tiling == I915_TILING_Y);
- *tile_x = region->draw_x % (128 / region->cpp);
- *tile_y = region->draw_y % 32;
- return ((region->draw_y / 32) * (32 * pitch) +
- (region->draw_x - *tile_x) / (128 / region->cpp) * 4096);
- }
-}
diff --git a/src/mesa/drivers/dri/intel/intel_regions.h b/src/mesa/drivers/dri/intel/intel_regions.h
index a8a300d863c..91f7121436e 100644
--- a/src/mesa/drivers/dri/intel/intel_regions.h
+++ b/src/mesa/drivers/dri/intel/intel_regions.h
@@ -62,9 +62,6 @@ struct intel_region
GLubyte *map; /**< only non-NULL when region is actually mapped */
GLuint map_refcount; /**< Reference count for mapping */
- GLuint draw_offset; /**< Offset of drawing address within the region */
- GLuint draw_x, draw_y; /**< Offset of drawing within the region */
-
uint32_t tiling; /**< Which tiling mode the region is in */
struct intel_buffer_object *pbo; /* zero-copy uploads */
@@ -142,10 +139,6 @@ drm_intel_bo *intel_region_buffer(struct intel_context *intel,
struct intel_region *region,
GLuint flag);
-uint32_t intel_region_tile_offsets(struct intel_region *region,
- uint32_t *tile_x,
- uint32_t *tile_y);
-
void _mesa_copy_rect(GLubyte * dst,
GLuint cpp,
GLuint dst_pitch,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_copy.c b/src/mesa/drivers/dri/intel/intel_tex_copy.c
index 62d4169acd1..eda07a43dee 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_copy.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_copy.c
@@ -152,7 +152,7 @@ intel_copy_texsubimage(struct intel_context *intel,
dst_bo,
0,
intelImage->mt->region->tiling,
- irb->region->draw_x + x, irb->region->draw_y + y,
+ irb->draw_x + x, irb->draw_y + y,
image_x + dstx, image_y + dsty,
width, height,
GL_COPY)) {
From d29117752f10d9bcb61e7b26064a872017a64ebe Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Tue, 31 May 2011 15:07:56 -0700
Subject: [PATCH 048/406] intel: Clean up intel_render_texture with a rename
and a helper function.
The "newImage" isn't particularly new -- it might be the same texture
that was attached to the same attachment point before. This function
also gets called when just rebinding back to an FBO with a texture
attachment.
Reviewed-by: Kenneth Graunke
Reviewed-by: Chad Versace
---
src/mesa/drivers/dri/intel/intel_fbo.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 3e7e0b9a248..591df410201 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -579,16 +579,12 @@ intel_render_texture(struct gl_context * ctx,
struct gl_framebuffer *fb,
struct gl_renderbuffer_attachment *att)
{
- struct gl_texture_image *newImage
- = att->Texture->Image[att->CubeMapFace][att->TextureLevel];
+ struct gl_texture_image *image = _mesa_get_attachment_teximage(att);
struct intel_renderbuffer *irb = intel_renderbuffer(att->Renderbuffer);
- struct intel_texture_image *intel_image;
+ struct intel_texture_image *intel_image = intel_texture_image(image);
(void) fb;
- ASSERT(newImage);
-
- intel_image = intel_texture_image(newImage);
if (!intel_image->mt) {
/* Fallback on drawing to a texture that doesn't have a miptree
* (has a border, width/height 0, etc.)
@@ -598,7 +594,7 @@ intel_render_texture(struct gl_context * ctx,
return;
}
else if (!irb) {
- irb = intel_wrap_texture(ctx, newImage);
+ irb = intel_wrap_texture(ctx, image);
if (irb) {
/* bind the wrapper to the attachment point */
_mesa_reference_renderbuffer(&att->Renderbuffer, &irb->Base);
@@ -610,7 +606,7 @@ intel_render_texture(struct gl_context * ctx,
}
}
- if (!intel_update_wrapper(ctx, irb, newImage)) {
+ if (!intel_update_wrapper(ctx, irb, image)) {
_mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
_swrast_render_texture(ctx, fb, att);
return;
@@ -618,7 +614,7 @@ intel_render_texture(struct gl_context * ctx,
DBG("Begin render texture tid %lx tex=%u w=%d h=%d refcount=%d\n",
_glthread_GetID(),
- att->Texture->Name, newImage->Width, newImage->Height,
+ att->Texture->Name, image->Width, image->Height,
irb->Base.RefCount);
intel_renderbuffer_set_draw_offset(irb, intel_image, att->Zoffset);
@@ -644,7 +640,7 @@ intel_render_texture(struct gl_context * ctx,
texel_bytes = _mesa_get_format_bytes(intel_image->base.TexFormat);
- new_mt = intel_miptree_create(intel, newImage->TexObject->Target,
+ new_mt = intel_miptree_create(intel, image->TexObject->Target,
intel_image->base._BaseFormat,
intel_image->base.InternalFormat,
intel_image->level,
From fb60e2061b1f2f58a65e908e864704c234b300b0 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Tue, 31 May 2011 15:33:36 -0700
Subject: [PATCH 049/406] intel: Use rb->Data and rb->RowStride to handle spans
Y flipping.
This is already pointing at 0 or Height - 1 and with an appropriate
pitch, so no need to recompute those values per customization of the
spans code. Cuts 3 out of 21kb of the compiled size.
Reviewed-by: Chad Versace
---
src/mesa/drivers/dri/intel/intel_span.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c
index a4a1d6bd6eb..aa83b3c128a 100644
--- a/src/mesa/drivers/dri/intel/intel_span.c
+++ b/src/mesa/drivers/dri/intel/intel_span.c
@@ -55,21 +55,18 @@ intel_set_span_functions(struct intel_context *intel,
#define LOCAL_VARS \
struct intel_renderbuffer *irb = intel_renderbuffer(rb); \
- const GLint yScale = rb->Name ? 1 : -1; \
- const GLint yBias = rb->Name ? 0 : rb->Height - 1; \
int minx = 0, miny = 0; \
int maxx = rb->Width; \
int maxy = rb->Height; \
- int pitch = irb->region->pitch * irb->region->cpp; \
- void *buf = irb->region->buffer->virtual; \
+ int pitch = rb->RowStride * irb->region->cpp; \
+ void *buf = rb->Data; \
GLuint p; \
- (void) p; \
- (void)buf; (void)pitch; /* unused for non-gttmap. */ \
+ (void) p;
#define HW_CLIPLOOP()
#define HW_ENDCLIPLOOP()
-#define Y_FLIP(_y) ((_y) * yScale + yBias)
+#define Y_FLIP(_y) (_y)
#define HW_LOCK()
From ef0d548838c3da476596ee4dc983cc02b4f67b7b Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Tue, 31 May 2011 15:38:17 -0700
Subject: [PATCH 050/406] intel: Do the drawable x/y offset in
intel_renderbuffer_map() for spans.
We were mapping the renderbuffer once, then walking over all the
buffers to map just the texture ones using the other texture mapping
function that handled the x/y offset to the image in the region. But
then we would go and overwrite *those* mappings with the original
mappings for depth/stencil, which was wrong.
Instead, just walk over the attachments once and map the attachments.
Wasn't that easy?
---
src/mesa/drivers/dri/intel/intel_span.c | 93 ++++++++-----------------
1 file changed, 28 insertions(+), 65 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c
index aa83b3c128a..9343f40eef0 100644
--- a/src/mesa/drivers/dri/intel/intel_span.c
+++ b/src/mesa/drivers/dri/intel/intel_span.c
@@ -185,10 +185,16 @@ intel_renderbuffer_map(struct intel_context *intel, struct gl_renderbuffer *rb)
rb->Data = irb->region->buffer->virtual;
rb->RowStride = irb->region->pitch;
- /* Flip orientation if it's the window system buffer */
if (!rb->Name) {
+ /* Flip orientation of the window system buffer */
rb->Data += rb->RowStride * (irb->region->height - 1) * irb->region->cpp;
rb->RowStride = -rb->RowStride;
+ } else {
+ /* Adjust the base pointer of a texture image drawbuffer to the image
+ * within the miptree region (all else has draw_x/y = 0).
+ */
+ rb->Data += irb->draw_x * irb->region->cpp;
+ rb->Data += irb->draw_y * rb->RowStride * irb->region->cpp;
}
intel_set_span_functions(intel, rb);
@@ -211,73 +217,28 @@ intel_renderbuffer_unmap(struct intel_context *intel,
rb->RowStride = 0;
}
-/**
- * Map or unmap all the renderbuffers which we may need during
- * software rendering.
- * XXX in the future, we could probably convey extra information to
- * reduce the number of mappings needed. I.e. if doing a glReadPixels
- * from the depth buffer, we really only need one mapping.
- *
- * XXX Rewrite this function someday.
- * We can probably just loop over all the renderbuffer attachments,
- * map/unmap all of them, and not worry about the _ColorDrawBuffers
- * _ColorReadBuffer, _DepthBuffer or _StencilBuffer fields.
- */
static void
-intel_map_unmap_framebuffer(struct intel_context *intel,
- struct gl_framebuffer *fb,
- GLboolean map)
+intel_framebuffer_map(struct intel_context *intel, struct gl_framebuffer *fb)
{
- GLuint i;
+ int i;
- /* color draw buffers */
- for (i = 0; i < fb->_NumColorDrawBuffers; i++) {
- if (map)
- intel_renderbuffer_map(intel, fb->_ColorDrawBuffers[i]);
- else
- intel_renderbuffer_unmap(intel, fb->_ColorDrawBuffers[i]);
- }
-
- /* color read buffer */
- if (map)
- intel_renderbuffer_map(intel, fb->_ColorReadBuffer);
- else
- intel_renderbuffer_unmap(intel, fb->_ColorReadBuffer);
-
- /* check for render to textures */
for (i = 0; i < BUFFER_COUNT; i++) {
- struct gl_renderbuffer_attachment *att =
- fb->Attachment + i;
- struct gl_texture_object *tex = att->Texture;
- if (tex) {
- /* render to texture */
- ASSERT(att->Renderbuffer);
- if (map)
- intel_tex_map_images(intel, intel_texture_object(tex));
- else
- intel_tex_unmap_images(intel, intel_texture_object(tex));
- }
- }
-
- /* depth buffer (Note wrapper!) */
- if (fb->_DepthBuffer) {
- if (map)
- intel_renderbuffer_map(intel, fb->_DepthBuffer->Wrapped);
- else
- intel_renderbuffer_unmap(intel, fb->_DepthBuffer->Wrapped);
- }
-
- /* stencil buffer (Note wrapper!) */
- if (fb->_StencilBuffer) {
- if (map)
- intel_renderbuffer_map(intel, fb->_StencilBuffer->Wrapped);
- else
- intel_renderbuffer_unmap(intel, fb->_StencilBuffer->Wrapped);
+ intel_renderbuffer_map(intel, fb->Attachment[i].Renderbuffer);
}
intel_check_front_buffer_rendering(intel);
}
+static void
+intel_framebuffer_unmap(struct intel_context *intel, struct gl_framebuffer *fb)
+{
+ int i;
+
+ for (i = 0; i < BUFFER_COUNT; i++) {
+ intel_renderbuffer_unmap(intel, fb->Attachment[i].Renderbuffer);
+ }
+}
+
/**
* Prepare for software rendering. Map current read/draw framebuffers'
* renderbuffes and all currently bound texture objects.
@@ -302,9 +263,10 @@ intelSpanRenderStart(struct gl_context * ctx)
}
}
- intel_map_unmap_framebuffer(intel, ctx->DrawBuffer, GL_TRUE);
- if (ctx->ReadBuffer != ctx->DrawBuffer)
- intel_map_unmap_framebuffer(intel, ctx->ReadBuffer, GL_TRUE);
+ intel_framebuffer_map(intel, ctx->DrawBuffer);
+ if (ctx->ReadBuffer != ctx->DrawBuffer) {
+ intel_framebuffer_map(intel, ctx->ReadBuffer);
+ }
}
/**
@@ -326,9 +288,10 @@ intelSpanRenderFinish(struct gl_context * ctx)
}
}
- intel_map_unmap_framebuffer(intel, ctx->DrawBuffer, GL_FALSE);
- if (ctx->ReadBuffer != ctx->DrawBuffer)
- intel_map_unmap_framebuffer(intel, ctx->ReadBuffer, GL_FALSE);
+ intel_framebuffer_unmap(intel, ctx->DrawBuffer);
+ if (ctx->ReadBuffer != ctx->DrawBuffer) {
+ intel_framebuffer_unmap(intel, ctx->ReadBuffer);
+ }
}
From df46eb8ec082e020ae7e45d3f584cb1d3dd55653 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 8 Jun 2011 12:06:43 -0700
Subject: [PATCH 051/406] intel: Fix mipmap and format handling of blit
glCopyPixels().
Fixes fbo-mipmap-copypix.
---
src/mesa/drivers/dri/intel/intel_pixel_copy.c | 100 ++++++++++--------
1 file changed, 54 insertions(+), 46 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_pixel_copy.c b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
index e83f1bfab94..88258d5b42d 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_copy.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_copy.c
@@ -40,37 +40,6 @@
#define FILE_DEBUG_FLAG DEBUG_PIXEL
-static struct intel_region *
-copypix_src_region(struct intel_context *intel, GLenum type)
-{
- struct intel_renderbuffer *depth;
-
- depth = (struct intel_renderbuffer *)
- &intel->ctx.DrawBuffer->Attachment[BUFFER_DEPTH].Renderbuffer;
-
- switch (type) {
- case GL_COLOR:
- return intel_readbuf_region(intel);
- case GL_DEPTH:
- /* Don't think this is really possible execpt at 16bpp, when we
- * have no stencil. */
- if (depth && depth->region->cpp == 2)
- return depth->region;
- case GL_STENCIL:
- /* Don't think this is really possible. */
- break;
- case GL_DEPTH_STENCIL_EXT:
- /* Does it matter whether it is stencil/depth or depth/stencil?
- */
- return depth->region;
- default:
- break;
- }
-
- return NULL;
-}
-
-
/**
* Check if any fragment operations are in effect which might effect
* glCopyPixels. Differs from intel_check_blit_fragment_ops in that
@@ -109,8 +78,6 @@ do_blit_copypixels(struct gl_context * ctx,
GLint dstx, GLint dsty, GLenum type)
{
struct intel_context *intel = intel_context(ctx);
- struct intel_region *dst;
- struct intel_region *src;
struct gl_framebuffer *fb = ctx->DrawBuffer;
struct gl_framebuffer *read_fb = ctx->ReadBuffer;
GLint orig_dstx;
@@ -118,15 +85,57 @@ do_blit_copypixels(struct gl_context * ctx,
GLint orig_srcx;
GLint orig_srcy;
GLboolean flip = GL_FALSE;
-
- if (type == GL_DEPTH || type == GL_STENCIL) {
- fallback_debug("glCopyPixels() fallback: GL_DEPTH || GL_STENCIL\n");
- return GL_FALSE;
- }
+ struct intel_renderbuffer *draw_irb = NULL;
+ struct intel_renderbuffer *read_irb = NULL;
/* Update draw buffer bounds */
_mesa_update_state(ctx);
+ switch (type) {
+ case GL_COLOR:
+ if (fb->_NumColorDrawBuffers != 1) {
+ fallback_debug("glCopyPixels() fallback: MRT\n");
+ return GL_FALSE;
+ }
+
+ draw_irb = intel_renderbuffer(fb->_ColorDrawBuffers[0]);
+ read_irb = intel_renderbuffer(read_fb->_ColorReadBuffer);
+ break;
+ case GL_DEPTH_STENCIL_EXT:
+ draw_irb = intel_renderbuffer(fb->Attachment[BUFFER_DEPTH].Renderbuffer);
+ read_irb =
+ intel_renderbuffer(read_fb->Attachment[BUFFER_DEPTH].Renderbuffer);
+ break;
+ case GL_DEPTH:
+ fallback_debug("glCopyPixels() fallback: GL_DEPTH\n");
+ return GL_FALSE;
+ case GL_STENCIL:
+ fallback_debug("glCopyPixels() fallback: GL_STENCIL\n");
+ return GL_FALSE;
+ default:
+ fallback_debug("glCopyPixels(): Unknown type\n");
+ return GL_FALSE;
+ }
+
+ if (!draw_irb) {
+ fallback_debug("glCopyPixels() fallback: missing draw buffer\n");
+ return GL_FALSE;
+ }
+
+ if (!read_irb) {
+ fallback_debug("glCopyPixels() fallback: missing read buffer\n");
+ return GL_FALSE;
+ }
+
+ if (draw_irb->Base.Format != read_irb->Base.Format &&
+ !(draw_irb->Base.Format == MESA_FORMAT_XRGB8888 &&
+ read_irb->Base.Format == MESA_FORMAT_ARGB8888)) {
+ fallback_debug("glCopyPixels() fallback: mismatched formats (%s -> %s\n",
+ _mesa_get_format_name(read_irb->Base.Format),
+ _mesa_get_format_name(draw_irb->Base.Format));
+ return GL_FALSE;
+ }
+
/* Copypixels can be more than a straight copy. Ensure all the
* extra operations are disabled:
*/
@@ -136,12 +145,6 @@ do_blit_copypixels(struct gl_context * ctx,
intel_prepare_render(intel);
- dst = intel_drawbuf_region(intel);
- src = copypix_src_region(intel, type);
-
- if (!src || !dst)
- return GL_FALSE;
-
intel_flush(&intel->ctx);
/* Clip to destination buffer. */
@@ -179,9 +182,14 @@ do_blit_copypixels(struct gl_context * ctx,
flip = !flip;
}
+ srcx += read_irb->draw_x;
+ srcy += read_irb->draw_y;
+ dstx += draw_irb->draw_x;
+ dsty += draw_irb->draw_y;
+
if (!intel_region_copy(intel,
- dst, 0, dstx, dsty,
- src, 0, srcx, srcy,
+ draw_irb->region, 0, dstx, dsty,
+ read_irb->region, 0, srcx, srcy,
width, height, flip,
ctx->Color.ColorLogicOpEnabled ?
ctx->Color.LogicOp : GL_COPY)) {
From 296e6b9038131cd246226881208ffebe3c2683c3 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 8 Jun 2011 13:00:51 -0700
Subject: [PATCH 052/406] meta: Fix glCopyTexImage(GL_LUMINANCE) from
non-GL_LUMINANCE source.
glReadPixels() was performing RGB -> L conversion differently from the
glTexImage() style conversion appropriate for glCopyTexImage().
Fixes gles2conform copy_texture.
---
src/mesa/drivers/common/meta.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 979926a7e8f..0e58aeca3f5 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2691,12 +2691,26 @@ copy_tex_image(struct gl_context *ctx, GLuint dims, GLenum target, GLint level,
GLenum format, type;
GLint bpp;
void *buf;
+ struct gl_renderbuffer *read_rb = ctx->ReadBuffer->_ColorReadBuffer;
texObj = _mesa_get_current_tex_object(ctx, target);
texImage = _mesa_get_tex_image(ctx, texObj, target, level);
/* Choose format/type for temporary image buffer */
format = _mesa_base_tex_format(ctx, internalFormat);
+
+ if (format == GL_LUMINANCE &&
+ _mesa_get_format_base_format(read_rb->Format) != GL_LUMINANCE) {
+ /* The glReadPixels() path will convert RGB to luminance by
+ * summing R+G+B. glCopyTexImage() is supposed to behave as
+ * glCopyPixels, which doesn't do that change, and instead
+ * leaves it up to glTexImage which converts RGB to luminance by
+ * just taking the R channel. To avoid glReadPixels() trashing
+ * our data, use RGBA for our temporary image.
+ */
+ format = GL_RGBA;
+ }
+
type = get_temp_image_type(ctx, format);
bpp = _mesa_bytes_per_pixel(format, type);
if (bpp <= 0) {
From 2743851c1a73305dd83e42b99edc49906d9c0a51 Mon Sep 17 00:00:00 2001
From: Dave Airlie
Date: Tue, 7 Jun 2011 15:41:30 +1000
Subject: [PATCH 053/406] r600g: move depth texture flushing out of line.
this needs a piglit run.
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/evergreen_state.c | 17 +++++++++++++++--
src/gallium/drivers/r600/r600.h | 1 +
src/gallium/drivers/r600/r600_blit.c | 2 --
src/gallium/drivers/r600/r600_pipe.h | 1 +
src/gallium/drivers/r600/r600_state.c | 17 +++++++++++++++--
src/gallium/drivers/r600/r600_state_common.c | 5 ++++-
6 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 9ebfe54c76d..f86e4d4e3af 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -482,19 +482,27 @@ static void evergreen_set_ps_sampler_view(struct pipe_context *ctx, unsigned cou
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
struct r600_pipe_sampler_view **resource = (struct r600_pipe_sampler_view **)views;
int i;
+ int has_depth = 0;
for (i = 0; i < count; i++) {
if (&rctx->ps_samplers.views[i]->base != views[i]) {
- if (resource[i])
+ if (resource[i]) {
+ if (((struct r600_resource_texture *)resource[i]->base.texture)->depth)
+ has_depth = 1;
evergreen_context_pipe_state_set_ps_resource(&rctx->ctx, &resource[i]->state,
i + R600_MAX_CONST_BUFFERS);
- else
+ } else
evergreen_context_pipe_state_set_ps_resource(&rctx->ctx, NULL,
i + R600_MAX_CONST_BUFFERS);
pipe_sampler_view_reference(
(struct pipe_sampler_view **)&rctx->ps_samplers.views[i],
views[i]);
+ } else {
+ if (resource[i]) {
+ if (((struct r600_resource_texture *)resource[i]->base.texture)->depth)
+ has_depth = 1;
+ }
}
}
for (i = count; i < NUM_TEX_UNITS; i++) {
@@ -504,6 +512,7 @@ static void evergreen_set_ps_sampler_view(struct pipe_context *ctx, unsigned cou
pipe_sampler_view_reference((struct pipe_sampler_view **)&rctx->ps_samplers.views[i], NULL);
}
}
+ rctx->have_depth_texture = has_depth;
rctx->ps_samplers.n_views = count;
}
@@ -689,6 +698,9 @@ static void evergreen_cb(struct r600_pipe_context *rctx, struct r600_pipe_state
surf = (struct r600_surface *)state->cbufs[cb];
rtex = (struct r600_resource_texture*)state->cbufs[cb]->texture;
+ if (rtex->depth)
+ rctx->have_depth_fb = TRUE;
+
if (rtex->depth && !rtex->is_flushing_texture) {
r600_texture_depth_flush(&rctx->context, state->cbufs[cb]->texture, TRUE);
rtex = rtex->flushed_depth_texture;
@@ -870,6 +882,7 @@ static void evergreen_set_framebuffer_state(struct pipe_context *ctx,
util_copy_framebuffer_state(&rctx->framebuffer, state);
/* build states */
+ rctx->have_depth_fb = 0;
for (int i = 0; i < state->nr_cbufs; i++) {
evergreen_cb(rctx, rstate, state, i);
}
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h
index bf7138d9e4e..225c17c2540 100644
--- a/src/gallium/drivers/r600/r600.h
+++ b/src/gallium/drivers/r600/r600.h
@@ -261,6 +261,7 @@ struct r600_context {
struct r600_range vs_resources;
struct r600_range fs_resources;
int num_ps_resources, num_vs_resources, num_fs_resources;
+ boolean have_depth_texture, have_depth_fb;
};
struct r600_draw {
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 151f48a8bf8..e9f35c10ac1 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -121,8 +121,6 @@ void r600_flush_depth_textures(struct r600_pipe_context *rctx)
{
unsigned int i;
- if (rctx->blit) return;
-
/* FIXME: This handles fragment shader textures only. */
for (i = 0; i < rctx->ps_samplers.n_views; ++i) {
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index 332f932013a..5e534ca905c 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -204,6 +204,7 @@ struct r600_pipe_context {
struct u_vbuf_mgr *vbuf_mgr;
struct util_slab_mempool pool_transfers;
boolean blit;
+ boolean have_depth_texture, have_depth_fb;
unsigned default_ps_gprs, default_vs_gprs;
};
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 98f5c511f5b..3b6e2dc99a5 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -518,13 +518,16 @@ static void r600_set_ps_sampler_view(struct pipe_context *ctx, unsigned count,
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
struct r600_pipe_sampler_view **resource = (struct r600_pipe_sampler_view **)views;
int i;
+ int has_depth = 0;
for (i = 0; i < count; i++) {
if (&rctx->ps_samplers.views[i]->base != views[i]) {
- if (resource[i])
+ if (resource[i]) {
+ if (((struct r600_resource_texture *)resource[i]->base.texture)->depth)
+ has_depth = 1;
r600_context_pipe_state_set_ps_resource(&rctx->ctx, &resource[i]->state,
i + R600_MAX_CONST_BUFFERS);
- else
+ } else
r600_context_pipe_state_set_ps_resource(&rctx->ctx, NULL,
i + R600_MAX_CONST_BUFFERS);
@@ -532,6 +535,11 @@ static void r600_set_ps_sampler_view(struct pipe_context *ctx, unsigned count,
(struct pipe_sampler_view **)&rctx->ps_samplers.views[i],
views[i]);
+ } else {
+ if (resource[i]) {
+ if (((struct r600_resource_texture *)resource[i]->base.texture)->depth)
+ has_depth = 1;
+ }
}
}
for (i = count; i < NUM_TEX_UNITS; i++) {
@@ -541,6 +549,7 @@ static void r600_set_ps_sampler_view(struct pipe_context *ctx, unsigned count,
pipe_sampler_view_reference((struct pipe_sampler_view **)&rctx->ps_samplers.views[i], NULL);
}
}
+ rctx->have_depth_texture = has_depth;
rctx->ps_samplers.n_views = count;
}
@@ -724,6 +733,9 @@ static void r600_cb(struct r600_pipe_context *rctx, struct r600_pipe_state *rsta
surf = (struct r600_surface *)state->cbufs[cb];
rtex = (struct r600_resource_texture*)state->cbufs[cb]->texture;
+ if (rtex->depth)
+ rctx->have_depth_fb = TRUE;
+
if (rtex->depth && !rtex->is_flushing_texture) {
r600_texture_depth_flush(&rctx->context, state->cbufs[cb]->texture, TRUE);
rtex = rtex->flushed_depth_texture;
@@ -886,6 +898,7 @@ static void r600_set_framebuffer_state(struct pipe_context *ctx,
util_copy_framebuffer_state(&rctx->framebuffer, state);
/* build states */
+ rctx->have_depth_fb = 0;
for (int i = 0; i < state->nr_cbufs; i++) {
r600_cb(rctx, rstate, state, i);
}
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 1eb9389bade..d58c1f0656c 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -530,7 +530,10 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
struct r600_drawl draw = {};
unsigned prim;
- r600_flush_depth_textures(rctx);
+ if (!rctx->blit) {
+ if (rctx->have_depth_fb || rctx->have_depth_texture)
+ r600_flush_depth_textures(rctx);
+ }
u_vbuf_mgr_draw_begin(rctx->vbuf_mgr, info, NULL, NULL);
r600_vertex_buffer_update(rctx);
From 9346d895e7ff6c1f01b46513694542026ffba5cc Mon Sep 17 00:00:00 2001
From: Vadim Girlin
Date: Mon, 13 Jun 2011 05:43:47 +0400
Subject: [PATCH 054/406] r600g: skip SPI setup for position and face inputs
fixes fdo bug 38145
Signed-off-by: Vadim Girlin
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 4 ----
src/gallium/drivers/r600/r600_state_common.c | 4 ++++
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index d111caa6449..1b9f66318e1 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -63,10 +63,6 @@ int r600_find_vs_semantic_index(struct r600_shader *vs,
{
struct r600_shader_io *input = &ps->input[id];
- /* position/face doesn't get/need a semantic index */
- if (input->name == TGSI_SEMANTIC_POSITION || input->name == TGSI_SEMANTIC_FACE)
- return 0;
-
for (int i = 0; i < vs->noutput; i++) {
if (input->name == vs->output[i].name &&
input->sid == vs->output[i].sid) {
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index d58c1f0656c..fa0c5cb89d7 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -358,6 +358,10 @@ static void r600_spi_update(struct r600_pipe_context *rctx)
rstate->nregs = 0;
for (i = 0; i < rshader->ninput; i++) {
+ if (rshader->input[i].name == TGSI_SEMANTIC_POSITION ||
+ rshader->input[i].name == TGSI_SEMANTIC_FACE)
+ continue;
+
tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(&rctx->vs_shader->shader, rshader, i));
if (rshader->input[i].name == TGSI_SEMANTIC_COLOR ||
From 63e38bd0f6a1958f174a98e4b06be3fb152048b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 01:23:20 +0200
Subject: [PATCH 055/406] target-helpers: remove copy-pasted function
inline_noop_helper
---
.../target-helpers/inline_debug_helper.h | 8 +++
.../target-helpers/inline_noop_helper.h | 51 -------------------
src/gallium/targets/dri-r600/target.c | 2 +-
3 files changed, 9 insertions(+), 52 deletions(-)
delete mode 100644 src/gallium/auxiliary/target-helpers/inline_noop_helper.h
diff --git a/src/gallium/auxiliary/target-helpers/inline_debug_helper.h b/src/gallium/auxiliary/target-helpers/inline_debug_helper.h
index 0433da6141d..c6630c40f5c 100644
--- a/src/gallium/auxiliary/target-helpers/inline_debug_helper.h
+++ b/src/gallium/auxiliary/target-helpers/inline_debug_helper.h
@@ -22,6 +22,10 @@
#include "galahad/glhd_public.h"
#endif
+#ifdef GALLIUM_NOOP
+#include "noop/noop_public.h"
+#endif
+
static INLINE struct pipe_screen *
debug_screen_wrap(struct pipe_screen *screen)
{
@@ -38,6 +42,10 @@ debug_screen_wrap(struct pipe_screen *screen)
screen = galahad_screen_create(screen);
#endif
+#if defined(GALLIUM_NOOP)
+ screen = noop_screen_create(screen);
+#endif
+
return screen;
}
diff --git a/src/gallium/auxiliary/target-helpers/inline_noop_helper.h b/src/gallium/auxiliary/target-helpers/inline_noop_helper.h
deleted file mode 100644
index 77c7cfd0c20..00000000000
--- a/src/gallium/auxiliary/target-helpers/inline_noop_helper.h
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef INLINE_DEBUG_HELPER_H
-#define INLINE_DEBUG_HELPER_H
-
-#include "pipe/p_compiler.h"
-#include "util/u_debug.h"
-
-
-/* Helper function to wrap a screen with
- * one or more debug driver: rbug, trace.
- */
-
-#ifdef GALLIUM_TRACE
-#include "trace/tr_public.h"
-#endif
-
-#ifdef GALLIUM_RBUG
-#include "rbug/rbug_public.h"
-#endif
-
-#ifdef GALLIUM_GALAHAD
-#include "galahad/glhd_public.h"
-#endif
-
-#ifdef GALLIUM_NOOP
-#include "noop/noop_public.h"
-#endif
-
-static INLINE struct pipe_screen *
-debug_screen_wrap(struct pipe_screen *screen)
-{
-#if defined(GALLIUM_RBUG)
- screen = rbug_screen_create(screen);
-#endif
-
-#if defined(GALLIUM_TRACE)
- screen = trace_screen_create(screen);
-#endif
-
-#if defined(GALLIUM_GALAHAD)
- screen = galahad_screen_create(screen);
-#endif
-
-#if defined(GALLIUM_NOOP)
- screen = noop_screen_create(screen);
-#endif
-
- return screen;
-}
-
-#endif
diff --git a/src/gallium/targets/dri-r600/target.c b/src/gallium/targets/dri-r600/target.c
index 2fe345402de..8753e2bab17 100644
--- a/src/gallium/targets/dri-r600/target.c
+++ b/src/gallium/targets/dri-r600/target.c
@@ -1,5 +1,5 @@
#include "state_tracker/drm_driver.h"
-#include "target-helpers/inline_noop_helper.h"
+#include "target-helpers/inline_debug_helper.h"
#include "r600/drm/r600_drm_public.h"
#include "r600/r600_public.h"
From be2b9bdcee67c0bc1d81c3fcec548e8981488ee0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 01:00:36 +0200
Subject: [PATCH 056/406] xorg-radeon: rename to xorg-r300
---
configure.ac | 2 +-
.../{xorg-radeon => xorg-r300}/Makefile | 6 +--
.../radeon_target.c => xorg-r300/target.c} | 2 +-
.../radeon_xorg.c => xorg-r300/xorg.c} | 52 +++++++++----------
4 files changed, 31 insertions(+), 31 deletions(-)
rename src/gallium/targets/{xorg-radeon => xorg-r300}/Makefile (90%)
rename src/gallium/targets/{xorg-radeon/radeon_target.c => xorg-r300/target.c} (89%)
rename src/gallium/targets/{xorg-radeon/radeon_xorg.c => xorg-r300/xorg.c} (72%)
diff --git a/configure.ac b/configure.ac
index 1e5f9cec999..3e814415218 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1816,7 +1816,7 @@ if test "x$enable_gallium_r300" = xauto; then
gallium_check_st "radeon/drm" "dri-r300"
elif test "x$enable_gallium_r300" = xyes; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
- gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
+ gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
fi
dnl
diff --git a/src/gallium/targets/xorg-radeon/Makefile b/src/gallium/targets/xorg-r300/Makefile
similarity index 90%
rename from src/gallium/targets/xorg-radeon/Makefile
rename to src/gallium/targets/xorg-r300/Makefile
index 6d5f2c3d16e..195ab817ad0 100644
--- a/src/gallium/targets/xorg-radeon/Makefile
+++ b/src/gallium/targets/xorg-r300/Makefile
@@ -1,11 +1,11 @@
TOP = ../../../..
include $(TOP)/configs/current
-LIBNAME = radeon_drv.so
+LIBNAME = r300_drv.so
C_SOURCES = \
- radeon_target.c \
- radeon_xorg.c
+ target.c \
+ xorg.c
DRIVER_DEFINES = \
-DHAVE_CONFIG_H -DGALLIUM_RBUG -DGALLIUM_TRACE -DGALLIUM_GALAHAD
diff --git a/src/gallium/targets/xorg-radeon/radeon_target.c b/src/gallium/targets/xorg-r300/target.c
similarity index 89%
rename from src/gallium/targets/xorg-radeon/radeon_target.c
rename to src/gallium/targets/xorg-r300/target.c
index b8410efbd89..b48bcad3710 100644
--- a/src/gallium/targets/xorg-radeon/radeon_target.c
+++ b/src/gallium/targets/xorg-r300/target.c
@@ -23,4 +23,4 @@ create_screen(int fd)
return screen;
}
-DRM_DRIVER_DESCRIPTOR("radeon", "radeon", create_screen)
+DRM_DRIVER_DESCRIPTOR("r300", "radeon", create_screen)
diff --git a/src/gallium/targets/xorg-radeon/radeon_xorg.c b/src/gallium/targets/xorg-r300/xorg.c
similarity index 72%
rename from src/gallium/targets/xorg-radeon/radeon_xorg.c
rename to src/gallium/targets/xorg-r300/xorg.c
index 0d6aa567229..933bfb8a07c 100644
--- a/src/gallium/targets/xorg-radeon/radeon_xorg.c
+++ b/src/gallium/targets/xorg-r300/xorg.c
@@ -31,29 +31,29 @@
#include "../../state_trackers/xorg/xorg_winsys.h"
-static void radeon_xorg_identify(int flags);
-static Bool radeon_xorg_pci_probe(DriverPtr driver,
+static void r300_xorg_identify(int flags);
+static Bool r300_xorg_pci_probe(DriverPtr driver,
int entity_num,
struct pci_device *device,
intptr_t match_data);
-static const struct pci_id_match radeon_xorg_device_match[] = {
+static const struct pci_id_match r300_xorg_device_match[] = {
{0x1002, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, 0},
{0, 0, 0},
};
-static SymTabRec radeon_xorg_chipsets[] = {
- {PCI_MATCH_ANY, "ATI/AMD Radeon Graphics Chipset"},
+static SymTabRec r300_xorg_chipsets[] = {
+ {PCI_MATCH_ANY, "ATI R300 Graphics Chipset"},
{-1, NULL}
};
-static PciChipsets radeon_xorg_pci_devices[] = {
+static PciChipsets r300_xorg_pci_devices[] = {
{PCI_MATCH_ANY, PCI_MATCH_ANY, NULL},
{-1, -1, NULL}
};
-static XF86ModuleVersionInfo radeon_xorg_version = {
- "radeong",
+static XF86ModuleVersionInfo r300_xorg_version = {
+ "r300",
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
@@ -69,24 +69,24 @@ static XF86ModuleVersionInfo radeon_xorg_version = {
* Xorg driver exported structures
*/
-_X_EXPORT DriverRec radeong = {
+_X_EXPORT DriverRec r300_driver = {
1,
- "radeong",
- radeon_xorg_identify,
+ "r300",
+ r300_xorg_identify,
NULL,
xorg_tracker_available_options,
NULL,
0,
NULL,
- radeon_xorg_device_match,
- radeon_xorg_pci_probe
+ r300_xorg_device_match,
+ r300_xorg_pci_probe
};
-static MODULESETUPPROTO(radeon_xorg_setup);
+static MODULESETUPPROTO(r300_xorg_setup);
-_X_EXPORT XF86ModuleData radeongModuleData = {
- &radeon_xorg_version,
- radeon_xorg_setup,
+_X_EXPORT XF86ModuleData r300ModuleData = {
+ &r300_xorg_version,
+ r300_xorg_setup,
NULL
};
@@ -95,7 +95,7 @@ _X_EXPORT XF86ModuleData radeongModuleData = {
*/
static pointer
-radeon_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
+r300_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
{
static Bool setupDone = 0;
@@ -103,7 +103,7 @@ radeon_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
*/
if (!setupDone) {
setupDone = 1;
- xf86AddDriver(&radeong, module, HaveDriverFuncs);
+ xf86AddDriver(&r300_driver, module, HaveDriverFuncs);
/*
* The return value must be non-NULL on success even though there
@@ -118,25 +118,25 @@ radeon_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
}
static void
-radeon_xorg_identify(int flags)
+r300_xorg_identify(int flags)
{
- xf86PrintChipsets("radeong", "Driver for Radeon Gallium with KMS",
- radeon_xorg_chipsets);
+ xf86PrintChipsets("r300", "Driver for Radeon Gallium with KMS",
+ r300_xorg_chipsets);
}
static Bool
-radeon_xorg_pci_probe(DriverPtr driver,
+r300_xorg_pci_probe(DriverPtr driver,
int entity_num, struct pci_device *device, intptr_t match_data)
{
ScrnInfoPtr scrn = NULL;
EntityInfoPtr entity;
- scrn = xf86ConfigPciEntity(scrn, 0, entity_num, radeon_xorg_pci_devices,
+ scrn = xf86ConfigPciEntity(scrn, 0, entity_num, r300_xorg_pci_devices,
NULL, NULL, NULL, NULL, NULL);
if (scrn != NULL) {
scrn->driverVersion = 1;
- scrn->driverName = "radeong";
- scrn->name = "radeong";
+ scrn->driverName = "r300";
+ scrn->name = "r300";
scrn->Probe = NULL;
entity = xf86GetEntityInfo(entity_num);
From b5b7d2acc6da4149a0c6b124ad52fa08f68cb136 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 01:41:11 +0200
Subject: [PATCH 057/406] r300g: do not link with softpipe
---
src/gallium/targets/dri-r300/Makefile | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/targets/dri-r300/Makefile b/src/gallium/targets/dri-r300/Makefile
index cc77a4bc20d..a1bb753f859 100644
--- a/src/gallium/targets/dri-r300/Makefile
+++ b/src/gallium/targets/dri-r300/Makefile
@@ -6,7 +6,6 @@ LIBNAME = r300_dri.so
PIPE_DRIVERS = \
$(TOP)/src/gallium/state_trackers/dri/drm/libdridrm.a \
$(TOP)/src/gallium/winsys/radeon/drm/libradeonwinsys.a \
- $(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a \
$(TOP)/src/gallium/drivers/galahad/libgalahad.a \
$(TOP)/src/gallium/drivers/trace/libtrace.a \
$(TOP)/src/gallium/drivers/rbug/librbug.a \
From f318a15f45b726095ae8d95cabb2c9ce4ce24215 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 01:41:39 +0200
Subject: [PATCH 058/406] r600g: do not link with softpipe
---
src/gallium/targets/dri-r600/Makefile | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/targets/dri-r600/Makefile b/src/gallium/targets/dri-r600/Makefile
index c8fae2d8585..0c4de203d35 100644
--- a/src/gallium/targets/dri-r600/Makefile
+++ b/src/gallium/targets/dri-r600/Makefile
@@ -7,7 +7,6 @@ PIPE_DRIVERS = \
$(TOP)/src/gallium/drivers/r600/libr600.a \
$(TOP)/src/gallium/state_trackers/dri/drm/libdridrm.a \
$(TOP)/src/gallium/winsys/r600/drm/libr600winsys.a \
- $(TOP)/src/gallium/drivers/softpipe/libsoftpipe.a \
$(TOP)/src/gallium/drivers/trace/libtrace.a \
$(TOP)/src/gallium/drivers/rbug/librbug.a \
$(TOP)/src/gallium/drivers/noop/libnoop.a
From e823ab1b002560c02edc2d9f165e3b150b5e020e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 03:48:06 +0200
Subject: [PATCH 059/406] st/xorg: remove unused variable
---
src/gallium/state_trackers/xorg/xorg_xv.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/gallium/state_trackers/xorg/xorg_xv.c b/src/gallium/state_trackers/xorg/xorg_xv.c
index 234574b968e..af4992fc2ed 100644
--- a/src/gallium/state_trackers/xorg/xorg_xv.c
+++ b/src/gallium/state_trackers/xorg/xorg_xv.c
@@ -466,7 +466,6 @@ bind_samplers(struct xorg_xv_port_priv *port)
{
struct pipe_sampler_state *samplers[PIPE_MAX_SAMPLERS];
struct pipe_sampler_state sampler;
- struct pipe_resource **dst = port->yuv[port->current_set];
struct pipe_sampler_view **dst_views = port->yuv_views[port->current_set];
memset(&sampler, 0, sizeof(struct pipe_sampler_state));
From c17fb8539fcdeb6ebbc0c8a9ff010d1bc01b695f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 04:03:17 +0200
Subject: [PATCH 060/406] configure.ac: cleanup the gallium-r300 option
---
configure.ac | 32 +++++++++++++-------------------
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3e814415218..69513c1c4e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1741,6 +1741,14 @@ gallium_check_st() {
fi
}
+gallium_require_llvm() {
+ if test "x$MESA_LLVM" = x0; then
+ case "$host_cpu" in
+ i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
+ esac
+ fi
+}
+
dnl
dnl Gallium SVGA configuration
@@ -1793,28 +1801,14 @@ dnl
dnl Gallium Radeon r300g configuration
dnl
AC_ARG_ENABLE([gallium-r300],
- [AS_HELP_STRING([--enable-gallium-r300],
- [build gallium r300 @<:@default=build DRI driver only@:>@])],
+ [AS_HELP_STRING([--disable-gallium-r300],
+ [build R300 driver @<:@default=enabled@:>@])],
[enable_gallium_r300="$enableval"],
- [enable_gallium_r300=auto])
+ [enable_gallium_r300=yes])
-if test "$mesa_driver" != dri ; then
- if test "x$enable_gallium_r300" = xauto; then
- enable_gallium_r300=no
- fi
-fi
+if test "x$enable_gallium_r300" = xyes && test "x$mesa_driver" = xdri; then
+ gallium_require_llvm "Gallium R300"
-if test "x$enable_gallium_r300" != xno; then
- if test "x$MESA_LLVM" = x0; then
- case "$host_cpu" in
- i*86|x86_64) AC_MSG_ERROR([LLVM is required to build Gallium R300 on x86 and x86_64]);;
- esac
- fi
-fi
-if test "x$enable_gallium_r300" = xauto; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
- gallium_check_st "radeon/drm" "dri-r300"
-elif test "x$enable_gallium_r300" = xyes; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
fi
From a128355ecb5b782a69461a04991e4cffb32249db Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Tue, 14 Jun 2011 00:45:12 -0700
Subject: [PATCH 061/406] apple: Set the glapi dispatch table on context bind
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_glapi.c | 2 +-
src/glx/apple/apple_glx.c | 1 -
src/glx/apple/apple_glx.h | 2 +-
src/glx/applegl_glx.c | 2 ++
4 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/glx/apple/apple_glapi.c b/src/glx/apple/apple_glapi.c
index 66933f5a20c..0c89f46779c 100644
--- a/src/glx/apple/apple_glapi.c
+++ b/src/glx/apple/apple_glapi.c
@@ -52,7 +52,7 @@
struct _glapi_table * __ogl_framework_api = NULL;
struct _glapi_table * __applegl_api = NULL;
-void apple_xgl_init_direct(void) {
+void apple_glapi_set_dispatch(void) {
static void *handle;
const char *opengl_framework_path;
diff --git a/src/glx/apple/apple_glx.c b/src/glx/apple/apple_glx.c
index a76cb4cac1f..d94c1e0fb16 100644
--- a/src/glx/apple/apple_glx.c
+++ b/src/glx/apple/apple_glx.c
@@ -131,7 +131,6 @@ apple_init_glx(Display * dpy)
}
apple_cgl_init();
- apple_xgl_init_direct();
(void) apple_glx_get_client_id();
XAppleDRISetSurfaceNotifyHandler(surface_notify_handler);
diff --git a/src/glx/apple/apple_glx.h b/src/glx/apple/apple_glx.h
index 25f5ea66ee3..c70fc009dd5 100644
--- a/src/glx/apple/apple_glx.h
+++ b/src/glx/apple/apple_glx.h
@@ -45,6 +45,6 @@ void apple_glx_swap_buffers(void *ptr);
void apple_glx_waitx(Display * dpy, void *ptr);
int apple_get_dri_event_base(void);
-void apple_xgl_init_direct(void);
+void apple_glapi_set_dispatch(void);
#endif
diff --git a/src/glx/applegl_glx.c b/src/glx/applegl_glx.c
index 92c785f988a..4bf4672cede 100644
--- a/src/glx/applegl_glx.c
+++ b/src/glx/applegl_glx.c
@@ -59,6 +59,8 @@ applegl_bind_context(struct glx_context *gc, struct glx_context *old,
if (error)
return 1; /* GLXBadContext is the same as Success (0) */
+ apple_glapi_set_dispatch();
+
return Success;
}
From a8b9a75b921b66581b5762c7b5aab1eaa25def7f Mon Sep 17 00:00:00 2001
From: Christoph Bumiller
Date: Tue, 14 Jun 2011 17:15:08 +0200
Subject: [PATCH 062/406] nv50: fix copy/paste error in nv50_gmtyprog_validate
Used the vertprog instead of gmtyprog.
---
src/gallium/drivers/nv50/nv50_shader_state.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_shader_state.c b/src/gallium/drivers/nv50/nv50_shader_state.c
index 5d3f52c38c1..e5b10c37bef 100644
--- a/src/gallium/drivers/nv50/nv50_shader_state.c
+++ b/src/gallium/drivers/nv50/nv50_shader_state.c
@@ -215,10 +215,12 @@ void
nv50_gmtyprog_validate(struct nv50_context *nv50)
{
struct nouveau_channel *chan = nv50->screen->base.channel;
- struct nv50_program *gp = nv50->vertprog;
+ struct nv50_program *gp = nv50->gmtyprog;
+ if (!gp) /* GP_ENABLE is updated in linkage validation */
+ return;
if (!nv50_program_validate(nv50, gp))
- return;
+ return;
BEGIN_RING(chan, RING_3D(GP_REG_ALLOC_TEMP), 1);
OUT_RING (chan, gp->max_gpr);
From 130e7ead87a065faefc7bb03e680c80e04c0a637 Mon Sep 17 00:00:00 2001
From: Adam Jackson
Date: Fri, 10 Jun 2011 12:56:51 -0400
Subject: [PATCH 063/406] llvmpipe: SSE2 fastpaths for b8g8r8x8 {un,}swizzle
Copy-and-paste from the bgra cases. The C paths attempt to avoid
copying the 'x' channel, but it's harmless, you might as well. Good for
about 5% in glxgears (740 to 780 fps).
Signed-off-by: Adam Jackson
---
src/gallium/drivers/llvmpipe/lp_tile_soa.py | 68 ++++++++++++++++++++-
1 file changed, 66 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_tile_soa.py b/src/gallium/drivers/llvmpipe/lp_tile_soa.py
index 8df7b236fe0..f4324e69971 100644
--- a/src/gallium/drivers/llvmpipe/lp_tile_soa.py
+++ b/src/gallium/drivers/llvmpipe/lp_tile_soa.py
@@ -423,6 +423,70 @@ lp_tile_b8g8r8a8_unorm_unswizzle_4ub_sse2(const uint8_t * restrict src,
}
}
+static void
+lp_tile_b8g8r8x8_unorm_swizzle_4ub_sse2(uint8_t * restrict dst,
+ const uint8_t * restrict src, unsigned src_stride,
+ unsigned x0, unsigned y0)
+{
+ __m128i *dst128 = (__m128i *) dst;
+ unsigned x, y;
+
+ src += y0 * src_stride;
+ src += x0 * sizeof(uint32_t);
+
+ for (y = 0; y < TILE_SIZE; y += 4) {
+ const uint8_t *src_row = src;
+
+ for (x = 0; x < TILE_SIZE; x += 4) {
+ swz4((const __m128i *) (src_row + 0 * src_stride),
+ (const __m128i *) (src_row + 1 * src_stride),
+ (const __m128i *) (src_row + 2 * src_stride),
+ (const __m128i *) (src_row + 3 * src_stride),
+ dst128 + 2, /* b */
+ dst128 + 1, /* g */
+ dst128 + 0, /* r */
+ dst128 + 3); /* a */
+
+ dst128 += 4;
+ src_row += sizeof(__m128i);
+ }
+
+ src += 4 * src_stride;
+ }
+}
+
+static void
+lp_tile_b8g8r8x8_unorm_unswizzle_4ub_sse2(const uint8_t * restrict src,
+ uint8_t * restrict dst, unsigned dst_stride,
+ unsigned x0, unsigned y0)
+{
+ unsigned int x, y;
+ const __m128i *src128 = (const __m128i *) src;
+
+ dst += y0 * dst_stride;
+ dst += x0 * sizeof(uint32_t);
+
+ for (y = 0; y < TILE_SIZE; y += 4) {
+ const uint8_t *dst_row = dst;
+
+ for (x = 0; x < TILE_SIZE; x += 4) {
+ unswz4( &src128[2], /* b */
+ &src128[1], /* g */
+ &src128[0], /* r */
+ &src128[3], /* a */
+ (__m128i *) (dst_row + 0 * dst_stride),
+ (__m128i *) (dst_row + 1 * dst_stride),
+ (__m128i *) (dst_row + 2 * dst_stride),
+ (__m128i *) (dst_row + 3 * dst_stride));
+
+ src128 += 4;
+ dst_row += sizeof(__m128i);;
+ }
+
+ dst += 4 * dst_stride;
+ }
+}
+
#endif /* PIPE_ARCH_SSE */
'''
@@ -446,7 +510,7 @@ def generate_swizzle(formats, dst_channel, dst_native_type, dst_suffix):
if is_format_supported(format):
print ' case %s:' % format.name
func_name = 'lp_tile_%s_swizzle_%s' % (format.short_name(), dst_suffix)
- if format.name == 'PIPE_FORMAT_B8G8R8A8_UNORM':
+ if format.name == 'PIPE_FORMAT_B8G8R8A8_UNORM' or format.name == 'PIPE_FORMAT_B8G8R8X8_UNORM':
print '#ifdef PIPE_ARCH_SSE'
print ' func = util_cpu_caps.has_sse2 ? %s_sse2 : %s;' % (func_name, func_name)
print '#else'
@@ -484,7 +548,7 @@ def generate_unswizzle(formats, src_channel, src_native_type, src_suffix):
if is_format_supported(format):
print ' case %s:' % format.name
func_name = 'lp_tile_%s_unswizzle_%s' % (format.short_name(), src_suffix)
- if format.name == 'PIPE_FORMAT_B8G8R8A8_UNORM':
+ if format.name == 'PIPE_FORMAT_B8G8R8A8_UNORM' or format.name == 'PIPE_FORMAT_B8G8R8X8_UNORM':
print '#ifdef PIPE_ARCH_SSE'
print ' func = util_cpu_caps.has_sse2 ? %s_sse2 : %s;' % (func_name, func_name)
print '#else'
From 13dcf3f20da063c2cf740873d0c596f05073a6bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 20:03:04 +0200
Subject: [PATCH 064/406] r600g: disable shader_texture_lod until there is
driver support
---
src/gallium/drivers/r600/r600_pipe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index ce2db888f7a..4cf11dc9ff2 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -367,7 +367,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
case PIPE_CAP_TEXTURE_MIRROR_REPEAT:
case PIPE_CAP_BLEND_EQUATION_SEPARATE:
- case PIPE_CAP_SM3:
case PIPE_CAP_TEXTURE_SWIZZLE:
case PIPE_CAP_DEPTHSTENCIL_CLEAR_SEPARATE:
case PIPE_CAP_DEPTH_CLAMP:
@@ -396,6 +395,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TGSI_INSTANCEID:
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
+ case PIPE_CAP_SM3:
return 0;
case PIPE_CAP_ARRAY_TEXTURES:
From 51ce86b7811871896d3b838888ab4adbfb77413d Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 8 Jun 2011 16:38:01 -0700
Subject: [PATCH 065/406] intel: Fix 2x2 and 1x1 compressed teximages from
_mesa_generate_mipmap()
Generally image uploads to a the region occur at TexImage time, but
that's not the case for fallback _mesa_generate_mipmap(), and in this
path we were forgetting to align the width when dividing height. We
were just leaving out parts of the compressed block at 2x2 and 1x1
levels.
Fixes gen-compressed-teximage.
---
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index e62905de7c3..55eb9a124a3 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -389,26 +389,33 @@ intel_miptree_image_data(struct intel_context *intel,
GLuint i;
for (i = 0; i < depth; i++) {
- GLuint dst_x, dst_y, height;
+ GLuint dst_x, dst_y, height, width;
intel_miptree_get_image_offset(dst, level, face, i, &dst_x, &dst_y);
height = dst->level[level].height;
- if(dst->compressed)
- height = (height + 3) / 4;
+ width = dst->level[level].width;
+ if (dst->compressed) {
+ unsigned int align_w, align_h;
+
+ intel_get_texture_alignment_unit(dst->internal_format,
+ &align_w, &align_h);
+ height = (height + align_h - 1) / align_h;
+ width = ALIGN(width, align_w);
+ }
DBG("%s: %d/%d %p/%d -> (%d, %d)/%d (%d, %d)\n",
__FUNCTION__, face, level,
src, src_row_pitch * dst->cpp,
dst_x, dst_y, dst->region->pitch * dst->cpp,
- dst->level[level].width, height);
+ width, height);
intel_region_data(intel,
dst->region, 0, dst_x, dst_y,
src,
src_row_pitch,
0, 0, /* source x, y */
- dst->level[level].width, height); /* width, height */
+ width, height);
src = (char *)src + src_image_pitch * dst->cpp;
}
From d5809115b568d8b74f47316607dce0730964517a Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 09:16:47 -0700
Subject: [PATCH 066/406] intel: Add the MESA_FORMAT as a field of the miptree.
We only had internal_format before, which is way more irritating to
work with.
---
src/mesa/drivers/dri/intel/intel_fbo.c | 1 +
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 8 ++++++--
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 3 +++
src/mesa/drivers/dri/intel/intel_tex_image.c | 5 +++--
src/mesa/drivers/dri/intel/intel_tex_validate.c | 1 +
5 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 591df410201..e53dd8a073a 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -641,6 +641,7 @@ intel_render_texture(struct gl_context * ctx,
texel_bytes = _mesa_get_format_bytes(intel_image->base.TexFormat);
new_mt = intel_miptree_create(intel, image->TexObject->Target,
+ intel_image->base.TexFormat,
intel_image->base._BaseFormat,
intel_image->base.InternalFormat,
intel_image->level,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index 55eb9a124a3..a96398cc5de 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -55,6 +55,7 @@ target_to_target(GLenum target)
static struct intel_mipmap_tree *
intel_miptree_create_internal(struct intel_context *intel,
GLenum target,
+ gl_format format,
GLenum internal_format,
GLuint first_level,
GLuint last_level,
@@ -72,6 +73,7 @@ intel_miptree_create_internal(struct intel_context *intel,
first_level, last_level, mt);
mt->target = target_to_target(target);
+ mt->format = format;
mt->internal_format = internal_format;
mt->first_level = first_level;
mt->last_level = last_level;
@@ -104,6 +106,7 @@ intel_miptree_create_internal(struct intel_context *intel,
struct intel_mipmap_tree *
intel_miptree_create(struct intel_context *intel,
GLenum target,
+ gl_format format,
GLenum base_format,
GLenum internal_format,
GLuint first_level,
@@ -125,7 +128,7 @@ intel_miptree_create(struct intel_context *intel,
tiling = I915_TILING_X;
}
- mt = intel_miptree_create_internal(intel, target, internal_format,
+ mt = intel_miptree_create_internal(intel, target, format, internal_format,
first_level, last_level, width0,
height0, depth0, cpp, compress_byte,
tiling);
@@ -156,6 +159,7 @@ intel_miptree_create(struct intel_context *intel,
struct intel_mipmap_tree *
intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
+ gl_format format,
GLenum internal_format,
struct intel_region *region,
GLuint depth0,
@@ -163,7 +167,7 @@ intel_miptree_create_for_region(struct intel_context *intel,
{
struct intel_mipmap_tree *mt;
- mt = intel_miptree_create_internal(intel, target, internal_format,
+ mt = intel_miptree_create_internal(intel, target, format, internal_format,
0, 0,
region->width, region->height, 1,
region->cpp, compress_byte,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index 325e3916981..0ce8c091295 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -91,6 +91,7 @@ struct intel_mipmap_tree
/* Effectively the key:
*/
GLenum target;
+ gl_format format;
GLenum internal_format;
GLuint first_level;
@@ -136,6 +137,7 @@ struct intel_mipmap_tree
struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
GLenum target,
+ gl_format format,
GLenum base_format,
GLenum internal_format,
GLuint first_level,
@@ -150,6 +152,7 @@ struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
struct intel_mipmap_tree *
intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
+ gl_format format,
GLenum internal_format,
struct intel_region *region,
GLuint depth0,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index bc39f4ad83f..b5084e8b4fe 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -115,6 +115,7 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
return intel_miptree_create(intel,
intelObj->base.Target,
+ intelImage->base.TexFormat,
intelImage->base._BaseFormat,
intelImage->base.InternalFormat,
firstLevel,
@@ -692,7 +693,7 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
texFormat = MESA_FORMAT_ARGB8888;
}
- mt = intel_miptree_create_for_region(intel, target,
+ mt = intel_miptree_create_for_region(intel, target, texFormat,
internalFormat, rb->region, 1, 0);
if (mt == NULL)
return;
@@ -756,7 +757,7 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target,
if (image == NULL)
return;
- mt = intel_miptree_create_for_region(intel, target,
+ mt = intel_miptree_create_for_region(intel, target, image->format,
image->internal_format,
image->region, 1, 0);
if (mt == NULL)
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index 27f2646ebf5..fea61621dd0 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -135,6 +135,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
if (!intelObj->mt) {
intelObj->mt = intel_miptree_create(intel,
intelObj->base.Target,
+ firstImage->base.TexFormat,
firstImage->base._BaseFormat,
firstImage->base.InternalFormat,
tObj->BaseLevel,
From 4a60b0c8d2e4890038e1c6a72a7dac3b4cdf996e Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 09:28:19 -0700
Subject: [PATCH 067/406] intel: Add block alignment for RGTC textures.
We were using the default 4x2 alignment instead of the 4x4 required
for RGTC textures.
---
src/mesa/drivers/dri/i965/brw_tex_layout.c | 2 +-
.../drivers/dri/intel/intel_mipmap_tree.c | 6 +--
src/mesa/drivers/dri/intel/intel_tex_layout.c | 39 +++++++------------
src/mesa/drivers/dri/intel/intel_tex_layout.h | 3 +-
4 files changed, 18 insertions(+), 32 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c
index 4a3a2bfada2..f462f32b19a 100644
--- a/src/mesa/drivers/dri/i965/brw_tex_layout.c
+++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c
@@ -88,7 +88,7 @@ GLboolean brw_miptree_layout(struct intel_context *intel,
GLuint align_w = 4;
mt->total_height = 0;
- intel_get_texture_alignment_unit(mt->internal_format, &align_w, &align_h);
+ intel_get_texture_alignment_unit(mt->format, &align_w, &align_h);
if (mt->compressed) {
mt->total_width = ALIGN(width, align_w);
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index a96398cc5de..c8ad1a7d34d 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -402,8 +402,7 @@ intel_miptree_image_data(struct intel_context *intel,
if (dst->compressed) {
unsigned int align_w, align_h;
- intel_get_texture_alignment_unit(dst->internal_format,
- &align_w, &align_h);
+ intel_get_texture_alignment_unit(dst->format, &align_w, &align_h);
height = (height + align_h - 1) / align_h;
width = ALIGN(width, align_w);
}
@@ -445,8 +444,7 @@ intel_miptree_image_copy(struct intel_context *intel,
if (dst->compressed) {
GLuint align_w, align_h;
- intel_get_texture_alignment_unit(dst->internal_format,
- &align_w, &align_h);
+ intel_get_texture_alignment_unit(dst->format, &align_w, &align_h);
height = (height + 3) / 4;
width = ALIGN(width, align_w);
}
diff --git a/src/mesa/drivers/dri/intel/intel_tex_layout.c b/src/mesa/drivers/dri/intel/intel_tex_layout.c
index d39733b6c5a..32c34dad2b1 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_layout.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_layout.c
@@ -35,32 +35,19 @@
#include "intel_context.h"
#include "main/macros.h"
-void intel_get_texture_alignment_unit(GLenum internalFormat, GLuint *w, GLuint *h)
+void
+intel_get_texture_alignment_unit(gl_format format,
+ unsigned int *w, unsigned int *h)
{
- switch (internalFormat) {
- case GL_COMPRESSED_RGB_FXT1_3DFX:
- case GL_COMPRESSED_RGBA_FXT1_3DFX:
- *w = 8;
- *h = 4;
- break;
-
- case GL_RGB_S3TC:
- case GL_RGB4_S3TC:
- case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
- case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
- case GL_RGBA_S3TC:
- case GL_RGBA4_S3TC:
- case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
- case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
- *w = 4;
- *h = 4;
- break;
-
- default:
- *w = 4;
- *h = 2;
- break;
- }
+ if (_mesa_is_format_compressed(format)) {
+ /* The hardware alignment requirements for compressed textures
+ * happen to match the block boundaries.
+ */
+ _mesa_get_format_block_size(format, w, h);
+ } else {
+ *w = 4;
+ *h = 2;
+ }
}
void i945_miptree_layout_2d(struct intel_context *intel,
@@ -75,7 +62,7 @@ void i945_miptree_layout_2d(struct intel_context *intel,
GLuint height = mt->height0;
mt->total_width = mt->width0;
- intel_get_texture_alignment_unit(mt->internal_format, &align_w, &align_h);
+ intel_get_texture_alignment_unit(mt->format, &align_w, &align_h);
if (mt->compressed) {
mt->total_width = ALIGN(mt->width0, align_w);
diff --git a/src/mesa/drivers/dri/intel/intel_tex_layout.h b/src/mesa/drivers/dri/intel/intel_tex_layout.h
index 1c8c53e5459..b52e5a48855 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_layout.h
+++ b/src/mesa/drivers/dri/intel/intel_tex_layout.h
@@ -41,4 +41,5 @@ static INLINE GLuint minify( GLuint d )
extern void i945_miptree_layout_2d(struct intel_context *intel,
struct intel_mipmap_tree *mt,
uint32_t tiling, int nr_images);
-extern void intel_get_texture_alignment_unit(GLenum, GLuint *, GLuint *);
+void intel_get_texture_alignment_unit(gl_format format,
+ unsigned int *w, unsigned int *h);
From afbe605eff5af3739a76705a04a3c97a53c81b0d Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 09:58:38 -0700
Subject: [PATCH 068/406] i915: Drop dead argument to
translate_texture_format().
---
src/mesa/drivers/dri/i915/i830_texstate.c | 5 ++---
src/mesa/drivers/dri/i915/i915_texstate.c | 4 +---
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/mesa/drivers/dri/i915/i830_texstate.c b/src/mesa/drivers/dri/i915/i830_texstate.c
index 3298dbb69f5..d4af5e51026 100644
--- a/src/mesa/drivers/dri/i915/i830_texstate.c
+++ b/src/mesa/drivers/dri/i915/i830_texstate.c
@@ -40,7 +40,7 @@
static GLuint
-translate_texture_format(GLuint mesa_format, GLuint internal_format)
+translate_texture_format(GLuint mesa_format)
{
switch (mesa_format) {
case MESA_FORMAT_L8:
@@ -156,8 +156,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
*/
i830->state.tex_offset[unit] = dst_x * intelObj->mt->cpp + dst_y * pitch;
- format = translate_texture_format(firstImage->TexFormat,
- firstImage->InternalFormat);
+ format = translate_texture_format(firstImage->TexFormat);
state[I830_TEXREG_TM0LI] = (_3DSTATE_LOAD_STATE_IMMEDIATE_2 |
(LOAD_TEXTURE_MAP0 << unit) | 4);
diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c b/src/mesa/drivers/dri/i915/i915_texstate.c
index 5aa2ea18048..bcf42d59969 100644
--- a/src/mesa/drivers/dri/i915/i915_texstate.c
+++ b/src/mesa/drivers/dri/i915/i915_texstate.c
@@ -39,8 +39,7 @@
static GLuint
-translate_texture_format(gl_format mesa_format, GLuint internal_format,
- GLenum DepthMode)
+translate_texture_format(gl_format mesa_format, GLenum DepthMode)
{
switch (mesa_format) {
case MESA_FORMAT_L8:
@@ -165,7 +164,6 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
i915->state.tex_offset[unit] = 0; /* Always the origin of the miptree */
format = translate_texture_format(firstImage->TexFormat,
- firstImage->InternalFormat,
sampler->DepthMode);
pitch = intelObj->mt->region->pitch * intelObj->mt->cpp;
From 0fac09a87c07d09dcd915c02b831505a53b02153 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 10:00:59 -0700
Subject: [PATCH 069/406] intel: Make the intel_miptree_match_image format
check more specific.
We don't care just about the internalFormat/cpp/compressed, but about
the specific format chosen. We have no support for format
translations as part of texture validation, and furthermore it has
restrictions in the GL specification. However, we should be making
consistent decisions for this check anyway.
---
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 9 +--------
src/mesa/drivers/dri/intel/intel_tex_validate.c | 6 ++----
2 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index c8ad1a7d34d..c190f0fb789 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -227,7 +227,6 @@ GLboolean
intel_miptree_match_image(struct intel_mipmap_tree *mt,
struct gl_texture_image *image)
{
- GLboolean isCompressed = _mesa_is_format_compressed(image->TexFormat);
struct intel_texture_image *intelImage = intel_texture_image(image);
GLuint level = intelImage->level;
@@ -235,13 +234,7 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt,
if (image->Border)
return GL_FALSE;
- if (image->InternalFormat != mt->internal_format ||
- isCompressed != mt->compressed)
- return GL_FALSE;
-
- if (!isCompressed &&
- !mt->compressed &&
- _mesa_get_format_bytes(image->TexFormat) != mt->cpp)
+ if (image->TexFormat != mt->format)
return GL_FALSE;
/* Test image dimensions against the base level image adjusted for
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index fea61621dd0..e833c15af5c 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -118,14 +118,12 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
*/
if (intelObj->mt &&
(intelObj->mt->target != intelObj->base.Target ||
- intelObj->mt->internal_format != firstImage->base.InternalFormat ||
+ intelObj->mt->format != firstImage->base.TexFormat ||
intelObj->mt->first_level != tObj->BaseLevel ||
intelObj->mt->last_level < intelObj->_MaxLevel ||
intelObj->mt->width0 != firstImage->base.Width ||
intelObj->mt->height0 != firstImage->base.Height ||
- intelObj->mt->depth0 != firstImage->base.Depth ||
- intelObj->mt->cpp != cpp ||
- intelObj->mt->compressed != _mesa_is_format_compressed(firstImage->base.TexFormat))) {
+ intelObj->mt->depth0 != firstImage->base.Depth)) {
intel_miptree_release(intel, &intelObj->mt);
}
From 9a523a48af05118424714f0a34ca3dda6861186a Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 10:00:44 -0700
Subject: [PATCH 070/406] intel: Drop the internal_format field of the mipmap
tree.
This has been replaced with the gl_format now.
---
src/mesa/drivers/dri/intel/intel_fbo.c | 1 -
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 10 +++-------
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 3 ---
src/mesa/drivers/dri/intel/intel_tex_image.c | 4 +---
src/mesa/drivers/dri/intel/intel_tex_validate.c | 1 -
5 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index e53dd8a073a..97a61a58cb6 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -643,7 +643,6 @@ intel_render_texture(struct gl_context * ctx,
new_mt = intel_miptree_create(intel, image->TexObject->Target,
intel_image->base.TexFormat,
intel_image->base._BaseFormat,
- intel_image->base.InternalFormat,
intel_image->level,
intel_image->level,
intel_image->base.Width,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index c190f0fb789..b0b708401c9 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -56,7 +56,6 @@ static struct intel_mipmap_tree *
intel_miptree_create_internal(struct intel_context *intel,
GLenum target,
gl_format format,
- GLenum internal_format,
GLuint first_level,
GLuint last_level,
GLuint width0,
@@ -69,12 +68,11 @@ intel_miptree_create_internal(struct intel_context *intel,
DBG("%s target %s format %s level %d..%d <-- %p\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(target),
- _mesa_lookup_enum_by_nr(internal_format),
+ _mesa_get_format_name(format),
first_level, last_level, mt);
mt->target = target_to_target(target);
mt->format = format;
- mt->internal_format = internal_format;
mt->first_level = first_level;
mt->last_level = last_level;
mt->width0 = width0;
@@ -108,7 +106,6 @@ intel_miptree_create(struct intel_context *intel,
GLenum target,
gl_format format,
GLenum base_format,
- GLenum internal_format,
GLuint first_level,
GLuint last_level,
GLuint width0,
@@ -128,7 +125,7 @@ intel_miptree_create(struct intel_context *intel,
tiling = I915_TILING_X;
}
- mt = intel_miptree_create_internal(intel, target, format, internal_format,
+ mt = intel_miptree_create_internal(intel, target, format,
first_level, last_level, width0,
height0, depth0, cpp, compress_byte,
tiling);
@@ -160,14 +157,13 @@ struct intel_mipmap_tree *
intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
gl_format format,
- GLenum internal_format,
struct intel_region *region,
GLuint depth0,
GLuint compress_byte)
{
struct intel_mipmap_tree *mt;
- mt = intel_miptree_create_internal(intel, target, format, internal_format,
+ mt = intel_miptree_create_internal(intel, target, format,
0, 0,
region->width, region->height, 1,
region->cpp, compress_byte,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index 0ce8c091295..c1eb200b61b 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -92,7 +92,6 @@ struct intel_mipmap_tree
*/
GLenum target;
gl_format format;
- GLenum internal_format;
GLuint first_level;
GLuint last_level;
@@ -139,7 +138,6 @@ struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
GLenum target,
gl_format format,
GLenum base_format,
- GLenum internal_format,
GLuint first_level,
GLuint last_level,
GLuint width0,
@@ -153,7 +151,6 @@ struct intel_mipmap_tree *
intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
gl_format format,
- GLenum internal_format,
struct intel_region *region,
GLuint depth0,
GLuint compress_byte);
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index b5084e8b4fe..1a3665ccc66 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -117,7 +117,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
intelObj->base.Target,
intelImage->base.TexFormat,
intelImage->base._BaseFormat,
- intelImage->base.InternalFormat,
firstLevel,
lastLevel,
width,
@@ -694,7 +693,7 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
}
mt = intel_miptree_create_for_region(intel, target, texFormat,
- internalFormat, rb->region, 1, 0);
+ rb->region, 1, 0);
if (mt == NULL)
return;
@@ -758,7 +757,6 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target,
return;
mt = intel_miptree_create_for_region(intel, target, image->format,
- image->internal_format,
image->region, 1, 0);
if (mt == NULL)
return;
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index e833c15af5c..a6de0de47af 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -135,7 +135,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
intelObj->base.Target,
firstImage->base.TexFormat,
firstImage->base._BaseFormat,
- firstImage->base.InternalFormat,
tObj->BaseLevel,
intelObj->_MaxLevel,
firstImage->base.Width,
From 9c5fdbb721147f7304faaa8960f5b64e25a8f673 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 10:07:56 -0700
Subject: [PATCH 071/406] intel: Use the gl_format to get the base_format for
miptree create.
One less argument to this insanely long function call.
---
src/mesa/drivers/dri/intel/intel_fbo.c | 1 -
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 2 +-
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 1 -
src/mesa/drivers/dri/intel/intel_tex_image.c | 1 -
src/mesa/drivers/dri/intel/intel_tex_validate.c | 1 -
5 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 97a61a58cb6..02f40f51dfc 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -642,7 +642,6 @@ intel_render_texture(struct gl_context * ctx,
new_mt = intel_miptree_create(intel, image->TexObject->Target,
intel_image->base.TexFormat,
- intel_image->base._BaseFormat,
intel_image->level,
intel_image->level,
intel_image->base.Width,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index b0b708401c9..be18e515df0 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -105,7 +105,6 @@ struct intel_mipmap_tree *
intel_miptree_create(struct intel_context *intel,
GLenum target,
gl_format format,
- GLenum base_format,
GLuint first_level,
GLuint last_level,
GLuint width0,
@@ -115,6 +114,7 @@ intel_miptree_create(struct intel_context *intel,
{
struct intel_mipmap_tree *mt;
uint32_t tiling = I915_TILING_NONE;
+ GLenum base_format = _mesa_get_format_base_format(format);
if (intel->use_texture_tiling && compress_byte == 0) {
if (intel->gen >= 4 &&
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index c1eb200b61b..c259e514787 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -137,7 +137,6 @@ struct intel_mipmap_tree
struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
GLenum target,
gl_format format,
- GLenum base_format,
GLuint first_level,
GLuint last_level,
GLuint width0,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index 1a3665ccc66..b7d0eb1a449 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -116,7 +116,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
return intel_miptree_create(intel,
intelObj->base.Target,
intelImage->base.TexFormat,
- intelImage->base._BaseFormat,
firstLevel,
lastLevel,
width,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index a6de0de47af..e810db85c14 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -134,7 +134,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
intelObj->mt = intel_miptree_create(intel,
intelObj->base.Target,
firstImage->base.TexFormat,
- firstImage->base._BaseFormat,
tObj->BaseLevel,
intelObj->_MaxLevel,
firstImage->base.Width,
From 6dcc398ac0837025cf60b4d6a056fa3b0a16466f Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 10:18:36 -0700
Subject: [PATCH 072/406] intel: Calculate compress_byte in
intel_miptree_create.
One less argument and thing to get wrong.
---
src/mesa/drivers/dri/intel/intel_fbo.c | 7 ++-----
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 18 +++++++++++-------
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 4 +---
src/mesa/drivers/dri/intel/intel_tex_image.c | 10 +++-------
.../drivers/dri/intel/intel_tex_validate.c | 5 +----
5 files changed, 18 insertions(+), 26 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index 02f40f51dfc..fbe93c270e0 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -633,10 +633,7 @@ intel_render_texture(struct gl_context * ctx,
struct intel_context *intel = intel_context(ctx);
struct intel_mipmap_tree *old_mt = intel_image->mt;
struct intel_mipmap_tree *new_mt;
- int comp_byte = 0, texel_bytes;
-
- if (_mesa_is_format_compressed(intel_image->base.TexFormat))
- comp_byte = intel_compressed_num_bytes(intel_image->base.TexFormat);
+ int texel_bytes;
texel_bytes = _mesa_get_format_bytes(intel_image->base.TexFormat);
@@ -647,7 +644,7 @@ intel_render_texture(struct gl_context * ctx,
intel_image->base.Width,
intel_image->base.Height,
intel_image->base.Depth,
- texel_bytes, comp_byte, GL_TRUE);
+ texel_bytes, GL_TRUE);
intel_miptree_image_copy(intel,
new_mt,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index be18e515df0..f9dd9f3abb7 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -29,6 +29,7 @@
#include "intel_mipmap_tree.h"
#include "intel_regions.h"
#include "intel_tex_layout.h"
+#include "intel_tex.h"
#include "main/enums.h"
#include "main/formats.h"
@@ -60,17 +61,21 @@ intel_miptree_create_internal(struct intel_context *intel,
GLuint last_level,
GLuint width0,
GLuint height0,
- GLuint depth0, GLuint cpp, GLuint compress_byte,
+ GLuint depth0, GLuint cpp,
uint32_t tiling)
{
GLboolean ok;
struct intel_mipmap_tree *mt = calloc(sizeof(*mt), 1);
+ int compress_byte = 0;
DBG("%s target %s format %s level %d..%d <-- %p\n", __FUNCTION__,
_mesa_lookup_enum_by_nr(target),
_mesa_get_format_name(format),
first_level, last_level, mt);
+ if (_mesa_is_format_compressed(format))
+ compress_byte = intel_compressed_num_bytes(format);
+
mt->target = target_to_target(target);
mt->format = format;
mt->first_level = first_level;
@@ -109,14 +114,14 @@ intel_miptree_create(struct intel_context *intel,
GLuint last_level,
GLuint width0,
GLuint height0,
- GLuint depth0, GLuint cpp, GLuint compress_byte,
+ GLuint depth0, GLuint cpp,
GLboolean expect_accelerated_upload)
{
struct intel_mipmap_tree *mt;
uint32_t tiling = I915_TILING_NONE;
GLenum base_format = _mesa_get_format_base_format(format);
- if (intel->use_texture_tiling && compress_byte == 0) {
+ if (intel->use_texture_tiling && !_mesa_is_format_compressed(format)) {
if (intel->gen >= 4 &&
(base_format == GL_DEPTH_COMPONENT ||
base_format == GL_DEPTH_STENCIL_EXT))
@@ -127,7 +132,7 @@ intel_miptree_create(struct intel_context *intel,
mt = intel_miptree_create_internal(intel, target, format,
first_level, last_level, width0,
- height0, depth0, cpp, compress_byte,
+ height0, depth0, cpp,
tiling);
/*
* pitch == 0 || height == 0 indicates the null texture
@@ -158,15 +163,14 @@ intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
gl_format format,
struct intel_region *region,
- GLuint depth0,
- GLuint compress_byte)
+ GLuint depth0)
{
struct intel_mipmap_tree *mt;
mt = intel_miptree_create_internal(intel, target, format,
0, 0,
region->width, region->height, 1,
- region->cpp, compress_byte,
+ region->cpp,
I915_TILING_NONE);
if (!mt)
return mt;
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index c259e514787..a531ecf6b4d 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -143,7 +143,6 @@ struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
GLuint height0,
GLuint depth0,
GLuint cpp,
- GLuint compress_byte,
GLboolean expect_accelerated_upload);
struct intel_mipmap_tree *
@@ -151,8 +150,7 @@ intel_miptree_create_for_region(struct intel_context *intel,
GLenum target,
gl_format format,
struct intel_region *region,
- GLuint depth0,
- GLuint compress_byte);
+ GLuint depth0);
int intel_miptree_pitch_align (struct intel_context *intel,
struct intel_mipmap_tree *mt,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index b7d0eb1a449..6fa5c1309df 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -54,7 +54,7 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
GLuint width = intelImage->base.Width;
GLuint height = intelImage->base.Height;
GLuint depth = intelImage->base.Depth;
- GLuint i, comp_byte = 0;
+ GLuint i;
GLuint texelBytes;
DBG("%s\n", __FUNCTION__);
@@ -108,9 +108,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
}
}
- if (_mesa_is_format_compressed(intelImage->base.TexFormat))
- comp_byte = intel_compressed_num_bytes(intelImage->base.TexFormat);
-
texelBytes = _mesa_get_format_bytes(intelImage->base.TexFormat);
return intel_miptree_create(intel,
@@ -122,7 +119,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
height,
depth,
texelBytes,
- comp_byte,
expect_accelerated_upload);
}
@@ -692,7 +688,7 @@ intelSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
}
mt = intel_miptree_create_for_region(intel, target, texFormat,
- rb->region, 1, 0);
+ rb->region, 1);
if (mt == NULL)
return;
@@ -756,7 +752,7 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target,
return;
mt = intel_miptree_create_for_region(intel, target, image->format,
- image->region, 1, 0);
+ image->region, 1);
if (mt == NULL)
return;
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index e810db85c14..84facdbf27e 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -77,7 +77,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
struct gl_texture_object *tObj = intel->ctx.Texture.Unit[unit]._Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
- int comp_byte = 0;
int cpp;
GLuint face, i;
GLuint nr_faces = 0;
@@ -102,8 +101,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
}
if (_mesa_is_format_compressed(firstImage->base.TexFormat)) {
- comp_byte = intel_compressed_num_bytes(firstImage->base.TexFormat);
- cpp = comp_byte;
+ cpp = intel_compressed_num_bytes(firstImage->base.TexFormat);
}
else
cpp = _mesa_get_format_bytes(firstImage->base.TexFormat);
@@ -140,7 +138,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
firstImage->base.Height,
firstImage->base.Depth,
cpp,
- comp_byte,
GL_TRUE);
if (!intelObj->mt)
return GL_FALSE;
From f94fef83db10f0c9327bd3dd43510ad31c94d82a Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 10:23:17 -0700
Subject: [PATCH 073/406] intel: Drop the cpp argument to
intel_miptree_create().
---
src/mesa/drivers/dri/intel/intel_fbo.c | 5 +----
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 9 ++++-----
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 1 -
src/mesa/drivers/dri/intel/intel_tex_image.c | 4 ----
src/mesa/drivers/dri/intel/intel_tex_validate.c | 8 --------
5 files changed, 5 insertions(+), 22 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c
index fbe93c270e0..e7c23f02f65 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -633,9 +633,6 @@ intel_render_texture(struct gl_context * ctx,
struct intel_context *intel = intel_context(ctx);
struct intel_mipmap_tree *old_mt = intel_image->mt;
struct intel_mipmap_tree *new_mt;
- int texel_bytes;
-
- texel_bytes = _mesa_get_format_bytes(intel_image->base.TexFormat);
new_mt = intel_miptree_create(intel, image->TexObject->Target,
intel_image->base.TexFormat,
@@ -644,7 +641,7 @@ intel_render_texture(struct gl_context * ctx,
intel_image->base.Width,
intel_image->base.Height,
intel_image->base.Depth,
- texel_bytes, GL_TRUE);
+ GL_TRUE);
intel_miptree_image_copy(intel,
new_mt,
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index f9dd9f3abb7..4e711de1ce1 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -61,7 +61,7 @@ intel_miptree_create_internal(struct intel_context *intel,
GLuint last_level,
GLuint width0,
GLuint height0,
- GLuint depth0, GLuint cpp,
+ GLuint depth0,
uint32_t tiling)
{
GLboolean ok;
@@ -83,7 +83,7 @@ intel_miptree_create_internal(struct intel_context *intel,
mt->width0 = width0;
mt->height0 = height0;
mt->depth0 = depth0;
- mt->cpp = compress_byte ? compress_byte : cpp;
+ mt->cpp = compress_byte ? compress_byte : _mesa_get_format_bytes(mt->format);
mt->compressed = compress_byte ? 1 : 0;
mt->refcount = 1;
@@ -114,7 +114,7 @@ intel_miptree_create(struct intel_context *intel,
GLuint last_level,
GLuint width0,
GLuint height0,
- GLuint depth0, GLuint cpp,
+ GLuint depth0,
GLboolean expect_accelerated_upload)
{
struct intel_mipmap_tree *mt;
@@ -132,7 +132,7 @@ intel_miptree_create(struct intel_context *intel,
mt = intel_miptree_create_internal(intel, target, format,
first_level, last_level, width0,
- height0, depth0, cpp,
+ height0, depth0,
tiling);
/*
* pitch == 0 || height == 0 indicates the null texture
@@ -170,7 +170,6 @@ intel_miptree_create_for_region(struct intel_context *intel,
mt = intel_miptree_create_internal(intel, target, format,
0, 0,
region->width, region->height, 1,
- region->cpp,
I915_TILING_NONE);
if (!mt)
return mt;
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index a531ecf6b4d..ea865904f68 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -142,7 +142,6 @@ struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
GLuint width0,
GLuint height0,
GLuint depth0,
- GLuint cpp,
GLboolean expect_accelerated_upload);
struct intel_mipmap_tree *
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c
index 6fa5c1309df..90d4117ec8f 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -55,7 +55,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
GLuint height = intelImage->base.Height;
GLuint depth = intelImage->base.Depth;
GLuint i;
- GLuint texelBytes;
DBG("%s\n", __FUNCTION__);
@@ -108,8 +107,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
}
}
- texelBytes = _mesa_get_format_bytes(intelImage->base.TexFormat);
-
return intel_miptree_create(intel,
intelObj->base.Target,
intelImage->base.TexFormat,
@@ -118,7 +115,6 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
width,
height,
depth,
- texelBytes,
expect_accelerated_upload);
}
diff --git a/src/mesa/drivers/dri/intel/intel_tex_validate.c b/src/mesa/drivers/dri/intel/intel_tex_validate.c
index 84facdbf27e..7135a6276fe 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_validate.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_validate.c
@@ -77,7 +77,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
struct gl_texture_object *tObj = intel->ctx.Texture.Unit[unit]._Current;
struct intel_texture_object *intelObj = intel_texture_object(tObj);
struct gl_sampler_object *sampler = _mesa_get_samplerobj(ctx, unit);
- int cpp;
GLuint face, i;
GLuint nr_faces = 0;
struct intel_texture_image *firstImage;
@@ -100,12 +99,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
return GL_FALSE;
}
- if (_mesa_is_format_compressed(firstImage->base.TexFormat)) {
- cpp = intel_compressed_num_bytes(firstImage->base.TexFormat);
- }
- else
- cpp = _mesa_get_format_bytes(firstImage->base.TexFormat);
-
/* Check tree can hold all active levels. Check tree matches
* target, imageFormat, etc.
*
@@ -137,7 +130,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
firstImage->base.Width,
firstImage->base.Height,
firstImage->base.Depth,
- cpp,
GL_TRUE);
if (!intelObj->mt)
return GL_FALSE;
From 56965aa007c2c6029204d617c0edcf142603e98d Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 17:01:57 -0700
Subject: [PATCH 074/406] intel: Drop dead preinitialization of align_w,
align_h.
---
src/mesa/drivers/dri/intel/intel_tex_layout.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/intel/intel_tex_layout.c b/src/mesa/drivers/dri/intel/intel_tex_layout.c
index 32c34dad2b1..91ee55e2237 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_layout.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_layout.c
@@ -54,7 +54,7 @@ void i945_miptree_layout_2d(struct intel_context *intel,
struct intel_mipmap_tree *mt,
uint32_t tiling, int nr_images)
{
- GLuint align_h = 2, align_w = 4;
+ GLuint align_h, align_w;
GLuint level;
GLuint x = 0;
GLuint y = 0;
From b9fbb9df22ab8ef869730c8b5c1eb79f4f48038e Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Thu, 9 Jun 2011 17:04:12 -0700
Subject: [PATCH 075/406] intel: Fix miptree height alignment for compressed
NPOT textures.
This is effectively just "round up when dividing by 4" compared to the
previous code. Fixes the broken stripe at the top of
fbo-generatemipmap-formats GL_EXT_texture_compression_rgtc.
---
src/mesa/drivers/dri/intel/intel_tex_layout.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_tex_layout.c b/src/mesa/drivers/dri/intel/intel_tex_layout.c
index 91ee55e2237..9d8152375d8 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_layout.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_layout.c
@@ -97,11 +97,9 @@ void i945_miptree_layout_2d(struct intel_context *intel,
intel_miptree_set_level_info(mt, level, nr_images, x, y, width,
height, 1);
+ img_height = ALIGN(height, align_h);
if (mt->compressed)
- img_height = MAX2(1, height/4);
- else
- img_height = ALIGN(height, align_h);
-
+ img_height /= align_h;
/* Because the images are packed better, the final offset
* might not be the maximal one:
From ba55ccd312e8a025f568ffcdc622660f146e2147 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 12:00:23 -0700
Subject: [PATCH 076/406] mesa: Split _mesa_generate_mipmap along
compressed/uncompressed lines.
The path taken is wildly different based on this (do we generate from
a temporary image, or from level-1's data), and we appear to have
stride bugs in the compressed case that are tough to disentangle.
This just duplicates the code for the moment, the followon commit will
do the actual changes. Only real code change here is handling
maxLevel in one common place.
---
src/mesa/main/mipmap.c | 255 ++++++++++++++++++++++++++++++++++++-----
1 file changed, 227 insertions(+), 28 deletions(-)
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index e9fcb545a1e..2bdb1111813 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -1885,38 +1885,20 @@ next_mipmap_level_size(GLenum target, GLint border,
}
}
-
-
-
-/**
- * Automatic mipmap generation.
- * This is the fallback/default function for ctx->Driver.GenerateMipmap().
- * Generate a complete set of mipmaps from texObj's BaseLevel image.
- * Stop at texObj's MaxLevel or when we get to the 1x1 texture.
- * For cube maps, target will be one of
- * GL_TEXTURE_CUBE_MAP_POSITIVE/NEGATIVE_X/Y/Z; never GL_TEXTURE_CUBE_MAP.
- */
-void
-_mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
- struct gl_texture_object *texObj)
+static void
+generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target,
+ struct gl_texture_object *texObj,
+ const struct gl_texture_image *srcImage,
+ GLuint maxLevel)
{
- const struct gl_texture_image *srcImage;
+ GLint level;
gl_format convertFormat;
const GLubyte *srcData = NULL;
GLubyte *dstData = NULL;
- GLint level, maxLevels;
GLenum datatype;
GLuint comps;
- ASSERT(texObj);
- srcImage = _mesa_select_tex_image(ctx, texObj, target, texObj->BaseLevel);
- ASSERT(srcImage);
-
- maxLevels = _mesa_max_texture_levels(ctx, texObj->Target);
- ASSERT(maxLevels > 0); /* bad target */
-
/* Find convertFormat - the format that do_row() will process */
-
if (_mesa_is_format_compressed(srcImage->TexFormat)) {
/* setup for compressed textures - need to allocate temporary
* image buffers to hold uncompressed images.
@@ -1984,8 +1966,7 @@ _mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
_mesa_format_to_type_and_comps(convertFormat, &datatype, &comps);
- for (level = texObj->BaseLevel; level < texObj->MaxLevel
- && level < maxLevels - 1; level++) {
+ for (level = texObj->BaseLevel; level < maxLevel; level++) {
/* generate image[level+1] from image[level] */
const struct gl_texture_image *srcImage;
struct gl_texture_image *dstImage;
@@ -2060,9 +2041,9 @@ _mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
ASSERT(dstImage->FetchTexelf);
_mesa_generate_mipmap_level(target, datatype, comps, border,
- srcWidth, srcHeight, srcDepth,
+ srcWidth, srcHeight, srcDepth,
srcData, srcImage->RowStride,
- dstWidth, dstHeight, dstDepth,
+ dstWidth, dstHeight, dstDepth,
dstData, dstImage->RowStride);
@@ -2092,6 +2073,224 @@ _mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
} /* loop over mipmap levels */
}
+static void
+generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
+ struct gl_texture_object *texObj,
+ const struct gl_texture_image *srcImage,
+ GLuint maxLevel)
+{
+ GLint level;
+ gl_format convertFormat;
+ const GLubyte *srcData = NULL;
+ GLubyte *dstData = NULL;
+ GLenum datatype;
+ GLuint comps;
+
+ /* Find convertFormat - the format that do_row() will process */
+ if (_mesa_is_format_compressed(srcImage->TexFormat)) {
+ /* setup for compressed textures - need to allocate temporary
+ * image buffers to hold uncompressed images.
+ */
+ GLuint row;
+ GLint components, size;
+ GLchan *dst;
+
+ assert(texObj->Target == GL_TEXTURE_2D ||
+ texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
+
+ if (srcImage->_BaseFormat == GL_RGB) {
+ convertFormat = MESA_FORMAT_RGB888;
+ components = 3;
+ } else if (srcImage->_BaseFormat == GL_RED) {
+ convertFormat = MESA_FORMAT_R8;
+ components = 1;
+ } else if (srcImage->_BaseFormat == GL_RG) {
+ convertFormat = MESA_FORMAT_RG88;
+ components = 2;
+ } else if (srcImage->_BaseFormat == GL_RGBA) {
+ convertFormat = MESA_FORMAT_RGBA8888;
+ components = 4;
+ } else if (srcImage->_BaseFormat == GL_LUMINANCE) {
+ convertFormat = MESA_FORMAT_L8;
+ components = 1;
+ } else if (srcImage->_BaseFormat == GL_LUMINANCE_ALPHA) {
+ convertFormat = MESA_FORMAT_AL88;
+ components = 2;
+ } else {
+ _mesa_problem(ctx, "bad srcImage->_BaseFormat in _mesa_generate_mipmaps");
+ return;
+ }
+
+ /* allocate storage for uncompressed GL_RGB or GL_RGBA images */
+ size = _mesa_bytes_per_pixel(srcImage->_BaseFormat, CHAN_TYPE)
+ * srcImage->Width * srcImage->Height * srcImage->Depth + 20;
+ /* 20 extra bytes, just be safe when calling last FetchTexel */
+ srcData = (GLubyte *) malloc(size);
+ if (!srcData) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
+ return;
+ }
+ dstData = (GLubyte *) malloc(size / 2); /* 1/4 would probably be OK */
+ if (!dstData) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
+ free((void *) srcData);
+ return;
+ }
+
+ /* decompress base image here */
+ dst = (GLchan *) srcData;
+ for (row = 0; row < srcImage->Height; row++) {
+ GLuint col;
+ for (col = 0; col < srcImage->Width; col++) {
+ srcImage->FetchTexelc(srcImage, col, row, 0, dst);
+ dst += components;
+ }
+ }
+ }
+ else {
+ /* uncompressed */
+ convertFormat = srcImage->TexFormat;
+ }
+
+ _mesa_format_to_type_and_comps(convertFormat, &datatype, &comps);
+
+ for (level = texObj->BaseLevel; level < maxLevel; level++) {
+ /* generate image[level+1] from image[level] */
+ const struct gl_texture_image *srcImage;
+ struct gl_texture_image *dstImage;
+ GLint srcWidth, srcHeight, srcDepth;
+ GLint dstWidth, dstHeight, dstDepth;
+ GLint border;
+ GLboolean nextLevel;
+
+ /* get src image parameters */
+ srcImage = _mesa_select_tex_image(ctx, texObj, target, level);
+ ASSERT(srcImage);
+ srcWidth = srcImage->Width;
+ srcHeight = srcImage->Height;
+ srcDepth = srcImage->Depth;
+ border = srcImage->Border;
+
+ nextLevel = next_mipmap_level_size(target, border,
+ srcWidth, srcHeight, srcDepth,
+ &dstWidth, &dstHeight, &dstDepth);
+ if (!nextLevel) {
+ /* all done */
+ if (_mesa_is_format_compressed(srcImage->TexFormat)) {
+ free((void *) srcData);
+ free(dstData);
+ }
+ return;
+ }
+
+ /* get dest gl_texture_image */
+ dstImage = _mesa_get_tex_image(ctx, texObj, target, level + 1);
+ if (!dstImage) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generating mipmaps");
+ return;
+ }
+
+ /* Free old image data */
+ if (dstImage->Data)
+ ctx->Driver.FreeTexImageData(ctx, dstImage);
+
+ /* initialize new image */
+ _mesa_init_teximage_fields(ctx, target, dstImage, dstWidth, dstHeight,
+ dstDepth, border, srcImage->InternalFormat,
+ srcImage->TexFormat);
+ dstImage->DriverData = NULL;
+ dstImage->FetchTexelc = srcImage->FetchTexelc;
+ dstImage->FetchTexelf = srcImage->FetchTexelf;
+
+ /* Alloc new teximage data buffer */
+ {
+ GLuint size = _mesa_format_image_size(dstImage->TexFormat,
+ dstWidth, dstHeight, dstDepth);
+ dstImage->Data = _mesa_alloc_texmemory(size);
+ if (!dstImage->Data) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generating mipmaps");
+ return;
+ }
+ }
+
+ /* Setup src and dest data pointers */
+ if (_mesa_is_format_compressed(dstImage->TexFormat)) {
+ /* srcData and dstData are already set */
+ ASSERT(srcData);
+ ASSERT(dstData);
+ }
+ else {
+ srcData = (const GLubyte *) srcImage->Data;
+ dstData = (GLubyte *) dstImage->Data;
+ }
+
+ ASSERT(dstImage->TexFormat);
+ ASSERT(dstImage->FetchTexelc);
+ ASSERT(dstImage->FetchTexelf);
+
+ _mesa_generate_mipmap_level(target, datatype, comps, border,
+ srcWidth, srcHeight, srcDepth,
+ srcData, srcImage->RowStride,
+ dstWidth, dstHeight, dstDepth,
+ dstData, dstImage->RowStride);
+
+ if (_mesa_is_format_compressed(dstImage->TexFormat)) {
+ GLubyte *temp;
+ /* compress image from dstData into dstImage->Data */
+ const GLenum srcFormat = _mesa_get_format_base_format(convertFormat);
+ GLint dstRowStride
+ = _mesa_format_row_stride(dstImage->TexFormat, dstWidth);
+
+ _mesa_texstore(ctx, 2, dstImage->_BaseFormat,
+ dstImage->TexFormat,
+ dstImage->Data,
+ 0, 0, 0, /* dstX/Y/Zoffset */
+ dstRowStride, 0, /* strides */
+ dstWidth, dstHeight, 1, /* size */
+ srcFormat, CHAN_TYPE,
+ dstData, /* src data, actually */
+ &ctx->DefaultPacking);
+
+ /* swap src and dest pointers */
+ temp = (GLubyte *) srcData;
+ srcData = dstData;
+ dstData = temp;
+ }
+
+ } /* loop over mipmap levels */
+}
+
+/**
+ * Automatic mipmap generation.
+ * This is the fallback/default function for ctx->Driver.GenerateMipmap().
+ * Generate a complete set of mipmaps from texObj's BaseLevel image.
+ * Stop at texObj's MaxLevel or when we get to the 1x1 texture.
+ * For cube maps, target will be one of
+ * GL_TEXTURE_CUBE_MAP_POSITIVE/NEGATIVE_X/Y/Z; never GL_TEXTURE_CUBE_MAP.
+ */
+void
+_mesa_generate_mipmap(struct gl_context *ctx, GLenum target,
+ struct gl_texture_object *texObj)
+{
+ const struct gl_texture_image *srcImage;
+ GLint maxLevel;
+
+ ASSERT(texObj);
+ srcImage = _mesa_select_tex_image(ctx, texObj, target, texObj->BaseLevel);
+ ASSERT(srcImage);
+
+ maxLevel = _mesa_max_texture_levels(ctx, texObj->Target) - 1;
+ ASSERT(maxLevel >= 0); /* bad target */
+
+ maxLevel = MIN2(maxLevel, texObj->MaxLevel);
+
+ if (_mesa_is_format_compressed(srcImage->TexFormat)) {
+ generate_mipmap_compressed(ctx, target, texObj, srcImage, maxLevel);
+ } else {
+ generate_mipmap_uncompressed(ctx, target, texObj, srcImage, maxLevel);
+ }
+}
+
/**
* Helper function for drivers which need to rescale texture images to
From 2bfd81df0a05351d79613b84908f167d6c5ad0af Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 12:04:19 -0700
Subject: [PATCH 077/406] mesa: Remove compressed code from
generate_mipmaps_uncompressed().
---
src/mesa/main/mipmap.c | 118 ++---------------------------------------
1 file changed, 4 insertions(+), 114 deletions(-)
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index 2bdb1111813..45fcc27e00b 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -1892,79 +1892,10 @@ generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target,
GLuint maxLevel)
{
GLint level;
- gl_format convertFormat;
- const GLubyte *srcData = NULL;
- GLubyte *dstData = NULL;
GLenum datatype;
GLuint comps;
- /* Find convertFormat - the format that do_row() will process */
- if (_mesa_is_format_compressed(srcImage->TexFormat)) {
- /* setup for compressed textures - need to allocate temporary
- * image buffers to hold uncompressed images.
- */
- GLuint row;
- GLint components, size;
- GLchan *dst;
-
- assert(texObj->Target == GL_TEXTURE_2D ||
- texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
-
- if (srcImage->_BaseFormat == GL_RGB) {
- convertFormat = MESA_FORMAT_RGB888;
- components = 3;
- } else if (srcImage->_BaseFormat == GL_RED) {
- convertFormat = MESA_FORMAT_R8;
- components = 1;
- } else if (srcImage->_BaseFormat == GL_RG) {
- convertFormat = MESA_FORMAT_RG88;
- components = 2;
- } else if (srcImage->_BaseFormat == GL_RGBA) {
- convertFormat = MESA_FORMAT_RGBA8888;
- components = 4;
- } else if (srcImage->_BaseFormat == GL_LUMINANCE) {
- convertFormat = MESA_FORMAT_L8;
- components = 1;
- } else if (srcImage->_BaseFormat == GL_LUMINANCE_ALPHA) {
- convertFormat = MESA_FORMAT_AL88;
- components = 2;
- } else {
- _mesa_problem(ctx, "bad srcImage->_BaseFormat in _mesa_generate_mipmaps");
- return;
- }
-
- /* allocate storage for uncompressed GL_RGB or GL_RGBA images */
- size = _mesa_bytes_per_pixel(srcImage->_BaseFormat, CHAN_TYPE)
- * srcImage->Width * srcImage->Height * srcImage->Depth + 20;
- /* 20 extra bytes, just be safe when calling last FetchTexel */
- srcData = (GLubyte *) malloc(size);
- if (!srcData) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
- return;
- }
- dstData = (GLubyte *) malloc(size / 2); /* 1/4 would probably be OK */
- if (!dstData) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
- free((void *) srcData);
- return;
- }
-
- /* decompress base image here */
- dst = (GLchan *) srcData;
- for (row = 0; row < srcImage->Height; row++) {
- GLuint col;
- for (col = 0; col < srcImage->Width; col++) {
- srcImage->FetchTexelc(srcImage, col, row, 0, dst);
- dst += components;
- }
- }
- }
- else {
- /* uncompressed */
- convertFormat = srcImage->TexFormat;
- }
-
- _mesa_format_to_type_and_comps(convertFormat, &datatype, &comps);
+ _mesa_format_to_type_and_comps(srcImage->TexFormat, &datatype, &comps);
for (level = texObj->BaseLevel; level < maxLevel; level++) {
/* generate image[level+1] from image[level] */
@@ -1986,14 +1917,8 @@ generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target,
nextLevel = next_mipmap_level_size(target, border,
srcWidth, srcHeight, srcDepth,
&dstWidth, &dstHeight, &dstDepth);
- if (!nextLevel) {
- /* all done */
- if (_mesa_is_format_compressed(srcImage->TexFormat)) {
- free((void *) srcData);
- free(dstData);
- }
+ if (!nextLevel)
return;
- }
/* get dest gl_texture_image */
dstImage = _mesa_get_tex_image(ctx, texObj, target, level + 1);
@@ -2025,50 +1950,15 @@ generate_mipmap_uncompressed(struct gl_context *ctx, GLenum target,
}
}
- /* Setup src and dest data pointers */
- if (_mesa_is_format_compressed(dstImage->TexFormat)) {
- /* srcData and dstData are already set */
- ASSERT(srcData);
- ASSERT(dstData);
- }
- else {
- srcData = (const GLubyte *) srcImage->Data;
- dstData = (GLubyte *) dstImage->Data;
- }
-
ASSERT(dstImage->TexFormat);
ASSERT(dstImage->FetchTexelc);
ASSERT(dstImage->FetchTexelf);
_mesa_generate_mipmap_level(target, datatype, comps, border,
srcWidth, srcHeight, srcDepth,
- srcData, srcImage->RowStride,
+ srcImage->Data, srcImage->RowStride,
dstWidth, dstHeight, dstDepth,
- dstData, dstImage->RowStride);
-
-
- if (_mesa_is_format_compressed(dstImage->TexFormat)) {
- GLubyte *temp;
- /* compress image from dstData into dstImage->Data */
- const GLenum srcFormat = _mesa_get_format_base_format(convertFormat);
- GLint dstRowStride
- = _mesa_format_row_stride(dstImage->TexFormat, dstWidth);
-
- _mesa_texstore(ctx, 2, dstImage->_BaseFormat,
- dstImage->TexFormat,
- dstImage->Data,
- 0, 0, 0, /* dstX/Y/Zoffset */
- dstRowStride, 0, /* strides */
- dstWidth, dstHeight, 1, /* size */
- srcFormat, CHAN_TYPE,
- dstData, /* src data, actually */
- &ctx->DefaultPacking);
-
- /* swap src and dest pointers */
- temp = (GLubyte *) srcData;
- srcData = dstData;
- dstData = temp;
- }
+ dstImage->Data, dstImage->RowStride);
} /* loop over mipmap levels */
}
From b0c4db68b2bea1d41ba42211a3ff6b41dfee21a8 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 12:10:33 -0700
Subject: [PATCH 078/406] mesa: Remove uncompressed code from
generate_mipmaps_compressed().
---
src/mesa/main/mipmap.c | 179 ++++++++++++++++++-----------------------
1 file changed, 78 insertions(+), 101 deletions(-)
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index 45fcc27e00b..43eea5050de 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -1970,79 +1970,72 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
GLuint maxLevel)
{
GLint level;
- gl_format convertFormat;
+ gl_format temp_format;
const GLubyte *srcData = NULL;
GLubyte *dstData = NULL;
- GLenum datatype;
+ GLenum datatype, temp_base_format;
GLuint comps;
+ GLuint row;
+ GLint components, size;
+ GLchan *dst;
- /* Find convertFormat - the format that do_row() will process */
- if (_mesa_is_format_compressed(srcImage->TexFormat)) {
- /* setup for compressed textures - need to allocate temporary
- * image buffers to hold uncompressed images.
- */
- GLuint row;
- GLint components, size;
- GLchan *dst;
+ /* Choose the format we will do _mesa_generate_mipmap_level() in,
+ * and uncompress the firstImage into a temporary of that format.
+ */
+ assert(texObj->Target == GL_TEXTURE_2D ||
+ texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
- assert(texObj->Target == GL_TEXTURE_2D ||
- texObj->Target == GL_TEXTURE_CUBE_MAP_ARB);
-
- if (srcImage->_BaseFormat == GL_RGB) {
- convertFormat = MESA_FORMAT_RGB888;
- components = 3;
- } else if (srcImage->_BaseFormat == GL_RED) {
- convertFormat = MESA_FORMAT_R8;
- components = 1;
- } else if (srcImage->_BaseFormat == GL_RG) {
- convertFormat = MESA_FORMAT_RG88;
- components = 2;
- } else if (srcImage->_BaseFormat == GL_RGBA) {
- convertFormat = MESA_FORMAT_RGBA8888;
- components = 4;
- } else if (srcImage->_BaseFormat == GL_LUMINANCE) {
- convertFormat = MESA_FORMAT_L8;
- components = 1;
- } else if (srcImage->_BaseFormat == GL_LUMINANCE_ALPHA) {
- convertFormat = MESA_FORMAT_AL88;
- components = 2;
- } else {
- _mesa_problem(ctx, "bad srcImage->_BaseFormat in _mesa_generate_mipmaps");
- return;
- }
-
- /* allocate storage for uncompressed GL_RGB or GL_RGBA images */
- size = _mesa_bytes_per_pixel(srcImage->_BaseFormat, CHAN_TYPE)
- * srcImage->Width * srcImage->Height * srcImage->Depth + 20;
- /* 20 extra bytes, just be safe when calling last FetchTexel */
- srcData = (GLubyte *) malloc(size);
- if (!srcData) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
- return;
- }
- dstData = (GLubyte *) malloc(size / 2); /* 1/4 would probably be OK */
- if (!dstData) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
- free((void *) srcData);
- return;
- }
-
- /* decompress base image here */
- dst = (GLchan *) srcData;
- for (row = 0; row < srcImage->Height; row++) {
- GLuint col;
- for (col = 0; col < srcImage->Width; col++) {
- srcImage->FetchTexelc(srcImage, col, row, 0, dst);
- dst += components;
- }
- }
- }
- else {
- /* uncompressed */
- convertFormat = srcImage->TexFormat;
+ if (srcImage->_BaseFormat == GL_RGB) {
+ temp_format = MESA_FORMAT_RGB888;
+ components = 3;
+ } else if (srcImage->_BaseFormat == GL_RED) {
+ temp_format = MESA_FORMAT_R8;
+ components = 1;
+ } else if (srcImage->_BaseFormat == GL_RG) {
+ temp_format = MESA_FORMAT_RG88;
+ components = 2;
+ } else if (srcImage->_BaseFormat == GL_RGBA) {
+ temp_format = MESA_FORMAT_RGBA8888;
+ components = 4;
+ } else if (srcImage->_BaseFormat == GL_LUMINANCE) {
+ temp_format = MESA_FORMAT_L8;
+ components = 1;
+ } else if (srcImage->_BaseFormat == GL_LUMINANCE_ALPHA) {
+ temp_format = MESA_FORMAT_AL88;
+ components = 2;
+ } else {
+ _mesa_problem(ctx, "bad srcImage->_BaseFormat in _mesa_generate_mipmaps");
+ return;
}
- _mesa_format_to_type_and_comps(convertFormat, &datatype, &comps);
+ /* allocate storage for uncompressed GL_RGB or GL_RGBA images */
+ size = _mesa_bytes_per_pixel(srcImage->_BaseFormat, CHAN_TYPE)
+ * srcImage->Width * srcImage->Height * srcImage->Depth + 20;
+ /* 20 extra bytes, just be safe when calling last FetchTexel */
+ srcData = (GLubyte *) malloc(size);
+ if (!srcData) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
+ return;
+ }
+ dstData = (GLubyte *) malloc(size / 2); /* 1/4 would probably be OK */
+ if (!dstData) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
+ free((void *) srcData);
+ return;
+ }
+
+ /* decompress base image here */
+ dst = (GLchan *) srcData;
+ for (row = 0; row < srcImage->Height; row++) {
+ GLuint col;
+ for (col = 0; col < srcImage->Width; col++) {
+ srcImage->FetchTexelc(srcImage, col, row, 0, dst);
+ dst += components;
+ }
+ }
+
+ _mesa_format_to_type_and_comps(temp_format, &datatype, &comps);
+ temp_base_format = _mesa_get_format_base_format(temp_format);
for (level = texObj->BaseLevel; level < maxLevel; level++) {
/* generate image[level+1] from image[level] */
@@ -2066,10 +2059,8 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
&dstWidth, &dstHeight, &dstDepth);
if (!nextLevel) {
/* all done */
- if (_mesa_is_format_compressed(srcImage->TexFormat)) {
- free((void *) srcData);
- free(dstData);
- }
+ free((void *) srcData);
+ free(dstData);
return;
}
@@ -2103,17 +2094,6 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
}
}
- /* Setup src and dest data pointers */
- if (_mesa_is_format_compressed(dstImage->TexFormat)) {
- /* srcData and dstData are already set */
- ASSERT(srcData);
- ASSERT(dstData);
- }
- else {
- srcData = (const GLubyte *) srcImage->Data;
- dstData = (GLubyte *) dstImage->Data;
- }
-
ASSERT(dstImage->TexFormat);
ASSERT(dstImage->FetchTexelc);
ASSERT(dstImage->FetchTexelf);
@@ -2124,27 +2104,24 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
dstWidth, dstHeight, dstDepth,
dstData, dstImage->RowStride);
- if (_mesa_is_format_compressed(dstImage->TexFormat)) {
- GLubyte *temp;
- /* compress image from dstData into dstImage->Data */
- const GLenum srcFormat = _mesa_get_format_base_format(convertFormat);
- GLint dstRowStride
- = _mesa_format_row_stride(dstImage->TexFormat, dstWidth);
+ /* compress image from dstData into dstImage->Data */
+ _mesa_texstore(ctx, 2, dstImage->_BaseFormat,
+ dstImage->TexFormat,
+ dstImage->Data,
+ 0, 0, 0, /* dstX/Y/Zoffset */
+ _mesa_format_row_stride(dstImage->TexFormat, dstWidth),
+ NULL,
+ dstWidth, dstHeight, 1, /* size */
+ temp_base_format, CHAN_TYPE,
+ dstData, /* src data, actually */
+ &ctx->DefaultPacking);
- _mesa_texstore(ctx, 2, dstImage->_BaseFormat,
- dstImage->TexFormat,
- dstImage->Data,
- 0, 0, 0, /* dstX/Y/Zoffset */
- dstRowStride, 0, /* strides */
- dstWidth, dstHeight, 1, /* size */
- srcFormat, CHAN_TYPE,
- dstData, /* src data, actually */
- &ctx->DefaultPacking);
-
- /* swap src and dest pointers */
- temp = (GLubyte *) srcData;
- srcData = dstData;
- dstData = temp;
+ /* swap src and dest pointers */
+ {
+ GLubyte *temp;
+ temp = (GLubyte *) srcData;
+ srcData = dstData;
+ dstData = temp;
}
} /* loop over mipmap levels */
From 10e418f3815d690b2526e835bc7eb421b6be7050 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 12:58:56 -0700
Subject: [PATCH 079/406] mesa: Switch generate_mipmaps_compressed() to using
TexImage2D to upload.
The code was playing fast and loose with rowstrides, which meant that
if a driver chose anything different for its alignment requirements,
the generated mipmaps came out garbage. Unlike the uncompressed case,
we can't generate mipmaps directly into image->Data, so by using
TexImage2D we cut out most of the weird logic that existed to generate
in-place into ->Data. The up/downside is that the driver recovery
code for the fact that _mesa_generate_mipmaps whacked ->Data has to be
turned off for compressed now.
Fixes 6 piglit tests about compressed mipmap gen.
---
src/mesa/drivers/dri/intel/intel_tex.c | 3 +-
.../drivers/dri/nouveau/nouveau_texture.c | 6 +-
src/mesa/drivers/dri/radeon/radeon_texture.c | 8 ++
src/mesa/main/mipmap.c | 104 +++++++-----------
4 files changed, 52 insertions(+), 69 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c
index 2c3eab20fda..32e1fb7397a 100644
--- a/src/mesa/drivers/dri/intel/intel_tex.c
+++ b/src/mesa/drivers/dri/intel/intel_tex.c
@@ -75,6 +75,7 @@ intelGenerateMipmap(struct gl_context *ctx, GLenum target,
/* sw path: need to map texture images */
struct intel_context *intel = intel_context(ctx);
struct intel_texture_object *intelObj = intel_texture_object(texObj);
+ struct gl_texture_image *first_image = texObj->Image[0][texObj->BaseLevel];
fallback_debug("%s - fallback to swrast\n", __FUNCTION__);
@@ -82,7 +83,7 @@ intelGenerateMipmap(struct gl_context *ctx, GLenum target,
_mesa_generate_mipmap(ctx, target, texObj);
intel_tex_unmap_level_images(intel, intelObj, texObj->BaseLevel);
- {
+ if (!_mesa_is_format_compressed(first_image->TexFormat)) {
GLuint nr_faces = (texObj->Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
GLuint face, i;
/* Update the level information in our private data in the new images,
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.c b/src/mesa/drivers/dri/nouveau/nouveau_texture.c
index 36e68c99181..dcfd316c49f 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_texture.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.c
@@ -688,8 +688,10 @@ nouveau_generate_mipmap(struct gl_context *ctx, GLenum target,
_mesa_generate_mipmap(ctx, target, t);
nouveau_teximage_unmap(ctx, base);
- store_mipmap(ctx, target, t->BaseLevel + 1,
- get_last_level(t), t);
+ if (!_mesa_is_format_compressed(base->TexFormat)) {
+ store_mipmap(ctx, target, t->BaseLevel + 1,
+ get_last_level(t), t);
+ }
} else {
_mesa_meta_GenerateMipmap(ctx, target, t);
diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index 9ec53881bb2..ce0df32bfe4 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -249,6 +249,7 @@ static void radeon_generate_mipmap(struct gl_context *ctx, GLenum target,
radeonTexObj* t = radeon_tex_obj(texObj);
GLuint nr_faces = (t->base.Target == GL_TEXTURE_CUBE_MAP) ? 6 : 1;
int i, face;
+ struct gl_texture_image *first_image;
radeon_print(RADEON_TEXTURE, RADEON_VERBOSE,
"%s(%p, tex %p) Target type %s.\n",
@@ -257,6 +258,13 @@ static void radeon_generate_mipmap(struct gl_context *ctx, GLenum target,
_mesa_generate_mipmap(ctx, target, texObj);
+ /* For the compressed case, we don't need to do the
+ * non-TexImage recovery path below.
+ */
+ first_image = texObj->Image[0][texObj->BaseLevel];
+ if (_mesa_is_format_compressed(first_image->TexFormat))
+ return;
+
for (face = 0; face < nr_faces; face++) {
for (i = texObj->BaseLevel + 1; i < texObj->MaxLevel; i++) {
radeon_texture_image *image;
diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
index 43eea5050de..f2724dbca7e 100644
--- a/src/mesa/main/mipmap.c
+++ b/src/mesa/main/mipmap.c
@@ -1971,13 +1971,12 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
{
GLint level;
gl_format temp_format;
- const GLubyte *srcData = NULL;
- GLubyte *dstData = NULL;
- GLenum datatype, temp_base_format;
+ GLenum datatype;
GLuint comps;
GLuint row;
- GLint components, size;
- GLchan *dst;
+ GLint components;
+ GLuint temp_src_stride, temp_dst_stride; /* in bytes */
+ GLchan *temp_src = NULL, *temp_dst = NULL;
/* Choose the format we will do _mesa_generate_mipmap_level() in,
* and uncompress the firstImage into a temporary of that format.
@@ -2009,25 +2008,18 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
}
/* allocate storage for uncompressed GL_RGB or GL_RGBA images */
- size = _mesa_bytes_per_pixel(srcImage->_BaseFormat, CHAN_TYPE)
- * srcImage->Width * srcImage->Height * srcImage->Depth + 20;
+ temp_src_stride = _mesa_format_row_stride(temp_format, srcImage->Width);
/* 20 extra bytes, just be safe when calling last FetchTexel */
- srcData = (GLubyte *) malloc(size);
- if (!srcData) {
+ temp_src = (GLubyte *) malloc(temp_src_stride * srcImage->Height + 20);
+ if (!temp_src) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
return;
}
- dstData = (GLubyte *) malloc(size / 2); /* 1/4 would probably be OK */
- if (!dstData) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
- free((void *) srcData);
- return;
- }
- /* decompress base image here */
- dst = (GLchan *) srcData;
+ /* decompress base image to the temporary */
for (row = 0; row < srcImage->Height; row++) {
GLuint col;
+ GLchan *dst = (GLchan *) temp_src + temp_src_stride * row;
for (col = 0; col < srcImage->Width; col++) {
srcImage->FetchTexelc(srcImage, col, row, 0, dst);
dst += components;
@@ -2035,7 +2027,6 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
}
_mesa_format_to_type_and_comps(temp_format, &datatype, &comps);
- temp_base_format = _mesa_get_format_base_format(temp_format);
for (level = texObj->BaseLevel; level < maxLevel; level++) {
/* generate image[level+1] from image[level] */
@@ -2057,11 +2048,16 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
nextLevel = next_mipmap_level_size(target, border,
srcWidth, srcHeight, srcDepth,
&dstWidth, &dstHeight, &dstDepth);
- if (!nextLevel) {
- /* all done */
- free((void *) srcData);
- free(dstData);
- return;
+ if (!nextLevel)
+ break;
+
+ temp_dst_stride = _mesa_format_row_stride(temp_format, dstWidth);
+ if (!temp_dst) {
+ temp_dst = (GLubyte *) malloc(temp_dst_stride * dstHeight);
+ if (!temp_dst) {
+ _mesa_error(ctx, GL_OUT_OF_MEMORY, "generate mipmaps");
+ break;
+ }
}
/* get dest gl_texture_image */
@@ -2071,60 +2067,36 @@ generate_mipmap_compressed(struct gl_context *ctx, GLenum target,
return;
}
- /* Free old image data */
- if (dstImage->Data)
- ctx->Driver.FreeTexImageData(ctx, dstImage);
+ _mesa_generate_mipmap_level(target, datatype, comps, border,
+ srcWidth, srcHeight, srcDepth,
+ temp_src, temp_src_stride / components,
+ dstWidth, dstHeight, dstDepth,
+ temp_dst, temp_dst_stride / components);
/* initialize new image */
_mesa_init_teximage_fields(ctx, target, dstImage, dstWidth, dstHeight,
dstDepth, border, srcImage->InternalFormat,
srcImage->TexFormat);
- dstImage->DriverData = NULL;
- dstImage->FetchTexelc = srcImage->FetchTexelc;
- dstImage->FetchTexelf = srcImage->FetchTexelf;
- /* Alloc new teximage data buffer */
- {
- GLuint size = _mesa_format_image_size(dstImage->TexFormat,
- dstWidth, dstHeight, dstDepth);
- dstImage->Data = _mesa_alloc_texmemory(size);
- if (!dstImage->Data) {
- _mesa_error(ctx, GL_OUT_OF_MEMORY, "generating mipmaps");
- return;
- }
- }
-
- ASSERT(dstImage->TexFormat);
- ASSERT(dstImage->FetchTexelc);
- ASSERT(dstImage->FetchTexelf);
-
- _mesa_generate_mipmap_level(target, datatype, comps, border,
- srcWidth, srcHeight, srcDepth,
- srcData, srcImage->RowStride,
- dstWidth, dstHeight, dstDepth,
- dstData, dstImage->RowStride);
-
- /* compress image from dstData into dstImage->Data */
- _mesa_texstore(ctx, 2, dstImage->_BaseFormat,
- dstImage->TexFormat,
- dstImage->Data,
- 0, 0, 0, /* dstX/Y/Zoffset */
- _mesa_format_row_stride(dstImage->TexFormat, dstWidth),
- NULL,
- dstWidth, dstHeight, 1, /* size */
- temp_base_format, CHAN_TYPE,
- dstData, /* src data, actually */
- &ctx->DefaultPacking);
+ ctx->Driver.TexImage2D(ctx, target, level + 1,
+ srcImage->InternalFormat,
+ dstWidth, dstHeight, border,
+ _mesa_get_format_base_format(temp_format),
+ GL_UNSIGNED_BYTE,
+ temp_dst, &ctx->DefaultPacking, texObj, dstImage);
/* swap src and dest pointers */
{
- GLubyte *temp;
- temp = (GLubyte *) srcData;
- srcData = dstData;
- dstData = temp;
- }
+ GLchan *temp = temp_src;
+ temp_src = temp_dst;
+ temp_dst = temp;
+ temp_src_stride = temp_dst_stride;
+ }
} /* loop over mipmap levels */
+
+ free((void *) temp_src);
+ free(temp_dst);
}
/**
From df6355512a7f12ca191d05556279991439b77669 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 20:25:00 +0200
Subject: [PATCH 080/406] r600g: fix indentation and comments
---
src/gallium/drivers/r600/eg_state_inlines.h | 40 ++++++++++---------
src/gallium/drivers/r600/r600_state_inlines.h | 37 ++++++++---------
2 files changed, 40 insertions(+), 37 deletions(-)
diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h
index b780dba3e33..f8891781be8 100644
--- a/src/gallium/drivers/r600/eg_state_inlines.h
+++ b/src/gallium/drivers/r600/eg_state_inlines.h
@@ -292,7 +292,7 @@ static inline uint32_t r600_translate_stencilformat(enum pipe_format format)
static inline uint32_t r600_translate_colorswap(enum pipe_format format)
{
switch (format) {
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case PIPE_FORMAT_L4A4_UNORM:
return V_028C70_SWAP_ALT;
@@ -305,7 +305,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_R8_SNORM:
return V_028C70_SWAP_STD;
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case PIPE_FORMAT_B5G6R5_UNORM:
return V_028C70_SWAP_STD_REV;
@@ -328,8 +328,8 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_R16_UNORM:
return V_028C70_SWAP_STD;
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case PIPE_FORMAT_A8B8G8R8_SRGB:
return V_028C70_SWAP_STD_REV;
case PIPE_FORMAT_B8G8R8A8_SRGB:
@@ -373,13 +373,13 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_R16G16_UNORM:
return V_028C70_SWAP_STD;
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case PIPE_FORMAT_R32G32_FLOAT:
case PIPE_FORMAT_R16G16B16A16_UNORM:
case PIPE_FORMAT_R16G16B16A16_SNORM:
case PIPE_FORMAT_R16G16B16A16_FLOAT:
- /* 128-bit buffers. */
+ /* 128-bit buffers. */
case PIPE_FORMAT_R32G32B32A32_FLOAT:
case PIPE_FORMAT_R32G32B32A32_SNORM:
case PIPE_FORMAT_R32G32B32A32_UNORM:
@@ -394,7 +394,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
{
switch (format) {
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case PIPE_FORMAT_L4A4_UNORM:
return V_028C70_COLOR_4_4;
@@ -406,7 +406,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R8_SNORM:
return V_028C70_COLOR_8;
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case PIPE_FORMAT_B5G6R5_UNORM:
return V_028C70_COLOR_5_6_5;
@@ -429,7 +429,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R16_UNORM:
return V_028C70_COLOR_16;
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case PIPE_FORMAT_A8B8G8R8_SRGB:
case PIPE_FORMAT_A8B8G8R8_UNORM:
case PIPE_FORMAT_A8R8G8B8_UNORM:
@@ -472,7 +472,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R11G11B10_FLOAT:
return V_028C70_COLOR_10_11_11_FLOAT;
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case PIPE_FORMAT_R16G16B16_USCALED:
case PIPE_FORMAT_R16G16B16A16_USCALED:
case PIPE_FORMAT_R16G16B16_SSCALED:
@@ -492,20 +492,21 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R32G32_SSCALED:
return V_028C70_COLOR_32_32;
- /* 128-bit buffers. */
+ /* 96-bit buffers. */
+ case PIPE_FORMAT_R32G32B32_FLOAT:
+ return V_028C70_COLOR_32_32_32_FLOAT;
+
+ /* 128-bit buffers. */
case PIPE_FORMAT_R32G32B32A32_SNORM:
case PIPE_FORMAT_R32G32B32A32_UNORM:
return V_028C70_COLOR_32_32_32_32;
- case PIPE_FORMAT_R32G32B32_FLOAT:
- return V_028C70_COLOR_32_32_32_FLOAT;
case PIPE_FORMAT_R32G32B32A32_FLOAT:
return V_028C70_COLOR_32_32_32_32_FLOAT;
- /* YUV buffers. */
+ /* YUV buffers. */
case PIPE_FORMAT_UYVY:
case PIPE_FORMAT_YUYV:
default:
- /* R600_ERR("unsupported color format %d\n", format); */
return ~0; /* Unsupported. */
}
}
@@ -517,11 +518,11 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_028C70_COLOR_4_4:
return(ENDIAN_NONE);
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case V_028C70_COLOR_8:
return(ENDIAN_NONE);
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case V_028C70_COLOR_5_6_5:
case V_028C70_COLOR_1_5_5_5:
case V_028C70_COLOR_4_4_4_4:
@@ -529,7 +530,7 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_028C70_COLOR_8_8:
return(ENDIAN_8IN16);
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case V_028C70_COLOR_8_8_8_8:
case V_028C70_COLOR_2_10_10_10:
case V_028C70_COLOR_8_24:
@@ -539,7 +540,7 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_028C70_COLOR_16_16:
return(ENDIAN_8IN32);
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case V_028C70_COLOR_16_16_16_16:
case V_028C70_COLOR_16_16_16_16_FLOAT:
return(ENDIAN_8IN16);
@@ -548,8 +549,9 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_028C70_COLOR_32_32:
return(ENDIAN_8IN32);
- /* 128-bit buffers. */
+ /* 96-bit buffers. */
case V_028C70_COLOR_32_32_32_FLOAT:
+ /* 128-bit buffers. */
case V_028C70_COLOR_32_32_32_32_FLOAT:
case V_028C70_COLOR_32_32_32_32:
return(ENDIAN_8IN32);
diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h
index 53a649cf8b2..5418570756f 100644
--- a/src/gallium/drivers/r600/r600_state_inlines.h
+++ b/src/gallium/drivers/r600/r600_state_inlines.h
@@ -284,7 +284,7 @@ static inline uint32_t r600_translate_dbformat(enum pipe_format format)
static inline uint32_t r600_translate_colorswap(enum pipe_format format)
{
switch (format) {
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case PIPE_FORMAT_A8_UNORM:
return V_0280A0_SWAP_ALT_REV;
case PIPE_FORMAT_I8_UNORM:
@@ -297,7 +297,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_L4A4_UNORM:
return V_0280A0_SWAP_ALT;
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case PIPE_FORMAT_B5G6R5_UNORM:
return V_0280A0_SWAP_STD_REV;
@@ -321,7 +321,7 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_R16_UNORM:
return V_0280A0_SWAP_STD;
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case PIPE_FORMAT_A8B8G8R8_SRGB:
return V_0280A0_SWAP_STD_REV;
@@ -367,13 +367,13 @@ static inline uint32_t r600_translate_colorswap(enum pipe_format format)
case PIPE_FORMAT_R32_FLOAT:
return V_0280A0_SWAP_STD;
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case PIPE_FORMAT_R32G32_FLOAT:
case PIPE_FORMAT_R16G16B16A16_UNORM:
case PIPE_FORMAT_R16G16B16A16_SNORM:
case PIPE_FORMAT_R16G16B16A16_FLOAT:
- /* 128-bit buffers. */
+ /* 128-bit buffers. */
case PIPE_FORMAT_R32G32B32A32_FLOAT:
case PIPE_FORMAT_R32G32B32A32_SNORM:
case PIPE_FORMAT_R32G32B32A32_UNORM:
@@ -391,7 +391,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_L4A4_UNORM:
return V_0280A0_COLOR_4_4;
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case PIPE_FORMAT_A8_UNORM:
case PIPE_FORMAT_I8_UNORM:
case PIPE_FORMAT_L8_UNORM:
@@ -400,7 +400,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R8_SNORM:
return V_0280A0_COLOR_8;
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case PIPE_FORMAT_B5G6R5_UNORM:
return V_0280A0_COLOR_5_6_5;
@@ -423,7 +423,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R16_UNORM:
return V_0280A0_COLOR_16;
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case PIPE_FORMAT_A8B8G8R8_SRGB:
case PIPE_FORMAT_A8B8G8R8_UNORM:
case PIPE_FORMAT_A8R8G8B8_UNORM:
@@ -466,7 +466,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R11G11B10_FLOAT:
return V_0280A0_COLOR_10_11_11_FLOAT;
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case PIPE_FORMAT_R16G16B16_USCALED:
case PIPE_FORMAT_R16G16B16A16_USCALED:
case PIPE_FORMAT_R16G16B16_SSCALED:
@@ -486,20 +486,21 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)
case PIPE_FORMAT_R32G32_SSCALED:
return V_0280A0_COLOR_32_32;
- /* 128-bit buffers. */
+ /* 96-bit buffers. */
case PIPE_FORMAT_R32G32B32_FLOAT:
return V_0280A0_COLOR_32_32_32_FLOAT;
+
+ /* 128-bit buffers. */
case PIPE_FORMAT_R32G32B32A32_FLOAT:
return V_0280A0_COLOR_32_32_32_32_FLOAT;
case PIPE_FORMAT_R32G32B32A32_SNORM:
case PIPE_FORMAT_R32G32B32A32_UNORM:
return V_0280A0_COLOR_32_32_32_32;
- /* YUV buffers. */
+ /* YUV buffers. */
case PIPE_FORMAT_UYVY:
case PIPE_FORMAT_YUYV:
default:
- /* R600_ERR("unsupported color format %d %s\n", format, util_format_name(format)); */
return ~0; /* Unsupported. */
}
}
@@ -511,11 +512,11 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_0280A0_COLOR_4_4:
return(ENDIAN_NONE);
- /* 8-bit buffers. */
+ /* 8-bit buffers. */
case V_0280A0_COLOR_8:
return(ENDIAN_NONE);
- /* 16-bit buffers. */
+ /* 16-bit buffers. */
case V_0280A0_COLOR_5_6_5:
case V_0280A0_COLOR_1_5_5_5:
case V_0280A0_COLOR_4_4_4_4:
@@ -523,7 +524,7 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_0280A0_COLOR_8_8:
return(ENDIAN_8IN16);
- /* 32-bit buffers. */
+ /* 32-bit buffers. */
case V_0280A0_COLOR_8_8_8_8:
case V_0280A0_COLOR_2_10_10_10:
case V_0280A0_COLOR_8_24:
@@ -533,7 +534,7 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_0280A0_COLOR_16_16:
return(ENDIAN_8IN32);
- /* 64-bit buffers. */
+ /* 64-bit buffers. */
case V_0280A0_COLOR_16_16_16_16:
case V_0280A0_COLOR_16_16_16_16_FLOAT:
return(ENDIAN_8IN16);
@@ -542,7 +543,7 @@ static INLINE uint32_t r600_colorformat_endian_swap(uint32_t colorformat)
case V_0280A0_COLOR_32_32:
return(ENDIAN_8IN32);
- /* 128-bit buffers. */
+ /* 128-bit buffers. */
case V_0280A0_COLOR_32_32_32_FLOAT:
case V_0280A0_COLOR_32_32_32_32_FLOAT:
case V_0280A0_COLOR_32_32_32_32:
@@ -563,7 +564,7 @@ static INLINE boolean r600_is_sampler_format_supported(struct pipe_screen *scree
static INLINE boolean r600_is_colorbuffer_format_supported(enum pipe_format format)
{
return r600_translate_colorformat(format) != ~0 &&
- r600_translate_colorswap(format) != ~0;
+ r600_translate_colorswap(format) != ~0;
}
static INLINE boolean r600_is_zs_format_supported(enum pipe_format format)
From 7d488ade239652d67f78a79bbd9712e4690591cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 20:47:57 +0200
Subject: [PATCH 081/406] r600g: fix RGB32F texturing
---
src/gallium/drivers/r600/r600_texture.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 7ffea6961de..470d26e2c9f 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -1082,8 +1082,9 @@ uint32_t r600_translate_texformat(struct pipe_screen *screen,
goto out_word4;
}
}
-
+ goto out_unknown;
}
+
out_word4:
if (word4_p)
*word4_p = word4;
From 24a760e9cb7a1c905e36135534d4a9c6e93c3f2a Mon Sep 17 00:00:00 2001
From: Alex Deucher
Date: Tue, 14 Jun 2011 18:39:59 -0400
Subject: [PATCH 082/406] r600c: add tiling support for evergreen+
Signed-off-by: Alex Deucher
---
src/mesa/drivers/dri/radeon/radeon_screen.c | 140 +++++++++++++-------
1 file changed, 95 insertions(+), 45 deletions(-)
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index 6cf843406f9..c5ddb6d3ebe 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -1658,52 +1658,102 @@ radeonCreateScreen2(__DRIscreen *sPriv)
screen->group_bytes = 512;
else
screen->group_bytes = 256;
- if (IS_R600_CLASS(screen) && (sPriv->drm_version.minor >= 6) &&
- (screen->chip_family < CHIP_FAMILY_CEDAR)) {
- ret = radeonGetParam(sPriv, RADEON_INFO_TILE_CONFIG, &temp);
- if (ret)
- fprintf(stderr, "failed to get tiling info\n");
- else {
- screen->tile_config = temp;
- screen->r7xx_bank_op = 0;
- switch((screen->tile_config & 0xe) >> 1) {
- case 0:
- screen->num_channels = 1;
- break;
- case 1:
- screen->num_channels = 2;
- break;
- case 2:
- screen->num_channels = 4;
- break;
- case 3:
- screen->num_channels = 8;
- break;
- default:
- fprintf(stderr, "bad channels\n");
- break;
+ if (IS_R600_CLASS(screen)) {
+ if ((sPriv->drm_version.minor >= 6) &&
+ (screen->chip_family < CHIP_FAMILY_CEDAR)) {
+ ret = radeonGetParam(sPriv, RADEON_INFO_TILE_CONFIG, &temp);
+ if (ret)
+ fprintf(stderr, "failed to get tiling info\n");
+ else {
+ screen->tile_config = temp;
+ screen->r7xx_bank_op = 0;
+ switch ((screen->tile_config & 0xe) >> 1) {
+ case 0:
+ screen->num_channels = 1;
+ break;
+ case 1:
+ screen->num_channels = 2;
+ break;
+ case 2:
+ screen->num_channels = 4;
+ break;
+ case 3:
+ screen->num_channels = 8;
+ break;
+ default:
+ fprintf(stderr, "bad channels\n");
+ break;
+ }
+ switch ((screen->tile_config & 0x30) >> 4) {
+ case 0:
+ screen->num_banks = 4;
+ break;
+ case 1:
+ screen->num_banks = 8;
+ break;
+ default:
+ fprintf(stderr, "bad banks\n");
+ break;
+ }
+ switch ((screen->tile_config & 0xc0) >> 6) {
+ case 0:
+ screen->group_bytes = 256;
+ break;
+ case 1:
+ screen->group_bytes = 512;
+ break;
+ default:
+ fprintf(stderr, "bad group_bytes\n");
+ break;
+ }
}
- switch((screen->tile_config & 0x30) >> 4) {
- case 0:
- screen->num_banks = 4;
- break;
- case 1:
- screen->num_banks = 8;
- break;
- default:
- fprintf(stderr, "bad banks\n");
- break;
- }
- switch((screen->tile_config & 0xc0) >> 6) {
- case 0:
- screen->group_bytes = 256;
- break;
- case 1:
- screen->group_bytes = 512;
- break;
- default:
- fprintf(stderr, "bad group_bytes\n");
- break;
+ } else if ((sPriv->drm_version.minor >= 7) &&
+ (screen->chip_family >= CHIP_FAMILY_CEDAR)) {
+ ret = radeonGetParam(sPriv, RADEON_INFO_TILE_CONFIG, &temp);
+ if (ret)
+ fprintf(stderr, "failed to get tiling info\n");
+ else {
+ screen->tile_config = temp;
+ screen->r7xx_bank_op = 0;
+ switch (screen->tile_config & 0xf) {
+ case 0:
+ screen->num_channels = 1;
+ break;
+ case 1:
+ screen->num_channels = 2;
+ break;
+ case 2:
+ screen->num_channels = 4;
+ break;
+ case 3:
+ screen->num_channels = 8;
+ break;
+ default:
+ fprintf(stderr, "bad channels\n");
+ break;
+ }
+ switch ((screen->tile_config & 0xf0) >> 4) {
+ case 0:
+ screen->num_banks = 4;
+ break;
+ case 1:
+ screen->num_banks = 8;
+ break;
+ default:
+ fprintf(stderr, "bad banks\n");
+ break;
+ }
+ switch ((screen->tile_config & 0xf00) >> 8) {
+ case 0:
+ screen->group_bytes = 256;
+ break;
+ case 1:
+ screen->group_bytes = 512;
+ break;
+ default:
+ fprintf(stderr, "bad group_bytes\n");
+ break;
+ }
}
}
}
From ee231b30a804438c89da7987d4546f14e0d9179a Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 17:34:20 -0600
Subject: [PATCH 083/406] st/mesa: improved is_interleaved_arrays() checking
Check that the difference in array pointers/offsets from the 0th
array are less than the stride, for both VBOs and user-space arrays.
Previously, we were only doing this for the later.
This tightens up the interleaved array test and fixes a problem with
the llvmpipe driver where we were creating way too many vertex fetch
variants only because the pipe_vertex_element::src_offset values were
changing frequently. This change results in a 5x speed-up for one of
the viewperf tests.
Also, clean up the function to make it easier to understand.
---
src/mesa/state_tracker/st_draw.c | 50 ++++++++++++--------------------
1 file changed, 19 insertions(+), 31 deletions(-)
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index dd26db2f678..1bb9b80298e 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -237,7 +237,6 @@ st_pipe_vertex_format(GLenum type, GLuint size, GLenum format,
/**
* Examine the active arrays to determine if we have interleaved
* vertex arrays all living in one VBO, or all living in user space.
- * \param userSpace returns whether the arrays are in user space.
*/
static GLboolean
is_interleaved_arrays(const struct st_vertex_program *vp,
@@ -247,8 +246,8 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
GLuint attr;
const struct gl_buffer_object *firstBufObj = NULL;
GLint firstStride = -1;
- const GLubyte *client_addr = NULL;
- GLboolean user_memory = GL_FALSE;
+ const GLubyte *firstPtr = NULL;
+ GLboolean userSpaceBuffer = GL_FALSE;
for (attr = 0; attr < vpv->num_inputs; attr++) {
const GLuint mesaAttr = vp->index_to_input[attr];
@@ -256,37 +255,26 @@ is_interleaved_arrays(const struct st_vertex_program *vp,
const struct gl_buffer_object *bufObj = array->BufferObj;
const GLsizei stride = array->StrideB; /* in bytes */
- if (firstStride < 0) {
+ if (attr == 0) {
+ /* save info about the first array */
firstStride = stride;
- user_memory = !bufObj || !bufObj->Name;
- }
- else if (firstStride != stride) {
- return GL_FALSE;
- }
-
- if (!bufObj || !bufObj->Name) {
- /* Try to detect if the client-space arrays are
- * "close" to each other.
- */
- if (!user_memory) {
- return GL_FALSE;
- }
- if (!client_addr) {
- client_addr = array->Ptr;
- }
- else if (abs(array->Ptr - client_addr) > firstStride) {
- /* arrays start too far apart */
- return GL_FALSE;
- }
- }
- else if (!firstBufObj) {
- if (user_memory) {
- return GL_FALSE;
- }
+ firstPtr = array->Ptr;
firstBufObj = bufObj;
+ userSpaceBuffer = !bufObj || !bufObj->Name;
}
- else if (bufObj != firstBufObj) {
- return GL_FALSE;
+ else {
+ /* check if other arrays interleave with the first, in same buffer */
+ if (stride != firstStride)
+ return GL_FALSE; /* strides don't match */
+
+ if (bufObj != firstBufObj)
+ return GL_FALSE; /* arrays in different VBOs */
+
+ if (abs(array->Ptr - firstPtr) > firstStride)
+ return GL_FALSE; /* arrays start too far apart */
+
+ if ((!bufObj || !_mesa_is_bufferobj(bufObj)) != userSpaceBuffer)
+ return GL_FALSE; /* mix of VBO and user-space arrays */
}
}
From cbad86841b16b653692223c76f6695aca6d93147 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Mon, 13 Jun 2011 18:32:39 -0600
Subject: [PATCH 084/406] docs: 7.10.3 updates
---
docs/news.html | 9 +-
docs/relnotes-7.10.3.html | 303 ++++++++++++++++++++++++++++++++++++++
docs/relnotes.html | 1 +
3 files changed, 312 insertions(+), 1 deletion(-)
create mode 100644 docs/relnotes-7.10.3.html
diff --git a/docs/news.html b/docs/news.html
index a6a658aefaf..eea6cd609e9 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -11,11 +11,18 @@
News
+June 13, 2011
+
+
+Mesa 7.10.3 is released. This is a bug
+fix release.
+
+
April 6, 2011
Mesa 7.10.2 is released. This is a bug
-fix release release.
+fix release.
March 2, 2011
diff --git a/docs/relnotes-7.10.3.html b/docs/relnotes-7.10.3.html
new file mode 100644
index 00000000000..9ac5ef28e16
--- /dev/null
+++ b/docs/relnotes-7.10.3.html
@@ -0,0 +1,303 @@
+
+
+
+Mesa Release Notes
+
+
+
+
+
+
+
+
+Mesa 7.10.3 Release Notes / June 13, 2011
+
+
+Mesa 7.10.3 is a bug fix release which fixes bugs found since the 7.10.2 release.
+
+
+Mesa 7.10.3 implements the OpenGL 2.1 API, but the version reported by
+glGetString(GL_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 2.1.
+
+
+See the Compiling/Installing page for prerequisites
+for DRI hardware acceleration.
+
+
+
+MD5 checksums
+
+d77b02034c11d6c2a55c07f82367d780 MesaLib-7.10.3.tar.gz
+8c38fe8266be8e1ed1d84076ba5a703b MesaLib-7.10.3.tar.bz2
+614d063ecd170940d9ae7b355d365d59 MesaLib-7.10.3.zip
+8768fd562ede7ed763d92b2d22232d7a MesaGLUT-7.10.3.tar.gz
+1496415b89da9549f0f3b34d9622e2e2 MesaGLUT-7.10.3.tar.bz2
+1f29d0e7398fd3bf9f36f5db02941198 MesaGLUT-7.10.3.zip
+
+
+
+New features
+None.
+
+
+Bug fixes
+This list is likely incomplete.
+
+
+Bug 29162 - mesa/darwin is severly broken
+
+Bug 31590 - Black space between colors on mole hill example
+
+Bug 32395 - [glsl] Incorrect code generation for shadow2DProj() with bias
+
+Bug 32564 - [llvmpipe] prog: Unknown command line argument '-disable-mmx'. Try: 'prog -help' with llvm-2.9svn
+
+Bug 32835 - [glsl] recursive #define results in infinite stack recursion
+
+Bug 33303 - [glsl] ir_constant_expression.cpp:72: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == op[1]->type->base_type' failed.
+
+Bug 33314 - [glsl] ir_constant_expression.cpp:122: virtual ir_constant* ir_expression::constant_expression_value(): Assertion `op[0]->type->base_type == GLSL_TYPE_BOOL' failed.
+
+Bug 33512 - [SNB] case ogles2conform/GL/gl_FragCoord/gl_FragCoord_xy_frag.test and gl_FragCoord_w_frag.test fail
+
+Bug 34280 - r200 mesa-7.10 font distortion
+
+Bug 34321 - The ARB_fragment_program subset of ARB_draw_buffers not implemented
+
+Bug 35603 - GLSL compiler freezes compiling shaders
+
+Bug 36173 - struct renderbuffer's 'format' field never set when using FBO
+
+Bug 36238 - Mesa release files don't contain scons control files
+
+Bug 36410 - [SNB] Rendering errors in 3DMMES subtest taiji
+
+Bug 36527 - [wine] Wolfenstein: Failed to translate rgb instruction.
+
+Bug 36651 - mesa requires bison and flex to build but configure does not check for them
+
+Bug 36738 - Openarena crash with r300g, swrastg + llvm > 2.8
+
+Bug 37648 - Logic error in mesa/main/teximage.c:texsubimage
+
+Bug 37739 - Color clear of FBO without color buffer crashes
+
+
+
+
+
+Changes
+The full set of changes can be viewed by using the following GIT command:
+
+
+ git log mesa-7.10.2..mesa-7.10.3
+
+
+Alan Hourihane (1):
+
+ Check for out of memory when creating fence
+
+
+Alex Buell (1):
+
+ configure: bump LIBDRM_REQUIRED to 2.4.24
+
+
+Alex Deucher (2):
+
+ r600c: add new pci ids
+ r600g: add new pci ids
+
+
+Brian Paul (19):
+
+ docs: add link to 7.10.2 release notes
+ scons: remove dangling reference to state_trackers/python/SConscript
+ Makefile: add missing Scons files
+ llvmpipe: document issue with LLVM 2.8 and earlier with AVX
+ docs: replace llvmpipe/README with docs/llvmpipe.html
+ glsl: add static qualifier to silence warning
+ glsl: add cast to silence signed/unsigned comparison warning
+ mesa: s/height/depth/ in texsubimage()
+ mesa: fix void pointer arithmetic warnings
+ mesa: add some missing GLAPIENTRY keywords
+ mesa: check that flex/bison are installed
+ st/mesa: fix incorrect texture level/face/slice accesses
+ draw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)
+ vbo: check array indexes to prevent negative indexing
+ vbo: remove node->count > 0 test in vbo_save_playback_vertex_list()
+ st/mesa: fix software accum buffer format bug
+ mesa: add include/c99/inttypes.h include/c99/stdbool.h include/c99/stdint.h files to tarballs
+ docs: 7.10.3 release notes skeleton file, links
+ mesa: bump version to 7.10.3
+
+
+Carl Worth (2):
+
+ glcpp: Simplify calling convention of parser's active_list functions
+ glcpp: Fix attempts to expand recursive macros infinitely (bug #32835).
+
+
+Dave Airlie (1):
+
+ st/mesa: fix compressed mipmap generation.
+
+
+Eric Anholt (19):
+
+ i965: Fix the VS thread limits for GT1, and clarify the WM limits on both.
+ glsl: Avoid cascading errors when looking for a scalar boolean and failing.
+ glsl: Semantically check the RHS of `&&' even when short-circuiting.
+ glsl: Semantically check the RHS of `||' even when short-circuiting.
+ glsl: When we've emitted a semantic error for ==, return a bool constant.
+ glsl: Perform type checking on "^^" operands.
+ intel: Use _mesa_base_tex_format for FBO texture attachments.
+ swrast: Don't assert against glReadPixels of GL_RED and GL_RG.
+ mesa: Add a gl_renderbuffer.RowStride field like textures have.
+ mesa: Add a function to set up the default renderbuffer accessors.
+ intel: Use Mesa core's renderbuffer accessors for depth.
+ mesa: Use _mesa_get_format_bytes to refactor out the RB get_pointer_*
+ mesa: Use _mesa_get_format_bytes to refactor out the RB get_row_*
+ mesa: Add renderbuffer accessors for R8/RG88/R16/RG1616.
+ swrast: Don't try to adjust_colors for <8bpc when handling R16, RG1616.
+ intel: Use mesa core's R8, RG88, R16, RG1616 RB accessors.
+ Revert "intel: Add spans code for the ARB_texture_rg support."
+ mesa: Add support for the ARB_fragment_program part of ARB_draw_buffers.
+ mesa: Add support for OPTION ATI_draw_buffers to ARB_fp.
+
+
+Hans de Goede (1):
+
+ texstore: fix regression stricter check for memcpy path for unorm88 and unorm1616
+
+
+Henri Verbeet (3):
+
+ mesa: Also update the color draw buffer if it's explicitly set to GL_NONE.
+ glx: Destroy dri2Hash on DRI2 display destruction.
+ glx: Only remove the glx_display from the list after it's destroyed.
+
+
+Ian Romanick (9):
+
+ docs: Add 7.10.2 md5sums
+ glsl: Fix off-by-one error setting max_array_access for non-constant indexing
+ ir_to_mesa: Handle shadow compare w/projection and LOD bias correctly
+ intel: Fix ROUND_DOWN_TO macro
+ glsl: Regenerate compiler and glcpp files from cherry picks
+ i965: Remove hint_gs_always and resulting dead code
+ mesa: Don't try to clear a NULL renderbuffer
+ mesa: Ignore blits to/from missing buffers
+ docs: Add list of bugs fixed in 7.10.3 release
+
+
+Jeremy Huddleston (18):
+
+ apple: Update GL specs
+ apple: Rename glcontextmodes.[ch] to glxconfig.[ch]
+ apple: Rename __GLcontextModes to struct glx_config
+ apple: Rename GLXcontext
+ apple: Re-add driContext and do_destroy
+ apple: Rename _gl_context_modes_find_visual to glx_config_find_visual
+ apple: Rename GLXcontext
+ apple: Change from XExtDisplayInfo to struct glx_display
+ apple: ifdef out come glapi-foo on darwin
+ glx: Dead code removal
+ apple: Build darwin using applegl rather than indirect
+ apple: Fix build failures in applegl_glx.c
+ darwin: Define GALLIUM_DRIVERS_DIRS in darwin config
+ apple: Package applegl source into MesaLib tarball
+ darwin: Set VG_LIB_{NAME,GLOB} to fix make install
+ darwin: Don't link against libGL when building libOSMesa
+ darwin: Fix VG_LIB_GLOB to also match the unversioned symlink
+ osmesa: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.
+
+
+José Fonseca (13):
+
+ llvmpipe: Update readme.
+ mesa: GL_PROVOKING_VERTEX_EXT is a GLenum, not GLboolean.
+ mesa: Fix GetVertexAttrib* inside display lists.
+ draw: Fix draw_variant_output::format's type.
+ gallivm: Tell LLVM to not assume a 16-byte aligned stack on x86.
+ gallivm: Fix for dynamically linked LLVM 2.8 library.
+ st/wgl: Adjust the pbuffer invisible window size.
+ st/wgl: Fix debug output format specifiers of stw_framebuffer_get_size().
+ st/wgl: Prevent spurious framebuffer sizes when the window is minimized.
+ st/wgl: Cope with zero width/height windows.
+ st/wgl: Allow to create pbuffers bigger than the desktop.
+ st/wgl: Remove buggy assertion.
+ wgl: Don't hold on to user supplied HDC.
+
+
+Kenneth Graunke (10):
+
+ i965/fs: Switch W and 1/W in Sandybridge interpolation setup.
+ i965: Refactor Sandybridge implied move handling.
+ i965: Resolve implied moves in brw_dp_READ_4_vs_relative.
+ intel: Add IS_GT2 macro for recognizing Sandybridge GT2 systems.
+ i965: Allocate the whole URB to the VS and fix calculations for Gen6.
+ intel: Support glCopyTexImage() from ARGB8888 to XRGB8888.
+ glsl: Fix memory error when creating the supported version string.
+ glsl: Regenerate autogenerated file builtin_function.cpp.
+ i965: Rename various gen6 #defines to match the documentation.
+ i965: Never enable the GS on Gen6.
+
+
+Kostas Georgiou (1):
+
+ r600c/g: Add pci id for FirePro 2270
+
+
+Marek Olšák (18):
+
+ tgsi/ureg: bump the limit of immediates
+ st/mesa: fix changing internal format via RenderbufferStorage
+ st/mesa: GenerateMipmap should not be killed by conditional rendering
+ swrast: BlitFramebuffer should not be killed by conditional rendering
+ st/mesa: BlitFramebuffer should not be killed by conditional rendering
+ st/mesa: CopyTex(Sub)Image should not be killed by conditional rendering
+ st/mesa: conditional rendering should not kill texture decompression via blit
+ mesa: forbid UseProgram to be called inside Begin/End
+ mesa: UseShaderProgramEXT and Uniform* shouldn't be allowed inside Begin/End
+ mesa: queries of non-existent FBO attachments should return INVALID_OPERATION
+ r300g: fix draw_vbo splitting on r3xx-r4xx
+ r300g: fix texturing with non-3D textures and wrap R mode set to sample border
+ r300g: fix occlusion queries when depth test is disabled or zbuffer is missing
+ r300g: clear can be killed by render condition
+ st/mesa: remove asserts in st_texture_image_copy
+ mesa: fix up assertion in _mesa_source_buffer_exists
+ mesa: invalidate framebuffer if internal format of renderbuffer is changed
+ mesa: return after invalidating renderbuffer
+
+
+Matt Turner (1):
+
+ r300/compiler: align memory allocations to 8-bytes
+
+
+Tom Stellard (3):
+
+ r300/compiler: Fix incorrect presubtract conversion
+ r300/compiler: Fix dataflow analysis bug with ELSE blocks
+ r300/compiler: Limit instructions to 3 source selects
+
+
+Vinson Lee (1):
+
+ gallivm: Disable MMX-disabling code on llvm-2.9.
+
+
+Zou Nan hai (1):
+
+ i965: Align interleaved URB write length to 2
+
+
+pepp (1):
+
+ st/mesa: assign renderbuffer's format field when allocating storage
+
+
+
+
diff --git a/docs/relnotes.html b/docs/relnotes.html
index c1a7ab78dfd..e1f0c3299c0 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -14,6 +14,7 @@ The release notes summarize what's new or changed in each Mesa release.
7.11 release notes
+7.10.3 release notes
7.10.2 release notes
7.10.1 release notes
7.10 release notes
From c1477f6ffe6a3d032dbcc76a5f506a7293e2fece Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Tue, 14 Jun 2011 08:40:43 -0600
Subject: [PATCH 085/406] st/mesa: fix comments, whitespace
---
src/mesa/state_tracker/st_draw.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 1bb9b80298e..7f74e78cede 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -33,7 +33,7 @@
*
* We basically convert the VBO's vertex attribute/array information into
* Gallium vertex state, bind the vertex buffer objects and call
- * pipe->draw_elements(), pipe->draw_range_elements() or pipe->draw_arrays().
+ * pipe->draw_vbo().
*
* Authors:
* Keith Whitwell
@@ -498,6 +498,7 @@ setup_index_buffer(struct gl_context *ctx,
}
}
+
/**
* Prior to drawing, check that any uniforms referenced by the
* current shader have been set. If a uniform has not been set,
@@ -544,8 +545,8 @@ translate_prim(const struct gl_context *ctx, unsigned prim)
assert(GL_TRIANGLE_STRIP_ADJACENCY == PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY);
/* Avoid quadstrips if it's easy to do so:
- * Note: it's imporant to do the correct trimming if we change the prim type!
- * We do that wherever this function is called.
+ * Note: it's important to do the correct trimming if we change the
+ * prim type! We do that wherever this function is called.
*/
if (prim == GL_QUAD_STRIP &&
ctx->Light.ShadeModel != GL_FLAT &&
From 99feecc7d1d0a6efb2511859973d6029d9fed9fd Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Tue, 14 Jun 2011 09:15:36 -0600
Subject: [PATCH 086/406] st/mesa: replace st->ctx with ctx
---
src/mesa/state_tracker/st_atom_blend.c | 61 ++++++++++++------------
src/mesa/state_tracker/st_atom_clip.c | 7 +--
src/mesa/state_tracker/st_atom_sampler.c | 19 ++++----
src/mesa/state_tracker/st_atom_scissor.c | 17 +++----
src/mesa/state_tracker/st_atom_stipple.c | 11 +++--
src/mesa/state_tracker/st_atom_texture.c | 30 +++++++-----
src/mesa/state_tracker/st_draw.c | 4 +-
7 files changed, 80 insertions(+), 69 deletions(-)
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c
index d1844e1066f..4c9a2b95ac3 100644
--- a/src/mesa/state_tracker/st_atom_blend.c
+++ b/src/mesa/state_tracker/st_atom_blend.c
@@ -156,7 +156,7 @@ translate_logicop(GLenum logicop)
* Figure out if colormasks are different per rt.
*/
static GLboolean
-colormask_per_rt(struct gl_context *ctx)
+colormask_per_rt(const struct gl_context *ctx)
{
/* a bit suboptimal have to compare lots of values */
unsigned i;
@@ -172,7 +172,7 @@ colormask_per_rt(struct gl_context *ctx)
* Figure out if blend enables/state are different per rt.
*/
static GLboolean
-blend_per_rt(struct gl_context *ctx)
+blend_per_rt(const struct gl_context *ctx)
{
if (ctx->Color.BlendEnabled &&
(ctx->Color.BlendEnabled != ((1 << ctx->Const.MaxDrawBuffers) - 1))) {
@@ -190,13 +190,14 @@ static void
update_blend( struct st_context *st )
{
struct pipe_blend_state *blend = &st->state.blend;
+ const struct gl_context *ctx = st->ctx;
unsigned num_state = 1;
unsigned i, j;
memset(blend, 0, sizeof(*blend));
- if (blend_per_rt(st->ctx) || colormask_per_rt(st->ctx)) {
- num_state = st->ctx->Const.MaxDrawBuffers;
+ if (blend_per_rt(ctx) || colormask_per_rt(ctx)) {
+ num_state = ctx->Const.MaxDrawBuffers;
blend->independent_blend_enable = 1;
}
/* Note it is impossible to correctly deal with EXT_blend_logic_op and
@@ -205,52 +206,52 @@ update_blend( struct st_context *st )
and separate alpha/rgb logicop/blend support respectively. Neither
possible in gallium nor most hardware. Assume these combinations
don't happen. */
- if (st->ctx->Color.ColorLogicOpEnabled ||
- (st->ctx->Color.BlendEnabled &&
- st->ctx->Color.Blend[0].EquationRGB == GL_LOGIC_OP)) {
+ if (ctx->Color.ColorLogicOpEnabled ||
+ (ctx->Color.BlendEnabled &&
+ ctx->Color.Blend[0].EquationRGB == GL_LOGIC_OP)) {
/* logicop enabled */
blend->logicop_enable = 1;
- blend->logicop_func = translate_logicop(st->ctx->Color.LogicOp);
+ blend->logicop_func = translate_logicop(ctx->Color.LogicOp);
}
- else if (st->ctx->Color.BlendEnabled) {
+ else if (ctx->Color.BlendEnabled) {
/* blending enabled */
for (i = 0, j = 0; i < num_state; i++) {
- blend->rt[i].blend_enable = (st->ctx->Color.BlendEnabled >> i) & 0x1;
+ blend->rt[i].blend_enable = (ctx->Color.BlendEnabled >> i) & 0x1;
- if (st->ctx->Extensions.ARB_draw_buffers_blend)
+ if (ctx->Extensions.ARB_draw_buffers_blend)
j = i;
blend->rt[i].rgb_func =
- translate_blend(st->ctx->Color.Blend[j].EquationRGB);
+ translate_blend(ctx->Color.Blend[j].EquationRGB);
- if (st->ctx->Color.Blend[i].EquationRGB == GL_MIN ||
- st->ctx->Color.Blend[i].EquationRGB == GL_MAX) {
+ if (ctx->Color.Blend[i].EquationRGB == GL_MIN ||
+ ctx->Color.Blend[i].EquationRGB == GL_MAX) {
/* Min/max are special */
blend->rt[i].rgb_src_factor = PIPE_BLENDFACTOR_ONE;
blend->rt[i].rgb_dst_factor = PIPE_BLENDFACTOR_ONE;
}
else {
blend->rt[i].rgb_src_factor =
- translate_blend(st->ctx->Color.Blend[j].SrcRGB);
+ translate_blend(ctx->Color.Blend[j].SrcRGB);
blend->rt[i].rgb_dst_factor =
- translate_blend(st->ctx->Color.Blend[j].DstRGB);
+ translate_blend(ctx->Color.Blend[j].DstRGB);
}
blend->rt[i].alpha_func =
- translate_blend(st->ctx->Color.Blend[j].EquationA);
+ translate_blend(ctx->Color.Blend[j].EquationA);
- if (st->ctx->Color.Blend[i].EquationA == GL_MIN ||
- st->ctx->Color.Blend[i].EquationA == GL_MAX) {
+ if (ctx->Color.Blend[i].EquationA == GL_MIN ||
+ ctx->Color.Blend[i].EquationA == GL_MAX) {
/* Min/max are special */
blend->rt[i].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
blend->rt[i].alpha_dst_factor = PIPE_BLENDFACTOR_ONE;
}
else {
blend->rt[i].alpha_src_factor =
- translate_blend(st->ctx->Color.Blend[j].SrcA);
+ translate_blend(ctx->Color.Blend[j].SrcA);
blend->rt[i].alpha_dst_factor =
- translate_blend(st->ctx->Color.Blend[j].DstA);
+ translate_blend(ctx->Color.Blend[j].DstA);
}
}
}
@@ -260,25 +261,25 @@ update_blend( struct st_context *st )
/* Colormask - maybe reverse these bits? */
for (i = 0; i < num_state; i++) {
- if (st->ctx->Color.ColorMask[i][0])
+ if (ctx->Color.ColorMask[i][0])
blend->rt[i].colormask |= PIPE_MASK_R;
- if (st->ctx->Color.ColorMask[i][1])
+ if (ctx->Color.ColorMask[i][1])
blend->rt[i].colormask |= PIPE_MASK_G;
- if (st->ctx->Color.ColorMask[i][2])
+ if (ctx->Color.ColorMask[i][2])
blend->rt[i].colormask |= PIPE_MASK_B;
- if (st->ctx->Color.ColorMask[i][3])
+ if (ctx->Color.ColorMask[i][3])
blend->rt[i].colormask |= PIPE_MASK_A;
}
- if (st->ctx->Color.DitherFlag)
+ if (ctx->Color.DitherFlag)
blend->dither = 1;
- if (st->ctx->Multisample.Enabled) {
+ if (ctx->Multisample.Enabled) {
/* unlike in gallium/d3d10 these operations are only performed
if msaa is enabled */
- if (st->ctx->Multisample.SampleAlphaToCoverage)
+ if (ctx->Multisample.SampleAlphaToCoverage)
blend->alpha_to_coverage = 1;
- if (st->ctx->Multisample.SampleAlphaToOne)
+ if (ctx->Multisample.SampleAlphaToOne)
blend->alpha_to_one = 1;
}
@@ -286,7 +287,7 @@ update_blend( struct st_context *st )
{
struct pipe_blend_color bc;
- COPY_4FV(bc.color, st->ctx->Color.BlendColorUnclamped);
+ COPY_4FV(bc.color, ctx->Color.BlendColorUnclamped);
cso_set_blend_color(st->cso_context, &bc);
}
}
diff --git a/src/mesa/state_tracker/st_atom_clip.c b/src/mesa/state_tracker/st_atom_clip.c
index 16f7aaae6f4..1330db843a6 100644
--- a/src/mesa/state_tracker/st_atom_clip.c
+++ b/src/mesa/state_tracker/st_atom_clip.c
@@ -43,20 +43,21 @@
static void update_clip( struct st_context *st )
{
struct pipe_clip_state clip;
+ const struct gl_context *ctx = st->ctx;
GLuint i;
memset(&clip, 0, sizeof(clip));
for (i = 0; i < PIPE_MAX_CLIP_PLANES; i++) {
- if (st->ctx->Transform.ClipPlanesEnabled & (1 << i)) {
+ if (ctx->Transform.ClipPlanesEnabled & (1 << i)) {
memcpy(clip.ucp[clip.nr],
- st->ctx->Transform._ClipUserPlane[i],
+ ctx->Transform._ClipUserPlane[i],
sizeof(clip.ucp[0]));
clip.nr++;
}
}
- clip.depth_clamp = st->ctx->Transform.DepthClamp != GL_FALSE;
+ clip.depth_clamp = ctx->Transform.DepthClamp != GL_FALSE;
if (memcmp(&clip, &st->state.clip, sizeof(clip)) != 0) {
st->state.clip = clip;
diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
index 06024ad2657..90a282528c8 100644
--- a/src/mesa/state_tracker/st_atom_sampler.c
+++ b/src/mesa/state_tracker/st_atom_sampler.c
@@ -125,14 +125,15 @@ static void convert_sampler(struct st_context *st,
GLuint texUnit)
{
struct gl_texture_object *texobj;
+ struct gl_context *ctx = st->ctx;
struct gl_sampler_object *msamp;
- texobj = st->ctx->Texture.Unit[texUnit]._Current;
+ texobj = ctx->Texture.Unit[texUnit]._Current;
if (!texobj) {
texobj = st_get_default_texture(st);
}
- msamp = _mesa_get_samplerobj(st->ctx, texUnit);
+ msamp = _mesa_get_samplerobj(ctx, texUnit);
memset(sampler, 0, sizeof(*sampler));
sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);
@@ -146,7 +147,7 @@ static void convert_sampler(struct st_context *st,
if (texobj->Target != GL_TEXTURE_RECTANGLE_ARB)
sampler->normalized_coords = 1;
- sampler->lod_bias = st->ctx->Texture.Unit[texUnit].LodBias +
+ sampler->lod_bias = ctx->Texture.Unit[texUnit].LodBias +
msamp->LodBias;
sampler->min_lod = CLAMP(msamp->MinLod,
@@ -188,19 +189,20 @@ static void convert_sampler(struct st_context *st,
}
sampler->seamless_cube_map =
- st->ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
+ ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
}
static void
update_vertex_samplers(struct st_context *st)
{
- struct gl_vertex_program *vprog = st->ctx->VertexProgram._Current;
+ const struct gl_context *ctx = st->ctx;
+ struct gl_vertex_program *vprog = ctx->VertexProgram._Current;
GLuint su;
st->state.num_vertex_samplers = 0;
/* loop over sampler units (aka tex image units) */
- for (su = 0; su < st->ctx->Const.MaxVertexTextureImageUnits; su++) {
+ for (su = 0; su < ctx->Const.MaxVertexTextureImageUnits; su++) {
struct pipe_sampler_state *sampler = st->state.vertex_samplers + su;
if (vprog->Base.SamplersUsed & (1 << su)) {
@@ -223,13 +225,14 @@ update_vertex_samplers(struct st_context *st)
static void
update_fragment_samplers(struct st_context *st)
{
- struct gl_fragment_program *fprog = st->ctx->FragmentProgram._Current;
+ const struct gl_context *ctx = st->ctx;
+ struct gl_fragment_program *fprog = ctx->FragmentProgram._Current;
GLuint su;
st->state.num_samplers = 0;
/* loop over sampler units (aka tex image units) */
- for (su = 0; su < st->ctx->Const.MaxTextureImageUnits; su++) {
+ for (su = 0; su < ctx->Const.MaxTextureImageUnits; su++) {
struct pipe_sampler_state *sampler = st->state.samplers + su;
diff --git a/src/mesa/state_tracker/st_atom_scissor.c b/src/mesa/state_tracker/st_atom_scissor.c
index 56b1383ae39..eb13877787b 100644
--- a/src/mesa/state_tracker/st_atom_scissor.c
+++ b/src/mesa/state_tracker/st_atom_scissor.c
@@ -44,7 +44,8 @@ static void
update_scissor( struct st_context *st )
{
struct pipe_scissor_state scissor;
- const struct gl_framebuffer *fb = st->ctx->DrawBuffer;
+ const struct gl_context *ctx = st->ctx;
+ const struct gl_framebuffer *fb = ctx->DrawBuffer;
GLint miny, maxy;
scissor.minx = 0;
@@ -52,15 +53,15 @@ update_scissor( struct st_context *st )
scissor.maxx = fb->Width;
scissor.maxy = fb->Height;
- if (st->ctx->Scissor.Enabled) {
+ if (ctx->Scissor.Enabled) {
/* need to be careful here with xmax or ymax < 0 */
- GLint xmax = MAX2(0, st->ctx->Scissor.X + st->ctx->Scissor.Width);
- GLint ymax = MAX2(0, st->ctx->Scissor.Y + st->ctx->Scissor.Height);
+ GLint xmax = MAX2(0, ctx->Scissor.X + ctx->Scissor.Width);
+ GLint ymax = MAX2(0, ctx->Scissor.Y + ctx->Scissor.Height);
- if (st->ctx->Scissor.X > (GLint)scissor.minx)
- scissor.minx = st->ctx->Scissor.X;
- if (st->ctx->Scissor.Y > (GLint)scissor.miny)
- scissor.miny = st->ctx->Scissor.Y;
+ if (ctx->Scissor.X > (GLint)scissor.minx)
+ scissor.minx = ctx->Scissor.X;
+ if (ctx->Scissor.Y > (GLint)scissor.miny)
+ scissor.miny = ctx->Scissor.Y;
if (xmax < (GLint) scissor.maxx)
scissor.maxx = xmax;
diff --git a/src/mesa/state_tracker/st_atom_stipple.c b/src/mesa/state_tracker/st_atom_stipple.c
index ecdd9f06f6a..b3e0dc7f1b0 100644
--- a/src/mesa/state_tracker/st_atom_stipple.c
+++ b/src/mesa/state_tracker/st_atom_stipple.c
@@ -64,17 +64,18 @@ invert_stipple(GLuint dest[32], const GLuint src[32], GLuint winHeight)
static void
update_stipple( struct st_context *st )
{
+ const struct gl_context *ctx = st->ctx;
const GLuint sz = sizeof(st->state.poly_stipple);
- assert(sz == sizeof(st->ctx->PolygonStipple));
+ assert(sz == sizeof(ctx->PolygonStipple));
- if (memcmp(st->state.poly_stipple, st->ctx->PolygonStipple, sz)) {
+ if (memcmp(st->state.poly_stipple, ctx->PolygonStipple, sz)) {
/* state has changed */
struct pipe_poly_stipple newStipple;
- memcpy(st->state.poly_stipple, st->ctx->PolygonStipple, sz);
+ memcpy(st->state.poly_stipple, ctx->PolygonStipple, sz);
- invert_stipple(newStipple.stipple, st->ctx->PolygonStipple,
- st->ctx->DrawBuffer->Height);
+ invert_stipple(newStipple.stipple, ctx->PolygonStipple,
+ ctx->DrawBuffer->Height);
st->pipe->set_polygon_stipple(st->pipe, &newStipple);
}
diff --git a/src/mesa/state_tracker/st_atom_texture.c b/src/mesa/state_tracker/st_atom_texture.c
index 072eb977ebb..800a9f1f0e0 100644
--- a/src/mesa/state_tracker/st_atom_texture.c
+++ b/src/mesa/state_tracker/st_atom_texture.c
@@ -187,15 +187,16 @@ update_single_texture(struct st_context *st, struct pipe_sampler_view **sampler_
GLuint texUnit)
{
struct pipe_context *pipe = st->pipe;
+ struct gl_context *ctx = st->ctx;
const struct gl_sampler_object *samp;
struct gl_texture_object *texObj;
struct st_texture_object *stObj;
enum pipe_format st_view_format;
GLboolean retval;
- samp = _mesa_get_samplerobj(st->ctx, texUnit);
+ samp = _mesa_get_samplerobj(ctx, texUnit);
- texObj = st->ctx->Texture.Unit[texUnit]._Current;
+ texObj = ctx->Texture.Unit[texUnit]._Current;
if (!texObj) {
texObj = st_get_default_texture(st);
@@ -203,7 +204,7 @@ update_single_texture(struct st_context *st, struct pipe_sampler_view **sampler_
}
stObj = st_texture_object(texObj);
- retval = st_finalize_texture(st->ctx, st->pipe, texObj);
+ retval = st_finalize_texture(ctx, st->pipe, texObj);
if (!retval) {
/* out of mem */
return GL_FALSE;
@@ -253,13 +254,14 @@ update_single_texture(struct st_context *st, struct pipe_sampler_view **sampler_
static void
update_vertex_textures(struct st_context *st)
{
- struct gl_vertex_program *vprog = st->ctx->VertexProgram._Current;
+ const struct gl_context *ctx = st->ctx;
+ struct gl_vertex_program *vprog = ctx->VertexProgram._Current;
GLuint su;
st->state.num_vertex_textures = 0;
/* loop over sampler units (aka tex image units) */
- for (su = 0; su < st->ctx->Const.MaxTextureImageUnits; su++) {
+ for (su = 0; su < ctx->Const.MaxTextureImageUnits; su++) {
struct pipe_sampler_view *sampler_view = NULL;
if (vprog->Base.SamplersUsed & (1 << su)) {
GLboolean retval;
@@ -277,9 +279,9 @@ update_vertex_textures(struct st_context *st)
pipe_sampler_view_reference(&st->state.sampler_vertex_views[su], sampler_view);
}
- if (st->ctx->Const.MaxVertexTextureImageUnits > 0) {
+ if (ctx->Const.MaxVertexTextureImageUnits > 0) {
GLuint numUnits = MIN2(st->state.num_vertex_textures,
- st->ctx->Const.MaxVertexTextureImageUnits);
+ ctx->Const.MaxVertexTextureImageUnits);
cso_set_vertex_sampler_views(st->cso_context,
numUnits,
st->state.sampler_vertex_views);
@@ -289,13 +291,14 @@ update_vertex_textures(struct st_context *st)
static void
update_fragment_textures(struct st_context *st)
{
- struct gl_fragment_program *fprog = st->ctx->FragmentProgram._Current;
+ const struct gl_context *ctx = st->ctx;
+ struct gl_fragment_program *fprog = ctx->FragmentProgram._Current;
GLuint su;
st->state.num_textures = 0;
/* loop over sampler units (aka tex image units) */
- for (su = 0; su < st->ctx->Const.MaxTextureImageUnits; su++) {
+ for (su = 0; su < ctx->Const.MaxTextureImageUnits; su++) {
struct pipe_sampler_view *sampler_view = NULL;
if (fprog->Base.SamplersUsed & (1 << su)) {
GLboolean retval;
@@ -338,22 +341,23 @@ const struct st_tracked_state st_update_vertex_texture = {
static void
finalize_textures(struct st_context *st)
{
- struct gl_fragment_program *fprog = st->ctx->FragmentProgram._Current;
+ struct gl_context *ctx = st->ctx;
+ struct gl_fragment_program *fprog = ctx->FragmentProgram._Current;
const GLboolean prev_missing_textures = st->missing_textures;
GLuint su;
st->missing_textures = GL_FALSE;
- for (su = 0; su < st->ctx->Const.MaxTextureCoordUnits; su++) {
+ for (su = 0; su < ctx->Const.MaxTextureCoordUnits; su++) {
if (fprog->Base.SamplersUsed & (1 << su)) {
const GLuint texUnit = fprog->Base.SamplerUnits[su];
struct gl_texture_object *texObj
- = st->ctx->Texture.Unit[texUnit]._Current;
+ = ctx->Texture.Unit[texUnit]._Current;
if (texObj) {
GLboolean retval;
- retval = st_finalize_texture(st->ctx, st->pipe, texObj);
+ retval = st_finalize_texture(ctx, st->pipe, texObj);
if (!retval) {
/* out of mem */
st->missing_textures = GL_TRUE;
diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c
index 7f74e78cede..fac0ab7a1f7 100644
--- a/src/mesa/state_tracker/st_draw.c
+++ b/src/mesa/state_tracker/st_draw.c
@@ -728,8 +728,8 @@ st_draw_vbo(struct gl_context *ctx,
}
}
- info.primitive_restart = st->ctx->Array.PrimitiveRestart;
- info.restart_index = st->ctx->Array.RestartIndex;
+ info.primitive_restart = ctx->Array.PrimitiveRestart;
+ info.restart_index = ctx->Array.RestartIndex;
/* do actual drawing */
for (i = 0; i < nr_prims; i++) {
From 3751aa4592fb9e97823876ae1b434bf573d4639b Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Tue, 14 Jun 2011 09:24:50 -0600
Subject: [PATCH 087/406] st/mesa: fix indentation, whitespace
---
src/mesa/state_tracker/st_atom_sampler.c | 117 ++++++++++++-----------
1 file changed, 61 insertions(+), 56 deletions(-)
diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
index 90a282528c8..731338f9beb 100644
--- a/src/mesa/state_tracker/st_atom_sampler.c
+++ b/src/mesa/state_tracker/st_atom_sampler.c
@@ -120,78 +120,80 @@ gl_filter_to_img_filter(GLenum filter)
}
}
-static void convert_sampler(struct st_context *st,
- struct pipe_sampler_state *sampler,
- GLuint texUnit)
+
+static void
+convert_sampler(struct st_context *st,
+ struct pipe_sampler_state *sampler,
+ GLuint texUnit)
{
- struct gl_texture_object *texobj;
- struct gl_context *ctx = st->ctx;
- struct gl_sampler_object *msamp;
+ struct gl_texture_object *texobj;
+ struct gl_context *ctx = st->ctx;
+ struct gl_sampler_object *msamp;
- texobj = ctx->Texture.Unit[texUnit]._Current;
- if (!texobj) {
- texobj = st_get_default_texture(st);
- }
+ texobj = ctx->Texture.Unit[texUnit]._Current;
+ if (!texobj) {
+ texobj = st_get_default_texture(st);
+ }
- msamp = _mesa_get_samplerobj(ctx, texUnit);
+ msamp = _mesa_get_samplerobj(ctx, texUnit);
- memset(sampler, 0, sizeof(*sampler));
- sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);
- sampler->wrap_t = gl_wrap_xlate(msamp->WrapT);
- sampler->wrap_r = gl_wrap_xlate(msamp->WrapR);
+ memset(sampler, 0, sizeof(*sampler));
+ sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);
+ sampler->wrap_t = gl_wrap_xlate(msamp->WrapT);
+ sampler->wrap_r = gl_wrap_xlate(msamp->WrapR);
- sampler->min_img_filter = gl_filter_to_img_filter(msamp->MinFilter);
- sampler->min_mip_filter = gl_filter_to_mip_filter(msamp->MinFilter);
- sampler->mag_img_filter = gl_filter_to_img_filter(msamp->MagFilter);
+ sampler->min_img_filter = gl_filter_to_img_filter(msamp->MinFilter);
+ sampler->min_mip_filter = gl_filter_to_mip_filter(msamp->MinFilter);
+ sampler->mag_img_filter = gl_filter_to_img_filter(msamp->MagFilter);
- if (texobj->Target != GL_TEXTURE_RECTANGLE_ARB)
- sampler->normalized_coords = 1;
+ if (texobj->Target != GL_TEXTURE_RECTANGLE_ARB)
+ sampler->normalized_coords = 1;
- sampler->lod_bias = ctx->Texture.Unit[texUnit].LodBias +
- msamp->LodBias;
+ sampler->lod_bias = ctx->Texture.Unit[texUnit].LodBias + msamp->LodBias;
- sampler->min_lod = CLAMP(msamp->MinLod,
- 0.0f,
- (GLfloat) texobj->MaxLevel - texobj->BaseLevel);
- sampler->max_lod = MIN2((GLfloat) texobj->MaxLevel - texobj->BaseLevel,
- msamp->MaxLod);
- if (sampler->max_lod < sampler->min_lod) {
- /* The GL spec doesn't seem to specify what to do in this case.
- * Swap the values.
- */
- float tmp = sampler->max_lod;
- sampler->max_lod = sampler->min_lod;
- sampler->min_lod = tmp;
- assert(sampler->min_lod <= sampler->max_lod);
- }
+ sampler->min_lod = CLAMP(msamp->MinLod,
+ 0.0f,
+ (GLfloat) texobj->MaxLevel - texobj->BaseLevel);
+ sampler->max_lod = MIN2((GLfloat) texobj->MaxLevel - texobj->BaseLevel,
+ msamp->MaxLod);
+ if (sampler->max_lod < sampler->min_lod) {
+ /* The GL spec doesn't seem to specify what to do in this case.
+ * Swap the values.
+ */
+ float tmp = sampler->max_lod;
+ sampler->max_lod = sampler->min_lod;
+ sampler->min_lod = tmp;
+ assert(sampler->min_lod <= sampler->max_lod);
+ }
- if (msamp->BorderColor.ui[0] ||
- msamp->BorderColor.ui[1] ||
- msamp->BorderColor.ui[2] ||
- msamp->BorderColor.ui[3]) {
- struct gl_texture_image *teximg;
+ if (msamp->BorderColor.ui[0] ||
+ msamp->BorderColor.ui[1] ||
+ msamp->BorderColor.ui[2] ||
+ msamp->BorderColor.ui[3]) {
+ struct gl_texture_image *teximg;
- teximg = texobj->Image[0][texobj->BaseLevel];
+ teximg = texobj->Image[0][texobj->BaseLevel];
- st_translate_color(msamp->BorderColor.f,
- teximg ? teximg->_BaseFormat : GL_RGBA,
- sampler->border_color);
- }
+ st_translate_color(msamp->BorderColor.f,
+ teximg ? teximg->_BaseFormat : GL_RGBA,
+ sampler->border_color);
+ }
- sampler->max_anisotropy = (msamp->MaxAnisotropy == 1.0 ?
- 0 : (GLuint) msamp->MaxAnisotropy);
+ sampler->max_anisotropy = (msamp->MaxAnisotropy == 1.0 ?
+ 0 : (GLuint) msamp->MaxAnisotropy);
- /* only care about ARB_shadow, not SGI shadow */
- if (msamp->CompareMode == GL_COMPARE_R_TO_TEXTURE) {
- sampler->compare_mode = PIPE_TEX_COMPARE_R_TO_TEXTURE;
- sampler->compare_func
- = st_compare_func_to_pipe(msamp->CompareFunc);
- }
+ /* only care about ARB_shadow, not SGI shadow */
+ if (msamp->CompareMode == GL_COMPARE_R_TO_TEXTURE) {
+ sampler->compare_mode = PIPE_TEX_COMPARE_R_TO_TEXTURE;
+ sampler->compare_func
+ = st_compare_func_to_pipe(msamp->CompareFunc);
+ }
- sampler->seamless_cube_map =
- ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
+ sampler->seamless_cube_map =
+ ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
}
+
static void
update_vertex_samplers(struct st_context *st)
{
@@ -222,6 +224,7 @@ update_vertex_samplers(struct st_context *st)
cso_single_vertex_sampler_done(st->cso_context);
}
+
static void
update_fragment_samplers(struct st_context *st)
{
@@ -257,6 +260,7 @@ update_fragment_samplers(struct st_context *st)
cso_single_sampler_done(st->cso_context);
}
+
static void
update_samplers(struct st_context *st)
{
@@ -264,6 +268,7 @@ update_samplers(struct st_context *st)
update_vertex_samplers(st);
}
+
const struct st_tracked_state st_update_sampler = {
"st_update_sampler", /* name */
{ /* dirty */
From 1e16c34c5c86690b26739fbad82617768b1bd837 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Tue, 14 Jun 2011 12:34:49 -0700
Subject: [PATCH 088/406] glapi: _glapi_create_table_from_handle: Set missing
pointers to NoOp rather than NULL
This change to _glapi_create_table_from_handle causes it to fill the dispatch
table with NoOps for unimplemented functionality. This matches what is done
in indirect_init.c and also allows us to enable logging (when built with
-DDEBUG and the MESA_DEBUG or LIBGL_DEBUG environment variables are set) to
catch cases where clients are trying to use these unimplemented extentions.
Additionally, this fixes some gcc -pedantic warnings.
Signed-off-by: Jeremy Huddleston
---
src/mapi/glapi/gen/gl_gentable.py | 44 +-
src/mapi/glapi/glapi_gentable.c | 5208 +++++++++++++++--------------
2 files changed, 2666 insertions(+), 2586 deletions(-)
diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py
index 73986f27253..814238a76e1 100644
--- a/src/mapi/glapi/gen/gl_gentable.py
+++ b/src/mapi/glapi/gen/gl_gentable.py
@@ -34,6 +34,10 @@ import gl_XML, glX_XML
import sys, getopt
header = """
+#if defined(DEBUG) && !defined(_WIN32_WCE)
+#include
+#endif
+
#include
#include
#include
@@ -43,6 +47,40 @@ header = """
#include "glapi.h"
#include "glapitable.h"
+static void
+__glapi_gentable_NoOp(void) {
+#if defined(DEBUG) && !defined(_WIN32_WCE)
+ if (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) {
+ const char *fstr = "Unknown";
+ void *frames[2];
+
+ if(backtrace(frames, 2) == 2) {
+ Dl_info info;
+ dladdr(frames[1], &info);
+ if(info.dli_sname)
+ fstr = info.dli_sname;
+ }
+
+ fprintf(stderr, "Call to unimplemented API: %s\\n", fstr);
+ }
+#endif
+}
+
+static void
+__glapi_gentable_set_remaining_noop(struct _glapi_table *disp) {
+ GLuint entries = _glapi_get_dispatch_table_size();
+ void **dispatch = (void **) disp;
+ int i;
+
+ /* ISO C is annoying sometimes */
+ union {_glapi_proc p; void *v;} p;
+ p.p = __glapi_gentable_NoOp;
+
+ for(i=0; i < entries; i++)
+ if(dispatch[i] == NULL)
+ dispatch[i] = p.v;
+}
+
struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
@@ -56,15 +94,17 @@ _glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
"""
footer = """
+ __glapi_gentable_set_remaining_noop(disp);
+
return disp;
}
"""
body_template = """
if(!disp->%(name)s) {
+ void ** procp = (void **) &disp->%(name)s;
snprintf(symboln, sizeof(symboln), "%%s%(entry_point)s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->%(name)s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
"""
diff --git a/src/mapi/glapi/glapi_gentable.c b/src/mapi/glapi/glapi_gentable.c
index dcbed1c7839..6dd02a747e1 100644
--- a/src/mapi/glapi/glapi_gentable.c
+++ b/src/mapi/glapi/glapi_gentable.c
@@ -28,6 +28,10 @@
*/
+#if defined(DEBUG) && !defined(_WIN32_WCE)
+#include
+#endif
+
#include
#include
#include
@@ -37,6 +41,40 @@
#include "glapi.h"
#include "glapitable.h"
+static void
+__glapi_gentable_NoOp(void) {
+#if defined(DEBUG) && !defined(_WIN32_WCE)
+ if (getenv("MESA_DEBUG") || getenv("LIBGL_DEBUG")) {
+ const char *fstr = "Unknown";
+ void *frames[2];
+
+ if(backtrace(frames, 2) == 2) {
+ Dl_info info;
+ dladdr(frames[1], &info);
+ if(info.dli_sname)
+ fstr = info.dli_sname;
+ }
+
+ fprintf(stderr, "Call to unimplemented API: %s\n", fstr);
+ }
+#endif
+}
+
+static void
+__glapi_gentable_set_remaining_noop(struct _glapi_table *disp) {
+ GLuint entries = _glapi_get_dispatch_table_size();
+ void **dispatch = (void **) disp;
+ int i;
+
+ /* ISO C is annoying sometimes */
+ union {_glapi_proc p; void *v;} p;
+ p.p = __glapi_gentable_NoOp;
+
+ for(i=0; i < entries; i++)
+ if(dispatch[i] == NULL)
+ dispatch[i] = p.v;
+}
+
struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
@@ -50,9049 +88,9051 @@ _glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
if(!disp->NewList) {
+ void ** procp = (void **) &disp->NewList;
snprintf(symboln, sizeof(symboln), "%sNewList", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->NewList;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndList) {
+ void ** procp = (void **) &disp->EndList;
snprintf(symboln, sizeof(symboln), "%sEndList", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndList;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CallList) {
+ void ** procp = (void **) &disp->CallList;
snprintf(symboln, sizeof(symboln), "%sCallList", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CallList;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CallLists) {
+ void ** procp = (void **) &disp->CallLists;
snprintf(symboln, sizeof(symboln), "%sCallLists", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CallLists;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteLists) {
+ void ** procp = (void **) &disp->DeleteLists;
snprintf(symboln, sizeof(symboln), "%sDeleteLists", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteLists;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenLists) {
+ void ** procp = (void **) &disp->GenLists;
snprintf(symboln, sizeof(symboln), "%sGenLists", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenLists;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ListBase) {
+ void ** procp = (void **) &disp->ListBase;
snprintf(symboln, sizeof(symboln), "%sListBase", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ListBase;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Begin) {
+ void ** procp = (void **) &disp->Begin;
snprintf(symboln, sizeof(symboln), "%sBegin", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Begin;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Bitmap) {
+ void ** procp = (void **) &disp->Bitmap;
snprintf(symboln, sizeof(symboln), "%sBitmap", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Bitmap;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3b) {
+ void ** procp = (void **) &disp->Color3b;
snprintf(symboln, sizeof(symboln), "%sColor3b", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3b;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3bv) {
+ void ** procp = (void **) &disp->Color3bv;
snprintf(symboln, sizeof(symboln), "%sColor3bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3bv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3d) {
+ void ** procp = (void **) &disp->Color3d;
snprintf(symboln, sizeof(symboln), "%sColor3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3dv) {
+ void ** procp = (void **) &disp->Color3dv;
snprintf(symboln, sizeof(symboln), "%sColor3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3f) {
+ void ** procp = (void **) &disp->Color3f;
snprintf(symboln, sizeof(symboln), "%sColor3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3fv) {
+ void ** procp = (void **) &disp->Color3fv;
snprintf(symboln, sizeof(symboln), "%sColor3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3i) {
+ void ** procp = (void **) &disp->Color3i;
snprintf(symboln, sizeof(symboln), "%sColor3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3iv) {
+ void ** procp = (void **) &disp->Color3iv;
snprintf(symboln, sizeof(symboln), "%sColor3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3s) {
+ void ** procp = (void **) &disp->Color3s;
snprintf(symboln, sizeof(symboln), "%sColor3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3sv) {
+ void ** procp = (void **) &disp->Color3sv;
snprintf(symboln, sizeof(symboln), "%sColor3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3ub) {
+ void ** procp = (void **) &disp->Color3ub;
snprintf(symboln, sizeof(symboln), "%sColor3ub", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3ub;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3ubv) {
+ void ** procp = (void **) &disp->Color3ubv;
snprintf(symboln, sizeof(symboln), "%sColor3ubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3ubv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3ui) {
+ void ** procp = (void **) &disp->Color3ui;
snprintf(symboln, sizeof(symboln), "%sColor3ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3ui;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3uiv) {
+ void ** procp = (void **) &disp->Color3uiv;
snprintf(symboln, sizeof(symboln), "%sColor3uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3uiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3us) {
+ void ** procp = (void **) &disp->Color3us;
snprintf(symboln, sizeof(symboln), "%sColor3us", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3us;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color3usv) {
+ void ** procp = (void **) &disp->Color3usv;
snprintf(symboln, sizeof(symboln), "%sColor3usv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color3usv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4b) {
+ void ** procp = (void **) &disp->Color4b;
snprintf(symboln, sizeof(symboln), "%sColor4b", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4b;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4bv) {
+ void ** procp = (void **) &disp->Color4bv;
snprintf(symboln, sizeof(symboln), "%sColor4bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4bv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4d) {
+ void ** procp = (void **) &disp->Color4d;
snprintf(symboln, sizeof(symboln), "%sColor4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4dv) {
+ void ** procp = (void **) &disp->Color4dv;
snprintf(symboln, sizeof(symboln), "%sColor4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4f) {
+ void ** procp = (void **) &disp->Color4f;
snprintf(symboln, sizeof(symboln), "%sColor4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4fv) {
+ void ** procp = (void **) &disp->Color4fv;
snprintf(symboln, sizeof(symboln), "%sColor4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4i) {
+ void ** procp = (void **) &disp->Color4i;
snprintf(symboln, sizeof(symboln), "%sColor4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4iv) {
+ void ** procp = (void **) &disp->Color4iv;
snprintf(symboln, sizeof(symboln), "%sColor4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4s) {
+ void ** procp = (void **) &disp->Color4s;
snprintf(symboln, sizeof(symboln), "%sColor4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4sv) {
+ void ** procp = (void **) &disp->Color4sv;
snprintf(symboln, sizeof(symboln), "%sColor4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4ub) {
+ void ** procp = (void **) &disp->Color4ub;
snprintf(symboln, sizeof(symboln), "%sColor4ub", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4ub;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4ubv) {
+ void ** procp = (void **) &disp->Color4ubv;
snprintf(symboln, sizeof(symboln), "%sColor4ubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4ubv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4ui) {
+ void ** procp = (void **) &disp->Color4ui;
snprintf(symboln, sizeof(symboln), "%sColor4ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4ui;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4uiv) {
+ void ** procp = (void **) &disp->Color4uiv;
snprintf(symboln, sizeof(symboln), "%sColor4uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4uiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4us) {
+ void ** procp = (void **) &disp->Color4us;
snprintf(symboln, sizeof(symboln), "%sColor4us", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4us;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Color4usv) {
+ void ** procp = (void **) &disp->Color4usv;
snprintf(symboln, sizeof(symboln), "%sColor4usv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Color4usv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EdgeFlag) {
+ void ** procp = (void **) &disp->EdgeFlag;
snprintf(symboln, sizeof(symboln), "%sEdgeFlag", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlag;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EdgeFlagv) {
+ void ** procp = (void **) &disp->EdgeFlagv;
snprintf(symboln, sizeof(symboln), "%sEdgeFlagv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->End) {
+ void ** procp = (void **) &disp->End;
snprintf(symboln, sizeof(symboln), "%sEnd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->End;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexd) {
+ void ** procp = (void **) &disp->Indexd;
snprintf(symboln, sizeof(symboln), "%sIndexd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexd;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexdv) {
+ void ** procp = (void **) &disp->Indexdv;
snprintf(symboln, sizeof(symboln), "%sIndexdv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexdv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexf) {
+ void ** procp = (void **) &disp->Indexf;
snprintf(symboln, sizeof(symboln), "%sIndexf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexfv) {
+ void ** procp = (void **) &disp->Indexfv;
snprintf(symboln, sizeof(symboln), "%sIndexfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexi) {
+ void ** procp = (void **) &disp->Indexi;
snprintf(symboln, sizeof(symboln), "%sIndexi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexiv) {
+ void ** procp = (void **) &disp->Indexiv;
snprintf(symboln, sizeof(symboln), "%sIndexiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexs) {
+ void ** procp = (void **) &disp->Indexs;
snprintf(symboln, sizeof(symboln), "%sIndexs", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexs;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexsv) {
+ void ** procp = (void **) &disp->Indexsv;
snprintf(symboln, sizeof(symboln), "%sIndexsv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexsv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3b) {
+ void ** procp = (void **) &disp->Normal3b;
snprintf(symboln, sizeof(symboln), "%sNormal3b", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3b;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3bv) {
+ void ** procp = (void **) &disp->Normal3bv;
snprintf(symboln, sizeof(symboln), "%sNormal3bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3bv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3d) {
+ void ** procp = (void **) &disp->Normal3d;
snprintf(symboln, sizeof(symboln), "%sNormal3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3dv) {
+ void ** procp = (void **) &disp->Normal3dv;
snprintf(symboln, sizeof(symboln), "%sNormal3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3f) {
+ void ** procp = (void **) &disp->Normal3f;
snprintf(symboln, sizeof(symboln), "%sNormal3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3fv) {
+ void ** procp = (void **) &disp->Normal3fv;
snprintf(symboln, sizeof(symboln), "%sNormal3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3i) {
+ void ** procp = (void **) &disp->Normal3i;
snprintf(symboln, sizeof(symboln), "%sNormal3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3iv) {
+ void ** procp = (void **) &disp->Normal3iv;
snprintf(symboln, sizeof(symboln), "%sNormal3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3s) {
+ void ** procp = (void **) &disp->Normal3s;
snprintf(symboln, sizeof(symboln), "%sNormal3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Normal3sv) {
+ void ** procp = (void **) &disp->Normal3sv;
snprintf(symboln, sizeof(symboln), "%sNormal3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Normal3sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2d) {
+ void ** procp = (void **) &disp->RasterPos2d;
snprintf(symboln, sizeof(symboln), "%sRasterPos2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2dv) {
+ void ** procp = (void **) &disp->RasterPos2dv;
snprintf(symboln, sizeof(symboln), "%sRasterPos2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2f) {
+ void ** procp = (void **) &disp->RasterPos2f;
snprintf(symboln, sizeof(symboln), "%sRasterPos2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2fv) {
+ void ** procp = (void **) &disp->RasterPos2fv;
snprintf(symboln, sizeof(symboln), "%sRasterPos2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2i) {
+ void ** procp = (void **) &disp->RasterPos2i;
snprintf(symboln, sizeof(symboln), "%sRasterPos2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2iv) {
+ void ** procp = (void **) &disp->RasterPos2iv;
snprintf(symboln, sizeof(symboln), "%sRasterPos2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2s) {
+ void ** procp = (void **) &disp->RasterPos2s;
snprintf(symboln, sizeof(symboln), "%sRasterPos2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos2sv) {
+ void ** procp = (void **) &disp->RasterPos2sv;
snprintf(symboln, sizeof(symboln), "%sRasterPos2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos2sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3d) {
+ void ** procp = (void **) &disp->RasterPos3d;
snprintf(symboln, sizeof(symboln), "%sRasterPos3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3dv) {
+ void ** procp = (void **) &disp->RasterPos3dv;
snprintf(symboln, sizeof(symboln), "%sRasterPos3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3f) {
+ void ** procp = (void **) &disp->RasterPos3f;
snprintf(symboln, sizeof(symboln), "%sRasterPos3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3fv) {
+ void ** procp = (void **) &disp->RasterPos3fv;
snprintf(symboln, sizeof(symboln), "%sRasterPos3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3i) {
+ void ** procp = (void **) &disp->RasterPos3i;
snprintf(symboln, sizeof(symboln), "%sRasterPos3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3iv) {
+ void ** procp = (void **) &disp->RasterPos3iv;
snprintf(symboln, sizeof(symboln), "%sRasterPos3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3s) {
+ void ** procp = (void **) &disp->RasterPos3s;
snprintf(symboln, sizeof(symboln), "%sRasterPos3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos3sv) {
+ void ** procp = (void **) &disp->RasterPos3sv;
snprintf(symboln, sizeof(symboln), "%sRasterPos3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos3sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4d) {
+ void ** procp = (void **) &disp->RasterPos4d;
snprintf(symboln, sizeof(symboln), "%sRasterPos4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4dv) {
+ void ** procp = (void **) &disp->RasterPos4dv;
snprintf(symboln, sizeof(symboln), "%sRasterPos4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4f) {
+ void ** procp = (void **) &disp->RasterPos4f;
snprintf(symboln, sizeof(symboln), "%sRasterPos4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4fv) {
+ void ** procp = (void **) &disp->RasterPos4fv;
snprintf(symboln, sizeof(symboln), "%sRasterPos4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4i) {
+ void ** procp = (void **) &disp->RasterPos4i;
snprintf(symboln, sizeof(symboln), "%sRasterPos4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4iv) {
+ void ** procp = (void **) &disp->RasterPos4iv;
snprintf(symboln, sizeof(symboln), "%sRasterPos4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4s) {
+ void ** procp = (void **) &disp->RasterPos4s;
snprintf(symboln, sizeof(symboln), "%sRasterPos4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RasterPos4sv) {
+ void ** procp = (void **) &disp->RasterPos4sv;
snprintf(symboln, sizeof(symboln), "%sRasterPos4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RasterPos4sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectd) {
+ void ** procp = (void **) &disp->Rectd;
snprintf(symboln, sizeof(symboln), "%sRectd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectd;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectdv) {
+ void ** procp = (void **) &disp->Rectdv;
snprintf(symboln, sizeof(symboln), "%sRectdv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectdv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectf) {
+ void ** procp = (void **) &disp->Rectf;
snprintf(symboln, sizeof(symboln), "%sRectf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectfv) {
+ void ** procp = (void **) &disp->Rectfv;
snprintf(symboln, sizeof(symboln), "%sRectfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Recti) {
+ void ** procp = (void **) &disp->Recti;
snprintf(symboln, sizeof(symboln), "%sRecti", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Recti;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectiv) {
+ void ** procp = (void **) &disp->Rectiv;
snprintf(symboln, sizeof(symboln), "%sRectiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rects) {
+ void ** procp = (void **) &disp->Rects;
snprintf(symboln, sizeof(symboln), "%sRects", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rects;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rectsv) {
+ void ** procp = (void **) &disp->Rectsv;
snprintf(symboln, sizeof(symboln), "%sRectsv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rectsv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1d) {
+ void ** procp = (void **) &disp->TexCoord1d;
snprintf(symboln, sizeof(symboln), "%sTexCoord1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1dv) {
+ void ** procp = (void **) &disp->TexCoord1dv;
snprintf(symboln, sizeof(symboln), "%sTexCoord1dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1f) {
+ void ** procp = (void **) &disp->TexCoord1f;
snprintf(symboln, sizeof(symboln), "%sTexCoord1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1fv) {
+ void ** procp = (void **) &disp->TexCoord1fv;
snprintf(symboln, sizeof(symboln), "%sTexCoord1fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1i) {
+ void ** procp = (void **) &disp->TexCoord1i;
snprintf(symboln, sizeof(symboln), "%sTexCoord1i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1iv) {
+ void ** procp = (void **) &disp->TexCoord1iv;
snprintf(symboln, sizeof(symboln), "%sTexCoord1iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1s) {
+ void ** procp = (void **) &disp->TexCoord1s;
snprintf(symboln, sizeof(symboln), "%sTexCoord1s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord1sv) {
+ void ** procp = (void **) &disp->TexCoord1sv;
snprintf(symboln, sizeof(symboln), "%sTexCoord1sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord1sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2d) {
+ void ** procp = (void **) &disp->TexCoord2d;
snprintf(symboln, sizeof(symboln), "%sTexCoord2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2dv) {
+ void ** procp = (void **) &disp->TexCoord2dv;
snprintf(symboln, sizeof(symboln), "%sTexCoord2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2f) {
+ void ** procp = (void **) &disp->TexCoord2f;
snprintf(symboln, sizeof(symboln), "%sTexCoord2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2fv) {
+ void ** procp = (void **) &disp->TexCoord2fv;
snprintf(symboln, sizeof(symboln), "%sTexCoord2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2i) {
+ void ** procp = (void **) &disp->TexCoord2i;
snprintf(symboln, sizeof(symboln), "%sTexCoord2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2iv) {
+ void ** procp = (void **) &disp->TexCoord2iv;
snprintf(symboln, sizeof(symboln), "%sTexCoord2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2s) {
+ void ** procp = (void **) &disp->TexCoord2s;
snprintf(symboln, sizeof(symboln), "%sTexCoord2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord2sv) {
+ void ** procp = (void **) &disp->TexCoord2sv;
snprintf(symboln, sizeof(symboln), "%sTexCoord2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord2sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3d) {
+ void ** procp = (void **) &disp->TexCoord3d;
snprintf(symboln, sizeof(symboln), "%sTexCoord3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3dv) {
+ void ** procp = (void **) &disp->TexCoord3dv;
snprintf(symboln, sizeof(symboln), "%sTexCoord3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3f) {
+ void ** procp = (void **) &disp->TexCoord3f;
snprintf(symboln, sizeof(symboln), "%sTexCoord3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3fv) {
+ void ** procp = (void **) &disp->TexCoord3fv;
snprintf(symboln, sizeof(symboln), "%sTexCoord3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3i) {
+ void ** procp = (void **) &disp->TexCoord3i;
snprintf(symboln, sizeof(symboln), "%sTexCoord3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3iv) {
+ void ** procp = (void **) &disp->TexCoord3iv;
snprintf(symboln, sizeof(symboln), "%sTexCoord3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3s) {
+ void ** procp = (void **) &disp->TexCoord3s;
snprintf(symboln, sizeof(symboln), "%sTexCoord3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord3sv) {
+ void ** procp = (void **) &disp->TexCoord3sv;
snprintf(symboln, sizeof(symboln), "%sTexCoord3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord3sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4d) {
+ void ** procp = (void **) &disp->TexCoord4d;
snprintf(symboln, sizeof(symboln), "%sTexCoord4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4dv) {
+ void ** procp = (void **) &disp->TexCoord4dv;
snprintf(symboln, sizeof(symboln), "%sTexCoord4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4f) {
+ void ** procp = (void **) &disp->TexCoord4f;
snprintf(symboln, sizeof(symboln), "%sTexCoord4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4fv) {
+ void ** procp = (void **) &disp->TexCoord4fv;
snprintf(symboln, sizeof(symboln), "%sTexCoord4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4i) {
+ void ** procp = (void **) &disp->TexCoord4i;
snprintf(symboln, sizeof(symboln), "%sTexCoord4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4iv) {
+ void ** procp = (void **) &disp->TexCoord4iv;
snprintf(symboln, sizeof(symboln), "%sTexCoord4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4s) {
+ void ** procp = (void **) &disp->TexCoord4s;
snprintf(symboln, sizeof(symboln), "%sTexCoord4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoord4sv) {
+ void ** procp = (void **) &disp->TexCoord4sv;
snprintf(symboln, sizeof(symboln), "%sTexCoord4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoord4sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2d) {
+ void ** procp = (void **) &disp->Vertex2d;
snprintf(symboln, sizeof(symboln), "%sVertex2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2dv) {
+ void ** procp = (void **) &disp->Vertex2dv;
snprintf(symboln, sizeof(symboln), "%sVertex2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2f) {
+ void ** procp = (void **) &disp->Vertex2f;
snprintf(symboln, sizeof(symboln), "%sVertex2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2fv) {
+ void ** procp = (void **) &disp->Vertex2fv;
snprintf(symboln, sizeof(symboln), "%sVertex2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2i) {
+ void ** procp = (void **) &disp->Vertex2i;
snprintf(symboln, sizeof(symboln), "%sVertex2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2iv) {
+ void ** procp = (void **) &disp->Vertex2iv;
snprintf(symboln, sizeof(symboln), "%sVertex2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2s) {
+ void ** procp = (void **) &disp->Vertex2s;
snprintf(symboln, sizeof(symboln), "%sVertex2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex2sv) {
+ void ** procp = (void **) &disp->Vertex2sv;
snprintf(symboln, sizeof(symboln), "%sVertex2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex2sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3d) {
+ void ** procp = (void **) &disp->Vertex3d;
snprintf(symboln, sizeof(symboln), "%sVertex3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3dv) {
+ void ** procp = (void **) &disp->Vertex3dv;
snprintf(symboln, sizeof(symboln), "%sVertex3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3f) {
+ void ** procp = (void **) &disp->Vertex3f;
snprintf(symboln, sizeof(symboln), "%sVertex3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3fv) {
+ void ** procp = (void **) &disp->Vertex3fv;
snprintf(symboln, sizeof(symboln), "%sVertex3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3i) {
+ void ** procp = (void **) &disp->Vertex3i;
snprintf(symboln, sizeof(symboln), "%sVertex3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3iv) {
+ void ** procp = (void **) &disp->Vertex3iv;
snprintf(symboln, sizeof(symboln), "%sVertex3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3s) {
+ void ** procp = (void **) &disp->Vertex3s;
snprintf(symboln, sizeof(symboln), "%sVertex3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex3sv) {
+ void ** procp = (void **) &disp->Vertex3sv;
snprintf(symboln, sizeof(symboln), "%sVertex3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex3sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4d) {
+ void ** procp = (void **) &disp->Vertex4d;
snprintf(symboln, sizeof(symboln), "%sVertex4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4dv) {
+ void ** procp = (void **) &disp->Vertex4dv;
snprintf(symboln, sizeof(symboln), "%sVertex4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4f) {
+ void ** procp = (void **) &disp->Vertex4f;
snprintf(symboln, sizeof(symboln), "%sVertex4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4fv) {
+ void ** procp = (void **) &disp->Vertex4fv;
snprintf(symboln, sizeof(symboln), "%sVertex4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4i) {
+ void ** procp = (void **) &disp->Vertex4i;
snprintf(symboln, sizeof(symboln), "%sVertex4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4i;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4iv) {
+ void ** procp = (void **) &disp->Vertex4iv;
snprintf(symboln, sizeof(symboln), "%sVertex4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4iv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4s) {
+ void ** procp = (void **) &disp->Vertex4s;
snprintf(symboln, sizeof(symboln), "%sVertex4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4s;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Vertex4sv) {
+ void ** procp = (void **) &disp->Vertex4sv;
snprintf(symboln, sizeof(symboln), "%sVertex4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Vertex4sv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClipPlane) {
+ void ** procp = (void **) &disp->ClipPlane;
snprintf(symboln, sizeof(symboln), "%sClipPlane", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClipPlane;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorMaterial) {
+ void ** procp = (void **) &disp->ColorMaterial;
snprintf(symboln, sizeof(symboln), "%sColorMaterial", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaterial;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CullFace) {
+ void ** procp = (void **) &disp->CullFace;
snprintf(symboln, sizeof(symboln), "%sCullFace", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CullFace;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Fogf) {
+ void ** procp = (void **) &disp->Fogf;
snprintf(symboln, sizeof(symboln), "%sFogf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Fogf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Fogfv) {
+ void ** procp = (void **) &disp->Fogfv;
snprintf(symboln, sizeof(symboln), "%sFogfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Fogfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Fogi) {
+ void ** procp = (void **) &disp->Fogi;
snprintf(symboln, sizeof(symboln), "%sFogi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Fogi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Fogiv) {
+ void ** procp = (void **) &disp->Fogiv;
snprintf(symboln, sizeof(symboln), "%sFogiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Fogiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FrontFace) {
+ void ** procp = (void **) &disp->FrontFace;
snprintf(symboln, sizeof(symboln), "%sFrontFace", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FrontFace;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Hint) {
+ void ** procp = (void **) &disp->Hint;
snprintf(symboln, sizeof(symboln), "%sHint", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Hint;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Lightf) {
+ void ** procp = (void **) &disp->Lightf;
snprintf(symboln, sizeof(symboln), "%sLightf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Lightf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Lightfv) {
+ void ** procp = (void **) &disp->Lightfv;
snprintf(symboln, sizeof(symboln), "%sLightfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Lightfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Lighti) {
+ void ** procp = (void **) &disp->Lighti;
snprintf(symboln, sizeof(symboln), "%sLighti", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Lighti;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Lightiv) {
+ void ** procp = (void **) &disp->Lightiv;
snprintf(symboln, sizeof(symboln), "%sLightiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Lightiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LightModelf) {
+ void ** procp = (void **) &disp->LightModelf;
snprintf(symboln, sizeof(symboln), "%sLightModelf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LightModelf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LightModelfv) {
+ void ** procp = (void **) &disp->LightModelfv;
snprintf(symboln, sizeof(symboln), "%sLightModelfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LightModelfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LightModeli) {
+ void ** procp = (void **) &disp->LightModeli;
snprintf(symboln, sizeof(symboln), "%sLightModeli", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LightModeli;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LightModeliv) {
+ void ** procp = (void **) &disp->LightModeliv;
snprintf(symboln, sizeof(symboln), "%sLightModeliv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LightModeliv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LineStipple) {
+ void ** procp = (void **) &disp->LineStipple;
snprintf(symboln, sizeof(symboln), "%sLineStipple", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LineStipple;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LineWidth) {
+ void ** procp = (void **) &disp->LineWidth;
snprintf(symboln, sizeof(symboln), "%sLineWidth", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LineWidth;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Materialf) {
+ void ** procp = (void **) &disp->Materialf;
snprintf(symboln, sizeof(symboln), "%sMaterialf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Materialf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Materialfv) {
+ void ** procp = (void **) &disp->Materialfv;
snprintf(symboln, sizeof(symboln), "%sMaterialfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Materialfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Materiali) {
+ void ** procp = (void **) &disp->Materiali;
snprintf(symboln, sizeof(symboln), "%sMateriali", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Materiali;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Materialiv) {
+ void ** procp = (void **) &disp->Materialiv;
snprintf(symboln, sizeof(symboln), "%sMaterialiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Materialiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointSize) {
+ void ** procp = (void **) &disp->PointSize;
snprintf(symboln, sizeof(symboln), "%sPointSize", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointSize;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PolygonMode) {
+ void ** procp = (void **) &disp->PolygonMode;
snprintf(symboln, sizeof(symboln), "%sPolygonMode", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PolygonMode;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PolygonStipple) {
+ void ** procp = (void **) &disp->PolygonStipple;
snprintf(symboln, sizeof(symboln), "%sPolygonStipple", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PolygonStipple;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Scissor) {
+ void ** procp = (void **) &disp->Scissor;
snprintf(symboln, sizeof(symboln), "%sScissor", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Scissor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ShadeModel) {
+ void ** procp = (void **) &disp->ShadeModel;
snprintf(symboln, sizeof(symboln), "%sShadeModel", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ShadeModel;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterf) {
+ void ** procp = (void **) &disp->TexParameterf;
snprintf(symboln, sizeof(symboln), "%sTexParameterf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterfv) {
+ void ** procp = (void **) &disp->TexParameterfv;
snprintf(symboln, sizeof(symboln), "%sTexParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameteri) {
+ void ** procp = (void **) &disp->TexParameteri;
snprintf(symboln, sizeof(symboln), "%sTexParameteri", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameteri;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameteriv) {
+ void ** procp = (void **) &disp->TexParameteriv;
snprintf(symboln, sizeof(symboln), "%sTexParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexImage1D) {
+ void ** procp = (void **) &disp->TexImage1D;
snprintf(symboln, sizeof(symboln), "%sTexImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexImage2D) {
+ void ** procp = (void **) &disp->TexImage2D;
snprintf(symboln, sizeof(symboln), "%sTexImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexEnvf) {
+ void ** procp = (void **) &disp->TexEnvf;
snprintf(symboln, sizeof(symboln), "%sTexEnvf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexEnvfv) {
+ void ** procp = (void **) &disp->TexEnvfv;
snprintf(symboln, sizeof(symboln), "%sTexEnvfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexEnvi) {
+ void ** procp = (void **) &disp->TexEnvi;
snprintf(symboln, sizeof(symboln), "%sTexEnvi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexEnvi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexEnviv) {
+ void ** procp = (void **) &disp->TexEnviv;
snprintf(symboln, sizeof(symboln), "%sTexEnviv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexEnviv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGend) {
+ void ** procp = (void **) &disp->TexGend;
snprintf(symboln, sizeof(symboln), "%sTexGend", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGend;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGendv) {
+ void ** procp = (void **) &disp->TexGendv;
snprintf(symboln, sizeof(symboln), "%sTexGendv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGendv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGenf) {
+ void ** procp = (void **) &disp->TexGenf;
snprintf(symboln, sizeof(symboln), "%sTexGenf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGenf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGenfv) {
+ void ** procp = (void **) &disp->TexGenfv;
snprintf(symboln, sizeof(symboln), "%sTexGenfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGenfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGeni) {
+ void ** procp = (void **) &disp->TexGeni;
snprintf(symboln, sizeof(symboln), "%sTexGeni", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGeni;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexGeniv) {
+ void ** procp = (void **) &disp->TexGeniv;
snprintf(symboln, sizeof(symboln), "%sTexGeniv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexGeniv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FeedbackBuffer) {
+ void ** procp = (void **) &disp->FeedbackBuffer;
snprintf(symboln, sizeof(symboln), "%sFeedbackBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FeedbackBuffer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SelectBuffer) {
+ void ** procp = (void **) &disp->SelectBuffer;
snprintf(symboln, sizeof(symboln), "%sSelectBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SelectBuffer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RenderMode) {
+ void ** procp = (void **) &disp->RenderMode;
snprintf(symboln, sizeof(symboln), "%sRenderMode", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RenderMode;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->InitNames) {
+ void ** procp = (void **) &disp->InitNames;
snprintf(symboln, sizeof(symboln), "%sInitNames", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->InitNames;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadName) {
+ void ** procp = (void **) &disp->LoadName;
snprintf(symboln, sizeof(symboln), "%sLoadName", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadName;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PassThrough) {
+ void ** procp = (void **) &disp->PassThrough;
snprintf(symboln, sizeof(symboln), "%sPassThrough", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PassThrough;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PopName) {
+ void ** procp = (void **) &disp->PopName;
snprintf(symboln, sizeof(symboln), "%sPopName", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PopName;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PushName) {
+ void ** procp = (void **) &disp->PushName;
snprintf(symboln, sizeof(symboln), "%sPushName", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PushName;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawBuffer) {
+ void ** procp = (void **) &disp->DrawBuffer;
snprintf(symboln, sizeof(symboln), "%sDrawBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Clear) {
+ void ** procp = (void **) &disp->Clear;
snprintf(symboln, sizeof(symboln), "%sClear", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Clear;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearAccum) {
+ void ** procp = (void **) &disp->ClearAccum;
snprintf(symboln, sizeof(symboln), "%sClearAccum", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearAccum;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearIndex) {
+ void ** procp = (void **) &disp->ClearIndex;
snprintf(symboln, sizeof(symboln), "%sClearIndex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearIndex;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearColor) {
+ void ** procp = (void **) &disp->ClearColor;
snprintf(symboln, sizeof(symboln), "%sClearColor", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearColor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearStencil) {
+ void ** procp = (void **) &disp->ClearStencil;
snprintf(symboln, sizeof(symboln), "%sClearStencil", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearStencil;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearDepth) {
+ void ** procp = (void **) &disp->ClearDepth;
snprintf(symboln, sizeof(symboln), "%sClearDepth", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearDepth;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilMask) {
+ void ** procp = (void **) &disp->StencilMask;
snprintf(symboln, sizeof(symboln), "%sStencilMask", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilMask;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorMask) {
+ void ** procp = (void **) &disp->ColorMask;
snprintf(symboln, sizeof(symboln), "%sColorMask", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorMask;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DepthMask) {
+ void ** procp = (void **) &disp->DepthMask;
snprintf(symboln, sizeof(symboln), "%sDepthMask", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DepthMask;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IndexMask) {
+ void ** procp = (void **) &disp->IndexMask;
snprintf(symboln, sizeof(symboln), "%sIndexMask", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IndexMask;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Accum) {
+ void ** procp = (void **) &disp->Accum;
snprintf(symboln, sizeof(symboln), "%sAccum", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Accum;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Disable) {
+ void ** procp = (void **) &disp->Disable;
snprintf(symboln, sizeof(symboln), "%sDisable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Disable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Enable) {
+ void ** procp = (void **) &disp->Enable;
snprintf(symboln, sizeof(symboln), "%sEnable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Enable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Finish) {
+ void ** procp = (void **) &disp->Finish;
snprintf(symboln, sizeof(symboln), "%sFinish", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Finish;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Flush) {
+ void ** procp = (void **) &disp->Flush;
snprintf(symboln, sizeof(symboln), "%sFlush", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Flush;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PopAttrib) {
+ void ** procp = (void **) &disp->PopAttrib;
snprintf(symboln, sizeof(symboln), "%sPopAttrib", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PopAttrib;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PushAttrib) {
+ void ** procp = (void **) &disp->PushAttrib;
snprintf(symboln, sizeof(symboln), "%sPushAttrib", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PushAttrib;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Map1d) {
+ void ** procp = (void **) &disp->Map1d;
snprintf(symboln, sizeof(symboln), "%sMap1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Map1d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Map1f) {
+ void ** procp = (void **) &disp->Map1f;
snprintf(symboln, sizeof(symboln), "%sMap1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Map1f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Map2d) {
+ void ** procp = (void **) &disp->Map2d;
snprintf(symboln, sizeof(symboln), "%sMap2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Map2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Map2f) {
+ void ** procp = (void **) &disp->Map2f;
snprintf(symboln, sizeof(symboln), "%sMap2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Map2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapGrid1d) {
+ void ** procp = (void **) &disp->MapGrid1d;
snprintf(symboln, sizeof(symboln), "%sMapGrid1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid1d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapGrid1f) {
+ void ** procp = (void **) &disp->MapGrid1f;
snprintf(symboln, sizeof(symboln), "%sMapGrid1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid1f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapGrid2d) {
+ void ** procp = (void **) &disp->MapGrid2d;
snprintf(symboln, sizeof(symboln), "%sMapGrid2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapGrid2f) {
+ void ** procp = (void **) &disp->MapGrid2f;
snprintf(symboln, sizeof(symboln), "%sMapGrid2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapGrid2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord1d) {
+ void ** procp = (void **) &disp->EvalCoord1d;
snprintf(symboln, sizeof(symboln), "%sEvalCoord1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord1dv) {
+ void ** procp = (void **) &disp->EvalCoord1dv;
snprintf(symboln, sizeof(symboln), "%sEvalCoord1dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord1f) {
+ void ** procp = (void **) &disp->EvalCoord1f;
snprintf(symboln, sizeof(symboln), "%sEvalCoord1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord1fv) {
+ void ** procp = (void **) &disp->EvalCoord1fv;
snprintf(symboln, sizeof(symboln), "%sEvalCoord1fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord1fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord2d) {
+ void ** procp = (void **) &disp->EvalCoord2d;
snprintf(symboln, sizeof(symboln), "%sEvalCoord2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2d;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord2dv) {
+ void ** procp = (void **) &disp->EvalCoord2dv;
snprintf(symboln, sizeof(symboln), "%sEvalCoord2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2dv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord2f) {
+ void ** procp = (void **) &disp->EvalCoord2f;
snprintf(symboln, sizeof(symboln), "%sEvalCoord2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2f;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalCoord2fv) {
+ void ** procp = (void **) &disp->EvalCoord2fv;
snprintf(symboln, sizeof(symboln), "%sEvalCoord2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalCoord2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalMesh1) {
+ void ** procp = (void **) &disp->EvalMesh1;
snprintf(symboln, sizeof(symboln), "%sEvalMesh1", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalMesh1;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalPoint1) {
+ void ** procp = (void **) &disp->EvalPoint1;
snprintf(symboln, sizeof(symboln), "%sEvalPoint1", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalPoint1;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalMesh2) {
+ void ** procp = (void **) &disp->EvalMesh2;
snprintf(symboln, sizeof(symboln), "%sEvalMesh2", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalMesh2;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EvalPoint2) {
+ void ** procp = (void **) &disp->EvalPoint2;
snprintf(symboln, sizeof(symboln), "%sEvalPoint2", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EvalPoint2;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AlphaFunc) {
+ void ** procp = (void **) &disp->AlphaFunc;
snprintf(symboln, sizeof(symboln), "%sAlphaFunc", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFunc;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFunc) {
+ void ** procp = (void **) &disp->BlendFunc;
snprintf(symboln, sizeof(symboln), "%sBlendFunc", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunc;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LogicOp) {
+ void ** procp = (void **) &disp->LogicOp;
snprintf(symboln, sizeof(symboln), "%sLogicOp", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LogicOp;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilFunc) {
+ void ** procp = (void **) &disp->StencilFunc;
snprintf(symboln, sizeof(symboln), "%sStencilFunc", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilFunc;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilOp) {
+ void ** procp = (void **) &disp->StencilOp;
snprintf(symboln, sizeof(symboln), "%sStencilOp", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilOp;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DepthFunc) {
+ void ** procp = (void **) &disp->DepthFunc;
snprintf(symboln, sizeof(symboln), "%sDepthFunc", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DepthFunc;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelZoom) {
+ void ** procp = (void **) &disp->PixelZoom;
snprintf(symboln, sizeof(symboln), "%sPixelZoom", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelZoom;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTransferf) {
+ void ** procp = (void **) &disp->PixelTransferf;
snprintf(symboln, sizeof(symboln), "%sPixelTransferf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTransferf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTransferi) {
+ void ** procp = (void **) &disp->PixelTransferi;
snprintf(symboln, sizeof(symboln), "%sPixelTransferi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTransferi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelStoref) {
+ void ** procp = (void **) &disp->PixelStoref;
snprintf(symboln, sizeof(symboln), "%sPixelStoref", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelStoref;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelStorei) {
+ void ** procp = (void **) &disp->PixelStorei;
snprintf(symboln, sizeof(symboln), "%sPixelStorei", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelStorei;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelMapfv) {
+ void ** procp = (void **) &disp->PixelMapfv;
snprintf(symboln, sizeof(symboln), "%sPixelMapfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelMapuiv) {
+ void ** procp = (void **) &disp->PixelMapuiv;
snprintf(symboln, sizeof(symboln), "%sPixelMapuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapuiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelMapusv) {
+ void ** procp = (void **) &disp->PixelMapusv;
snprintf(symboln, sizeof(symboln), "%sPixelMapusv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelMapusv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ReadBuffer) {
+ void ** procp = (void **) &disp->ReadBuffer;
snprintf(symboln, sizeof(symboln), "%sReadBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ReadBuffer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyPixels) {
+ void ** procp = (void **) &disp->CopyPixels;
snprintf(symboln, sizeof(symboln), "%sCopyPixels", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyPixels;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ReadPixels) {
+ void ** procp = (void **) &disp->ReadPixels;
snprintf(symboln, sizeof(symboln), "%sReadPixels", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ReadPixels;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawPixels) {
+ void ** procp = (void **) &disp->DrawPixels;
snprintf(symboln, sizeof(symboln), "%sDrawPixels", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawPixels;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBooleanv) {
+ void ** procp = (void **) &disp->GetBooleanv;
snprintf(symboln, sizeof(symboln), "%sGetBooleanv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetClipPlane) {
+ void ** procp = (void **) &disp->GetClipPlane;
snprintf(symboln, sizeof(symboln), "%sGetClipPlane", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetClipPlane;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetDoublev) {
+ void ** procp = (void **) &disp->GetDoublev;
snprintf(symboln, sizeof(symboln), "%sGetDoublev", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetDoublev;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetError) {
+ void ** procp = (void **) &disp->GetError;
snprintf(symboln, sizeof(symboln), "%sGetError", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetError;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFloatv) {
+ void ** procp = (void **) &disp->GetFloatv;
snprintf(symboln, sizeof(symboln), "%sGetFloatv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFloatv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetIntegerv) {
+ void ** procp = (void **) &disp->GetIntegerv;
snprintf(symboln, sizeof(symboln), "%sGetIntegerv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetLightfv) {
+ void ** procp = (void **) &disp->GetLightfv;
snprintf(symboln, sizeof(symboln), "%sGetLightfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetLightfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetLightiv) {
+ void ** procp = (void **) &disp->GetLightiv;
snprintf(symboln, sizeof(symboln), "%sGetLightiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetLightiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMapdv) {
+ void ** procp = (void **) &disp->GetMapdv;
snprintf(symboln, sizeof(symboln), "%sGetMapdv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMapdv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMapfv) {
+ void ** procp = (void **) &disp->GetMapfv;
snprintf(symboln, sizeof(symboln), "%sGetMapfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMapfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMapiv) {
+ void ** procp = (void **) &disp->GetMapiv;
snprintf(symboln, sizeof(symboln), "%sGetMapiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMapiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMaterialfv) {
+ void ** procp = (void **) &disp->GetMaterialfv;
snprintf(symboln, sizeof(symboln), "%sGetMaterialfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMaterialfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMaterialiv) {
+ void ** procp = (void **) &disp->GetMaterialiv;
snprintf(symboln, sizeof(symboln), "%sGetMaterialiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMaterialiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPixelMapfv) {
+ void ** procp = (void **) &disp->GetPixelMapfv;
snprintf(symboln, sizeof(symboln), "%sGetPixelMapfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPixelMapuiv) {
+ void ** procp = (void **) &disp->GetPixelMapuiv;
snprintf(symboln, sizeof(symboln), "%sGetPixelMapuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapuiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPixelMapusv) {
+ void ** procp = (void **) &disp->GetPixelMapusv;
snprintf(symboln, sizeof(symboln), "%sGetPixelMapusv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelMapusv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPolygonStipple) {
+ void ** procp = (void **) &disp->GetPolygonStipple;
snprintf(symboln, sizeof(symboln), "%sGetPolygonStipple", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPolygonStipple;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetString) {
+ void ** procp = (void **) &disp->GetString;
snprintf(symboln, sizeof(symboln), "%sGetString", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetString;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexEnvfv) {
+ void ** procp = (void **) &disp->GetTexEnvfv;
snprintf(symboln, sizeof(symboln), "%sGetTexEnvfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexEnvfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexEnviv) {
+ void ** procp = (void **) &disp->GetTexEnviv;
snprintf(symboln, sizeof(symboln), "%sGetTexEnviv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexEnviv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexGendv) {
+ void ** procp = (void **) &disp->GetTexGendv;
snprintf(symboln, sizeof(symboln), "%sGetTexGendv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGendv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexGenfv) {
+ void ** procp = (void **) &disp->GetTexGenfv;
snprintf(symboln, sizeof(symboln), "%sGetTexGenfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGenfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexGeniv) {
+ void ** procp = (void **) &disp->GetTexGeniv;
snprintf(symboln, sizeof(symboln), "%sGetTexGeniv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexGeniv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexImage) {
+ void ** procp = (void **) &disp->GetTexImage;
snprintf(symboln, sizeof(symboln), "%sGetTexImage", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexImage;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterfv) {
+ void ** procp = (void **) &disp->GetTexParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameteriv) {
+ void ** procp = (void **) &disp->GetTexParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetTexParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexLevelParameterfv) {
+ void ** procp = (void **) &disp->GetTexLevelParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexLevelParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexLevelParameteriv) {
+ void ** procp = (void **) &disp->GetTexLevelParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetTexLevelParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexLevelParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsEnabled) {
+ void ** procp = (void **) &disp->IsEnabled;
snprintf(symboln, sizeof(symboln), "%sIsEnabled", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabled;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsList) {
+ void ** procp = (void **) &disp->IsList;
snprintf(symboln, sizeof(symboln), "%sIsList", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsList;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DepthRange) {
+ void ** procp = (void **) &disp->DepthRange;
snprintf(symboln, sizeof(symboln), "%sDepthRange", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DepthRange;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Frustum) {
+ void ** procp = (void **) &disp->Frustum;
snprintf(symboln, sizeof(symboln), "%sFrustum", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Frustum;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadIdentity) {
+ void ** procp = (void **) &disp->LoadIdentity;
snprintf(symboln, sizeof(symboln), "%sLoadIdentity", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadIdentity;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadMatrixf) {
+ void ** procp = (void **) &disp->LoadMatrixf;
snprintf(symboln, sizeof(symboln), "%sLoadMatrixf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadMatrixf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadMatrixd) {
+ void ** procp = (void **) &disp->LoadMatrixd;
snprintf(symboln, sizeof(symboln), "%sLoadMatrixd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadMatrixd;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MatrixMode) {
+ void ** procp = (void **) &disp->MatrixMode;
snprintf(symboln, sizeof(symboln), "%sMatrixMode", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MatrixMode;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultMatrixf) {
+ void ** procp = (void **) &disp->MultMatrixf;
snprintf(symboln, sizeof(symboln), "%sMultMatrixf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultMatrixf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultMatrixd) {
+ void ** procp = (void **) &disp->MultMatrixd;
snprintf(symboln, sizeof(symboln), "%sMultMatrixd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultMatrixd;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Ortho) {
+ void ** procp = (void **) &disp->Ortho;
snprintf(symboln, sizeof(symboln), "%sOrtho", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Ortho;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PopMatrix) {
+ void ** procp = (void **) &disp->PopMatrix;
snprintf(symboln, sizeof(symboln), "%sPopMatrix", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PopMatrix;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PushMatrix) {
+ void ** procp = (void **) &disp->PushMatrix;
snprintf(symboln, sizeof(symboln), "%sPushMatrix", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PushMatrix;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rotated) {
+ void ** procp = (void **) &disp->Rotated;
snprintf(symboln, sizeof(symboln), "%sRotated", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rotated;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Rotatef) {
+ void ** procp = (void **) &disp->Rotatef;
snprintf(symboln, sizeof(symboln), "%sRotatef", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Rotatef;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Scaled) {
+ void ** procp = (void **) &disp->Scaled;
snprintf(symboln, sizeof(symboln), "%sScaled", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Scaled;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Scalef) {
+ void ** procp = (void **) &disp->Scalef;
snprintf(symboln, sizeof(symboln), "%sScalef", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Scalef;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Translated) {
+ void ** procp = (void **) &disp->Translated;
snprintf(symboln, sizeof(symboln), "%sTranslated", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Translated;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Translatef) {
+ void ** procp = (void **) &disp->Translatef;
snprintf(symboln, sizeof(symboln), "%sTranslatef", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Translatef;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Viewport) {
+ void ** procp = (void **) &disp->Viewport;
snprintf(symboln, sizeof(symboln), "%sViewport", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Viewport;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ArrayElement) {
+ void ** procp = (void **) &disp->ArrayElement;
snprintf(symboln, sizeof(symboln), "%sArrayElement", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ArrayElement;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ArrayElement) {
+ void ** procp = (void **) &disp->ArrayElement;
snprintf(symboln, sizeof(symboln), "%sArrayElementEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ArrayElement;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindTexture) {
+ void ** procp = (void **) &disp->BindTexture;
snprintf(symboln, sizeof(symboln), "%sBindTexture", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindTexture;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindTexture) {
+ void ** procp = (void **) &disp->BindTexture;
snprintf(symboln, sizeof(symboln), "%sBindTextureEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindTexture;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorPointer) {
+ void ** procp = (void **) &disp->ColorPointer;
snprintf(symboln, sizeof(symboln), "%sColorPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DisableClientState) {
+ void ** procp = (void **) &disp->DisableClientState;
snprintf(symboln, sizeof(symboln), "%sDisableClientState", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DisableClientState;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawArrays) {
+ void ** procp = (void **) &disp->DrawArrays;
snprintf(symboln, sizeof(symboln), "%sDrawArrays", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawArrays;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawArrays) {
+ void ** procp = (void **) &disp->DrawArrays;
snprintf(symboln, sizeof(symboln), "%sDrawArraysEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawArrays;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElements) {
+ void ** procp = (void **) &disp->DrawElements;
snprintf(symboln, sizeof(symboln), "%sDrawElements", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElements;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EdgeFlagPointer) {
+ void ** procp = (void **) &disp->EdgeFlagPointer;
snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EnableClientState) {
+ void ** procp = (void **) &disp->EnableClientState;
snprintf(symboln, sizeof(symboln), "%sEnableClientState", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EnableClientState;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IndexPointer) {
+ void ** procp = (void **) &disp->IndexPointer;
snprintf(symboln, sizeof(symboln), "%sIndexPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IndexPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexub) {
+ void ** procp = (void **) &disp->Indexub;
snprintf(symboln, sizeof(symboln), "%sIndexub", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexub;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Indexubv) {
+ void ** procp = (void **) &disp->Indexubv;
snprintf(symboln, sizeof(symboln), "%sIndexubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Indexubv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->InterleavedArrays) {
+ void ** procp = (void **) &disp->InterleavedArrays;
snprintf(symboln, sizeof(symboln), "%sInterleavedArrays", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->InterleavedArrays;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->NormalPointer) {
+ void ** procp = (void **) &disp->NormalPointer;
snprintf(symboln, sizeof(symboln), "%sNormalPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->NormalPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PolygonOffset) {
+ void ** procp = (void **) &disp->PolygonOffset;
snprintf(symboln, sizeof(symboln), "%sPolygonOffset", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PolygonOffset;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoordPointer) {
+ void ** procp = (void **) &disp->TexCoordPointer;
snprintf(symboln, sizeof(symboln), "%sTexCoordPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoordPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexPointer) {
+ void ** procp = (void **) &disp->VertexPointer;
snprintf(symboln, sizeof(symboln), "%sVertexPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexPointer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AreTexturesResident) {
+ void ** procp = (void **) &disp->AreTexturesResident;
snprintf(symboln, sizeof(symboln), "%sAreTexturesResident", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AreTexturesResident;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AreTexturesResident) {
+ void ** procp = (void **) &disp->AreTexturesResident;
snprintf(symboln, sizeof(symboln), "%sAreTexturesResidentEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AreTexturesResident;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexImage1D) {
+ void ** procp = (void **) &disp->CopyTexImage1D;
snprintf(symboln, sizeof(symboln), "%sCopyTexImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexImage1D) {
+ void ** procp = (void **) &disp->CopyTexImage1D;
snprintf(symboln, sizeof(symboln), "%sCopyTexImage1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexImage2D) {
+ void ** procp = (void **) &disp->CopyTexImage2D;
snprintf(symboln, sizeof(symboln), "%sCopyTexImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexImage2D) {
+ void ** procp = (void **) &disp->CopyTexImage2D;
snprintf(symboln, sizeof(symboln), "%sCopyTexImage2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage1D) {
+ void ** procp = (void **) &disp->CopyTexSubImage1D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage1D) {
+ void ** procp = (void **) &disp->CopyTexSubImage1D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage2D) {
+ void ** procp = (void **) &disp->CopyTexSubImage2D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage2D) {
+ void ** procp = (void **) &disp->CopyTexSubImage2D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteTextures) {
+ void ** procp = (void **) &disp->DeleteTextures;
snprintf(symboln, sizeof(symboln), "%sDeleteTextures", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteTextures) {
+ void ** procp = (void **) &disp->DeleteTextures;
snprintf(symboln, sizeof(symboln), "%sDeleteTexturesEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenTextures) {
+ void ** procp = (void **) &disp->GenTextures;
snprintf(symboln, sizeof(symboln), "%sGenTextures", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenTextures) {
+ void ** procp = (void **) &disp->GenTextures;
snprintf(symboln, sizeof(symboln), "%sGenTexturesEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPointerv) {
+ void ** procp = (void **) &disp->GetPointerv;
snprintf(symboln, sizeof(symboln), "%sGetPointerv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPointerv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPointerv) {
+ void ** procp = (void **) &disp->GetPointerv;
snprintf(symboln, sizeof(symboln), "%sGetPointervEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPointerv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsTexture) {
+ void ** procp = (void **) &disp->IsTexture;
snprintf(symboln, sizeof(symboln), "%sIsTexture", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsTexture;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsTexture) {
+ void ** procp = (void **) &disp->IsTexture;
snprintf(symboln, sizeof(symboln), "%sIsTextureEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsTexture;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PrioritizeTextures) {
+ void ** procp = (void **) &disp->PrioritizeTextures;
snprintf(symboln, sizeof(symboln), "%sPrioritizeTextures", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PrioritizeTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PrioritizeTextures) {
+ void ** procp = (void **) &disp->PrioritizeTextures;
snprintf(symboln, sizeof(symboln), "%sPrioritizeTexturesEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PrioritizeTextures;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage1D) {
+ void ** procp = (void **) &disp->TexSubImage1D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage1D) {
+ void ** procp = (void **) &disp->TexSubImage1D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage2D) {
+ void ** procp = (void **) &disp->TexSubImage2D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage2D) {
+ void ** procp = (void **) &disp->TexSubImage2D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PopClientAttrib) {
+ void ** procp = (void **) &disp->PopClientAttrib;
snprintf(symboln, sizeof(symboln), "%sPopClientAttrib", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PopClientAttrib;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PushClientAttrib) {
+ void ** procp = (void **) &disp->PushClientAttrib;
snprintf(symboln, sizeof(symboln), "%sPushClientAttrib", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PushClientAttrib;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendColor) {
+ void ** procp = (void **) &disp->BlendColor;
snprintf(symboln, sizeof(symboln), "%sBlendColor", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendColor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendColor) {
+ void ** procp = (void **) &disp->BlendColor;
snprintf(symboln, sizeof(symboln), "%sBlendColorEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendColor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquation) {
+ void ** procp = (void **) &disp->BlendEquation;
snprintf(symboln, sizeof(symboln), "%sBlendEquation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquation;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquation) {
+ void ** procp = (void **) &disp->BlendEquation;
snprintf(symboln, sizeof(symboln), "%sBlendEquationEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquation;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawRangeElements) {
+ void ** procp = (void **) &disp->DrawRangeElements;
snprintf(symboln, sizeof(symboln), "%sDrawRangeElements", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElements;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawRangeElements) {
+ void ** procp = (void **) &disp->DrawRangeElements;
snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElements;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTable) {
+ void ** procp = (void **) &disp->ColorTable;
snprintf(symboln, sizeof(symboln), "%sColorTable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTable) {
+ void ** procp = (void **) &disp->ColorTable;
snprintf(symboln, sizeof(symboln), "%sColorTableSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTable) {
+ void ** procp = (void **) &disp->ColorTable;
snprintf(symboln, sizeof(symboln), "%sColorTableEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTableParameterfv) {
+ void ** procp = (void **) &disp->ColorTableParameterfv;
snprintf(symboln, sizeof(symboln), "%sColorTableParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTableParameterfv) {
+ void ** procp = (void **) &disp->ColorTableParameterfv;
snprintf(symboln, sizeof(symboln), "%sColorTableParameterfvSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTableParameteriv) {
+ void ** procp = (void **) &disp->ColorTableParameteriv;
snprintf(symboln, sizeof(symboln), "%sColorTableParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorTableParameteriv) {
+ void ** procp = (void **) &disp->ColorTableParameteriv;
snprintf(symboln, sizeof(symboln), "%sColorTableParameterivSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorTableParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyColorTable) {
+ void ** procp = (void **) &disp->CopyColorTable;
snprintf(symboln, sizeof(symboln), "%sCopyColorTable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyColorTable) {
+ void ** procp = (void **) &disp->CopyColorTable;
snprintf(symboln, sizeof(symboln), "%sCopyColorTableSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
+ void ** procp = (void **) &disp->GetColorTable;
snprintf(symboln, sizeof(symboln), "%sGetColorTable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
+ void ** procp = (void **) &disp->GetColorTable;
snprintf(symboln, sizeof(symboln), "%sGetColorTableSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTable) {
+ void ** procp = (void **) &disp->GetColorTable;
snprintf(symboln, sizeof(symboln), "%sGetColorTableEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
+ void ** procp = (void **) &disp->GetColorTableParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
+ void ** procp = (void **) &disp->GetColorTableParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameterfv) {
+ void ** procp = (void **) &disp->GetColorTableParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
+ void ** procp = (void **) &disp->GetColorTableParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
+ void ** procp = (void **) &disp->GetColorTableParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivSGI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetColorTableParameteriv) {
+ void ** procp = (void **) &disp->GetColorTableParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetColorTableParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetColorTableParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorSubTable) {
+ void ** procp = (void **) &disp->ColorSubTable;
snprintf(symboln, sizeof(symboln), "%sColorSubTable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorSubTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorSubTable) {
+ void ** procp = (void **) &disp->ColorSubTable;
snprintf(symboln, sizeof(symboln), "%sColorSubTableEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorSubTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyColorSubTable) {
+ void ** procp = (void **) &disp->CopyColorSubTable;
snprintf(symboln, sizeof(symboln), "%sCopyColorSubTable", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorSubTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyColorSubTable) {
+ void ** procp = (void **) &disp->CopyColorSubTable;
snprintf(symboln, sizeof(symboln), "%sCopyColorSubTableEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyColorSubTable;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter1D) {
+ void ** procp = (void **) &disp->ConvolutionFilter1D;
snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter1D) {
+ void ** procp = (void **) &disp->ConvolutionFilter1D;
snprintf(symboln, sizeof(symboln), "%sConvolutionFilter1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter2D) {
+ void ** procp = (void **) &disp->ConvolutionFilter2D;
snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionFilter2D) {
+ void ** procp = (void **) &disp->ConvolutionFilter2D;
snprintf(symboln, sizeof(symboln), "%sConvolutionFilter2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterf) {
+ void ** procp = (void **) &disp->ConvolutionParameterf;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameterf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterf) {
+ void ** procp = (void **) &disp->ConvolutionParameterf;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterfv) {
+ void ** procp = (void **) &disp->ConvolutionParameterfv;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameterfv) {
+ void ** procp = (void **) &disp->ConvolutionParameterfv;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteri) {
+ void ** procp = (void **) &disp->ConvolutionParameteri;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameteri", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteri;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteri) {
+ void ** procp = (void **) &disp->ConvolutionParameteri;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteri;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteriv) {
+ void ** procp = (void **) &disp->ConvolutionParameteriv;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ConvolutionParameteriv) {
+ void ** procp = (void **) &disp->ConvolutionParameteriv;
snprintf(symboln, sizeof(symboln), "%sConvolutionParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ConvolutionParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter1D) {
+ void ** procp = (void **) &disp->CopyConvolutionFilter1D;
snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter1D) {
+ void ** procp = (void **) &disp->CopyConvolutionFilter1D;
snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter1D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter2D) {
+ void ** procp = (void **) &disp->CopyConvolutionFilter2D;
snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyConvolutionFilter2D) {
+ void ** procp = (void **) &disp->CopyConvolutionFilter2D;
snprintf(symboln, sizeof(symboln), "%sCopyConvolutionFilter2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyConvolutionFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionFilter) {
+ void ** procp = (void **) &disp->GetConvolutionFilter;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilter", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionFilter;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionFilter) {
+ void ** procp = (void **) &disp->GetConvolutionFilter;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionFilterEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionFilter;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameterfv) {
+ void ** procp = (void **) &disp->GetConvolutionParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameterfv) {
+ void ** procp = (void **) &disp->GetConvolutionParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameteriv) {
+ void ** procp = (void **) &disp->GetConvolutionParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetConvolutionParameteriv) {
+ void ** procp = (void **) &disp->GetConvolutionParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetConvolutionParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetConvolutionParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSeparableFilter) {
+ void ** procp = (void **) &disp->GetSeparableFilter;
snprintf(symboln, sizeof(symboln), "%sGetSeparableFilter", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSeparableFilter;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSeparableFilter) {
+ void ** procp = (void **) &disp->GetSeparableFilter;
snprintf(symboln, sizeof(symboln), "%sGetSeparableFilterEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSeparableFilter;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SeparableFilter2D) {
+ void ** procp = (void **) &disp->SeparableFilter2D;
snprintf(symboln, sizeof(symboln), "%sSeparableFilter2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SeparableFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SeparableFilter2D) {
+ void ** procp = (void **) &disp->SeparableFilter2D;
snprintf(symboln, sizeof(symboln), "%sSeparableFilter2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SeparableFilter2D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogram) {
+ void ** procp = (void **) &disp->GetHistogram;
snprintf(symboln, sizeof(symboln), "%sGetHistogram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogram) {
+ void ** procp = (void **) &disp->GetHistogram;
snprintf(symboln, sizeof(symboln), "%sGetHistogramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogramParameterfv) {
+ void ** procp = (void **) &disp->GetHistogramParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogramParameterfv) {
+ void ** procp = (void **) &disp->GetHistogramParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogramParameteriv) {
+ void ** procp = (void **) &disp->GetHistogramParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetHistogramParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHistogramParameteriv) {
+ void ** procp = (void **) &disp->GetHistogramParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetHistogramParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHistogramParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmax) {
+ void ** procp = (void **) &disp->GetMinmax;
snprintf(symboln, sizeof(symboln), "%sGetMinmax", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmax) {
+ void ** procp = (void **) &disp->GetMinmax;
snprintf(symboln, sizeof(symboln), "%sGetMinmaxEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameterfv) {
+ void ** procp = (void **) &disp->GetMinmaxParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameterfv) {
+ void ** procp = (void **) &disp->GetMinmaxParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameteriv) {
+ void ** procp = (void **) &disp->GetMinmaxParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetMinmaxParameteriv) {
+ void ** procp = (void **) &disp->GetMinmaxParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetMinmaxParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetMinmaxParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Histogram) {
+ void ** procp = (void **) &disp->Histogram;
snprintf(symboln, sizeof(symboln), "%sHistogram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Histogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Histogram) {
+ void ** procp = (void **) &disp->Histogram;
snprintf(symboln, sizeof(symboln), "%sHistogramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Histogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Minmax) {
+ void ** procp = (void **) &disp->Minmax;
snprintf(symboln, sizeof(symboln), "%sMinmax", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Minmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Minmax) {
+ void ** procp = (void **) &disp->Minmax;
snprintf(symboln, sizeof(symboln), "%sMinmaxEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Minmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResetHistogram) {
+ void ** procp = (void **) &disp->ResetHistogram;
snprintf(symboln, sizeof(symboln), "%sResetHistogram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResetHistogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResetHistogram) {
+ void ** procp = (void **) &disp->ResetHistogram;
snprintf(symboln, sizeof(symboln), "%sResetHistogramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResetHistogram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResetMinmax) {
+ void ** procp = (void **) &disp->ResetMinmax;
snprintf(symboln, sizeof(symboln), "%sResetMinmax", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResetMinmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResetMinmax) {
+ void ** procp = (void **) &disp->ResetMinmax;
snprintf(symboln, sizeof(symboln), "%sResetMinmaxEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResetMinmax;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexImage3D) {
+ void ** procp = (void **) &disp->TexImage3D;
snprintf(symboln, sizeof(symboln), "%sTexImage3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexImage3D) {
+ void ** procp = (void **) &disp->TexImage3D;
snprintf(symboln, sizeof(symboln), "%sTexImage3DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage3D) {
+ void ** procp = (void **) &disp->TexSubImage3D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexSubImage3D) {
+ void ** procp = (void **) &disp->TexSubImage3D;
snprintf(symboln, sizeof(symboln), "%sTexSubImage3DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexSubImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage3D) {
+ void ** procp = (void **) &disp->CopyTexSubImage3D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyTexSubImage3D) {
+ void ** procp = (void **) &disp->CopyTexSubImage3D;
snprintf(symboln, sizeof(symboln), "%sCopyTexSubImage3DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyTexSubImage3D;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ActiveTextureARB) {
+ void ** procp = (void **) &disp->ActiveTextureARB;
snprintf(symboln, sizeof(symboln), "%sActiveTexture", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ActiveTextureARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ActiveTextureARB) {
+ void ** procp = (void **) &disp->ActiveTextureARB;
snprintf(symboln, sizeof(symboln), "%sActiveTextureARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ActiveTextureARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClientActiveTextureARB) {
+ void ** procp = (void **) &disp->ClientActiveTextureARB;
snprintf(symboln, sizeof(symboln), "%sClientActiveTexture", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClientActiveTextureARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClientActiveTextureARB) {
+ void ** procp = (void **) &disp->ClientActiveTextureARB;
snprintf(symboln, sizeof(symboln), "%sClientActiveTextureARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClientActiveTextureARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord1svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord1svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord1svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord1svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord2svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord2svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord2svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord2svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord3svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord3svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord3svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord3svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4dARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4dvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4dvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4fARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4fvARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4fvARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4iARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4iARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4ivARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4ivARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4sARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4sARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiTexCoord4svARB) {
+ void ** procp = (void **) &disp->MultiTexCoord4svARB;
snprintf(symboln, sizeof(symboln), "%sMultiTexCoord4svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiTexCoord4svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AttachShader) {
+ void ** procp = (void **) &disp->AttachShader;
snprintf(symboln, sizeof(symboln), "%sAttachShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AttachShader;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CreateProgram) {
+ void ** procp = (void **) &disp->CreateProgram;
snprintf(symboln, sizeof(symboln), "%sCreateProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CreateProgram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CreateShader) {
+ void ** procp = (void **) &disp->CreateShader;
snprintf(symboln, sizeof(symboln), "%sCreateShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CreateShader;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteProgram) {
+ void ** procp = (void **) &disp->DeleteProgram;
snprintf(symboln, sizeof(symboln), "%sDeleteProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteShader) {
+ void ** procp = (void **) &disp->DeleteShader;
snprintf(symboln, sizeof(symboln), "%sDeleteShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteShader;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DetachShader) {
+ void ** procp = (void **) &disp->DetachShader;
snprintf(symboln, sizeof(symboln), "%sDetachShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DetachShader;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetAttachedShaders) {
+ void ** procp = (void **) &disp->GetAttachedShaders;
snprintf(symboln, sizeof(symboln), "%sGetAttachedShaders", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetAttachedShaders;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramInfoLog) {
+ void ** procp = (void **) &disp->GetProgramInfoLog;
snprintf(symboln, sizeof(symboln), "%sGetProgramInfoLog", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramInfoLog;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramiv) {
+ void ** procp = (void **) &disp->GetProgramiv;
snprintf(symboln, sizeof(symboln), "%sGetProgramiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetShaderInfoLog) {
+ void ** procp = (void **) &disp->GetShaderInfoLog;
snprintf(symboln, sizeof(symboln), "%sGetShaderInfoLog", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderInfoLog;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetShaderiv) {
+ void ** procp = (void **) &disp->GetShaderiv;
snprintf(symboln, sizeof(symboln), "%sGetShaderiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsProgram) {
+ void ** procp = (void **) &disp->IsProgram;
snprintf(symboln, sizeof(symboln), "%sIsProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsProgram;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsShader) {
+ void ** procp = (void **) &disp->IsShader;
snprintf(symboln, sizeof(symboln), "%sIsShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsShader;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilFuncSeparate) {
+ void ** procp = (void **) &disp->StencilFuncSeparate;
snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparate", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilFuncSeparate;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilMaskSeparate) {
+ void ** procp = (void **) &disp->StencilMaskSeparate;
snprintf(symboln, sizeof(symboln), "%sStencilMaskSeparate", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilMaskSeparate;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilOpSeparate) {
+ void ** procp = (void **) &disp->StencilOpSeparate;
snprintf(symboln, sizeof(symboln), "%sStencilOpSeparate", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilOpSeparate;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilOpSeparate) {
+ void ** procp = (void **) &disp->StencilOpSeparate;
snprintf(symboln, sizeof(symboln), "%sStencilOpSeparateATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilOpSeparate;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix2x3fv) {
+ void ** procp = (void **) &disp->UniformMatrix2x3fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2x3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix2x4fv) {
+ void ** procp = (void **) &disp->UniformMatrix2x4fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix2x4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2x4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix3x2fv) {
+ void ** procp = (void **) &disp->UniformMatrix3x2fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3x2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix3x4fv) {
+ void ** procp = (void **) &disp->UniformMatrix3x4fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix3x4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3x4fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix4x2fv) {
+ void ** procp = (void **) &disp->UniformMatrix4x2fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4x2fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix4x3fv) {
+ void ** procp = (void **) &disp->UniformMatrix4x3fv;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix4x3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4x3fv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClampColor) {
+ void ** procp = (void **) &disp->ClampColor;
snprintf(symboln, sizeof(symboln), "%sClampColor", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClampColor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearBufferfi) {
+ void ** procp = (void **) &disp->ClearBufferfi;
snprintf(symboln, sizeof(symboln), "%sClearBufferfi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferfi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearBufferfv) {
+ void ** procp = (void **) &disp->ClearBufferfv;
snprintf(symboln, sizeof(symboln), "%sClearBufferfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearBufferiv) {
+ void ** procp = (void **) &disp->ClearBufferiv;
snprintf(symboln, sizeof(symboln), "%sClearBufferiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearBufferuiv) {
+ void ** procp = (void **) &disp->ClearBufferuiv;
snprintf(symboln, sizeof(symboln), "%sClearBufferuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearBufferuiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetStringi) {
+ void ** procp = (void **) &disp->GetStringi;
snprintf(symboln, sizeof(symboln), "%sGetStringi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetStringi;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexBuffer) {
+ void ** procp = (void **) &disp->TexBuffer;
snprintf(symboln, sizeof(symboln), "%sTexBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexBuffer;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture) {
+ void ** procp = (void **) &disp->FramebufferTexture;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferParameteri64v) {
+ void ** procp = (void **) &disp->GetBufferParameteri64v;
snprintf(symboln, sizeof(symboln), "%sGetBufferParameteri64v", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameteri64v;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetInteger64i_v) {
+ void ** procp = (void **) &disp->GetInteger64i_v;
snprintf(symboln, sizeof(symboln), "%sGetInteger64i_v", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetInteger64i_v;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribDivisor) {
+ void ** procp = (void **) &disp->VertexAttribDivisor;
snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisor", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribDivisor;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixdARB) {
+ void ** procp = (void **) &disp->LoadTransposeMatrixdARB;
snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixdARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixdARB) {
+ void ** procp = (void **) &disp->LoadTransposeMatrixdARB;
snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixdARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixdARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixfARB) {
+ void ** procp = (void **) &disp->LoadTransposeMatrixfARB;
snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixfARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadTransposeMatrixfARB) {
+ void ** procp = (void **) &disp->LoadTransposeMatrixfARB;
snprintf(symboln, sizeof(symboln), "%sLoadTransposeMatrixfARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadTransposeMatrixfARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixdARB) {
+ void ** procp = (void **) &disp->MultTransposeMatrixdARB;
snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixdARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixdARB) {
+ void ** procp = (void **) &disp->MultTransposeMatrixdARB;
snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixdARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixdARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixfARB) {
+ void ** procp = (void **) &disp->MultTransposeMatrixfARB;
snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixfARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultTransposeMatrixfARB) {
+ void ** procp = (void **) &disp->MultTransposeMatrixfARB;
snprintf(symboln, sizeof(symboln), "%sMultTransposeMatrixfARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultTransposeMatrixfARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SampleCoverageARB) {
+ void ** procp = (void **) &disp->SampleCoverageARB;
snprintf(symboln, sizeof(symboln), "%sSampleCoverage", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SampleCoverageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SampleCoverageARB) {
+ void ** procp = (void **) &disp->SampleCoverageARB;
snprintf(symboln, sizeof(symboln), "%sSampleCoverageARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SampleCoverageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage1DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage1DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage1DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage1DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage1DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage1DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage1DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage2DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage2DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage2DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage2DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage2DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage2DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage2DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage3DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage3DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage3DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexImage3DARB) {
+ void ** procp = (void **) &disp->CompressedTexImage3DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexImage3DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexImage3DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage1DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage1DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage1DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage1DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage1DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage1DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage1DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage2DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage2DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage2DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage2DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage2DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage2DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage2DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage3DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage3DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage3DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompressedTexSubImage3DARB) {
+ void ** procp = (void **) &disp->CompressedTexSubImage3DARB;
snprintf(symboln, sizeof(symboln), "%sCompressedTexSubImage3DARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompressedTexSubImage3DARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCompressedTexImageARB) {
+ void ** procp = (void **) &disp->GetCompressedTexImageARB;
snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImage", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCompressedTexImageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCompressedTexImageARB) {
+ void ** procp = (void **) &disp->GetCompressedTexImageARB;
snprintf(symboln, sizeof(symboln), "%sGetCompressedTexImageARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCompressedTexImageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DisableVertexAttribArrayARB) {
+ void ** procp = (void **) &disp->DisableVertexAttribArrayARB;
snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArray", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DisableVertexAttribArrayARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DisableVertexAttribArrayARB) {
+ void ** procp = (void **) &disp->DisableVertexAttribArrayARB;
snprintf(symboln, sizeof(symboln), "%sDisableVertexAttribArrayARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DisableVertexAttribArrayARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EnableVertexAttribArrayARB) {
+ void ** procp = (void **) &disp->EnableVertexAttribArrayARB;
snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArray", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EnableVertexAttribArrayARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EnableVertexAttribArrayARB) {
+ void ** procp = (void **) &disp->EnableVertexAttribArrayARB;
snprintf(symboln, sizeof(symboln), "%sEnableVertexAttribArrayARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EnableVertexAttribArrayARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramEnvParameterdvARB) {
+ void ** procp = (void **) &disp->GetProgramEnvParameterdvARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterdvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramEnvParameterdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramEnvParameterfvARB) {
+ void ** procp = (void **) &disp->GetProgramEnvParameterfvARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramEnvParameterfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramEnvParameterfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramLocalParameterdvARB) {
+ void ** procp = (void **) &disp->GetProgramLocalParameterdvARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterdvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramLocalParameterdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramLocalParameterfvARB) {
+ void ** procp = (void **) &disp->GetProgramLocalParameterfvARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramLocalParameterfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramLocalParameterfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramStringARB) {
+ void ** procp = (void **) &disp->GetProgramStringARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramStringARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramStringARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramivARB) {
+ void ** procp = (void **) &disp->GetProgramivARB;
snprintf(symboln, sizeof(symboln), "%sGetProgramivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvARB) {
+ void ** procp = (void **) &disp->GetVertexAttribdvARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvARB) {
+ void ** procp = (void **) &disp->GetVertexAttribdvARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvARB) {
+ void ** procp = (void **) &disp->GetVertexAttribfvARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvARB) {
+ void ** procp = (void **) &disp->GetVertexAttribfvARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivARB) {
+ void ** procp = (void **) &disp->GetVertexAttribivARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivARB) {
+ void ** procp = (void **) &disp->GetVertexAttribivARB;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4dARB;
snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4dARB;
snprintf(symboln, sizeof(symboln), "%sProgramParameter4dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dvARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4dvARB;
snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4dvARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4dvARB;
snprintf(symboln, sizeof(symboln), "%sProgramParameter4dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4fARB;
snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4fARB;
snprintf(symboln, sizeof(symboln), "%sProgramParameter4fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fvARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4fvARB;
snprintf(symboln, sizeof(symboln), "%sProgramEnvParameter4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameter4fvARB) {
+ void ** procp = (void **) &disp->ProgramEnvParameter4fvARB;
snprintf(symboln, sizeof(symboln), "%sProgramParameter4fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameter4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4dARB) {
+ void ** procp = (void **) &disp->ProgramLocalParameter4dARB;
snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4dvARB) {
+ void ** procp = (void **) &disp->ProgramLocalParameter4dvARB;
snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4fARB) {
+ void ** procp = (void **) &disp->ProgramLocalParameter4fARB;
snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameter4fvARB) {
+ void ** procp = (void **) &disp->ProgramLocalParameter4fvARB;
snprintf(symboln, sizeof(symboln), "%sProgramLocalParameter4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameter4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramStringARB) {
+ void ** procp = (void **) &disp->ProgramStringARB;
snprintf(symboln, sizeof(symboln), "%sProgramStringARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramStringARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dARB) {
+ void ** procp = (void **) &disp->VertexAttrib1dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dARB) {
+ void ** procp = (void **) &disp->VertexAttrib1dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib1dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib1dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fARB) {
+ void ** procp = (void **) &disp->VertexAttrib1fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fARB) {
+ void ** procp = (void **) &disp->VertexAttrib1fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib1fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib1fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sARB) {
+ void ** procp = (void **) &disp->VertexAttrib1sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sARB) {
+ void ** procp = (void **) &disp->VertexAttrib1sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svARB) {
+ void ** procp = (void **) &disp->VertexAttrib1svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svARB) {
+ void ** procp = (void **) &disp->VertexAttrib1svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dARB) {
+ void ** procp = (void **) &disp->VertexAttrib2dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dARB) {
+ void ** procp = (void **) &disp->VertexAttrib2dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib2dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib2dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fARB) {
+ void ** procp = (void **) &disp->VertexAttrib2fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fARB) {
+ void ** procp = (void **) &disp->VertexAttrib2fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib2fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib2fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sARB) {
+ void ** procp = (void **) &disp->VertexAttrib2sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sARB) {
+ void ** procp = (void **) &disp->VertexAttrib2sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svARB) {
+ void ** procp = (void **) &disp->VertexAttrib2svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svARB) {
+ void ** procp = (void **) &disp->VertexAttrib2svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dARB) {
+ void ** procp = (void **) &disp->VertexAttrib3dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dARB) {
+ void ** procp = (void **) &disp->VertexAttrib3dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib3dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib3dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fARB) {
+ void ** procp = (void **) &disp->VertexAttrib3fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fARB) {
+ void ** procp = (void **) &disp->VertexAttrib3fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib3fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib3fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sARB) {
+ void ** procp = (void **) &disp->VertexAttrib3sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sARB) {
+ void ** procp = (void **) &disp->VertexAttrib3sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svARB) {
+ void ** procp = (void **) &disp->VertexAttrib3svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svARB) {
+ void ** procp = (void **) &disp->VertexAttrib3svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NbvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NbvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nbv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NbvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NbvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NbvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NbvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NbvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Niv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NsvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NsvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nsv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NsvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NsvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NsvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NsvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NsvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NubARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nub", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NubARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NubvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NubvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NubvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NubvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NubvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NuivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NuivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NuivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NuivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NuivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NusvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NusvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4Nusv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NusvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4NusvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4NusvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4NusvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4NusvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4bvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4bvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4bvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4bvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4bvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4bvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4bvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dARB) {
+ void ** procp = (void **) &disp->VertexAttrib4dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dARB) {
+ void ** procp = (void **) &disp->VertexAttrib4dARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4dvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fARB) {
+ void ** procp = (void **) &disp->VertexAttrib4fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fARB) {
+ void ** procp = (void **) &disp->VertexAttrib4fARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4fvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4ivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4ivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sARB) {
+ void ** procp = (void **) &disp->VertexAttrib4sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sARB) {
+ void ** procp = (void **) &disp->VertexAttrib4sARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svARB) {
+ void ** procp = (void **) &disp->VertexAttrib4svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svARB) {
+ void ** procp = (void **) &disp->VertexAttrib4svARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4ubvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4ubvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4uivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4uivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4uivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4uivARB) {
+ void ** procp = (void **) &disp->VertexAttrib4uivARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4uivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4uivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4usvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4usvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4usvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4usvARB) {
+ void ** procp = (void **) &disp->VertexAttrib4usvARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4usvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4usvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerARB) {
+ void ** procp = (void **) &disp->VertexAttribPointerARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttribPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerARB) {
+ void ** procp = (void **) &disp->VertexAttribPointerARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferARB) {
+ void ** procp = (void **) &disp->BindBufferARB;
snprintf(symboln, sizeof(symboln), "%sBindBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferARB) {
+ void ** procp = (void **) &disp->BindBufferARB;
snprintf(symboln, sizeof(symboln), "%sBindBufferARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BufferDataARB) {
+ void ** procp = (void **) &disp->BufferDataARB;
snprintf(symboln, sizeof(symboln), "%sBufferData", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BufferDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BufferDataARB) {
+ void ** procp = (void **) &disp->BufferDataARB;
snprintf(symboln, sizeof(symboln), "%sBufferDataARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BufferDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BufferSubDataARB) {
+ void ** procp = (void **) &disp->BufferSubDataARB;
snprintf(symboln, sizeof(symboln), "%sBufferSubData", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BufferSubDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BufferSubDataARB) {
+ void ** procp = (void **) &disp->BufferSubDataARB;
snprintf(symboln, sizeof(symboln), "%sBufferSubDataARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BufferSubDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteBuffersARB) {
+ void ** procp = (void **) &disp->DeleteBuffersARB;
snprintf(symboln, sizeof(symboln), "%sDeleteBuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteBuffersARB) {
+ void ** procp = (void **) &disp->DeleteBuffersARB;
snprintf(symboln, sizeof(symboln), "%sDeleteBuffersARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenBuffersARB) {
+ void ** procp = (void **) &disp->GenBuffersARB;
snprintf(symboln, sizeof(symboln), "%sGenBuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenBuffersARB) {
+ void ** procp = (void **) &disp->GenBuffersARB;
snprintf(symboln, sizeof(symboln), "%sGenBuffersARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferParameterivARB) {
+ void ** procp = (void **) &disp->GetBufferParameterivARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameterivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferParameterivARB) {
+ void ** procp = (void **) &disp->GetBufferParameterivARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferParameterivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferParameterivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferPointervARB) {
+ void ** procp = (void **) &disp->GetBufferPointervARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferPointerv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferPointervARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferPointervARB) {
+ void ** procp = (void **) &disp->GetBufferPointervARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferPointervARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferPointervARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferSubDataARB) {
+ void ** procp = (void **) &disp->GetBufferSubDataARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferSubData", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferSubDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBufferSubDataARB) {
+ void ** procp = (void **) &disp->GetBufferSubDataARB;
snprintf(symboln, sizeof(symboln), "%sGetBufferSubDataARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBufferSubDataARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsBufferARB) {
+ void ** procp = (void **) &disp->IsBufferARB;
snprintf(symboln, sizeof(symboln), "%sIsBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsBufferARB) {
+ void ** procp = (void **) &disp->IsBufferARB;
snprintf(symboln, sizeof(symboln), "%sIsBufferARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapBufferARB) {
+ void ** procp = (void **) &disp->MapBufferARB;
snprintf(symboln, sizeof(symboln), "%sMapBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapBufferARB) {
+ void ** procp = (void **) &disp->MapBufferARB;
snprintf(symboln, sizeof(symboln), "%sMapBufferARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UnmapBufferARB) {
+ void ** procp = (void **) &disp->UnmapBufferARB;
snprintf(symboln, sizeof(symboln), "%sUnmapBuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UnmapBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UnmapBufferARB) {
+ void ** procp = (void **) &disp->UnmapBufferARB;
snprintf(symboln, sizeof(symboln), "%sUnmapBufferARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UnmapBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginQueryARB) {
+ void ** procp = (void **) &disp->BeginQueryARB;
snprintf(symboln, sizeof(symboln), "%sBeginQuery", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginQueryARB) {
+ void ** procp = (void **) &disp->BeginQueryARB;
snprintf(symboln, sizeof(symboln), "%sBeginQueryARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteQueriesARB) {
+ void ** procp = (void **) &disp->DeleteQueriesARB;
snprintf(symboln, sizeof(symboln), "%sDeleteQueries", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteQueriesARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteQueriesARB) {
+ void ** procp = (void **) &disp->DeleteQueriesARB;
snprintf(symboln, sizeof(symboln), "%sDeleteQueriesARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteQueriesARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndQueryARB) {
+ void ** procp = (void **) &disp->EndQueryARB;
snprintf(symboln, sizeof(symboln), "%sEndQuery", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndQueryARB) {
+ void ** procp = (void **) &disp->EndQueryARB;
snprintf(symboln, sizeof(symboln), "%sEndQueryARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenQueriesARB) {
+ void ** procp = (void **) &disp->GenQueriesARB;
snprintf(symboln, sizeof(symboln), "%sGenQueries", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenQueriesARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenQueriesARB) {
+ void ** procp = (void **) &disp->GenQueriesARB;
snprintf(symboln, sizeof(symboln), "%sGenQueriesARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenQueriesARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjectivARB) {
+ void ** procp = (void **) &disp->GetQueryObjectivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjectiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjectivARB) {
+ void ** procp = (void **) &disp->GetQueryObjectivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjectivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjectuivARB) {
+ void ** procp = (void **) &disp->GetQueryObjectuivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjectuivARB) {
+ void ** procp = (void **) &disp->GetQueryObjectuivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjectuivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryivARB) {
+ void ** procp = (void **) &disp->GetQueryivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryivARB) {
+ void ** procp = (void **) &disp->GetQueryivARB;
snprintf(symboln, sizeof(symboln), "%sGetQueryivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsQueryARB) {
+ void ** procp = (void **) &disp->IsQueryARB;
snprintf(symboln, sizeof(symboln), "%sIsQuery", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsQueryARB) {
+ void ** procp = (void **) &disp->IsQueryARB;
snprintf(symboln, sizeof(symboln), "%sIsQueryARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsQueryARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AttachObjectARB) {
+ void ** procp = (void **) &disp->AttachObjectARB;
snprintf(symboln, sizeof(symboln), "%sAttachObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AttachObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompileShaderARB) {
+ void ** procp = (void **) &disp->CompileShaderARB;
snprintf(symboln, sizeof(symboln), "%sCompileShader", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompileShaderARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CompileShaderARB) {
+ void ** procp = (void **) &disp->CompileShaderARB;
snprintf(symboln, sizeof(symboln), "%sCompileShaderARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CompileShaderARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CreateProgramObjectARB) {
+ void ** procp = (void **) &disp->CreateProgramObjectARB;
snprintf(symboln, sizeof(symboln), "%sCreateProgramObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CreateProgramObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CreateShaderObjectARB) {
+ void ** procp = (void **) &disp->CreateShaderObjectARB;
snprintf(symboln, sizeof(symboln), "%sCreateShaderObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CreateShaderObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteObjectARB) {
+ void ** procp = (void **) &disp->DeleteObjectARB;
snprintf(symboln, sizeof(symboln), "%sDeleteObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DetachObjectARB) {
+ void ** procp = (void **) &disp->DetachObjectARB;
snprintf(symboln, sizeof(symboln), "%sDetachObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DetachObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetActiveUniformARB) {
+ void ** procp = (void **) &disp->GetActiveUniformARB;
snprintf(symboln, sizeof(symboln), "%sGetActiveUniform", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveUniformARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetActiveUniformARB) {
+ void ** procp = (void **) &disp->GetActiveUniformARB;
snprintf(symboln, sizeof(symboln), "%sGetActiveUniformARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveUniformARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetAttachedObjectsARB) {
+ void ** procp = (void **) &disp->GetAttachedObjectsARB;
snprintf(symboln, sizeof(symboln), "%sGetAttachedObjectsARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetAttachedObjectsARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetHandleARB) {
+ void ** procp = (void **) &disp->GetHandleARB;
snprintf(symboln, sizeof(symboln), "%sGetHandleARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetHandleARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetInfoLogARB) {
+ void ** procp = (void **) &disp->GetInfoLogARB;
snprintf(symboln, sizeof(symboln), "%sGetInfoLogARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetInfoLogARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetObjectParameterfvARB) {
+ void ** procp = (void **) &disp->GetObjectParameterfvARB;
snprintf(symboln, sizeof(symboln), "%sGetObjectParameterfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetObjectParameterivARB) {
+ void ** procp = (void **) &disp->GetObjectParameterivARB;
snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetShaderSourceARB) {
+ void ** procp = (void **) &disp->GetShaderSourceARB;
snprintf(symboln, sizeof(symboln), "%sGetShaderSource", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderSourceARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetShaderSourceARB) {
+ void ** procp = (void **) &disp->GetShaderSourceARB;
snprintf(symboln, sizeof(symboln), "%sGetShaderSourceARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderSourceARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformLocationARB) {
+ void ** procp = (void **) &disp->GetUniformLocationARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformLocation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformLocationARB) {
+ void ** procp = (void **) &disp->GetUniformLocationARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformLocationARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformfvARB) {
+ void ** procp = (void **) &disp->GetUniformfvARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformfvARB) {
+ void ** procp = (void **) &disp->GetUniformfvARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformivARB) {
+ void ** procp = (void **) &disp->GetUniformivARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformivARB) {
+ void ** procp = (void **) &disp->GetUniformivARB;
snprintf(symboln, sizeof(symboln), "%sGetUniformivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LinkProgramARB) {
+ void ** procp = (void **) &disp->LinkProgramARB;
snprintf(symboln, sizeof(symboln), "%sLinkProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LinkProgramARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LinkProgramARB) {
+ void ** procp = (void **) &disp->LinkProgramARB;
snprintf(symboln, sizeof(symboln), "%sLinkProgramARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LinkProgramARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ShaderSourceARB) {
+ void ** procp = (void **) &disp->ShaderSourceARB;
snprintf(symboln, sizeof(symboln), "%sShaderSource", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ShaderSourceARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ShaderSourceARB) {
+ void ** procp = (void **) &disp->ShaderSourceARB;
snprintf(symboln, sizeof(symboln), "%sShaderSourceARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ShaderSourceARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1fARB) {
+ void ** procp = (void **) &disp->Uniform1fARB;
snprintf(symboln, sizeof(symboln), "%sUniform1f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1fARB) {
+ void ** procp = (void **) &disp->Uniform1fARB;
snprintf(symboln, sizeof(symboln), "%sUniform1fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1fvARB) {
+ void ** procp = (void **) &disp->Uniform1fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform1fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1fvARB) {
+ void ** procp = (void **) &disp->Uniform1fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform1fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1iARB) {
+ void ** procp = (void **) &disp->Uniform1iARB;
snprintf(symboln, sizeof(symboln), "%sUniform1i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1iARB) {
+ void ** procp = (void **) &disp->Uniform1iARB;
snprintf(symboln, sizeof(symboln), "%sUniform1iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1ivARB) {
+ void ** procp = (void **) &disp->Uniform1ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform1iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1ivARB) {
+ void ** procp = (void **) &disp->Uniform1ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform1ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2fARB) {
+ void ** procp = (void **) &disp->Uniform2fARB;
snprintf(symboln, sizeof(symboln), "%sUniform2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2fARB) {
+ void ** procp = (void **) &disp->Uniform2fARB;
snprintf(symboln, sizeof(symboln), "%sUniform2fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2fvARB) {
+ void ** procp = (void **) &disp->Uniform2fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2fvARB) {
+ void ** procp = (void **) &disp->Uniform2fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform2fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2iARB) {
+ void ** procp = (void **) &disp->Uniform2iARB;
snprintf(symboln, sizeof(symboln), "%sUniform2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2iARB) {
+ void ** procp = (void **) &disp->Uniform2iARB;
snprintf(symboln, sizeof(symboln), "%sUniform2iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2ivARB) {
+ void ** procp = (void **) &disp->Uniform2ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2ivARB) {
+ void ** procp = (void **) &disp->Uniform2ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform2ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3fARB) {
+ void ** procp = (void **) &disp->Uniform3fARB;
snprintf(symboln, sizeof(symboln), "%sUniform3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3fARB) {
+ void ** procp = (void **) &disp->Uniform3fARB;
snprintf(symboln, sizeof(symboln), "%sUniform3fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3fvARB) {
+ void ** procp = (void **) &disp->Uniform3fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3fvARB) {
+ void ** procp = (void **) &disp->Uniform3fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform3fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3iARB) {
+ void ** procp = (void **) &disp->Uniform3iARB;
snprintf(symboln, sizeof(symboln), "%sUniform3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3iARB) {
+ void ** procp = (void **) &disp->Uniform3iARB;
snprintf(symboln, sizeof(symboln), "%sUniform3iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3ivARB) {
+ void ** procp = (void **) &disp->Uniform3ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3ivARB) {
+ void ** procp = (void **) &disp->Uniform3ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform3ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4fARB) {
+ void ** procp = (void **) &disp->Uniform4fARB;
snprintf(symboln, sizeof(symboln), "%sUniform4f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4fARB) {
+ void ** procp = (void **) &disp->Uniform4fARB;
snprintf(symboln, sizeof(symboln), "%sUniform4fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4fvARB) {
+ void ** procp = (void **) &disp->Uniform4fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4fvARB) {
+ void ** procp = (void **) &disp->Uniform4fvARB;
snprintf(symboln, sizeof(symboln), "%sUniform4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4iARB) {
+ void ** procp = (void **) &disp->Uniform4iARB;
snprintf(symboln, sizeof(symboln), "%sUniform4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4iARB) {
+ void ** procp = (void **) &disp->Uniform4iARB;
snprintf(symboln, sizeof(symboln), "%sUniform4iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4iARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4ivARB) {
+ void ** procp = (void **) &disp->Uniform4ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4ivARB) {
+ void ** procp = (void **) &disp->Uniform4ivARB;
snprintf(symboln, sizeof(symboln), "%sUniform4ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4ivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix2fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix2fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix2fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix2fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix2fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix2fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix3fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix3fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix3fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix3fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix3fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix3fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix4fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix4fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UniformMatrix4fvARB) {
+ void ** procp = (void **) &disp->UniformMatrix4fvARB;
snprintf(symboln, sizeof(symboln), "%sUniformMatrix4fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UniformMatrix4fvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UseProgramObjectARB) {
+ void ** procp = (void **) &disp->UseProgramObjectARB;
snprintf(symboln, sizeof(symboln), "%sUseProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UseProgramObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UseProgramObjectARB) {
+ void ** procp = (void **) &disp->UseProgramObjectARB;
snprintf(symboln, sizeof(symboln), "%sUseProgramObjectARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UseProgramObjectARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ValidateProgramARB) {
+ void ** procp = (void **) &disp->ValidateProgramARB;
snprintf(symboln, sizeof(symboln), "%sValidateProgram", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ValidateProgramARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ValidateProgramARB) {
+ void ** procp = (void **) &disp->ValidateProgramARB;
snprintf(symboln, sizeof(symboln), "%sValidateProgramARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ValidateProgramARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindAttribLocationARB) {
+ void ** procp = (void **) &disp->BindAttribLocationARB;
snprintf(symboln, sizeof(symboln), "%sBindAttribLocation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindAttribLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindAttribLocationARB) {
+ void ** procp = (void **) &disp->BindAttribLocationARB;
snprintf(symboln, sizeof(symboln), "%sBindAttribLocationARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindAttribLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetActiveAttribARB) {
+ void ** procp = (void **) &disp->GetActiveAttribARB;
snprintf(symboln, sizeof(symboln), "%sGetActiveAttrib", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveAttribARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetActiveAttribARB) {
+ void ** procp = (void **) &disp->GetActiveAttribARB;
snprintf(symboln, sizeof(symboln), "%sGetActiveAttribARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetActiveAttribARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetAttribLocationARB) {
+ void ** procp = (void **) &disp->GetAttribLocationARB;
snprintf(symboln, sizeof(symboln), "%sGetAttribLocation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetAttribLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetAttribLocationARB) {
+ void ** procp = (void **) &disp->GetAttribLocationARB;
snprintf(symboln, sizeof(symboln), "%sGetAttribLocationARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetAttribLocationARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
+ void ** procp = (void **) &disp->DrawBuffersARB;
snprintf(symboln, sizeof(symboln), "%sDrawBuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
+ void ** procp = (void **) &disp->DrawBuffersARB;
snprintf(symboln, sizeof(symboln), "%sDrawBuffersARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawBuffersARB) {
+ void ** procp = (void **) &disp->DrawBuffersARB;
snprintf(symboln, sizeof(symboln), "%sDrawBuffersATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawBuffersARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClampColorARB) {
+ void ** procp = (void **) &disp->ClampColorARB;
snprintf(symboln, sizeof(symboln), "%sClampColorARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClampColorARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
+ void ** procp = (void **) &disp->DrawArraysInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
+ void ** procp = (void **) &disp->DrawArraysInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawArraysInstancedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawArraysInstancedARB) {
+ void ** procp = (void **) &disp->DrawArraysInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawArraysInstanced", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawArraysInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
+ void ** procp = (void **) &disp->DrawElementsInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
+ void ** procp = (void **) &disp->DrawElementsInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedARB) {
+ void ** procp = (void **) &disp->DrawElementsInstancedARB;
snprintf(symboln, sizeof(symboln), "%sDrawElementsInstanced", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageMultisample) {
+ void ** procp = (void **) &disp->RenderbufferStorageMultisample;
snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisample", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageMultisample;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageMultisample) {
+ void ** procp = (void **) &disp->RenderbufferStorageMultisample;
snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageMultisampleEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageMultisample;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTextureARB) {
+ void ** procp = (void **) &disp->FramebufferTextureARB;
snprintf(symboln, sizeof(symboln), "%sFramebufferTextureARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTextureFaceARB) {
+ void ** procp = (void **) &disp->FramebufferTextureFaceARB;
snprintf(symboln, sizeof(symboln), "%sFramebufferTextureFaceARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureFaceARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramParameteriARB) {
+ void ** procp = (void **) &disp->ProgramParameteriARB;
snprintf(symboln, sizeof(symboln), "%sProgramParameteriARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameteriARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribDivisorARB) {
+ void ** procp = (void **) &disp->VertexAttribDivisorARB;
snprintf(symboln, sizeof(symboln), "%sVertexAttribDivisorARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribDivisorARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FlushMappedBufferRange) {
+ void ** procp = (void **) &disp->FlushMappedBufferRange;
snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRange", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FlushMappedBufferRange;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MapBufferRange) {
+ void ** procp = (void **) &disp->MapBufferRange;
snprintf(symboln, sizeof(symboln), "%sMapBufferRange", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MapBufferRange;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexBufferARB) {
+ void ** procp = (void **) &disp->TexBufferARB;
snprintf(symboln, sizeof(symboln), "%sTexBufferARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexBufferARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindVertexArray) {
+ void ** procp = (void **) &disp->BindVertexArray;
snprintf(symboln, sizeof(symboln), "%sBindVertexArray", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindVertexArray;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenVertexArrays) {
+ void ** procp = (void **) &disp->GenVertexArrays;
snprintf(symboln, sizeof(symboln), "%sGenVertexArrays", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenVertexArrays;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CopyBufferSubData) {
+ void ** procp = (void **) &disp->CopyBufferSubData;
snprintf(symboln, sizeof(symboln), "%sCopyBufferSubData", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CopyBufferSubData;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClientWaitSync) {
+ void ** procp = (void **) &disp->ClientWaitSync;
snprintf(symboln, sizeof(symboln), "%sClientWaitSync", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClientWaitSync;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteSync) {
+ void ** procp = (void **) &disp->DeleteSync;
snprintf(symboln, sizeof(symboln), "%sDeleteSync", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteSync;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FenceSync) {
+ void ** procp = (void **) &disp->FenceSync;
snprintf(symboln, sizeof(symboln), "%sFenceSync", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FenceSync;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetInteger64v) {
+ void ** procp = (void **) &disp->GetInteger64v;
snprintf(symboln, sizeof(symboln), "%sGetInteger64v", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetInteger64v;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSynciv) {
+ void ** procp = (void **) &disp->GetSynciv;
snprintf(symboln, sizeof(symboln), "%sGetSynciv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSynciv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsSync) {
+ void ** procp = (void **) &disp->IsSync;
snprintf(symboln, sizeof(symboln), "%sIsSync", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsSync;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WaitSync) {
+ void ** procp = (void **) &disp->WaitSync;
snprintf(symboln, sizeof(symboln), "%sWaitSync", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WaitSync;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElementsBaseVertex) {
+ void ** procp = (void **) &disp->DrawElementsBaseVertex;
snprintf(symboln, sizeof(symboln), "%sDrawElementsBaseVertex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsBaseVertex;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawElementsInstancedBaseVertex) {
+ void ** procp = (void **) &disp->DrawElementsInstancedBaseVertex;
snprintf(symboln, sizeof(symboln), "%sDrawElementsInstancedBaseVertex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawElementsInstancedBaseVertex;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawRangeElementsBaseVertex) {
+ void ** procp = (void **) &disp->DrawRangeElementsBaseVertex;
snprintf(symboln, sizeof(symboln), "%sDrawRangeElementsBaseVertex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawRangeElementsBaseVertex;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsBaseVertex) {
+ void ** procp = (void **) &disp->MultiDrawElementsBaseVertex;
snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsBaseVertex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsBaseVertex;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateiARB) {
+ void ** procp = (void **) &disp->BlendEquationSeparateiARB;
snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateiARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateiARB) {
+ void ** procp = (void **) &disp->BlendEquationSeparateiARB;
snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateIndexedAMD", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationiARB) {
+ void ** procp = (void **) &disp->BlendEquationiARB;
snprintf(symboln, sizeof(symboln), "%sBlendEquationiARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationiARB) {
+ void ** procp = (void **) &disp->BlendEquationiARB;
snprintf(symboln, sizeof(symboln), "%sBlendEquationIndexedAMD", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateiARB) {
+ void ** procp = (void **) &disp->BlendFuncSeparateiARB;
snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateiARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateiARB) {
+ void ** procp = (void **) &disp->BlendFuncSeparateiARB;
snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateIndexedAMD", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateiARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFunciARB) {
+ void ** procp = (void **) &disp->BlendFunciARB;
snprintf(symboln, sizeof(symboln), "%sBlendFunciARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunciARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFunciARB) {
+ void ** procp = (void **) &disp->BlendFunciARB;
snprintf(symboln, sizeof(symboln), "%sBlendFuncIndexedAMD", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFunciARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindSampler) {
+ void ** procp = (void **) &disp->BindSampler;
snprintf(symboln, sizeof(symboln), "%sBindSampler", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindSampler;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteSamplers) {
+ void ** procp = (void **) &disp->DeleteSamplers;
snprintf(symboln, sizeof(symboln), "%sDeleteSamplers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteSamplers;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenSamplers) {
+ void ** procp = (void **) &disp->GenSamplers;
snprintf(symboln, sizeof(symboln), "%sGenSamplers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenSamplers;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterIiv) {
+ void ** procp = (void **) &disp->GetSamplerParameterIiv;
snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterIiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterIuiv) {
+ void ** procp = (void **) &disp->GetSamplerParameterIuiv;
snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterIuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterIuiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSamplerParameterfv) {
+ void ** procp = (void **) &disp->GetSamplerParameterfv;
snprintf(symboln, sizeof(symboln), "%sGetSamplerParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetSamplerParameteriv) {
+ void ** procp = (void **) &disp->GetSamplerParameteriv;
snprintf(symboln, sizeof(symboln), "%sGetSamplerParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetSamplerParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsSampler) {
+ void ** procp = (void **) &disp->IsSampler;
snprintf(symboln, sizeof(symboln), "%sIsSampler", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsSampler;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameterIiv) {
+ void ** procp = (void **) &disp->SamplerParameterIiv;
snprintf(symboln, sizeof(symboln), "%sSamplerParameterIiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterIiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameterIuiv) {
+ void ** procp = (void **) &disp->SamplerParameterIuiv;
snprintf(symboln, sizeof(symboln), "%sSamplerParameterIuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterIuiv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameterf) {
+ void ** procp = (void **) &disp->SamplerParameterf;
snprintf(symboln, sizeof(symboln), "%sSamplerParameterf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameterfv) {
+ void ** procp = (void **) &disp->SamplerParameterfv;
snprintf(symboln, sizeof(symboln), "%sSamplerParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameterfv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameteri) {
+ void ** procp = (void **) &disp->SamplerParameteri;
snprintf(symboln, sizeof(symboln), "%sSamplerParameteri", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameteri;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplerParameteriv) {
+ void ** procp = (void **) &disp->SamplerParameteriv;
snprintf(symboln, sizeof(symboln), "%sSamplerParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplerParameteriv;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindTransformFeedback) {
+ void ** procp = (void **) &disp->BindTransformFeedback;
snprintf(symboln, sizeof(symboln), "%sBindTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindTransformFeedback;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteTransformFeedbacks) {
+ void ** procp = (void **) &disp->DeleteTransformFeedbacks;
snprintf(symboln, sizeof(symboln), "%sDeleteTransformFeedbacks", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteTransformFeedbacks;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DrawTransformFeedback) {
+ void ** procp = (void **) &disp->DrawTransformFeedback;
snprintf(symboln, sizeof(symboln), "%sDrawTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DrawTransformFeedback;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenTransformFeedbacks) {
+ void ** procp = (void **) &disp->GenTransformFeedbacks;
snprintf(symboln, sizeof(symboln), "%sGenTransformFeedbacks", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenTransformFeedbacks;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsTransformFeedback) {
+ void ** procp = (void **) &disp->IsTransformFeedback;
snprintf(symboln, sizeof(symboln), "%sIsTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsTransformFeedback;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PauseTransformFeedback) {
+ void ** procp = (void **) &disp->PauseTransformFeedback;
snprintf(symboln, sizeof(symboln), "%sPauseTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PauseTransformFeedback;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResumeTransformFeedback) {
+ void ** procp = (void **) &disp->ResumeTransformFeedback;
snprintf(symboln, sizeof(symboln), "%sResumeTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResumeTransformFeedback;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearDepthf) {
+ void ** procp = (void **) &disp->ClearDepthf;
snprintf(symboln, sizeof(symboln), "%sClearDepthf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearDepthf;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DepthRangef) {
+ void ** procp = (void **) &disp->DepthRangef;
snprintf(symboln, sizeof(symboln), "%sDepthRangef", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DepthRangef;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetShaderPrecisionFormat) {
+ void ** procp = (void **) &disp->GetShaderPrecisionFormat;
snprintf(symboln, sizeof(symboln), "%sGetShaderPrecisionFormat", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetShaderPrecisionFormat;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ReleaseShaderCompiler) {
+ void ** procp = (void **) &disp->ReleaseShaderCompiler;
snprintf(symboln, sizeof(symboln), "%sReleaseShaderCompiler", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ReleaseShaderCompiler;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ShaderBinary) {
+ void ** procp = (void **) &disp->ShaderBinary;
snprintf(symboln, sizeof(symboln), "%sShaderBinary", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ShaderBinary;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetGraphicsResetStatusARB) {
+ void ** procp = (void **) &disp->GetGraphicsResetStatusARB;
snprintf(symboln, sizeof(symboln), "%sGetGraphicsResetStatusARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetGraphicsResetStatusARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnColorTableARB) {
+ void ** procp = (void **) &disp->GetnColorTableARB;
snprintf(symboln, sizeof(symboln), "%sGetnColorTableARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnColorTableARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnCompressedTexImageARB) {
+ void ** procp = (void **) &disp->GetnCompressedTexImageARB;
snprintf(symboln, sizeof(symboln), "%sGetnCompressedTexImageARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnCompressedTexImageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnConvolutionFilterARB) {
+ void ** procp = (void **) &disp->GetnConvolutionFilterARB;
snprintf(symboln, sizeof(symboln), "%sGetnConvolutionFilterARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnConvolutionFilterARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnHistogramARB) {
+ void ** procp = (void **) &disp->GetnHistogramARB;
snprintf(symboln, sizeof(symboln), "%sGetnHistogramARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnHistogramARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnMapdvARB) {
+ void ** procp = (void **) &disp->GetnMapdvARB;
snprintf(symboln, sizeof(symboln), "%sGetnMapdvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnMapfvARB) {
+ void ** procp = (void **) &disp->GetnMapfvARB;
snprintf(symboln, sizeof(symboln), "%sGetnMapfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnMapivARB) {
+ void ** procp = (void **) &disp->GetnMapivARB;
snprintf(symboln, sizeof(symboln), "%sGetnMapivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnMapivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnMinmaxARB) {
+ void ** procp = (void **) &disp->GetnMinmaxARB;
snprintf(symboln, sizeof(symboln), "%sGetnMinmaxARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnMinmaxARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnPixelMapfvARB) {
+ void ** procp = (void **) &disp->GetnPixelMapfvARB;
snprintf(symboln, sizeof(symboln), "%sGetnPixelMapfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnPixelMapuivARB) {
+ void ** procp = (void **) &disp->GetnPixelMapuivARB;
snprintf(symboln, sizeof(symboln), "%sGetnPixelMapuivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnPixelMapusvARB) {
+ void ** procp = (void **) &disp->GetnPixelMapusvARB;
snprintf(symboln, sizeof(symboln), "%sGetnPixelMapusvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnPixelMapusvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnPolygonStippleARB) {
+ void ** procp = (void **) &disp->GetnPolygonStippleARB;
snprintf(symboln, sizeof(symboln), "%sGetnPolygonStippleARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnPolygonStippleARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnSeparableFilterARB) {
+ void ** procp = (void **) &disp->GetnSeparableFilterARB;
snprintf(symboln, sizeof(symboln), "%sGetnSeparableFilterARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnSeparableFilterARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnTexImageARB) {
+ void ** procp = (void **) &disp->GetnTexImageARB;
snprintf(symboln, sizeof(symboln), "%sGetnTexImageARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnTexImageARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnUniformdvARB) {
+ void ** procp = (void **) &disp->GetnUniformdvARB;
snprintf(symboln, sizeof(symboln), "%sGetnUniformdvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformdvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnUniformfvARB) {
+ void ** procp = (void **) &disp->GetnUniformfvARB;
snprintf(symboln, sizeof(symboln), "%sGetnUniformfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformfvARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnUniformivARB) {
+ void ** procp = (void **) &disp->GetnUniformivARB;
snprintf(symboln, sizeof(symboln), "%sGetnUniformivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetnUniformuivARB) {
+ void ** procp = (void **) &disp->GetnUniformuivARB;
snprintf(symboln, sizeof(symboln), "%sGetnUniformuivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetnUniformuivARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ReadnPixelsARB) {
+ void ** procp = (void **) &disp->ReadnPixelsARB;
snprintf(symboln, sizeof(symboln), "%sReadnPixelsARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ReadnPixelsARB;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PolygonOffsetEXT) {
+ void ** procp = (void **) &disp->PolygonOffsetEXT;
snprintf(symboln, sizeof(symboln), "%sPolygonOffsetEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PolygonOffsetEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPixelTexGenParameterfvSGIS) {
+ void ** procp = (void **) &disp->GetPixelTexGenParameterfvSGIS;
snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterfvSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelTexGenParameterfvSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetPixelTexGenParameterivSGIS) {
+ void ** procp = (void **) &disp->GetPixelTexGenParameterivSGIS;
snprintf(symboln, sizeof(symboln), "%sGetPixelTexGenParameterivSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetPixelTexGenParameterivSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterfSGIS) {
+ void ** procp = (void **) &disp->PixelTexGenParameterfSGIS;
snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterfSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterfvSGIS) {
+ void ** procp = (void **) &disp->PixelTexGenParameterfvSGIS;
snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterfvSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterfvSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameteriSGIS) {
+ void ** procp = (void **) &disp->PixelTexGenParameteriSGIS;
snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameteriSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameteriSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTexGenParameterivSGIS) {
+ void ** procp = (void **) &disp->PixelTexGenParameterivSGIS;
snprintf(symboln, sizeof(symboln), "%sPixelTexGenParameterivSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenParameterivSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SampleMaskSGIS) {
+ void ** procp = (void **) &disp->SampleMaskSGIS;
snprintf(symboln, sizeof(symboln), "%sSampleMaskSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SampleMaskSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SampleMaskSGIS) {
+ void ** procp = (void **) &disp->SampleMaskSGIS;
snprintf(symboln, sizeof(symboln), "%sSampleMaskEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SampleMaskSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplePatternSGIS) {
+ void ** procp = (void **) &disp->SamplePatternSGIS;
snprintf(symboln, sizeof(symboln), "%sSamplePatternSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplePatternSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SamplePatternSGIS) {
+ void ** procp = (void **) &disp->SamplePatternSGIS;
snprintf(symboln, sizeof(symboln), "%sSamplePatternEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SamplePatternSGIS;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorPointerEXT) {
+ void ** procp = (void **) &disp->ColorPointerEXT;
snprintf(symboln, sizeof(symboln), "%sColorPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EdgeFlagPointerEXT) {
+ void ** procp = (void **) &disp->EdgeFlagPointerEXT;
snprintf(symboln, sizeof(symboln), "%sEdgeFlagPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EdgeFlagPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IndexPointerEXT) {
+ void ** procp = (void **) &disp->IndexPointerEXT;
snprintf(symboln, sizeof(symboln), "%sIndexPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IndexPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->NormalPointerEXT) {
+ void ** procp = (void **) &disp->NormalPointerEXT;
snprintf(symboln, sizeof(symboln), "%sNormalPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->NormalPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexCoordPointerEXT) {
+ void ** procp = (void **) &disp->TexCoordPointerEXT;
snprintf(symboln, sizeof(symboln), "%sTexCoordPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexCoordPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexPointerEXT) {
+ void ** procp = (void **) &disp->VertexPointerEXT;
snprintf(symboln, sizeof(symboln), "%sVertexPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
+ void ** procp = (void **) &disp->PointParameterfEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
+ void ** procp = (void **) &disp->PointParameterfEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
+ void ** procp = (void **) &disp->PointParameterfEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfEXT) {
+ void ** procp = (void **) &disp->PointParameterfEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
+ void ** procp = (void **) &disp->PointParameterfvEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
+ void ** procp = (void **) &disp->PointParameterfvEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
+ void ** procp = (void **) &disp->PointParameterfvEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterfvEXT) {
+ void ** procp = (void **) &disp->PointParameterfvEXT;
snprintf(symboln, sizeof(symboln), "%sPointParameterfvSGIS", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LockArraysEXT) {
+ void ** procp = (void **) &disp->LockArraysEXT;
snprintf(symboln, sizeof(symboln), "%sLockArraysEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LockArraysEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UnlockArraysEXT) {
+ void ** procp = (void **) &disp->UnlockArraysEXT;
snprintf(symboln, sizeof(symboln), "%sUnlockArraysEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UnlockArraysEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3bEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3b", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3bEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3bvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3bvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3bvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3bvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3bvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3dEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3dEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3dvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3dvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3dvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3dvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3dvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3fEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3fEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3fvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3fvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3fvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3fvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3fvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3iEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3iEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3iEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3iEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ivEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ivEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ivEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ivEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3sEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3sEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3sEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3sEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3sEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3sEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3svEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3svEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3svEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3svEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3svEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3svEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3svEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ubEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ub", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ubEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ubvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3ubvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3ubvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ubvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3ubvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uiEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3uiEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uiEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3uiEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uivEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3uivEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3uivEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3uivEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3usEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3us", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3usEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3usvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColor3usvEXT) {
+ void ** procp = (void **) &disp->SecondaryColor3usvEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColor3usvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColor3usvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColorPointerEXT) {
+ void ** procp = (void **) &disp->SecondaryColorPointerEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColorPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SecondaryColorPointerEXT) {
+ void ** procp = (void **) &disp->SecondaryColorPointerEXT;
snprintf(symboln, sizeof(symboln), "%sSecondaryColorPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SecondaryColorPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiDrawArraysEXT) {
+ void ** procp = (void **) &disp->MultiDrawArraysEXT;
snprintf(symboln, sizeof(symboln), "%sMultiDrawArrays", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawArraysEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiDrawArraysEXT) {
+ void ** procp = (void **) &disp->MultiDrawArraysEXT;
snprintf(symboln, sizeof(symboln), "%sMultiDrawArraysEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawArraysEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsEXT) {
+ void ** procp = (void **) &disp->MultiDrawElementsEXT;
snprintf(symboln, sizeof(symboln), "%sMultiDrawElements", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiDrawElementsEXT) {
+ void ** procp = (void **) &disp->MultiDrawElementsEXT;
snprintf(symboln, sizeof(symboln), "%sMultiDrawElementsEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiDrawElementsEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordPointerEXT) {
+ void ** procp = (void **) &disp->FogCoordPointerEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordPointerEXT) {
+ void ** procp = (void **) &disp->FogCoordPointerEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoorddEXT) {
+ void ** procp = (void **) &disp->FogCoorddEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordd", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoorddEXT) {
+ void ** procp = (void **) &disp->FogCoorddEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoorddEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoorddvEXT) {
+ void ** procp = (void **) &disp->FogCoorddvEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoorddv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoorddvEXT) {
+ void ** procp = (void **) &disp->FogCoorddvEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoorddvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoorddvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordfEXT) {
+ void ** procp = (void **) &disp->FogCoordfEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordf", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordfEXT) {
+ void ** procp = (void **) &disp->FogCoordfEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordfEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordfvEXT) {
+ void ** procp = (void **) &disp->FogCoordfvEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordfv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FogCoordfvEXT) {
+ void ** procp = (void **) &disp->FogCoordfvEXT;
snprintf(symboln, sizeof(symboln), "%sFogCoordfvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FogCoordfvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PixelTexGenSGIX) {
+ void ** procp = (void **) &disp->PixelTexGenSGIX;
snprintf(symboln, sizeof(symboln), "%sPixelTexGenSGIX", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PixelTexGenSGIX;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
+ void ** procp = (void **) &disp->BlendFuncSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparate", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
+ void ** procp = (void **) &disp->BlendFuncSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendFuncSeparateEXT) {
+ void ** procp = (void **) &disp->BlendFuncSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendFuncSeparateINGR", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendFuncSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FlushVertexArrayRangeNV) {
+ void ** procp = (void **) &disp->FlushVertexArrayRangeNV;
snprintf(symboln, sizeof(symboln), "%sFlushVertexArrayRangeNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FlushVertexArrayRangeNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexArrayRangeNV) {
+ void ** procp = (void **) &disp->VertexArrayRangeNV;
snprintf(symboln, sizeof(symboln), "%sVertexArrayRangeNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexArrayRangeNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerInputNV) {
+ void ** procp = (void **) &disp->CombinerInputNV;
snprintf(symboln, sizeof(symboln), "%sCombinerInputNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerInputNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerOutputNV) {
+ void ** procp = (void **) &disp->CombinerOutputNV;
snprintf(symboln, sizeof(symboln), "%sCombinerOutputNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerOutputNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerParameterfNV) {
+ void ** procp = (void **) &disp->CombinerParameterfNV;
snprintf(symboln, sizeof(symboln), "%sCombinerParameterfNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterfNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerParameterfvNV) {
+ void ** procp = (void **) &disp->CombinerParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sCombinerParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerParameteriNV) {
+ void ** procp = (void **) &disp->CombinerParameteriNV;
snprintf(symboln, sizeof(symboln), "%sCombinerParameteriNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameteriNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CombinerParameterivNV) {
+ void ** procp = (void **) &disp->CombinerParameterivNV;
snprintf(symboln, sizeof(symboln), "%sCombinerParameterivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CombinerParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FinalCombinerInputNV) {
+ void ** procp = (void **) &disp->FinalCombinerInputNV;
snprintf(symboln, sizeof(symboln), "%sFinalCombinerInputNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FinalCombinerInputNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCombinerInputParameterfvNV) {
+ void ** procp = (void **) &disp->GetCombinerInputParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerInputParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCombinerInputParameterivNV) {
+ void ** procp = (void **) &disp->GetCombinerInputParameterivNV;
snprintf(symboln, sizeof(symboln), "%sGetCombinerInputParameterivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerInputParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCombinerOutputParameterfvNV) {
+ void ** procp = (void **) &disp->GetCombinerOutputParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerOutputParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetCombinerOutputParameterivNV) {
+ void ** procp = (void **) &disp->GetCombinerOutputParameterivNV;
snprintf(symboln, sizeof(symboln), "%sGetCombinerOutputParameterivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetCombinerOutputParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFinalCombinerInputParameterfvNV) {
+ void ** procp = (void **) &disp->GetFinalCombinerInputParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFinalCombinerInputParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFinalCombinerInputParameterivNV) {
+ void ** procp = (void **) &disp->GetFinalCombinerInputParameterivNV;
snprintf(symboln, sizeof(symboln), "%sGetFinalCombinerInputParameterivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFinalCombinerInputParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ResizeBuffersMESA) {
+ void ** procp = (void **) &disp->ResizeBuffersMESA;
snprintf(symboln, sizeof(symboln), "%sResizeBuffersMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ResizeBuffersMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
+ void ** procp = (void **) &disp->WindowPos2dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
+ void ** procp = (void **) &disp->WindowPos2dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dMESA) {
+ void ** procp = (void **) &disp->WindowPos2dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2dMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
+ void ** procp = (void **) &disp->WindowPos2dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
+ void ** procp = (void **) &disp->WindowPos2dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2dvMESA) {
+ void ** procp = (void **) &disp->WindowPos2dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2dvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
+ void ** procp = (void **) &disp->WindowPos2fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
+ void ** procp = (void **) &disp->WindowPos2fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fMESA) {
+ void ** procp = (void **) &disp->WindowPos2fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2fMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
+ void ** procp = (void **) &disp->WindowPos2fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
+ void ** procp = (void **) &disp->WindowPos2fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2fvMESA) {
+ void ** procp = (void **) &disp->WindowPos2fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2fvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
+ void ** procp = (void **) &disp->WindowPos2iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
+ void ** procp = (void **) &disp->WindowPos2iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2iMESA) {
+ void ** procp = (void **) &disp->WindowPos2iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2iMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
+ void ** procp = (void **) &disp->WindowPos2ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
+ void ** procp = (void **) &disp->WindowPos2ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2ivMESA) {
+ void ** procp = (void **) &disp->WindowPos2ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2ivMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
+ void ** procp = (void **) &disp->WindowPos2sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
+ void ** procp = (void **) &disp->WindowPos2sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2sMESA) {
+ void ** procp = (void **) &disp->WindowPos2sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2sMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
+ void ** procp = (void **) &disp->WindowPos2svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
+ void ** procp = (void **) &disp->WindowPos2svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos2svMESA) {
+ void ** procp = (void **) &disp->WindowPos2svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos2svMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos2svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
+ void ** procp = (void **) &disp->WindowPos3dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3d", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
+ void ** procp = (void **) &disp->WindowPos3dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3dARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dMESA) {
+ void ** procp = (void **) &disp->WindowPos3dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3dMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
+ void ** procp = (void **) &disp->WindowPos3dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3dv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
+ void ** procp = (void **) &disp->WindowPos3dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3dvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3dvMESA) {
+ void ** procp = (void **) &disp->WindowPos3dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3dvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
+ void ** procp = (void **) &disp->WindowPos3fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3f", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
+ void ** procp = (void **) &disp->WindowPos3fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3fARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fMESA) {
+ void ** procp = (void **) &disp->WindowPos3fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3fMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
+ void ** procp = (void **) &disp->WindowPos3fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3fv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
+ void ** procp = (void **) &disp->WindowPos3fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3fvARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3fvMESA) {
+ void ** procp = (void **) &disp->WindowPos3fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3fvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
+ void ** procp = (void **) &disp->WindowPos3iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
+ void ** procp = (void **) &disp->WindowPos3iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3iARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3iMESA) {
+ void ** procp = (void **) &disp->WindowPos3iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3iMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
+ void ** procp = (void **) &disp->WindowPos3ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
+ void ** procp = (void **) &disp->WindowPos3ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3ivARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3ivMESA) {
+ void ** procp = (void **) &disp->WindowPos3ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3ivMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
+ void ** procp = (void **) &disp->WindowPos3sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3s", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
+ void ** procp = (void **) &disp->WindowPos3sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3sARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3sMESA) {
+ void ** procp = (void **) &disp->WindowPos3sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3sMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
+ void ** procp = (void **) &disp->WindowPos3svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
+ void ** procp = (void **) &disp->WindowPos3svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3svARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos3svMESA) {
+ void ** procp = (void **) &disp->WindowPos3svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos3svMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos3svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4dMESA) {
+ void ** procp = (void **) &disp->WindowPos4dMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4dMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4dMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4dvMESA) {
+ void ** procp = (void **) &disp->WindowPos4dvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4dvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4dvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4fMESA) {
+ void ** procp = (void **) &disp->WindowPos4fMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4fMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4fMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4fvMESA) {
+ void ** procp = (void **) &disp->WindowPos4fvMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4fvMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4fvMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4iMESA) {
+ void ** procp = (void **) &disp->WindowPos4iMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4iMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4iMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4ivMESA) {
+ void ** procp = (void **) &disp->WindowPos4ivMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4ivMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4ivMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4sMESA) {
+ void ** procp = (void **) &disp->WindowPos4sMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4sMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4sMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->WindowPos4svMESA) {
+ void ** procp = (void **) &disp->WindowPos4svMESA;
snprintf(symboln, sizeof(symboln), "%sWindowPos4svMESA", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->WindowPos4svMESA;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiModeDrawArraysIBM) {
+ void ** procp = (void **) &disp->MultiModeDrawArraysIBM;
snprintf(symboln, sizeof(symboln), "%sMultiModeDrawArraysIBM", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiModeDrawArraysIBM;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->MultiModeDrawElementsIBM) {
+ void ** procp = (void **) &disp->MultiModeDrawElementsIBM;
snprintf(symboln, sizeof(symboln), "%sMultiModeDrawElementsIBM", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->MultiModeDrawElementsIBM;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteFencesNV) {
+ void ** procp = (void **) &disp->DeleteFencesNV;
snprintf(symboln, sizeof(symboln), "%sDeleteFencesNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFencesNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FinishFenceNV) {
+ void ** procp = (void **) &disp->FinishFenceNV;
snprintf(symboln, sizeof(symboln), "%sFinishFenceNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FinishFenceNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenFencesNV) {
+ void ** procp = (void **) &disp->GenFencesNV;
snprintf(symboln, sizeof(symboln), "%sGenFencesNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenFencesNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFenceivNV) {
+ void ** procp = (void **) &disp->GetFenceivNV;
snprintf(symboln, sizeof(symboln), "%sGetFenceivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFenceivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsFenceNV) {
+ void ** procp = (void **) &disp->IsFenceNV;
snprintf(symboln, sizeof(symboln), "%sIsFenceNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsFenceNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SetFenceNV) {
+ void ** procp = (void **) &disp->SetFenceNV;
snprintf(symboln, sizeof(symboln), "%sSetFenceNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SetFenceNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TestFenceNV) {
+ void ** procp = (void **) &disp->TestFenceNV;
snprintf(symboln, sizeof(symboln), "%sTestFenceNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TestFenceNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AreProgramsResidentNV) {
+ void ** procp = (void **) &disp->AreProgramsResidentNV;
snprintf(symboln, sizeof(symboln), "%sAreProgramsResidentNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AreProgramsResidentNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindProgramNV) {
+ void ** procp = (void **) &disp->BindProgramNV;
snprintf(symboln, sizeof(symboln), "%sBindProgramARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindProgramNV) {
+ void ** procp = (void **) &disp->BindProgramNV;
snprintf(symboln, sizeof(symboln), "%sBindProgramNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteProgramsNV) {
+ void ** procp = (void **) &disp->DeleteProgramsNV;
snprintf(symboln, sizeof(symboln), "%sDeleteProgramsARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgramsNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteProgramsNV) {
+ void ** procp = (void **) &disp->DeleteProgramsNV;
snprintf(symboln, sizeof(symboln), "%sDeleteProgramsNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteProgramsNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ExecuteProgramNV) {
+ void ** procp = (void **) &disp->ExecuteProgramNV;
snprintf(symboln, sizeof(symboln), "%sExecuteProgramNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ExecuteProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenProgramsNV) {
+ void ** procp = (void **) &disp->GenProgramsNV;
snprintf(symboln, sizeof(symboln), "%sGenProgramsARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenProgramsNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenProgramsNV) {
+ void ** procp = (void **) &disp->GenProgramsNV;
snprintf(symboln, sizeof(symboln), "%sGenProgramsNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenProgramsNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramParameterdvNV) {
+ void ** procp = (void **) &disp->GetProgramParameterdvNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramParameterdvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramParameterdvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramParameterfvNV) {
+ void ** procp = (void **) &disp->GetProgramParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramStringNV) {
+ void ** procp = (void **) &disp->GetProgramStringNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramStringNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramStringNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramivNV) {
+ void ** procp = (void **) &disp->GetProgramivNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTrackMatrixivNV) {
+ void ** procp = (void **) &disp->GetTrackMatrixivNV;
snprintf(symboln, sizeof(symboln), "%sGetTrackMatrixivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTrackMatrixivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
+ void ** procp = (void **) &disp->GetVertexAttribPointervNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointerv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
+ void ** procp = (void **) &disp->GetVertexAttribPointervNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribPointervNV) {
+ void ** procp = (void **) &disp->GetVertexAttribPointervNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribPointervNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribPointervNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribdvNV) {
+ void ** procp = (void **) &disp->GetVertexAttribdvNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribdvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribdvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribfvNV) {
+ void ** procp = (void **) &disp->GetVertexAttribfvNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribivNV) {
+ void ** procp = (void **) &disp->GetVertexAttribivNV;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsProgramNV) {
+ void ** procp = (void **) &disp->IsProgramNV;
snprintf(symboln, sizeof(symboln), "%sIsProgramARB", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsProgramNV) {
+ void ** procp = (void **) &disp->IsProgramNV;
snprintf(symboln, sizeof(symboln), "%sIsProgramNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->LoadProgramNV) {
+ void ** procp = (void **) &disp->LoadProgramNV;
snprintf(symboln, sizeof(symboln), "%sLoadProgramNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->LoadProgramNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramParameters4dvNV) {
+ void ** procp = (void **) &disp->ProgramParameters4dvNV;
snprintf(symboln, sizeof(symboln), "%sProgramParameters4dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameters4dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramParameters4fvNV) {
+ void ** procp = (void **) &disp->ProgramParameters4fvNV;
snprintf(symboln, sizeof(symboln), "%sProgramParameters4fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramParameters4fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RequestResidentProgramsNV) {
+ void ** procp = (void **) &disp->RequestResidentProgramsNV;
snprintf(symboln, sizeof(symboln), "%sRequestResidentProgramsNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RequestResidentProgramsNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TrackMatrixNV) {
+ void ** procp = (void **) &disp->TrackMatrixNV;
snprintf(symboln, sizeof(symboln), "%sTrackMatrixNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TrackMatrixNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dNV) {
+ void ** procp = (void **) &disp->VertexAttrib1dNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1dvNV) {
+ void ** procp = (void **) &disp->VertexAttrib1dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fNV) {
+ void ** procp = (void **) &disp->VertexAttrib1fNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1fvNV) {
+ void ** procp = (void **) &disp->VertexAttrib1fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1sNV) {
+ void ** procp = (void **) &disp->VertexAttrib1sNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1sNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1sNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib1svNV) {
+ void ** procp = (void **) &disp->VertexAttrib1svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib1svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib1svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dNV) {
+ void ** procp = (void **) &disp->VertexAttrib2dNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2dvNV) {
+ void ** procp = (void **) &disp->VertexAttrib2dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fNV) {
+ void ** procp = (void **) &disp->VertexAttrib2fNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2fvNV) {
+ void ** procp = (void **) &disp->VertexAttrib2fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2sNV) {
+ void ** procp = (void **) &disp->VertexAttrib2sNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2sNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2sNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib2svNV) {
+ void ** procp = (void **) &disp->VertexAttrib2svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib2svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib2svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dNV) {
+ void ** procp = (void **) &disp->VertexAttrib3dNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3dvNV) {
+ void ** procp = (void **) &disp->VertexAttrib3dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fNV) {
+ void ** procp = (void **) &disp->VertexAttrib3fNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3fvNV) {
+ void ** procp = (void **) &disp->VertexAttrib3fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3sNV) {
+ void ** procp = (void **) &disp->VertexAttrib3sNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3sNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3sNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib3svNV) {
+ void ** procp = (void **) &disp->VertexAttrib3svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib3svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib3svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dNV) {
+ void ** procp = (void **) &disp->VertexAttrib4dNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4dvNV) {
+ void ** procp = (void **) &disp->VertexAttrib4dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fNV) {
+ void ** procp = (void **) &disp->VertexAttrib4fNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4fvNV) {
+ void ** procp = (void **) &disp->VertexAttrib4fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4sNV) {
+ void ** procp = (void **) &disp->VertexAttrib4sNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4sNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4sNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4svNV) {
+ void ** procp = (void **) &disp->VertexAttrib4svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubNV) {
+ void ** procp = (void **) &disp->VertexAttrib4ubNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttrib4ubvNV) {
+ void ** procp = (void **) &disp->VertexAttrib4ubvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttrib4ubvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttrib4ubvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribPointerNV) {
+ void ** procp = (void **) &disp->VertexAttribPointerNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribPointerNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribPointerNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs1dvNV) {
+ void ** procp = (void **) &disp->VertexAttribs1dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs1dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs1fvNV) {
+ void ** procp = (void **) &disp->VertexAttribs1fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs1fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs1svNV) {
+ void ** procp = (void **) &disp->VertexAttribs1svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs1svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs1svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs2dvNV) {
+ void ** procp = (void **) &disp->VertexAttribs2dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs2dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs2fvNV) {
+ void ** procp = (void **) &disp->VertexAttribs2fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs2fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs2svNV) {
+ void ** procp = (void **) &disp->VertexAttribs2svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs2svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs2svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs3dvNV) {
+ void ** procp = (void **) &disp->VertexAttribs3dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs3dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs3fvNV) {
+ void ** procp = (void **) &disp->VertexAttribs3fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs3fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs3svNV) {
+ void ** procp = (void **) &disp->VertexAttribs3svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs3svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs3svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs4dvNV) {
+ void ** procp = (void **) &disp->VertexAttribs4dvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs4dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs4fvNV) {
+ void ** procp = (void **) &disp->VertexAttribs4fvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs4fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs4svNV) {
+ void ** procp = (void **) &disp->VertexAttribs4svNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs4svNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4svNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribs4ubvNV) {
+ void ** procp = (void **) &disp->VertexAttribs4ubvNV;
snprintf(symboln, sizeof(symboln), "%sVertexAttribs4ubvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribs4ubvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexBumpParameterfvATI) {
+ void ** procp = (void **) &disp->GetTexBumpParameterfvATI;
snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterfvATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexBumpParameterfvATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexBumpParameterivATI) {
+ void ** procp = (void **) &disp->GetTexBumpParameterivATI;
snprintf(symboln, sizeof(symboln), "%sGetTexBumpParameterivATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexBumpParameterivATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexBumpParameterfvATI) {
+ void ** procp = (void **) &disp->TexBumpParameterfvATI;
snprintf(symboln, sizeof(symboln), "%sTexBumpParameterfvATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexBumpParameterfvATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexBumpParameterivATI) {
+ void ** procp = (void **) &disp->TexBumpParameterivATI;
snprintf(symboln, sizeof(symboln), "%sTexBumpParameterivATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexBumpParameterivATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp1ATI) {
+ void ** procp = (void **) &disp->AlphaFragmentOp1ATI;
snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp1ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp1ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp2ATI) {
+ void ** procp = (void **) &disp->AlphaFragmentOp2ATI;
snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp2ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp2ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->AlphaFragmentOp3ATI) {
+ void ** procp = (void **) &disp->AlphaFragmentOp3ATI;
snprintf(symboln, sizeof(symboln), "%sAlphaFragmentOp3ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->AlphaFragmentOp3ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginFragmentShaderATI) {
+ void ** procp = (void **) &disp->BeginFragmentShaderATI;
snprintf(symboln, sizeof(symboln), "%sBeginFragmentShaderATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginFragmentShaderATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindFragmentShaderATI) {
+ void ** procp = (void **) &disp->BindFragmentShaderATI;
snprintf(symboln, sizeof(symboln), "%sBindFragmentShaderATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindFragmentShaderATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp1ATI) {
+ void ** procp = (void **) &disp->ColorFragmentOp1ATI;
snprintf(symboln, sizeof(symboln), "%sColorFragmentOp1ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp1ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp2ATI) {
+ void ** procp = (void **) &disp->ColorFragmentOp2ATI;
snprintf(symboln, sizeof(symboln), "%sColorFragmentOp2ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp2ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorFragmentOp3ATI) {
+ void ** procp = (void **) &disp->ColorFragmentOp3ATI;
snprintf(symboln, sizeof(symboln), "%sColorFragmentOp3ATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorFragmentOp3ATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteFragmentShaderATI) {
+ void ** procp = (void **) &disp->DeleteFragmentShaderATI;
snprintf(symboln, sizeof(symboln), "%sDeleteFragmentShaderATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFragmentShaderATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndFragmentShaderATI) {
+ void ** procp = (void **) &disp->EndFragmentShaderATI;
snprintf(symboln, sizeof(symboln), "%sEndFragmentShaderATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndFragmentShaderATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenFragmentShadersATI) {
+ void ** procp = (void **) &disp->GenFragmentShadersATI;
snprintf(symboln, sizeof(symboln), "%sGenFragmentShadersATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenFragmentShadersATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PassTexCoordATI) {
+ void ** procp = (void **) &disp->PassTexCoordATI;
snprintf(symboln, sizeof(symboln), "%sPassTexCoordATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PassTexCoordATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SampleMapATI) {
+ void ** procp = (void **) &disp->SampleMapATI;
snprintf(symboln, sizeof(symboln), "%sSampleMapATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SampleMapATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->SetFragmentShaderConstantATI) {
+ void ** procp = (void **) &disp->SetFragmentShaderConstantATI;
snprintf(symboln, sizeof(symboln), "%sSetFragmentShaderConstantATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->SetFragmentShaderConstantATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameteriNV) {
+ void ** procp = (void **) &disp->PointParameteriNV;
snprintf(symboln, sizeof(symboln), "%sPointParameteri", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameteriNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameteriNV) {
+ void ** procp = (void **) &disp->PointParameteriNV;
snprintf(symboln, sizeof(symboln), "%sPointParameteriNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameteriNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterivNV) {
+ void ** procp = (void **) &disp->PointParameterivNV;
snprintf(symboln, sizeof(symboln), "%sPointParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PointParameterivNV) {
+ void ** procp = (void **) &disp->PointParameterivNV;
snprintf(symboln, sizeof(symboln), "%sPointParameterivNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PointParameterivNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ActiveStencilFaceEXT) {
+ void ** procp = (void **) &disp->ActiveStencilFaceEXT;
snprintf(symboln, sizeof(symboln), "%sActiveStencilFaceEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ActiveStencilFaceEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindVertexArrayAPPLE) {
+ void ** procp = (void **) &disp->BindVertexArrayAPPLE;
snprintf(symboln, sizeof(symboln), "%sBindVertexArrayAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindVertexArrayAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteVertexArraysAPPLE) {
+ void ** procp = (void **) &disp->DeleteVertexArraysAPPLE;
snprintf(symboln, sizeof(symboln), "%sDeleteVertexArrays", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteVertexArraysAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteVertexArraysAPPLE) {
+ void ** procp = (void **) &disp->DeleteVertexArraysAPPLE;
snprintf(symboln, sizeof(symboln), "%sDeleteVertexArraysAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteVertexArraysAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenVertexArraysAPPLE) {
+ void ** procp = (void **) &disp->GenVertexArraysAPPLE;
snprintf(symboln, sizeof(symboln), "%sGenVertexArraysAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenVertexArraysAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsVertexArrayAPPLE) {
+ void ** procp = (void **) &disp->IsVertexArrayAPPLE;
snprintf(symboln, sizeof(symboln), "%sIsVertexArray", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsVertexArrayAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsVertexArrayAPPLE) {
+ void ** procp = (void **) &disp->IsVertexArrayAPPLE;
snprintf(symboln, sizeof(symboln), "%sIsVertexArrayAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsVertexArrayAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramNamedParameterdvNV) {
+ void ** procp = (void **) &disp->GetProgramNamedParameterdvNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterdvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramNamedParameterdvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetProgramNamedParameterfvNV) {
+ void ** procp = (void **) &disp->GetProgramNamedParameterfvNV;
snprintf(symboln, sizeof(symboln), "%sGetProgramNamedParameterfvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetProgramNamedParameterfvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4dNV) {
+ void ** procp = (void **) &disp->ProgramNamedParameter4dNV;
snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4dNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4dvNV) {
+ void ** procp = (void **) &disp->ProgramNamedParameter4dvNV;
snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4dvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4dvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4fNV) {
+ void ** procp = (void **) &disp->ProgramNamedParameter4fNV;
snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4fNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramNamedParameter4fvNV) {
+ void ** procp = (void **) &disp->ProgramNamedParameter4fvNV;
snprintf(symboln, sizeof(symboln), "%sProgramNamedParameter4fvNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramNamedParameter4fvNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartIndexNV) {
+ void ** procp = (void **) &disp->PrimitiveRestartIndexNV;
snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndexNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartIndexNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartIndexNV) {
+ void ** procp = (void **) &disp->PrimitiveRestartIndexNV;
snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartIndex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartIndexNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->PrimitiveRestartNV) {
+ void ** procp = (void **) &disp->PrimitiveRestartNV;
snprintf(symboln, sizeof(symboln), "%sPrimitiveRestartNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->PrimitiveRestartNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DepthBoundsEXT) {
+ void ** procp = (void **) &disp->DepthBoundsEXT;
snprintf(symboln, sizeof(symboln), "%sDepthBoundsEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DepthBoundsEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
+ void ** procp = (void **) &disp->BlendEquationSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparate", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
+ void ** procp = (void **) &disp->BlendEquationSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlendEquationSeparateEXT) {
+ void ** procp = (void **) &disp->BlendEquationSeparateEXT;
snprintf(symboln, sizeof(symboln), "%sBlendEquationSeparateATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlendEquationSeparateEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindFramebufferEXT) {
+ void ** procp = (void **) &disp->BindFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sBindFramebuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindFramebufferEXT) {
+ void ** procp = (void **) &disp->BindFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sBindFramebufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindRenderbufferEXT) {
+ void ** procp = (void **) &disp->BindRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sBindRenderbuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindRenderbufferEXT) {
+ void ** procp = (void **) &disp->BindRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sBindRenderbufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CheckFramebufferStatusEXT) {
+ void ** procp = (void **) &disp->CheckFramebufferStatusEXT;
snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatus", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CheckFramebufferStatusEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CheckFramebufferStatusEXT) {
+ void ** procp = (void **) &disp->CheckFramebufferStatusEXT;
snprintf(symboln, sizeof(symboln), "%sCheckFramebufferStatusEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CheckFramebufferStatusEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteFramebuffersEXT) {
+ void ** procp = (void **) &disp->DeleteFramebuffersEXT;
snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFramebuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteFramebuffersEXT) {
+ void ** procp = (void **) &disp->DeleteFramebuffersEXT;
snprintf(symboln, sizeof(symboln), "%sDeleteFramebuffersEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteFramebuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteRenderbuffersEXT) {
+ void ** procp = (void **) &disp->DeleteRenderbuffersEXT;
snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteRenderbuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DeleteRenderbuffersEXT) {
+ void ** procp = (void **) &disp->DeleteRenderbuffersEXT;
snprintf(symboln, sizeof(symboln), "%sDeleteRenderbuffersEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DeleteRenderbuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferRenderbufferEXT) {
+ void ** procp = (void **) &disp->FramebufferRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferRenderbufferEXT) {
+ void ** procp = (void **) &disp->FramebufferRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferRenderbufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture1DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture1DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture1DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture1DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture1DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture1DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture1DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture2DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture2DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture2DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture2DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture2DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture2DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture2DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture3DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture3DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3D", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture3DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTexture3DEXT) {
+ void ** procp = (void **) &disp->FramebufferTexture3DEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTexture3DEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTexture3DEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenFramebuffersEXT) {
+ void ** procp = (void **) &disp->GenFramebuffersEXT;
snprintf(symboln, sizeof(symboln), "%sGenFramebuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenFramebuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenFramebuffersEXT) {
+ void ** procp = (void **) &disp->GenFramebuffersEXT;
snprintf(symboln, sizeof(symboln), "%sGenFramebuffersEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenFramebuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenRenderbuffersEXT) {
+ void ** procp = (void **) &disp->GenRenderbuffersEXT;
snprintf(symboln, sizeof(symboln), "%sGenRenderbuffers", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenRenderbuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenRenderbuffersEXT) {
+ void ** procp = (void **) &disp->GenRenderbuffersEXT;
snprintf(symboln, sizeof(symboln), "%sGenRenderbuffersEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenRenderbuffersEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenerateMipmapEXT) {
+ void ** procp = (void **) &disp->GenerateMipmapEXT;
snprintf(symboln, sizeof(symboln), "%sGenerateMipmap", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenerateMipmapEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GenerateMipmapEXT) {
+ void ** procp = (void **) &disp->GenerateMipmapEXT;
snprintf(symboln, sizeof(symboln), "%sGenerateMipmapEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GenerateMipmapEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFramebufferAttachmentParameterivEXT) {
+ void ** procp = (void **) &disp->GetFramebufferAttachmentParameterivEXT;
snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFramebufferAttachmentParameterivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFramebufferAttachmentParameterivEXT) {
+ void ** procp = (void **) &disp->GetFramebufferAttachmentParameterivEXT;
snprintf(symboln, sizeof(symboln), "%sGetFramebufferAttachmentParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFramebufferAttachmentParameterivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetRenderbufferParameterivEXT) {
+ void ** procp = (void **) &disp->GetRenderbufferParameterivEXT;
snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameteriv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetRenderbufferParameterivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetRenderbufferParameterivEXT) {
+ void ** procp = (void **) &disp->GetRenderbufferParameterivEXT;
snprintf(symboln, sizeof(symboln), "%sGetRenderbufferParameterivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetRenderbufferParameterivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsFramebufferEXT) {
+ void ** procp = (void **) &disp->IsFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sIsFramebuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsFramebufferEXT) {
+ void ** procp = (void **) &disp->IsFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sIsFramebufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsRenderbufferEXT) {
+ void ** procp = (void **) &disp->IsRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sIsRenderbuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsRenderbufferEXT) {
+ void ** procp = (void **) &disp->IsRenderbufferEXT;
snprintf(symboln, sizeof(symboln), "%sIsRenderbufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsRenderbufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageEXT) {
+ void ** procp = (void **) &disp->RenderbufferStorageEXT;
snprintf(symboln, sizeof(symboln), "%sRenderbufferStorage", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->RenderbufferStorageEXT) {
+ void ** procp = (void **) &disp->RenderbufferStorageEXT;
snprintf(symboln, sizeof(symboln), "%sRenderbufferStorageEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->RenderbufferStorageEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlitFramebufferEXT) {
+ void ** procp = (void **) &disp->BlitFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sBlitFramebuffer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlitFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BlitFramebufferEXT) {
+ void ** procp = (void **) &disp->BlitFramebufferEXT;
snprintf(symboln, sizeof(symboln), "%sBlitFramebufferEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BlitFramebufferEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BufferParameteriAPPLE) {
+ void ** procp = (void **) &disp->BufferParameteriAPPLE;
snprintf(symboln, sizeof(symboln), "%sBufferParameteriAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BufferParameteriAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FlushMappedBufferRangeAPPLE) {
+ void ** procp = (void **) &disp->FlushMappedBufferRangeAPPLE;
snprintf(symboln, sizeof(symboln), "%sFlushMappedBufferRangeAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FlushMappedBufferRangeAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindFragDataLocationEXT) {
+ void ** procp = (void **) &disp->BindFragDataLocationEXT;
snprintf(symboln, sizeof(symboln), "%sBindFragDataLocationEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindFragDataLocationEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindFragDataLocationEXT) {
+ void ** procp = (void **) &disp->BindFragDataLocationEXT;
snprintf(symboln, sizeof(symboln), "%sBindFragDataLocation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindFragDataLocationEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFragDataLocationEXT) {
+ void ** procp = (void **) &disp->GetFragDataLocationEXT;
snprintf(symboln, sizeof(symboln), "%sGetFragDataLocationEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFragDataLocationEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetFragDataLocationEXT) {
+ void ** procp = (void **) &disp->GetFragDataLocationEXT;
snprintf(symboln, sizeof(symboln), "%sGetFragDataLocation", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetFragDataLocationEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformuivEXT) {
+ void ** procp = (void **) &disp->GetUniformuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetUniformuivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetUniformuivEXT) {
+ void ** procp = (void **) &disp->GetUniformuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetUniformuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetUniformuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIivEXT) {
+ void ** procp = (void **) &disp->GetVertexAttribIivEXT;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIivEXT) {
+ void ** procp = (void **) &disp->GetVertexAttribIivEXT;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIuivEXT) {
+ void ** procp = (void **) &disp->GetVertexAttribIuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetVertexAttribIuivEXT) {
+ void ** procp = (void **) &disp->GetVertexAttribIuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetVertexAttribIuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetVertexAttribIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1uiEXT) {
+ void ** procp = (void **) &disp->Uniform1uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform1uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1uiEXT) {
+ void ** procp = (void **) &disp->Uniform1uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform1ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1uivEXT) {
+ void ** procp = (void **) &disp->Uniform1uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform1uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform1uivEXT) {
+ void ** procp = (void **) &disp->Uniform1uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform1uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform1uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2uiEXT) {
+ void ** procp = (void **) &disp->Uniform2uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform2uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2uiEXT) {
+ void ** procp = (void **) &disp->Uniform2uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform2ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2uivEXT) {
+ void ** procp = (void **) &disp->Uniform2uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform2uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform2uivEXT) {
+ void ** procp = (void **) &disp->Uniform2uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform2uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform2uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3uiEXT) {
+ void ** procp = (void **) &disp->Uniform3uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform3uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3uiEXT) {
+ void ** procp = (void **) &disp->Uniform3uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform3ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3uivEXT) {
+ void ** procp = (void **) &disp->Uniform3uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform3uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform3uivEXT) {
+ void ** procp = (void **) &disp->Uniform3uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform3uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4uiEXT) {
+ void ** procp = (void **) &disp->Uniform4uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform4uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4uiEXT) {
+ void ** procp = (void **) &disp->Uniform4uiEXT;
snprintf(symboln, sizeof(symboln), "%sUniform4ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4uivEXT) {
+ void ** procp = (void **) &disp->Uniform4uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform4uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->Uniform4uivEXT) {
+ void ** procp = (void **) &disp->Uniform4uivEXT;
snprintf(symboln, sizeof(symboln), "%sUniform4uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->Uniform4uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI1uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI1uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI1uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI1uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI2uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI2uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI2uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI2uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI3uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI3uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI3uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI3uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4bvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4bvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4bvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4bvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4bvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4bv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4bvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4iEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4iEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4i", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4iEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4ivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4iv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4svEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4svEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4svEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4svEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4svEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4svEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4sv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4svEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ubvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4ubvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ubvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4ubvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4ubvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ubv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4ubvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uiEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4uiEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4ui", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4uivEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4uivEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4uiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4uivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4usvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4usvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4usvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribI4usvEXT) {
+ void ** procp = (void **) &disp->VertexAttribI4usvEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribI4usv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribI4usvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribIPointerEXT) {
+ void ** procp = (void **) &disp->VertexAttribIPointerEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribIPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->VertexAttribIPointerEXT) {
+ void ** procp = (void **) &disp->VertexAttribIPointerEXT;
snprintf(symboln, sizeof(symboln), "%sVertexAttribIPointer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->VertexAttribIPointerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTextureLayerEXT) {
+ void ** procp = (void **) &disp->FramebufferTextureLayerEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayer", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureLayerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->FramebufferTextureLayerEXT) {
+ void ** procp = (void **) &disp->FramebufferTextureLayerEXT;
snprintf(symboln, sizeof(symboln), "%sFramebufferTextureLayerEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->FramebufferTextureLayerEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorMaskIndexedEXT) {
+ void ** procp = (void **) &disp->ColorMaskIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sColorMaskIndexedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaskIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ColorMaskIndexedEXT) {
+ void ** procp = (void **) &disp->ColorMaskIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sColorMaski", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ColorMaskIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DisableIndexedEXT) {
+ void ** procp = (void **) &disp->DisableIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sDisableIndexedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DisableIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->DisableIndexedEXT) {
+ void ** procp = (void **) &disp->DisableIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sDisablei", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->DisableIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EnableIndexedEXT) {
+ void ** procp = (void **) &disp->EnableIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sEnableIndexedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EnableIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EnableIndexedEXT) {
+ void ** procp = (void **) &disp->EnableIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sEnablei", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EnableIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBooleanIndexedvEXT) {
+ void ** procp = (void **) &disp->GetBooleanIndexedvEXT;
snprintf(symboln, sizeof(symboln), "%sGetBooleanIndexedvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanIndexedvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetBooleanIndexedvEXT) {
+ void ** procp = (void **) &disp->GetBooleanIndexedvEXT;
snprintf(symboln, sizeof(symboln), "%sGetBooleani_v", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetBooleanIndexedvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetIntegerIndexedvEXT) {
+ void ** procp = (void **) &disp->GetIntegerIndexedvEXT;
snprintf(symboln, sizeof(symboln), "%sGetIntegerIndexedvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerIndexedvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetIntegerIndexedvEXT) {
+ void ** procp = (void **) &disp->GetIntegerIndexedvEXT;
snprintf(symboln, sizeof(symboln), "%sGetIntegeri_v", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetIntegerIndexedvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsEnabledIndexedEXT) {
+ void ** procp = (void **) &disp->IsEnabledIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sIsEnabledIndexedEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabledIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->IsEnabledIndexedEXT) {
+ void ** procp = (void **) &disp->IsEnabledIndexedEXT;
snprintf(symboln, sizeof(symboln), "%sIsEnabledi", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->IsEnabledIndexedEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearColorIiEXT) {
+ void ** procp = (void **) &disp->ClearColorIiEXT;
snprintf(symboln, sizeof(symboln), "%sClearColorIiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearColorIiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ClearColorIuiEXT) {
+ void ** procp = (void **) &disp->ClearColorIuiEXT;
snprintf(symboln, sizeof(symboln), "%sClearColorIuiEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ClearColorIuiEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterIivEXT) {
+ void ** procp = (void **) &disp->GetTexParameterIivEXT;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterIivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterIivEXT) {
+ void ** procp = (void **) &disp->GetTexParameterIivEXT;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterIiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterIuivEXT) {
+ void ** procp = (void **) &disp->GetTexParameterIuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterIuivEXT) {
+ void ** procp = (void **) &disp->GetTexParameterIuivEXT;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterIuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterIivEXT) {
+ void ** procp = (void **) &disp->TexParameterIivEXT;
snprintf(symboln, sizeof(symboln), "%sTexParameterIivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterIivEXT) {
+ void ** procp = (void **) &disp->TexParameterIivEXT;
snprintf(symboln, sizeof(symboln), "%sTexParameterIiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterIuivEXT) {
+ void ** procp = (void **) &disp->TexParameterIuivEXT;
snprintf(symboln, sizeof(symboln), "%sTexParameterIuivEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TexParameterIuivEXT) {
+ void ** procp = (void **) &disp->TexParameterIuivEXT;
snprintf(symboln, sizeof(symboln), "%sTexParameterIuiv", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TexParameterIuivEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginConditionalRenderNV) {
+ void ** procp = (void **) &disp->BeginConditionalRenderNV;
snprintf(symboln, sizeof(symboln), "%sBeginConditionalRenderNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginConditionalRenderNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginConditionalRenderNV) {
+ void ** procp = (void **) &disp->BeginConditionalRenderNV;
snprintf(symboln, sizeof(symboln), "%sBeginConditionalRender", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginConditionalRenderNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndConditionalRenderNV) {
+ void ** procp = (void **) &disp->EndConditionalRenderNV;
snprintf(symboln, sizeof(symboln), "%sEndConditionalRenderNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndConditionalRenderNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndConditionalRenderNV) {
+ void ** procp = (void **) &disp->EndConditionalRenderNV;
snprintf(symboln, sizeof(symboln), "%sEndConditionalRender", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndConditionalRenderNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginTransformFeedbackEXT) {
+ void ** procp = (void **) &disp->BeginTransformFeedbackEXT;
snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedbackEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginTransformFeedbackEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BeginTransformFeedbackEXT) {
+ void ** procp = (void **) &disp->BeginTransformFeedbackEXT;
snprintf(symboln, sizeof(symboln), "%sBeginTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BeginTransformFeedbackEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferBaseEXT) {
+ void ** procp = (void **) &disp->BindBufferBaseEXT;
snprintf(symboln, sizeof(symboln), "%sBindBufferBaseEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferBaseEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferBaseEXT) {
+ void ** procp = (void **) &disp->BindBufferBaseEXT;
snprintf(symboln, sizeof(symboln), "%sBindBufferBase", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferBaseEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferOffsetEXT) {
+ void ** procp = (void **) &disp->BindBufferOffsetEXT;
snprintf(symboln, sizeof(symboln), "%sBindBufferOffsetEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferOffsetEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferRangeEXT) {
+ void ** procp = (void **) &disp->BindBufferRangeEXT;
snprintf(symboln, sizeof(symboln), "%sBindBufferRangeEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferRangeEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->BindBufferRangeEXT) {
+ void ** procp = (void **) &disp->BindBufferRangeEXT;
snprintf(symboln, sizeof(symboln), "%sBindBufferRange", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->BindBufferRangeEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndTransformFeedbackEXT) {
+ void ** procp = (void **) &disp->EndTransformFeedbackEXT;
snprintf(symboln, sizeof(symboln), "%sEndTransformFeedbackEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndTransformFeedbackEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EndTransformFeedbackEXT) {
+ void ** procp = (void **) &disp->EndTransformFeedbackEXT;
snprintf(symboln, sizeof(symboln), "%sEndTransformFeedback", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EndTransformFeedbackEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTransformFeedbackVaryingEXT) {
+ void ** procp = (void **) &disp->GetTransformFeedbackVaryingEXT;
snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVaryingEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTransformFeedbackVaryingEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTransformFeedbackVaryingEXT) {
+ void ** procp = (void **) &disp->GetTransformFeedbackVaryingEXT;
snprintf(symboln, sizeof(symboln), "%sGetTransformFeedbackVarying", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTransformFeedbackVaryingEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TransformFeedbackVaryingsEXT) {
+ void ** procp = (void **) &disp->TransformFeedbackVaryingsEXT;
snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryingsEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TransformFeedbackVaryingsEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TransformFeedbackVaryingsEXT) {
+ void ** procp = (void **) &disp->TransformFeedbackVaryingsEXT;
snprintf(symboln, sizeof(symboln), "%sTransformFeedbackVaryings", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TransformFeedbackVaryingsEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProvokingVertexEXT) {
+ void ** procp = (void **) &disp->ProvokingVertexEXT;
snprintf(symboln, sizeof(symboln), "%sProvokingVertexEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProvokingVertexEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProvokingVertexEXT) {
+ void ** procp = (void **) &disp->ProvokingVertexEXT;
snprintf(symboln, sizeof(symboln), "%sProvokingVertex", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProvokingVertexEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetTexParameterPointervAPPLE) {
+ void ** procp = (void **) &disp->GetTexParameterPointervAPPLE;
snprintf(symboln, sizeof(symboln), "%sGetTexParameterPointervAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetTexParameterPointervAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TextureRangeAPPLE) {
+ void ** procp = (void **) &disp->TextureRangeAPPLE;
snprintf(symboln, sizeof(symboln), "%sTextureRangeAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TextureRangeAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetObjectParameterivAPPLE) {
+ void ** procp = (void **) &disp->GetObjectParameterivAPPLE;
snprintf(symboln, sizeof(symboln), "%sGetObjectParameterivAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetObjectParameterivAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ObjectPurgeableAPPLE) {
+ void ** procp = (void **) &disp->ObjectPurgeableAPPLE;
snprintf(symboln, sizeof(symboln), "%sObjectPurgeableAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ObjectPurgeableAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ObjectUnpurgeableAPPLE) {
+ void ** procp = (void **) &disp->ObjectUnpurgeableAPPLE;
snprintf(symboln, sizeof(symboln), "%sObjectUnpurgeableAPPLE", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ObjectUnpurgeableAPPLE;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ActiveProgramEXT) {
+ void ** procp = (void **) &disp->ActiveProgramEXT;
snprintf(symboln, sizeof(symboln), "%sActiveProgramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ActiveProgramEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->CreateShaderProgramEXT) {
+ void ** procp = (void **) &disp->CreateShaderProgramEXT;
snprintf(symboln, sizeof(symboln), "%sCreateShaderProgramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->CreateShaderProgramEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->UseShaderProgramEXT) {
+ void ** procp = (void **) &disp->UseShaderProgramEXT;
snprintf(symboln, sizeof(symboln), "%sUseShaderProgramEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->UseShaderProgramEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->TextureBarrierNV) {
+ void ** procp = (void **) &disp->TextureBarrierNV;
snprintf(symboln, sizeof(symboln), "%sTextureBarrierNV", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->TextureBarrierNV;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->StencilFuncSeparateATI) {
+ void ** procp = (void **) &disp->StencilFuncSeparateATI;
snprintf(symboln, sizeof(symboln), "%sStencilFuncSeparateATI", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->StencilFuncSeparateATI;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramEnvParameters4fvEXT) {
+ void ** procp = (void **) &disp->ProgramEnvParameters4fvEXT;
snprintf(symboln, sizeof(symboln), "%sProgramEnvParameters4fvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramEnvParameters4fvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->ProgramLocalParameters4fvEXT) {
+ void ** procp = (void **) &disp->ProgramLocalParameters4fvEXT;
snprintf(symboln, sizeof(symboln), "%sProgramLocalParameters4fvEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->ProgramLocalParameters4fvEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjecti64vEXT) {
+ void ** procp = (void **) &disp->GetQueryObjecti64vEXT;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjecti64vEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjecti64vEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->GetQueryObjectui64vEXT) {
+ void ** procp = (void **) &disp->GetQueryObjectui64vEXT;
snprintf(symboln, sizeof(symboln), "%sGetQueryObjectui64vEXT", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->GetQueryObjectui64vEXT;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EGLImageTargetRenderbufferStorageOES) {
+ void ** procp = (void **) &disp->EGLImageTargetRenderbufferStorageOES;
snprintf(symboln, sizeof(symboln), "%sEGLImageTargetRenderbufferStorageOES", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EGLImageTargetRenderbufferStorageOES;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
if(!disp->EGLImageTargetTexture2DOES) {
+ void ** procp = (void **) &disp->EGLImageTargetTexture2DOES;
snprintf(symboln, sizeof(symboln), "%sEGLImageTargetTexture2DOES", symbol_prefix);
- _glapi_proc *procp = (_glapi_proc *)&disp->EGLImageTargetTexture2DOES;
- *procp = (_glapi_proc) dlsym(handle, symboln);
+ *procp = dlsym(handle, symboln);
}
+ __glapi_gentable_set_remaining_noop(disp);
+
return disp;
}
From 7c7a8a38e530a63717a2f374ae0574d8abf11e17 Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Mon, 13 Jun 2011 17:43:32 -0700
Subject: [PATCH 089/406] glsl/generate_builtins.py: Remove regexp to kill
pointer addresses.
Commit 56ef62d9885f805bbfb2243dc860ff425d5b4d3b
"glsl: Generate readable unique names at print time."
changed ir_print_visitor to not generate @0x1234567 suffixes except
where necessary. So there's no need to manually remove them.
Signed-off-by: Kenneth Graunke
---
src/glsl/builtins/tools/generate_builtins.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/glsl/builtins/tools/generate_builtins.py b/src/glsl/builtins/tools/generate_builtins.py
index edd3c70e00b..17d528c2180 100755
--- a/src/glsl/builtins/tools/generate_builtins.py
+++ b/src/glsl/builtins/tools/generate_builtins.py
@@ -82,10 +82,6 @@ def write_profile(filename, profile):
kill_globals = re.compile(r'^\(declare.*\n', re.MULTILINE)
proto_ir = kill_globals.sub('', proto_ir)
- # Kill pointer addresses. They're not necessary in prototypes and just
- # clutter the diff output.
- proto_ir = re.sub(r'@0x[0-9a-f]+', '', proto_ir)
-
print 'static const char prototypes_for_' + profile + '[] ='
print stringify(proto_ir), ';'
From 677a4406d20e0a2b6d92c34e9ff6716f31ba1382 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Wed, 15 Jun 2011 02:24:03 +0200
Subject: [PATCH 090/406] r600g: force OpenGL's BASE_LEVEL behavior on
r600-r700
This sets the base level as the zero level, which fixes
piglit/texturing/tex-miplevel-selection*.
The r600 hardware ignores the BASE_LEVEL field in some cases, so we can't
use it.
Evergreen might need this too.
---
src/gallium/drivers/r600/r600_state.c | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 3b6e2dc99a5..197279920a2 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -416,7 +416,7 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
uint32_t word4 = 0, yuv_format = 0, pitch = 0;
unsigned char swizzle[4], array_mode = 0, tile_type = 0;
struct r600_bo *bo[2];
- unsigned height, depth;
+ unsigned width, height, depth, offset_level, last_level;
if (resource == NULL)
return NULL;
@@ -442,7 +442,7 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
}
desc = util_format_description(state->format);
if (desc == NULL) {
- R600_ERR("unknow format %d\n", state->format);
+ R600_ERR("unknown format %d\n", state->format);
}
tmp = (struct r600_resource_texture *)texture;
if (tmp->depth && !tmp->is_flushing_texture) {
@@ -458,12 +458,18 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
rbuffer = &tmp->resource;
bo[0] = rbuffer->bo;
bo[1] = rbuffer->bo;
- pitch = align(tmp->pitch_in_blocks[0] * util_format_get_blockwidth(state->format), 8);
+
+ offset_level = state->u.tex.first_level;
+ last_level = state->u.tex.last_level - offset_level;
+ width = u_minify(texture->width0, offset_level);
+ height = u_minify(texture->height0, offset_level);
+ depth = u_minify(texture->depth0, offset_level);
+
+ pitch = align(tmp->pitch_in_blocks[offset_level] *
+ util_format_get_blockwidth(state->format), 8);
array_mode = tmp->array_mode[0];
tile_type = tmp->tile_type;
- height = texture->height0;
- depth = texture->depth0;
if (texture->target == PIPE_TEXTURE_1D_ARRAY) {
height = 1;
depth = texture->array_size;
@@ -478,18 +484,18 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
S_038000_TILE_MODE(array_mode) |
S_038000_TILE_TYPE(tile_type) |
S_038000_PITCH((pitch / 8) - 1) |
- S_038000_TEX_WIDTH(texture->width0 - 1));
+ S_038000_TEX_WIDTH(width - 1));
rstate->val[1] = (S_038004_TEX_HEIGHT(height - 1) |
S_038004_TEX_DEPTH(depth - 1) |
S_038004_DATA_FORMAT(format));
- rstate->val[2] = (tmp->offset[0] + r600_bo_offset(bo[0])) >> 8;
- rstate->val[3] = (tmp->offset[1] + r600_bo_offset(bo[1])) >> 8;
+ rstate->val[2] = (tmp->offset[offset_level] + r600_bo_offset(bo[0])) >> 8;
+ rstate->val[3] = (tmp->offset[offset_level+1] + r600_bo_offset(bo[1])) >> 8;
rstate->val[4] = (word4 |
S_038010_SRF_MODE_ALL(V_038010_SRF_MODE_ZERO_CLAMP_MINUS_ONE) |
S_038010_REQUEST_SIZE(1) |
S_038010_ENDIAN_SWAP(endian) |
- S_038010_BASE_LEVEL(state->u.tex.first_level));
- rstate->val[5] = (S_038014_LAST_LEVEL(state->u.tex.last_level) |
+ S_038010_BASE_LEVEL(0));
+ rstate->val[5] = (S_038014_LAST_LEVEL(last_level) |
S_038014_BASE_ARRAY(state->u.tex.first_layer) |
S_038014_LAST_ARRAY(state->u.tex.last_layer));
rstate->val[6] = (S_038018_TYPE(V_038010_SQ_TEX_VTX_VALID_TEXTURE) |
From d9ca94836ee99c87841e24bfa23a6fab9464d04d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Wed, 15 Jun 2011 04:16:05 +0200
Subject: [PATCH 091/406] r600g: also set TILE_MODE of the base level
---
src/gallium/drivers/r600/r600_state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 197279920a2..d927e4a945e 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -467,7 +467,7 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
pitch = align(tmp->pitch_in_blocks[offset_level] *
util_format_get_blockwidth(state->format), 8);
- array_mode = tmp->array_mode[0];
+ array_mode = tmp->array_mode[offset_level];
tile_type = tmp->tile_type;
if (texture->target == PIPE_TEXTURE_1D_ARRAY) {
From 34a774797c17855043c8e1f701ada7f7aca39701 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Tue, 14 Jun 2011 20:47:47 -0600
Subject: [PATCH 092/406] i915g: add const qualifier to silence warning
---
src/gallium/drivers/i915/i915_state_derived.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/i915/i915_state_derived.c b/src/gallium/drivers/i915/i915_state_derived.c
index bf6b30a4530..392ba191140 100644
--- a/src/gallium/drivers/i915/i915_state_derived.c
+++ b/src/gallium/drivers/i915/i915_state_derived.c
@@ -35,7 +35,7 @@
#include "i915_debug.h"
#include "i915_reg.h"
-static uint find_mapping(struct i915_fragment_shader* fs, int unit)
+static uint find_mapping(const struct i915_fragment_shader* fs, int unit)
{
int i;
for (i = 0; i < I915_TEX_UNITS ; i++)
From 13c9a8552bc83b1ad91442caacf847cb6cead2b5 Mon Sep 17 00:00:00 2001
From: Dave Airlie
Date: Wed, 15 Jun 2011 15:15:41 +1000
Subject: [PATCH 093/406] r600g: add TXD support.
This at least passes the piglit arb_shader_texture_lod-texgrad test,
the AMD shader analyzer seems to multiply the V component by an unspecified
constant value no idea why.
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_asm.c | 3 ++
src/gallium/drivers/r600/r600_pipe.c | 2 +-
src/gallium/drivers/r600/r600_shader.c | 61 +++++++++++++++++++++++---
src/gallium/drivers/r600/r600d.h | 4 ++
4 files changed, 64 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index aeb1175958c..c447a031063 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -1383,6 +1383,9 @@ int r600_bc_add_tex(struct r600_bc *bc, const struct r600_bc_tex *tex)
break;
}
}
+ /* slight hack to make gradients always go into same cf */
+ if (ntex->inst == SQ_TEX_INST_SET_GRADIENTS_H)
+ bc->force_add_cf = 1;
}
/* cf can contains only alu or only vtx or only tex */
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 4cf11dc9ff2..16fe6c54a15 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -375,6 +375,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
+ case PIPE_CAP_SM3:
return 1;
/* Supported except the original R600. */
@@ -395,7 +396,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TGSI_INSTANCEID:
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
- case PIPE_CAP_SM3:
return 0;
case PIPE_CAP_ARRAY_TEXTURES:
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 1b9f66318e1..9a0df2305b9 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1761,10 +1761,60 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
inst->Src[0].Register.File != TGSI_FILE_INPUT) ||
ctx->src[0].neg || ctx->src[0].abs;
boolean src_loaded = FALSE;
+ unsigned sampler_src_reg = 1;
src_gpr = ctx->file_offset[inst->Src[0].Register.File] + inst->Src[0].Register.Index;
- if (inst->Instruction.Opcode == TGSI_OPCODE_TXP) {
+ if (inst->Instruction.Opcode == TGSI_OPCODE_TXD) {
+ /* TGSI moves the sampler to src reg 3 for TXD */
+ sampler_src_reg = 3;
+
+ /* set gradients h/v */
+ memset(&tex, 0, sizeof(struct r600_bc_tex));
+ tex.inst = SQ_TEX_INST_SET_GRADIENTS_H;
+ tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
+ tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
+ tex.src_gpr = ctx->file_offset[inst->Src[1].Register.File] + inst->Src[1].Register.Index;
+ tex.src_sel_x = ctx->src[1].swizzle[0];
+ tex.src_sel_y = ctx->src[1].swizzle[1];
+ tex.src_sel_z = ctx->src[1].swizzle[2];
+ tex.src_sel_w = ctx->src[1].swizzle[3];
+ tex.src_rel = ctx->src[1].rel;
+ tex.dst_gpr = ctx->temp_reg; /* just to avoid confusing the asm scheduler */
+ tex.dst_sel_x = tex.dst_sel_y = tex.dst_sel_z = tex.dst_sel_w = 7;
+ if (inst->Texture.Texture != TGSI_TEXTURE_RECT) {
+ tex.coord_type_x = 1;
+ tex.coord_type_y = 1;
+ tex.coord_type_z = 1;
+ tex.coord_type_w = 1;
+ }
+ r = r600_bc_add_tex(ctx->bc, &tex);
+ if (r)
+ return r;
+
+ /* set gradients h/v */
+ memset(&tex, 0, sizeof(struct r600_bc_tex));
+ tex.inst = SQ_TEX_INST_SET_GRADIENTS_V;
+ tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
+ tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
+ tex.src_gpr = ctx->file_offset[inst->Src[2].Register.File] + inst->Src[2].Register.Index;
+ tex.src_sel_x = ctx->src[2].swizzle[0];
+ tex.src_sel_y = ctx->src[2].swizzle[1];
+ tex.src_sel_z = ctx->src[2].swizzle[2];
+ tex.src_sel_w = ctx->src[2].swizzle[3];
+ tex.src_rel = ctx->src[2].rel;
+ tex.dst_gpr = ctx->temp_reg; /* just to avoid confusing the asm scheduler */
+ tex.dst_sel_x = tex.dst_sel_y = tex.dst_sel_z = tex.dst_sel_w = 7;
+ if (inst->Texture.Texture != TGSI_TEXTURE_RECT) {
+ tex.coord_type_x = 1;
+ tex.coord_type_y = 1;
+ tex.coord_type_z = 1;
+ tex.coord_type_w = 1;
+ }
+ r = r600_bc_add_tex(ctx->bc, &tex);
+ if (r)
+ return r;
+ } else if (inst->Instruction.Opcode == TGSI_OPCODE_TXP) {
int out_chan;
/* Add perspective divide */
if (ctx->bc->chiprev == CHIPREV_CAYMAN) {
@@ -1957,7 +2007,8 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
memset(&tex, 0, sizeof(struct r600_bc_tex));
tex.inst = opcode;
- tex.sampler_id = ctx->file_offset[inst->Src[1].Register.File] + inst->Src[1].Register.Index;
+
+ tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
tex.src_gpr = src_gpr;
tex.dst_gpr = ctx->file_offset[inst->Dst[0].Register.File] + inst->Dst[0].Register.Index;
@@ -3082,7 +3133,7 @@ static struct r600_shader_tgsi_instruction r600_shader_tgsi_instruction[] = {
{TGSI_OPCODE_SNE, 0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE, tgsi_op2},
{TGSI_OPCODE_STR, 0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_TEX, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
- {TGSI_OPCODE_TXD, 0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
+ {TGSI_OPCODE_TXD, 0, SQ_TEX_INST_SAMPLE_G, tgsi_tex},
{TGSI_OPCODE_TXP, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
{TGSI_OPCODE_UP2H, 0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_UP2US, 0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
@@ -3240,7 +3291,7 @@ static struct r600_shader_tgsi_instruction eg_shader_tgsi_instruction[] = {
{TGSI_OPCODE_SNE, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE, tgsi_op2},
{TGSI_OPCODE_STR, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_TEX, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
- {TGSI_OPCODE_TXD, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
+ {TGSI_OPCODE_TXD, 0, SQ_TEX_INST_SAMPLE_G, tgsi_tex},
{TGSI_OPCODE_TXP, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
{TGSI_OPCODE_UP2H, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_UP2US, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
@@ -3398,7 +3449,7 @@ static struct r600_shader_tgsi_instruction cm_shader_tgsi_instruction[] = {
{TGSI_OPCODE_SNE, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE, tgsi_op2},
{TGSI_OPCODE_STR, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_TEX, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
- {TGSI_OPCODE_TXD, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
+ {TGSI_OPCODE_TXD, 0, SQ_TEX_INST_SAMPLE_G, tgsi_tex},
{TGSI_OPCODE_TXP, 0, SQ_TEX_INST_SAMPLE, tgsi_tex},
{TGSI_OPCODE_UP2H, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
{TGSI_OPCODE_UP2US, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_unsupported},
diff --git a/src/gallium/drivers/r600/r600d.h b/src/gallium/drivers/r600/r600d.h
index 9281b08bd82..95672b13ba0 100644
--- a/src/gallium/drivers/r600/r600d.h
+++ b/src/gallium/drivers/r600/r600d.h
@@ -3468,6 +3468,10 @@
#define SQ_TEX_INST_SAMPLE 0x10
#define SQ_TEX_INST_SAMPLE_L 0x11
+#define SQ_TEX_INST_SAMPLE_G 0x14
#define SQ_TEX_INST_SAMPLE_C 0x18
+#define SQ_TEX_INST_SET_GRADIENTS_H 0xB
+#define SQ_TEX_INST_SET_GRADIENTS_V 0xC
+
#endif
From de91ea1c06d3208edfb132fa8bea76bbd883f05c Mon Sep 17 00:00:00 2001
From: Mike Kaplinskiy
Date: Wed, 15 Jun 2011 15:54:21 +1000
Subject: [PATCH 094/406] r600g: fix TXD when shadowing is enabled.
Mike had actually done a lot of the TXD support in a patch in bug
37476 which I see now, I'll add the bits of his work that I didn't think
to add to my work.
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 16 +++++++++++++---
src/gallium/drivers/r600/r600d.h | 7 ++++---
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 9a0df2305b9..4a08887d301 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -2001,9 +2001,19 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
}
opcode = ctx->inst_info->r600_opcode;
- if (opcode == SQ_TEX_INST_SAMPLE &&
- (inst->Texture.Texture == TGSI_TEXTURE_SHADOW1D || inst->Texture.Texture == TGSI_TEXTURE_SHADOW2D))
- opcode = SQ_TEX_INST_SAMPLE_C;
+ if (inst->Texture.Texture == TGSI_TEXTURE_SHADOW1D || inst->Texture.Texture == TGSI_TEXTURE_SHADOW2D) {
+ switch (opcode) {
+ case SQ_TEX_INST_SAMPLE:
+ opcode = SQ_TEX_INST_SAMPLE_C;
+ break;
+ case SQ_TEX_INST_SAMPLE_L:
+ opcode = SQ_TEX_INST_SAMPLE_C_L;
+ break;
+ case SQ_TEX_INST_SAMPLE_G:
+ opcode = SQ_TEX_INST_SAMPLE_C_G;
+ break;
+ }
+ }
memset(&tex, 0, sizeof(struct r600_bc_tex));
tex.inst = opcode;
diff --git a/src/gallium/drivers/r600/r600d.h b/src/gallium/drivers/r600/r600d.h
index 95672b13ba0..6373572b65f 100644
--- a/src/gallium/drivers/r600/r600d.h
+++ b/src/gallium/drivers/r600/r600d.h
@@ -3465,13 +3465,14 @@
#define SQ_TEX_INST_LD 0x03
#define SQ_TEX_INST_GET_GRADIENTS_H 0x7
#define SQ_TEX_INST_GET_GRADIENTS_V 0x8
+#define SQ_TEX_INST_SET_GRADIENTS_H 0xB
+#define SQ_TEX_INST_SET_GRADIENTS_V 0xC
#define SQ_TEX_INST_SAMPLE 0x10
#define SQ_TEX_INST_SAMPLE_L 0x11
#define SQ_TEX_INST_SAMPLE_G 0x14
#define SQ_TEX_INST_SAMPLE_C 0x18
-
-#define SQ_TEX_INST_SET_GRADIENTS_H 0xB
-#define SQ_TEX_INST_SET_GRADIENTS_V 0xC
+#define SQ_TEX_INST_SAMPLE_C_L 0x19
+#define SQ_TEX_INST_SAMPLE_C_G 0x1C
#endif
From ef8f6a8c59e88fb7498f3a0f7440bcc4ec1e8a98 Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Tue, 14 Jun 2011 21:36:43 -0700
Subject: [PATCH 095/406] glsl/builtins: Actually implement int/ivec variants
of abs().
Signed-off-by: Kenneth Graunke
NOTE: This is a candidate for stable release branches (and don't forget
to re-run "make builtins" after cherry-picking.)
---
src/glsl/builtins/ir/abs | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/src/glsl/builtins/ir/abs b/src/glsl/builtins/ir/abs
index 904845307c4..d07d1d99e9f 100644
--- a/src/glsl/builtins/ir/abs
+++ b/src/glsl/builtins/ir/abs
@@ -18,4 +18,24 @@
(parameters
(declare (in) vec4 arg0))
((return (expression vec4 abs (var_ref arg0)))))
+
+ (signature int
+ (parameters
+ (declare (in) int arg0))
+ ((return (expression int abs (var_ref arg0)))))
+
+ (signature ivec2
+ (parameters
+ (declare (in) ivec2 arg0))
+ ((return (expression ivec2 abs (var_ref arg0)))))
+
+ (signature ivec3
+ (parameters
+ (declare (in) ivec3 arg0))
+ ((return (expression ivec3 abs (var_ref arg0)))))
+
+ (signature ivec4
+ (parameters
+ (declare (in) ivec4 arg0))
+ ((return (expression ivec4 abs (var_ref arg0)))))
))
From 6415f256637306fcbaa94fbdaf1bd7692070dce1 Mon Sep 17 00:00:00 2001
From: Mike Kaplinskiy
Date: Wed, 15 Jun 2011 16:26:17 +1000
Subject: [PATCH 096/406] r600g: use inlines for some common tex instr setup
code.
[airlied: taken from Mike's patch in bug 37476]
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 35 ++++++++++++++++++--------
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 4a08887d301..0eb776c3358 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1745,6 +1745,22 @@ static int tgsi_dp(struct r600_shader_ctx *ctx)
return 0;
}
+static inline boolean tgsi_tex_src_requires_loading(struct r600_shader_ctx *ctx,
+ unsigned index)
+{
+ struct tgsi_full_instruction *inst = &ctx->parse.FullToken.FullInstruction;
+ return (inst->Src[index].Register.File != TGSI_FILE_TEMPORARY &&
+ inst->Src[index].Register.File != TGSI_FILE_INPUT) ||
+ ctx->src[index].neg || ctx->src[index].abs;
+}
+
+static inline unsigned tgsi_tex_get_src_gpr(struct r600_shader_ctx *ctx,
+ unsigned index)
+{
+ struct tgsi_full_instruction *inst = &ctx->parse.FullToken.FullInstruction;
+ return ctx->file_offset[inst->Src[index].Register.File] + inst->Src[index].Register.Index;
+}
+
static int tgsi_tex(struct r600_shader_ctx *ctx)
{
static float one_point_five = 1.5f;
@@ -1756,14 +1772,11 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
int opcode;
/* Texture fetch instructions can only use gprs as source.
* Also they cannot negate the source or take the absolute value */
- const boolean src_requires_loading =
- (inst->Src[0].Register.File != TGSI_FILE_TEMPORARY &&
- inst->Src[0].Register.File != TGSI_FILE_INPUT) ||
- ctx->src[0].neg || ctx->src[0].abs;
+ const boolean src_requires_loading = tgsi_tex_src_requires_loading(ctx, 0);
boolean src_loaded = FALSE;
unsigned sampler_src_reg = 1;
- src_gpr = ctx->file_offset[inst->Src[0].Register.File] + inst->Src[0].Register.Index;
+ src_gpr = tgsi_tex_get_src_gpr(ctx, 0);
if (inst->Instruction.Opcode == TGSI_OPCODE_TXD) {
/* TGSI moves the sampler to src reg 3 for TXD */
@@ -1772,9 +1785,9 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
/* set gradients h/v */
memset(&tex, 0, sizeof(struct r600_bc_tex));
tex.inst = SQ_TEX_INST_SET_GRADIENTS_H;
- tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
+ tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
- tex.src_gpr = ctx->file_offset[inst->Src[1].Register.File] + inst->Src[1].Register.Index;
+ tex.src_gpr = tgsi_tex_get_src_gpr(ctx, 1);
tex.src_sel_x = ctx->src[1].swizzle[0];
tex.src_sel_y = ctx->src[1].swizzle[1];
tex.src_sel_z = ctx->src[1].swizzle[2];
@@ -1795,9 +1808,9 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
/* set gradients h/v */
memset(&tex, 0, sizeof(struct r600_bc_tex));
tex.inst = SQ_TEX_INST_SET_GRADIENTS_V;
- tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
+ tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
- tex.src_gpr = ctx->file_offset[inst->Src[2].Register.File] + inst->Src[2].Register.Index;
+ tex.src_gpr = tgsi_tex_get_src_gpr(ctx, 2);
tex.src_sel_x = ctx->src[2].swizzle[0];
tex.src_sel_y = ctx->src[2].swizzle[1];
tex.src_sel_z = ctx->src[2].swizzle[2];
@@ -2017,8 +2030,8 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
memset(&tex, 0, sizeof(struct r600_bc_tex));
tex.inst = opcode;
-
- tex.sampler_id = ctx->file_offset[inst->Src[sampler_src_reg].Register.File] + inst->Src[sampler_src_reg].Register.Index;
+
+ tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
tex.src_gpr = src_gpr;
tex.dst_gpr = ctx->file_offset[inst->Dst[0].Register.File] + inst->Dst[0].Register.Index;
From 40aec11b7569fcdd2d884629b172af3db3fbaf1d Mon Sep 17 00:00:00 2001
From: Mike Kaplinskiy
Date: Wed, 15 Jun 2011 16:56:10 +1000
Subject: [PATCH 097/406] r600g: fix TXD src regs needing fetching.
[airlied: final chunk of Mike's patch from bug 37476
this uses a loop to emit the GRADIENTS and does a check to
see if we need to fetch to a temporary register. It also
increases the context src gpr to 4 which is needed here.]
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 94 ++++++++++++++------------
1 file changed, 49 insertions(+), 45 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 0eb776c3358..b8a86b03143 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -186,7 +186,7 @@ struct r600_shader_ctx {
struct r600_shader_tgsi_instruction *inst_info;
struct r600_bc *bc;
struct r600_shader *shader;
- struct r600_shader_src src[3];
+ struct r600_shader_src src[4];
u32 *literals;
u32 nliterals;
u32 max_driver_temp_used;
@@ -1768,7 +1768,7 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
struct r600_bc_tex tex;
struct r600_bc_alu alu;
unsigned src_gpr;
- int r, i;
+ int r, i, j;
int opcode;
/* Texture fetch instructions can only use gprs as source.
* Also they cannot negate the source or take the absolute value */
@@ -1782,51 +1782,55 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
/* TGSI moves the sampler to src reg 3 for TXD */
sampler_src_reg = 3;
- /* set gradients h/v */
- memset(&tex, 0, sizeof(struct r600_bc_tex));
- tex.inst = SQ_TEX_INST_SET_GRADIENTS_H;
- tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
- tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
- tex.src_gpr = tgsi_tex_get_src_gpr(ctx, 1);
- tex.src_sel_x = ctx->src[1].swizzle[0];
- tex.src_sel_y = ctx->src[1].swizzle[1];
- tex.src_sel_z = ctx->src[1].swizzle[2];
- tex.src_sel_w = ctx->src[1].swizzle[3];
- tex.src_rel = ctx->src[1].rel;
- tex.dst_gpr = ctx->temp_reg; /* just to avoid confusing the asm scheduler */
- tex.dst_sel_x = tex.dst_sel_y = tex.dst_sel_z = tex.dst_sel_w = 7;
- if (inst->Texture.Texture != TGSI_TEXTURE_RECT) {
- tex.coord_type_x = 1;
- tex.coord_type_y = 1;
- tex.coord_type_z = 1;
- tex.coord_type_w = 1;
- }
- r = r600_bc_add_tex(ctx->bc, &tex);
- if (r)
- return r;
+ for (i = 1; i < 3; i++) {
+ /* set gradients h/v */
+ memset(&tex, 0, sizeof(struct r600_bc_tex));
+ tex.inst = (i == 1) ? SQ_TEX_INST_SET_GRADIENTS_H :
+ SQ_TEX_INST_SET_GRADIENTS_V;
+ tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
+ tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
- /* set gradients h/v */
- memset(&tex, 0, sizeof(struct r600_bc_tex));
- tex.inst = SQ_TEX_INST_SET_GRADIENTS_V;
- tex.sampler_id = tgsi_tex_get_src_gpr(ctx, sampler_src_reg);
- tex.resource_id = tex.sampler_id + R600_MAX_CONST_BUFFERS;
- tex.src_gpr = tgsi_tex_get_src_gpr(ctx, 2);
- tex.src_sel_x = ctx->src[2].swizzle[0];
- tex.src_sel_y = ctx->src[2].swizzle[1];
- tex.src_sel_z = ctx->src[2].swizzle[2];
- tex.src_sel_w = ctx->src[2].swizzle[3];
- tex.src_rel = ctx->src[2].rel;
- tex.dst_gpr = ctx->temp_reg; /* just to avoid confusing the asm scheduler */
- tex.dst_sel_x = tex.dst_sel_y = tex.dst_sel_z = tex.dst_sel_w = 7;
- if (inst->Texture.Texture != TGSI_TEXTURE_RECT) {
- tex.coord_type_x = 1;
- tex.coord_type_y = 1;
- tex.coord_type_z = 1;
- tex.coord_type_w = 1;
+ if (tgsi_tex_src_requires_loading(ctx, i)) {
+ tex.src_gpr = r600_get_temp(ctx);
+ tex.src_sel_x = 0;
+ tex.src_sel_y = 1;
+ tex.src_sel_z = 2;
+ tex.src_sel_w = 3;
+
+ for (j = 0; j < 4; j++) {
+ memset(&alu, 0, sizeof(struct r600_bc_alu));
+ alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV);
+ r600_bc_src(&alu.src[0], &ctx->src[i], j);
+ alu.dst.sel = tex.src_gpr;
+ alu.dst.chan = j;
+ if (j == 3)
+ alu.last = 1;
+ alu.dst.write = 1;
+ r = r600_bc_add_alu(ctx->bc, &alu);
+ if (r)
+ return r;
+ }
+
+ } else {
+ tex.src_gpr = tgsi_tex_get_src_gpr(ctx, i);
+ tex.src_sel_x = ctx->src[i].swizzle[0];
+ tex.src_sel_y = ctx->src[i].swizzle[1];
+ tex.src_sel_z = ctx->src[i].swizzle[2];
+ tex.src_sel_w = ctx->src[i].swizzle[3];
+ tex.src_rel = ctx->src[i].rel;
+ }
+ tex.dst_gpr = ctx->temp_reg; /* just to avoid confusing the asm scheduler */
+ tex.dst_sel_x = tex.dst_sel_y = tex.dst_sel_z = tex.dst_sel_w = 7;
+ if (inst->Texture.Texture != TGSI_TEXTURE_RECT) {
+ tex.coord_type_x = 1;
+ tex.coord_type_y = 1;
+ tex.coord_type_z = 1;
+ tex.coord_type_w = 1;
+ }
+ r = r600_bc_add_tex(ctx->bc, &tex);
+ if (r)
+ return r;
}
- r = r600_bc_add_tex(ctx->bc, &tex);
- if (r)
- return r;
} else if (inst->Instruction.Opcode == TGSI_OPCODE_TXP) {
int out_chan;
/* Add perspective divide */
From 9f2f5b3d7fd70663b98da5d302fcdfd5bc93db05 Mon Sep 17 00:00:00 2001
From: Thomas Hellstrom
Date: Wed, 15 Jun 2011 10:46:24 +0200
Subject: [PATCH 098/406] st/xa: Initial import of the xa state-tracker and the
xa-vmwgfx target.
See the file src/gallium/state_trackers/xa/README for more info.
Signed-off-by: Thomas Hellstrom
---
configure.ac | 12 +-
src/gallium/state_trackers/xa/Makefile | 66 ++
src/gallium/state_trackers/xa/README | 64 ++
src/gallium/state_trackers/xa/xa-indent | 3 +
src/gallium/state_trackers/xa/xa_context.c | 258 +++++++
src/gallium/state_trackers/xa/xa_context.h | 77 +++
src/gallium/state_trackers/xa/xa_priv.h | 179 +++++
src/gallium/state_trackers/xa/xa_renderer.c | 470 +++++++++++++
src/gallium/state_trackers/xa/xa_symbols | 20 +
src/gallium/state_trackers/xa/xa_tgsi.c | 651 ++++++++++++++++++
src/gallium/state_trackers/xa/xa_tracker.c | 420 +++++++++++
src/gallium/state_trackers/xa/xa_tracker.h | 174 +++++
src/gallium/state_trackers/xa/xa_yuv.c | 178 +++++
src/gallium/targets/xa-vmwgfx/Makefile | 100 +++
src/gallium/targets/xa-vmwgfx/vmw_target.c | 27 +
src/gallium/targets/xa-vmwgfx/xatracker.pc.in | 13 +
16 files changed, 2709 insertions(+), 3 deletions(-)
create mode 100644 src/gallium/state_trackers/xa/Makefile
create mode 100644 src/gallium/state_trackers/xa/README
create mode 100755 src/gallium/state_trackers/xa/xa-indent
create mode 100644 src/gallium/state_trackers/xa/xa_context.c
create mode 100644 src/gallium/state_trackers/xa/xa_context.h
create mode 100644 src/gallium/state_trackers/xa/xa_priv.h
create mode 100644 src/gallium/state_trackers/xa/xa_renderer.c
create mode 100644 src/gallium/state_trackers/xa/xa_symbols
create mode 100644 src/gallium/state_trackers/xa/xa_tgsi.c
create mode 100644 src/gallium/state_trackers/xa/xa_tracker.c
create mode 100644 src/gallium/state_trackers/xa/xa_tracker.h
create mode 100644 src/gallium/state_trackers/xa/xa_yuv.c
create mode 100644 src/gallium/targets/xa-vmwgfx/Makefile
create mode 100644 src/gallium/targets/xa-vmwgfx/vmw_target.c
create mode 100644 src/gallium/targets/xa-vmwgfx/xatracker.pc.in
diff --git a/configure.ac b/configure.ac
index 69513c1c4e2..a99a4e25f74 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1559,6 +1559,9 @@ yes)
fi
have_st_vega="yes"
;;
+ xa)
+ HAVE_ST_XA="yes"
+ ;;
esac
if test -n "$tracker"; then
@@ -1730,7 +1733,8 @@ dnl
dnl Gallium helper functions
dnl
gallium_check_st() {
- if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
+ if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
+ test "x$HAVE_ST_XA" = xyes; then
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
fi
if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
@@ -1739,6 +1743,9 @@ gallium_check_st() {
if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
fi
+ if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
+ GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
+ fi
}
gallium_require_llvm() {
@@ -1749,7 +1756,6 @@ gallium_require_llvm() {
fi
}
-
dnl
dnl Gallium SVGA configuration
dnl
@@ -1760,7 +1766,7 @@ AC_ARG_ENABLE([gallium-svga],
[enable_gallium_svga=auto])
if test "x$enable_gallium_svga" = xyes; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
- gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
+ gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
elif test "x$enable_gallium_svga" = xauto; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
fi
diff --git a/src/gallium/state_trackers/xa/Makefile b/src/gallium/state_trackers/xa/Makefile
new file mode 100644
index 00000000000..def371b7b84
--- /dev/null
+++ b/src/gallium/state_trackers/xa/Makefile
@@ -0,0 +1,66 @@
+TOP = ../../../..
+include $(TOP)/configs/current
+
+##### MACROS #####
+
+XA_MAJOR = 0
+XA_MINOR = 1
+XA_TINY = 0
+XA_CFLAGS = -g -fPIC -Wall
+
+XA_INCLUDES= -I$(TOP)/src/gallium/ \
+ -I$(TOP)/src/gallium/auxiliary \
+ -I$(TOP)/src/gallium/include \
+ -I$(TOP)/src/gallium/winsys \
+ -I$(TOP)/src/gallium/drivers
+
+XA_LIB = xatracker
+XA_LIB_NAME = lib$(XA_LIB).o
+XA_LIB_DEPS =
+
+COMMON_GALLIUM_SOURCES=
+
+SOURCES = \
+ xa_tracker.c \
+ xa_context.c \
+ xa_renderer.c \
+ xa_tgsi.c \
+ xa_yuv.c
+OBJECTS = $(SOURCES:.c=.o)
+
+##### RULES #####
+
+.c.o:
+ $(CC) -c $(XA_CFLAGS) $(XA_INCLUDES) $<
+
+
+##### TARGETS #####
+
+default: $(XA_LIB_NAME)
+
+
+# Make the library
+$(XA_LIB_NAME): depend $(OBJECTS)
+ $(LD) -r -o $(XA_LIB_NAME) $(OBJECTS)
+
+install: FORCE
+
+clean:
+ -rm -f *.o *~
+ -rm -f *.lo
+ -rm -f *.la
+ -rm -f *.pc
+ -rm -rf .libs
+ -rm -f depend depend.bak
+
+
+depend: $(SOURCES)
+ @ echo "running $(MKDEP)"
+ @ rm -f depend
+ @ touch depend
+ @ $(MKDEP) $(MKDEP_OPTIONS) -I$(TOP)/include $(XA_INCLUDES) $(SOURCES) \
+ > /dev/null
+
+-include depend
+
+FORCE:
diff --git a/src/gallium/state_trackers/xa/README b/src/gallium/state_trackers/xa/README
new file mode 100644
index 00000000000..475585df328
--- /dev/null
+++ b/src/gallium/state_trackers/xa/README
@@ -0,0 +1,64 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+
+The XA state tracker is intended as a versioned interface to gallium for
+xorg driver writers. Initially it's mostly based on Zack Rusin's
+composite / video work for the Xorg state tracker.
+
+The motivation behind this state tracker is that the Xorg state tracker has
+a number of interfaces to work with:
+
+1) The Xorg sdk (versioned)
+2) Gallium3D (not versioned)
+3) KMS modesetting (versioned)
+4) Driver-private (hopefully versioned)
+
+Since Gallium3D is versioned, the Xorg state tracker needs to be compiled
+with Gallium, but it's really beneficial to be able to compile xorg drivers
+standalone.
+
+Therefore the xa state tracker is intended to supply the following
+functionality:
+
+1) Versioning.
+2) Surface functionality (creation and copying for a basic dri2 implementation)
+3) YUV blits for textured Xv.
+
+and coming up:
+4) Solid fills with ROP functionality.
+5) Copies with ROP functionality, format conversion and - reinterpretation.
+6) Xrender- type compositing for general acceleration.
+
+4-6 is not implemented yet since they are not directly used by the
+vmwgfx driver.
+
+The first user will be the vmwgfx xorg driver. When there are more users,
+we need to be able to load the appropriate gallium pipe driver, and we
+should investigate sharing the loadig mechanism with the EGL state tracker.
+
diff --git a/src/gallium/state_trackers/xa/xa-indent b/src/gallium/state_trackers/xa/xa-indent
new file mode 100755
index 00000000000..1972e53226f
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa-indent
@@ -0,0 +1,3 @@
+#
+indent --linux-style -i4 -ip4 -bad -bap -psl $*
+
diff --git a/src/gallium/state_trackers/xa/xa_context.c b/src/gallium/state_trackers/xa/xa_context.c
new file mode 100644
index 00000000000..5ac16a2b195
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_context.c
@@ -0,0 +1,258 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+#include "xa_context.h"
+#include "xa_priv.h"
+#include "cso_cache/cso_context.h"
+#include "util/u_inlines.h"
+#include "util/u_rect.h"
+#include "pipe/p_context.h"
+
+
+struct xa_context *
+xa_context_default(struct xa_tracker *xa)
+{
+ return xa->default_ctx;
+}
+
+struct xa_context *
+xa_context_create(struct xa_tracker *xa)
+{
+ struct xa_context *ctx = calloc(1, sizeof(*ctx));
+
+ ctx->xa = xa;
+ ctx->pipe = xa->screen->context_create(xa->screen, NULL);
+ ctx->cso = cso_create_context(ctx->pipe);
+ ctx->shaders = xa_shaders_create(ctx);
+ renderer_init_state(ctx);
+
+ return ctx;
+}
+
+void
+xa_context_destroy(struct xa_context *r)
+{
+ struct pipe_resource **vsbuf = &r->vs_const_buffer;
+ struct pipe_resource **fsbuf = &r->fs_const_buffer;
+
+ if (*vsbuf)
+ pipe_resource_reference(vsbuf, NULL);
+
+ if (*fsbuf)
+ pipe_resource_reference(fsbuf, NULL);
+
+ if (r->shaders) {
+ xa_shaders_destroy(r->shaders);
+ r->shaders = NULL;
+ }
+
+ if (r->cso) {
+ cso_release_all(r->cso);
+ cso_destroy_context(r->cso);
+ r->cso = NULL;
+ }
+}
+
+int
+xa_surface_dma(struct xa_context *ctx,
+ struct xa_surface *srf,
+ void *data,
+ unsigned int pitch,
+ int to_surface, struct xa_box *boxes, unsigned int num_boxes)
+{
+ struct pipe_transfer *transfer;
+ void *map;
+ int w, h, i;
+ enum pipe_transfer_usage transfer_direction;
+ struct pipe_context *pipe = ctx->pipe;
+
+ transfer_direction = (to_surface ? PIPE_TRANSFER_WRITE :
+ PIPE_TRANSFER_READ);
+
+ for (i = 0; i < num_boxes; ++i, ++boxes) {
+ w = boxes->x2 - boxes->x1;
+ h = boxes->y2 - boxes->y1;
+
+ transfer = pipe_get_transfer(pipe, srf->tex, 0, 0,
+ transfer_direction, boxes->x1, boxes->y1,
+ w, h);
+ if (!transfer)
+ return -XA_ERR_NORES;
+
+ map = pipe_transfer_map(ctx->pipe, transfer);
+ if (!map)
+ goto out_no_map;
+
+ if (to_surface) {
+ util_copy_rect(map, srf->tex->format, transfer->stride,
+ 0, 0, w, h, data, pitch, boxes->x1, boxes->y1);
+ } else {
+ util_copy_rect(data, srf->tex->format, pitch,
+ boxes->x1, boxes->y1, w, h, map, transfer->stride, 0,
+ 0);
+ }
+ pipe->transfer_unmap(pipe, transfer);
+ pipe->transfer_destroy(pipe, transfer);
+ if (to_surface)
+ pipe->flush(pipe, &ctx->last_fence);
+ }
+ return XA_ERR_NONE;
+ out_no_map:
+ pipe->transfer_destroy(pipe, transfer);
+ return -XA_ERR_NORES;
+}
+
+void *
+xa_surface_map(struct xa_context *ctx,
+ struct xa_surface *srf, unsigned int usage)
+{
+ void *map;
+ unsigned int transfer_direction = 0;
+ struct pipe_context *pipe = ctx->pipe;
+
+ if (srf->transfer)
+ return NULL;
+
+ if (usage & XA_MAP_READ)
+ transfer_direction = PIPE_TRANSFER_READ;
+ if (usage & XA_MAP_WRITE)
+ transfer_direction = PIPE_TRANSFER_WRITE;
+
+ if (!transfer_direction)
+ return NULL;
+
+ srf->transfer = pipe_get_transfer(pipe, srf->tex, 0, 0,
+ transfer_direction, 0, 0,
+ srf->tex->width0, srf->tex->height0);
+ if (!srf->transfer)
+ return NULL;
+
+ map = pipe_transfer_map(pipe, srf->transfer);
+ if (!map)
+ pipe->transfer_destroy(pipe, srf->transfer);
+
+ srf->mapping_pipe = pipe;
+ return map;
+}
+
+void
+xa_surface_unmap(struct xa_surface *srf)
+{
+ if (srf->transfer) {
+ struct pipe_context *pipe = srf->mapping_pipe;
+
+ pipe->transfer_unmap(pipe, srf->transfer);
+ pipe->transfer_destroy(pipe, srf->transfer);
+ srf->transfer = NULL;
+ }
+}
+
+int
+xa_copy_prepare(struct xa_context *ctx,
+ struct xa_surface *dst, struct xa_surface *src)
+{
+ if (src == dst || src->tex->format != dst->tex->format)
+ return -XA_ERR_INVAL;
+
+ ctx->src = src;
+ ctx->dst = dst;
+
+ return 0;
+}
+
+void
+xa_copy(struct xa_context *ctx,
+ int dx, int dy, int sx, int sy, int width, int height)
+{
+ struct pipe_box src_box;
+
+ u_box_2d(sx, sy, width, height, &src_box);
+ ctx->pipe->resource_copy_region(ctx->pipe,
+ ctx->dst->tex, 0, dx, dy, 0, ctx->src->tex,
+ 0, &src_box);
+
+}
+
+void
+xa_copy_done(struct xa_context *ctx)
+{
+ ctx->pipe->flush(ctx->pipe, &ctx->last_fence);
+}
+
+struct xa_fence *
+xa_fence_get(struct xa_context *ctx)
+{
+ struct xa_fence *fence = malloc(sizeof(*fence));
+ struct pipe_screen *screen = ctx->xa->screen;
+
+ if (!fence)
+ return NULL;
+
+ fence->xa = ctx->xa;
+
+ if (ctx->last_fence == NULL)
+ fence->pipe_fence = NULL;
+ else
+ screen->fence_reference(screen, &fence->pipe_fence, ctx->last_fence);
+
+ return fence;
+}
+
+int
+xa_fence_wait(struct xa_fence *fence, uint64_t timeout)
+{
+ if (!fence)
+ return XA_ERR_NONE;
+
+ if (fence->pipe_fence) {
+ struct pipe_screen *screen = fence->xa->screen;
+ boolean timed_out;
+
+ timed_out = !screen->fence_finish(screen, fence->pipe_fence, timeout);
+ if (timed_out)
+ return -XA_ERR_BUSY;
+
+ screen->fence_reference(screen, &fence->pipe_fence, NULL);
+ }
+ return XA_ERR_NONE;
+}
+
+void
+xa_fence_destroy(struct xa_fence *fence)
+{
+ if (!fence)
+ return;
+
+ if (fence->pipe_fence) {
+ struct pipe_screen *screen = fence->xa->screen;
+
+ screen->fence_reference(screen, &fence->pipe_fence, NULL);
+ }
+
+ free(fence);
+}
diff --git a/src/gallium/state_trackers/xa/xa_context.h b/src/gallium/state_trackers/xa/xa_context.h
new file mode 100644
index 00000000000..753ba3d79b4
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_context.h
@@ -0,0 +1,77 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+
+#ifndef _XA_CONTEXT_H_
+#define _XA_CONTEXT_H_
+#include "xa_tracker.h"
+#include
+
+struct xa_context;
+
+extern struct xa_context *xa_context_default(struct xa_tracker *xa);
+
+extern struct xa_context *xa_context_create(struct xa_tracker *xa);
+
+extern void xa_context_destroy(struct xa_context *r);
+
+extern int xa_yuv_planar_blit(struct xa_context *r,
+ int src_x,
+ int src_y,
+ int src_w,
+ int src_h,
+ int dst_x,
+ int dst_y,
+ int dst_w,
+ int dst_h,
+ struct xa_box *box,
+ unsigned int num_boxes,
+ const float conversion_matrix[],
+ struct xa_surface *dst, struct xa_surface *yuv[]);
+
+extern int xa_copy_prepare(struct xa_context *ctx,
+ struct xa_surface *dst, struct xa_surface *src);
+
+extern void xa_copy(struct xa_context *ctx,
+ int dx, int dy, int sx, int sy, int width, int height);
+
+extern void xa_copy_done(struct xa_context *ctx);
+
+extern int xa_surface_dma(struct xa_context *ctx,
+ struct xa_surface *srf,
+ void *data,
+ unsigned int byte_pitch,
+ int to_surface, struct xa_box *boxes,
+ unsigned int num_boxes);
+
+extern struct xa_fence *xa_fence_get(struct xa_context *ctx);
+
+extern int xa_fence_wait(struct xa_fence *fence, uint64_t timeout);
+
+extern void xa_fence_destroy(struct xa_fence *fence);
+#endif
diff --git a/src/gallium/state_trackers/xa/xa_priv.h b/src/gallium/state_trackers/xa/xa_priv.h
new file mode 100644
index 00000000000..57f2e3da545
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_priv.h
@@ -0,0 +1,179 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+
+#ifndef _XA_PRIV_H_
+#define _XA_PRIV_H_
+
+#include "xa_tracker.h"
+#include "xa_context.h"
+
+#include "pipe/p_screen.h"
+#include "pipe/p_context.h"
+#include "pipe/p_state.h"
+
+#define XA_VB_SIZE (100 * 4 * 3 * 4)
+#define XA_LAST_SURFACE_TYPE (xa_type_yuv_component + 1)
+
+struct xa_fence {
+ struct pipe_fence_handle *pipe_fence;
+ struct xa_tracker *xa;
+};
+
+struct xa_format_descriptor {
+ enum pipe_format format;
+ enum xa_formats xa_format;
+};
+
+struct xa_surface {
+ struct pipe_resource template;
+ struct xa_tracker *xa;
+ struct pipe_resource *tex;
+ struct pipe_surface *srf;
+ struct pipe_sampler_view *view;
+ unsigned int flags;
+ struct xa_format_descriptor fdesc;
+ struct pipe_transfer *transfer;
+ struct pipe_context *mapping_pipe;
+};
+
+struct xa_tracker {
+ enum xa_formats *supported_formats;
+ unsigned int format_map[XA_LAST_SURFACE_TYPE][2];
+ int d_depth_bits_last;
+ int ds_depth_bits_last;
+ struct pipe_screen *screen;
+ struct xa_context *default_ctx;
+};
+
+struct xa_context {
+ struct xa_tracker *xa;
+ struct pipe_context *pipe;
+
+ struct cso_context *cso;
+ struct xa_shaders *shaders;
+
+ struct pipe_resource *vs_const_buffer;
+ struct pipe_resource *fs_const_buffer;
+
+ float buffer[XA_VB_SIZE];
+ unsigned int buffer_size;
+ struct pipe_vertex_element velems[3];
+
+ /* number of attributes per vertex for the current
+ * draw operation */
+ unsigned int attrs_per_vertex;
+
+ unsigned int fb_width;
+ unsigned int fb_height;
+
+ struct pipe_fence_handle *last_fence;
+ struct xa_surface *src;
+ struct xa_surface *dst;
+};
+
+enum xa_vs_traits {
+ VS_COMPOSITE = 1 << 0,
+ VS_MASK = 1 << 1,
+ VS_SOLID_FILL = 1 << 2,
+ VS_LINGRAD_FILL = 1 << 3,
+ VS_RADGRAD_FILL = 1 << 4,
+ VS_YUV = 1 << 5,
+
+ VS_FILL = (VS_SOLID_FILL | VS_LINGRAD_FILL | VS_RADGRAD_FILL)
+};
+
+enum xa_fs_traits {
+ FS_COMPOSITE = 1 << 0,
+ FS_MASK = 1 << 1,
+ FS_SOLID_FILL = 1 << 2,
+ FS_LINGRAD_FILL = 1 << 3,
+ FS_RADGRAD_FILL = 1 << 4,
+ FS_CA_FULL = 1 << 5, /* src.rgba * mask.rgba */
+ FS_CA_SRCALPHA = 1 << 6, /* src.aaaa * mask.rgba */
+ FS_YUV = 1 << 7,
+ FS_SRC_REPEAT_NONE = 1 << 8,
+ FS_MASK_REPEAT_NONE = 1 << 9,
+ FS_SRC_SWIZZLE_RGB = 1 << 10,
+ FS_MASK_SWIZZLE_RGB = 1 << 11,
+ FS_SRC_SET_ALPHA = 1 << 12,
+ FS_MASK_SET_ALPHA = 1 << 13,
+ FS_SRC_LUMINANCE = 1 << 14,
+ FS_MASK_LUMINANCE = 1 << 15,
+
+ FS_FILL = (FS_SOLID_FILL | FS_LINGRAD_FILL | FS_RADGRAD_FILL),
+ FS_COMPONENT_ALPHA = (FS_CA_FULL | FS_CA_SRCALPHA)
+};
+
+struct xa_shader {
+ void *fs;
+ void *vs;
+};
+
+static inline int
+xa_min(int a, int b)
+{
+ return ((a <= b) ? a : b);
+}
+
+struct xa_shaders;
+
+/*
+ * xa_tgsi.c
+ */
+
+extern struct xa_shaders *xa_shaders_create(struct xa_context *);
+
+void xa_shaders_destroy(struct xa_shaders *shaders);
+
+struct xa_shader xa_shaders_get(struct xa_shaders *shaders,
+ unsigned vs_traits, unsigned fs_traits);
+
+/*
+ * xa_renderer.c
+ */
+void renderer_set_constants(struct xa_context *r,
+ int shader_type, const float *params,
+ int param_bytes);
+
+void renderer_draw_yuv(struct xa_context *r,
+ float src_x,
+ float src_y,
+ float src_w,
+ float src_h,
+ int dst_x,
+ int dst_y, int dst_w, int dst_h,
+ struct xa_surface *srf[]);
+
+void renderer_bind_destination(struct xa_context *r,
+ struct pipe_surface *surface, int width,
+ int height);
+
+void renderer_init_state(struct xa_context *r);
+
+#endif
diff --git a/src/gallium/state_trackers/xa/xa_renderer.c b/src/gallium/state_trackers/xa/xa_renderer.c
new file mode 100644
index 00000000000..4e42833db46
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_renderer.c
@@ -0,0 +1,470 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ */
+
+#include "xa_context.h"
+#include "xa_priv.h"
+#include
+#include "cso_cache/cso_context.h"
+#include "util/u_inlines.h"
+#include "util/u_sampler.h"
+#include "util/u_draw_quad.h"
+
+#define floatsEqual(x, y) (fabs(x - y) <= 0.00001f * MIN2(fabs(x), fabs(y)))
+#define floatIsZero(x) (floatsEqual((x) + 1, 1))
+
+#define NUM_COMPONENTS 4
+
+void
+
+
+renderer_set_constants(struct xa_context *r,
+ int shader_type, const float *params, int param_bytes);
+
+static INLINE boolean
+is_affine(float *matrix)
+{
+ return floatIsZero(matrix[2]) && floatIsZero(matrix[5])
+ && floatsEqual(matrix[8], 1);
+}
+
+static INLINE void
+map_point(float *mat, float x, float y, float *out_x, float *out_y)
+{
+ if (!mat) {
+ *out_x = x;
+ *out_y = y;
+ return;
+ }
+
+ *out_x = mat[0] * x + mat[3] * y + mat[6];
+ *out_y = mat[1] * x + mat[4] * y + mat[7];
+ if (!is_affine(mat)) {
+ float w = 1 / (mat[2] * x + mat[5] * y + mat[8]);
+
+ *out_x *= w;
+ *out_y *= w;
+ }
+}
+
+static INLINE struct pipe_resource *
+renderer_buffer_create(struct xa_context *r)
+{
+ struct pipe_resource *buf = pipe_user_buffer_create(r->pipe->screen,
+ r->buffer,
+ sizeof(float) *
+ r->buffer_size,
+ PIPE_BIND_VERTEX_BUFFER);
+
+ r->buffer_size = 0;
+
+ return buf;
+}
+
+static INLINE void
+renderer_draw(struct xa_context *r)
+{
+ struct pipe_context *pipe = r->pipe;
+ struct pipe_resource *buf = 0;
+ int num_verts = r->buffer_size / (r->attrs_per_vertex * NUM_COMPONENTS);
+
+ if (!r->buffer_size)
+ return;
+
+ buf = renderer_buffer_create(r);
+
+ if (buf) {
+ cso_set_vertex_elements(r->cso, r->attrs_per_vertex, r->velems);
+
+ util_draw_vertex_buffer(pipe, r->cso, buf, 0, PIPE_PRIM_QUADS, num_verts, /* verts */
+ r->attrs_per_vertex); /* attribs/vert */
+
+ pipe_resource_reference(&buf, NULL);
+ }
+}
+
+static INLINE void
+renderer_draw_conditional(struct xa_context *r, int next_batch)
+{
+ if (r->buffer_size + next_batch >= XA_VB_SIZE ||
+ (next_batch == 0 && r->buffer_size)) {
+ renderer_draw(r);
+ }
+}
+
+void
+renderer_init_state(struct xa_context *r)
+{
+ struct pipe_depth_stencil_alpha_state dsa;
+ struct pipe_rasterizer_state raster;
+ unsigned i;
+
+ /* set common initial clip state */
+ memset(&dsa, 0, sizeof(struct pipe_depth_stencil_alpha_state));
+ cso_set_depth_stencil_alpha(r->cso, &dsa);
+
+ /* XXX: move to renderer_init_state? */
+ memset(&raster, 0, sizeof(struct pipe_rasterizer_state));
+ raster.gl_rasterization_rules = 1;
+ cso_set_rasterizer(r->cso, &raster);
+
+ /* vertex elements state */
+ memset(&r->velems[0], 0, sizeof(r->velems[0]) * 3);
+ for (i = 0; i < 3; i++) {
+ r->velems[i].src_offset = i * 4 * sizeof(float);
+ r->velems[i].instance_divisor = 0;
+ r->velems[i].vertex_buffer_index = 0;
+ r->velems[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ }
+}
+
+static INLINE void
+add_vertex_color(struct xa_context *r, float x, float y, float color[4])
+{
+ float *vertex = r->buffer + r->buffer_size;
+
+ vertex[0] = x;
+ vertex[1] = y;
+ vertex[2] = 0.f; /*z */
+ vertex[3] = 1.f; /*w */
+
+ vertex[4] = color[0]; /*r */
+ vertex[5] = color[1]; /*g */
+ vertex[6] = color[2]; /*b */
+ vertex[7] = color[3]; /*a */
+
+ r->buffer_size += 8;
+}
+
+static INLINE void
+add_vertex_1tex(struct xa_context *r, float x, float y, float s, float t)
+{
+ float *vertex = r->buffer + r->buffer_size;
+
+ vertex[0] = x;
+ vertex[1] = y;
+ vertex[2] = 0.f; /*z */
+ vertex[3] = 1.f; /*w */
+
+ vertex[4] = s; /*s */
+ vertex[5] = t; /*t */
+ vertex[6] = 0.f; /*r */
+ vertex[7] = 1.f; /*q */
+
+ r->buffer_size += 8;
+}
+
+static INLINE void
+add_vertex_2tex(struct xa_context *r,
+ float x, float y, float s0, float t0, float s1, float t1)
+{
+ float *vertex = r->buffer + r->buffer_size;
+
+ vertex[0] = x;
+ vertex[1] = y;
+ vertex[2] = 0.f; /*z */
+ vertex[3] = 1.f; /*w */
+
+ vertex[4] = s0; /*s */
+ vertex[5] = t0; /*t */
+ vertex[6] = 0.f; /*r */
+ vertex[7] = 1.f; /*q */
+
+ vertex[8] = s1; /*s */
+ vertex[9] = t1; /*t */
+ vertex[10] = 0.f; /*r */
+ vertex[11] = 1.f; /*q */
+
+ r->buffer_size += 12;
+}
+
+static struct pipe_resource *
+setup_vertex_data_yuv(struct xa_context *r,
+ float srcX,
+ float srcY,
+ float srcW,
+ float srcH,
+ float dstX,
+ float dstY,
+ float dstW, float dstH, struct xa_surface *srf[])
+{
+ float s0, t0, s1, t1;
+ float spt0[2], spt1[2];
+ struct pipe_resource *tex;
+
+ spt0[0] = srcX;
+ spt0[1] = srcY;
+ spt1[0] = srcX + srcW;
+ spt1[1] = srcY + srcH;
+
+ tex = srf[0]->tex;
+ s0 = spt0[0] / tex->width0;
+ t0 = spt0[1] / tex->height0;
+ s1 = spt1[0] / tex->width0;
+ t1 = spt1[1] / tex->height0;
+
+ /* 1st vertex */
+ add_vertex_1tex(r, dstX, dstY, s0, t0);
+ /* 2nd vertex */
+ add_vertex_1tex(r, dstX + dstW, dstY, s1, t0);
+ /* 3rd vertex */
+ add_vertex_1tex(r, dstX + dstW, dstY + dstH, s1, t1);
+ /* 4th vertex */
+ add_vertex_1tex(r, dstX, dstY + dstH, s0, t1);
+
+ return renderer_buffer_create(r);
+}
+
+/* Set up framebuffer, viewport and vertex shader constant buffer
+ * state for a particular destinaton surface. In all our rendering,
+ * these concepts are linked.
+ */
+void
+renderer_bind_destination(struct xa_context *r,
+ struct pipe_surface *surface, int width, int height)
+{
+
+ struct pipe_framebuffer_state fb;
+ struct pipe_viewport_state viewport;
+
+ /* Framebuffer uses actual surface width/height
+ */
+ memset(&fb, 0, sizeof fb);
+ fb.width = surface->width;
+ fb.height = surface->height;
+ fb.nr_cbufs = 1;
+ fb.cbufs[0] = surface;
+ fb.zsbuf = 0;
+
+ /* Viewport just touches the bit we're interested in:
+ */
+ viewport.scale[0] = width / 2.f;
+ viewport.scale[1] = height / 2.f;
+ viewport.scale[2] = 1.0;
+ viewport.scale[3] = 1.0;
+ viewport.translate[0] = width / 2.f;
+ viewport.translate[1] = height / 2.f;
+ viewport.translate[2] = 0.0;
+ viewport.translate[3] = 0.0;
+
+ /* Constant buffer set up to match viewport dimensions:
+ */
+ if (r->fb_width != width || r->fb_height != height) {
+ float vs_consts[8] = {
+ 2.f / width, 2.f / height, 1, 1,
+ -1, -1, 0, 0
+ };
+
+ r->fb_width = width;
+ r->fb_height = height;
+
+ renderer_set_constants(r, PIPE_SHADER_VERTEX,
+ vs_consts, sizeof vs_consts);
+ }
+
+ cso_set_framebuffer(r->cso, &fb);
+ cso_set_viewport(r->cso, &viewport);
+}
+
+void
+renderer_set_constants(struct xa_context *r,
+ int shader_type, const float *params, int param_bytes)
+{
+ struct pipe_resource **cbuf =
+ (shader_type == PIPE_SHADER_VERTEX) ? &r->vs_const_buffer :
+ &r->fs_const_buffer;
+
+ pipe_resource_reference(cbuf, NULL);
+ *cbuf = pipe_buffer_create(r->pipe->screen,
+ PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STATIC,
+ param_bytes);
+
+ if (*cbuf) {
+ pipe_buffer_write(r->pipe, *cbuf, 0, param_bytes, params);
+ }
+ r->pipe->set_constant_buffer(r->pipe, shader_type, 0, *cbuf);
+}
+
+void
+renderer_copy_prepare(struct xa_context *r,
+ struct pipe_surface *dst_surface,
+ struct pipe_resource *src_texture)
+{
+ struct pipe_context *pipe = r->pipe;
+ struct pipe_screen *screen = pipe->screen;
+ struct xa_shader shader;
+
+ assert(screen->is_format_supported(screen, dst_surface->format,
+ PIPE_TEXTURE_2D, 0,
+ PIPE_BIND_RENDER_TARGET));
+ (void)screen;
+
+ /* set misc state we care about */
+ {
+ struct pipe_blend_state blend;
+
+ memset(&blend, 0, sizeof(blend));
+ blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE;
+ blend.rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
+ blend.rt[0].rgb_dst_factor = PIPE_BLENDFACTOR_ZERO;
+ blend.rt[0].alpha_dst_factor = PIPE_BLENDFACTOR_ZERO;
+ blend.rt[0].colormask = PIPE_MASK_RGBA;
+ cso_set_blend(r->cso, &blend);
+ }
+
+ /* sampler */
+ {
+ struct pipe_sampler_state sampler;
+
+ memset(&sampler, 0, sizeof(sampler));
+ sampler.wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ sampler.wrap_t = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ sampler.wrap_r = PIPE_TEX_WRAP_CLAMP_TO_EDGE;
+ sampler.min_mip_filter = PIPE_TEX_MIPFILTER_NONE;
+ sampler.min_img_filter = PIPE_TEX_FILTER_NEAREST;
+ sampler.mag_img_filter = PIPE_TEX_FILTER_NEAREST;
+ sampler.normalized_coords = 1;
+ cso_single_sampler(r->cso, 0, &sampler);
+ cso_single_sampler_done(r->cso);
+ }
+
+ renderer_bind_destination(r, dst_surface,
+ dst_surface->width, dst_surface->height);
+
+ /* texture/sampler view */
+ {
+ struct pipe_sampler_view templ;
+ struct pipe_sampler_view *src_view;
+
+ u_sampler_view_default_template(&templ,
+ src_texture, src_texture->format);
+ src_view = pipe->create_sampler_view(pipe, src_texture, &templ);
+ cso_set_fragment_sampler_views(r->cso, 1, &src_view);
+ pipe_sampler_view_reference(&src_view, NULL);
+ }
+
+ /* shaders */
+ shader = xa_shaders_get(r->shaders, VS_COMPOSITE, FS_COMPOSITE);
+ cso_set_vertex_shader_handle(r->cso, shader.vs);
+ cso_set_fragment_shader_handle(r->cso, shader.fs);
+
+ r->buffer_size = 0;
+ r->attrs_per_vertex = 2;
+}
+
+void
+renderer_copy_pixmap(struct xa_context *r,
+ int dx,
+ int dy,
+ int sx,
+ int sy,
+ int width, int height, float src_width, float src_height)
+{
+ float s0, t0, s1, t1;
+ float x0, y0, x1, y1;
+
+ /* XXX: could put the texcoord scaling calculation into the vertex
+ * shader.
+ */
+ s0 = sx / src_width;
+ s1 = (sx + width) / src_width;
+ t0 = sy / src_height;
+ t1 = (sy + height) / src_height;
+
+ x0 = dx;
+ x1 = dx + width;
+ y0 = dy;
+ y1 = dy + height;
+
+ /* draw quad */
+ renderer_draw_conditional(r, 4 * 8);
+ add_vertex_1tex(r, x0, y0, s0, t0);
+ add_vertex_1tex(r, x1, y0, s1, t0);
+ add_vertex_1tex(r, x1, y1, s1, t1);
+ add_vertex_1tex(r, x0, y1, s0, t1);
+}
+
+void
+renderer_draw_yuv(struct xa_context *r,
+ float src_x,
+ float src_y,
+ float src_w,
+ float src_h,
+ int dst_x,
+ int dst_y, int dst_w, int dst_h, struct xa_surface *srf[])
+{
+ struct pipe_context *pipe = r->pipe;
+ struct pipe_resource *buf = 0;
+
+ buf = setup_vertex_data_yuv(r,
+ src_x, src_y, src_w, src_h, dst_x, dst_y, dst_w,
+ dst_h, srf);
+
+ if (buf) {
+ const int num_attribs = 2; /*pos + tex coord */
+
+ cso_set_vertex_elements(r->cso, num_attribs, r->velems);
+
+ util_draw_vertex_buffer(pipe, r->cso, buf, 0, PIPE_PRIM_QUADS, 4, /* verts */
+ num_attribs); /* attribs/vert */
+
+ pipe_resource_reference(&buf, NULL);
+ }
+}
+
+void
+renderer_begin_solid(struct xa_context *r)
+{
+ r->buffer_size = 0;
+ r->attrs_per_vertex = 2;
+}
+
+void
+renderer_solid(struct xa_context *r,
+ int x0, int y0, int x1, int y1, float *color)
+{
+ /*
+ * debug_printf("solid rect[(%d, %d), (%d, %d)], rgba[%f, %f, %f, %f]\n",
+ * x0, y0, x1, y1, color[0], color[1], color[2], color[3]); */
+
+ renderer_draw_conditional(r, 4 * 8);
+
+ /* 1st vertex */
+ add_vertex_color(r, x0, y0, color);
+ /* 2nd vertex */
+ add_vertex_color(r, x1, y0, color);
+ /* 3rd vertex */
+ add_vertex_color(r, x1, y1, color);
+ /* 4th vertex */
+ add_vertex_color(r, x0, y1, color);
+}
+
+void
+renderer_draw_flush(struct xa_context *r)
+{
+ renderer_draw_conditional(r, 0);
+}
diff --git a/src/gallium/state_trackers/xa/xa_symbols b/src/gallium/state_trackers/xa/xa_symbols
new file mode 100644
index 00000000000..28e2cb0c766
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_symbols
@@ -0,0 +1,20 @@
+xa_tracker_version
+xa_tracker_create
+xa_tracker_destroy
+xa_surface_create
+xa_surface_destroy
+xa_surface_redefine
+xa_surface_dma
+xa_surface_map
+xa_surface_unmap
+xa_copy_prepare
+xa_copy
+xa_copy_done
+xa_surface_handle
+xa_context_default
+xa_context_create
+xa_context_destroy
+xa_fence_get
+xa_fence_wait
+xa_fence_destroy
+xa_yuv_planar_blit
diff --git a/src/gallium/state_trackers/xa/xa_tgsi.c b/src/gallium/state_trackers/xa/xa_tgsi.c
new file mode 100644
index 00000000000..fb6ffefd636
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_tgsi.c
@@ -0,0 +1,651 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ */
+#include "xa_priv.h"
+
+#include "pipe/p_format.h"
+#include "pipe/p_context.h"
+#include "pipe/p_state.h"
+#include "pipe/p_shader_tokens.h"
+
+#include "util/u_memory.h"
+
+#include "tgsi/tgsi_ureg.h"
+
+#include "cso_cache/cso_context.h"
+#include "cso_cache/cso_hash.h"
+
+/* Vertex shader:
+ * IN[0] = vertex pos
+ * IN[1] = src tex coord | solid fill color
+ * IN[2] = mask tex coord
+ * IN[3] = dst tex coord
+ * CONST[0] = (2/dst_width, 2/dst_height, 1, 1)
+ * CONST[1] = (-1, -1, 0, 0)
+ *
+ * OUT[0] = vertex pos
+ * OUT[1] = src tex coord | solid fill color
+ * OUT[2] = mask tex coord
+ * OUT[3] = dst tex coord
+ */
+
+/* Fragment shader:
+ * SAMP[0] = src
+ * SAMP[1] = mask
+ * SAMP[2] = dst
+ * IN[0] = pos src | solid fill color
+ * IN[1] = pos mask
+ * IN[2] = pos dst
+ * CONST[0] = (0, 0, 0, 1)
+ *
+ * OUT[0] = color
+ */
+
+static void
+print_fs_traits(int fs_traits)
+{
+ const char *strings[] = {
+ "FS_COMPOSITE", /* = 1 << 0, */
+ "FS_MASK", /* = 1 << 1, */
+ "FS_SOLID_FILL", /* = 1 << 2, */
+ "FS_LINGRAD_FILL", /* = 1 << 3, */
+ "FS_RADGRAD_FILL", /* = 1 << 4, */
+ "FS_CA_FULL", /* = 1 << 5, *//* src.rgba * mask.rgba */
+ "FS_CA_SRCALPHA", /* = 1 << 6, *//* src.aaaa * mask.rgba */
+ "FS_YUV", /* = 1 << 7, */
+ "FS_SRC_REPEAT_NONE", /* = 1 << 8, */
+ "FS_MASK_REPEAT_NONE", /* = 1 << 9, */
+ "FS_SRC_SWIZZLE_RGB", /* = 1 << 10, */
+ "FS_MASK_SWIZZLE_RGB", /* = 1 << 11, */
+ "FS_SRC_SET_ALPHA", /* = 1 << 12, */
+ "FS_MASK_SET_ALPHA", /* = 1 << 13, */
+ "FS_SRC_LUMINANCE", /* = 1 << 14, */
+ "FS_MASK_LUMINANCE", /* = 1 << 15, */
+ };
+ int i, k;
+
+ debug_printf("%s: ", __func__);
+
+ for (i = 0, k = 1; k < (1 << 16); i++, k <<= 1) {
+ if (fs_traits & k)
+ debug_printf("%s, ", strings[i]);
+ }
+
+ debug_printf("\n");
+}
+
+struct xa_shaders {
+ struct xa_context *r;
+
+ struct cso_hash *vs_hash;
+ struct cso_hash *fs_hash;
+};
+
+static INLINE void
+src_in_mask(struct ureg_program *ureg,
+ struct ureg_dst dst,
+ struct ureg_src src,
+ struct ureg_src mask,
+ unsigned component_alpha, unsigned mask_luminance)
+{
+ if (component_alpha == FS_CA_FULL) {
+ ureg_MUL(ureg, dst, src, mask);
+ } else if (component_alpha == FS_CA_SRCALPHA) {
+ ureg_MUL(ureg, dst, ureg_scalar(src, TGSI_SWIZZLE_W), mask);
+ } else {
+ if (mask_luminance)
+ ureg_MUL(ureg, dst, src, ureg_scalar(mask, TGSI_SWIZZLE_X));
+ else
+ ureg_MUL(ureg, dst, src, ureg_scalar(mask, TGSI_SWIZZLE_W));
+ }
+}
+
+static struct ureg_src
+vs_normalize_coords(struct ureg_program *ureg,
+ struct ureg_src coords,
+ struct ureg_src const0, struct ureg_src const1)
+{
+ struct ureg_dst tmp = ureg_DECL_temporary(ureg);
+ struct ureg_src ret;
+
+ ureg_MAD(ureg, tmp, coords, const0, const1);
+ ret = ureg_src(tmp);
+ ureg_release_temporary(ureg, tmp);
+ return ret;
+}
+
+static void
+linear_gradient(struct ureg_program *ureg,
+ struct ureg_dst out,
+ struct ureg_src pos,
+ struct ureg_src sampler,
+ struct ureg_src coords,
+ struct ureg_src const0124,
+ struct ureg_src matrow0,
+ struct ureg_src matrow1, struct ureg_src matrow2)
+{
+ struct ureg_dst temp0 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp1 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp2 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp3 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp4 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp5 = ureg_DECL_temporary(ureg);
+
+ ureg_MOV(ureg, ureg_writemask(temp0, TGSI_WRITEMASK_XY), pos);
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_Z),
+ ureg_scalar(const0124, TGSI_SWIZZLE_Y));
+
+ ureg_DP3(ureg, temp1, matrow0, ureg_src(temp0));
+ ureg_DP3(ureg, temp2, matrow1, ureg_src(temp0));
+ ureg_DP3(ureg, temp3, matrow2, ureg_src(temp0));
+ ureg_RCP(ureg, temp3, ureg_src(temp3));
+ ureg_MUL(ureg, temp1, ureg_src(temp1), ureg_src(temp3));
+ ureg_MUL(ureg, temp2, ureg_src(temp2), ureg_src(temp3));
+
+ ureg_MOV(ureg, ureg_writemask(temp4, TGSI_WRITEMASK_X), ureg_src(temp1));
+ ureg_MOV(ureg, ureg_writemask(temp4, TGSI_WRITEMASK_Y), ureg_src(temp2));
+
+ ureg_MUL(ureg, temp0,
+ ureg_scalar(coords, TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp4), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp1,
+ ureg_scalar(coords, TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp4), TGSI_SWIZZLE_X), ureg_src(temp0));
+
+ ureg_MUL(ureg, temp2, ureg_src(temp1), ureg_scalar(coords, TGSI_SWIZZLE_Z));
+
+ ureg_TEX(ureg, out, TGSI_TEXTURE_1D, ureg_src(temp2), sampler);
+
+ ureg_release_temporary(ureg, temp0);
+ ureg_release_temporary(ureg, temp1);
+ ureg_release_temporary(ureg, temp2);
+ ureg_release_temporary(ureg, temp3);
+ ureg_release_temporary(ureg, temp4);
+ ureg_release_temporary(ureg, temp5);
+}
+
+static void
+radial_gradient(struct ureg_program *ureg,
+ struct ureg_dst out,
+ struct ureg_src pos,
+ struct ureg_src sampler,
+ struct ureg_src coords,
+ struct ureg_src const0124,
+ struct ureg_src matrow0,
+ struct ureg_src matrow1, struct ureg_src matrow2)
+{
+ struct ureg_dst temp0 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp1 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp2 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp3 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp4 = ureg_DECL_temporary(ureg);
+ struct ureg_dst temp5 = ureg_DECL_temporary(ureg);
+
+ ureg_MOV(ureg, ureg_writemask(temp0, TGSI_WRITEMASK_XY), pos);
+ ureg_MOV(ureg,
+ ureg_writemask(temp0, TGSI_WRITEMASK_Z),
+ ureg_scalar(const0124, TGSI_SWIZZLE_Y));
+
+ ureg_DP3(ureg, temp1, matrow0, ureg_src(temp0));
+ ureg_DP3(ureg, temp2, matrow1, ureg_src(temp0));
+ ureg_DP3(ureg, temp3, matrow2, ureg_src(temp0));
+ ureg_RCP(ureg, temp3, ureg_src(temp3));
+ ureg_MUL(ureg, temp1, ureg_src(temp1), ureg_src(temp3));
+ ureg_MUL(ureg, temp2, ureg_src(temp2), ureg_src(temp3));
+
+ ureg_MOV(ureg, ureg_writemask(temp5, TGSI_WRITEMASK_X), ureg_src(temp1));
+ ureg_MOV(ureg, ureg_writemask(temp5, TGSI_WRITEMASK_Y), ureg_src(temp2));
+
+ ureg_MUL(ureg, temp0, ureg_scalar(coords, TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp1,
+ ureg_scalar(coords, TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X), ureg_src(temp0));
+ ureg_ADD(ureg, temp1, ureg_src(temp1), ureg_src(temp1));
+ ureg_MUL(ureg, temp3,
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_Y));
+ ureg_MAD(ureg, temp4,
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(temp5), TGSI_SWIZZLE_X), ureg_src(temp3));
+ ureg_MOV(ureg, temp4, ureg_negate(ureg_src(temp4)));
+ ureg_MUL(ureg, temp2, ureg_scalar(coords, TGSI_SWIZZLE_Z), ureg_src(temp4));
+ ureg_MUL(ureg, temp0,
+ ureg_scalar(const0124, TGSI_SWIZZLE_W), ureg_src(temp2));
+ ureg_MUL(ureg, temp3, ureg_src(temp1), ureg_src(temp1));
+ ureg_SUB(ureg, temp2, ureg_src(temp3), ureg_src(temp0));
+ ureg_RSQ(ureg, temp2, ureg_abs(ureg_src(temp2)));
+ ureg_RCP(ureg, temp2, ureg_src(temp2));
+ ureg_SUB(ureg, temp1, ureg_src(temp2), ureg_src(temp1));
+ ureg_ADD(ureg, temp0,
+ ureg_scalar(coords, TGSI_SWIZZLE_Z),
+ ureg_scalar(coords, TGSI_SWIZZLE_Z));
+ ureg_RCP(ureg, temp0, ureg_src(temp0));
+ ureg_MUL(ureg, temp2, ureg_src(temp1), ureg_src(temp0));
+ ureg_TEX(ureg, out, TGSI_TEXTURE_1D, ureg_src(temp2), sampler);
+
+ ureg_release_temporary(ureg, temp0);
+ ureg_release_temporary(ureg, temp1);
+ ureg_release_temporary(ureg, temp2);
+ ureg_release_temporary(ureg, temp3);
+ ureg_release_temporary(ureg, temp4);
+ ureg_release_temporary(ureg, temp5);
+}
+
+static void *
+create_vs(struct pipe_context *pipe, unsigned vs_traits)
+{
+ struct ureg_program *ureg;
+ struct ureg_src src;
+ struct ureg_dst dst;
+ struct ureg_src const0, const1;
+ boolean is_fill = (vs_traits & VS_FILL) != 0;
+ boolean is_composite = (vs_traits & VS_COMPOSITE) != 0;
+ boolean has_mask = (vs_traits & VS_MASK) != 0;
+ boolean is_yuv = (vs_traits & VS_YUV) != 0;
+ unsigned input_slot = 0;
+
+ ureg = ureg_create(TGSI_PROCESSOR_VERTEX);
+ if (ureg == NULL)
+ return 0;
+
+ const0 = ureg_DECL_constant(ureg, 0);
+ const1 = ureg_DECL_constant(ureg, 1);
+
+ /* it has to be either a fill or a composite op */
+ debug_assert((is_fill ^ is_composite) ^ is_yuv);
+
+ src = ureg_DECL_vs_input(ureg, input_slot++);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_POSITION, 0);
+ src = vs_normalize_coords(ureg, src, const0, const1);
+ ureg_MOV(ureg, dst, src);
+
+ if (is_yuv) {
+ src = ureg_DECL_vs_input(ureg, input_slot++);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 0);
+ ureg_MOV(ureg, dst, src);
+ }
+
+ if (is_composite) {
+ src = ureg_DECL_vs_input(ureg, input_slot++);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 0);
+ ureg_MOV(ureg, dst, src);
+ }
+
+ if (is_fill) {
+ src = ureg_DECL_vs_input(ureg, input_slot++);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 0);
+ ureg_MOV(ureg, dst, src);
+ }
+
+ if (has_mask) {
+ src = ureg_DECL_vs_input(ureg, input_slot++);
+ dst = ureg_DECL_output(ureg, TGSI_SEMANTIC_GENERIC, 1);
+ ureg_MOV(ureg, dst, src);
+ }
+
+ ureg_END(ureg);
+
+ return ureg_create_shader_and_destroy(ureg, pipe);
+}
+
+static void *
+create_yuv_shader(struct pipe_context *pipe, struct ureg_program *ureg)
+{
+ struct ureg_src y_sampler, u_sampler, v_sampler;
+ struct ureg_src pos;
+ struct ureg_src matrow0, matrow1, matrow2;
+ struct ureg_dst y, u, v, rgb;
+ struct ureg_dst out = ureg_DECL_output(ureg,
+ TGSI_SEMANTIC_COLOR,
+ 0);
+
+ pos = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_GENERIC, 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+
+ rgb = ureg_DECL_temporary(ureg);
+ y = ureg_DECL_temporary(ureg);
+ u = ureg_DECL_temporary(ureg);
+ v = ureg_DECL_temporary(ureg);
+
+ y_sampler = ureg_DECL_sampler(ureg, 0);
+ u_sampler = ureg_DECL_sampler(ureg, 1);
+ v_sampler = ureg_DECL_sampler(ureg, 2);
+
+ matrow0 = ureg_DECL_constant(ureg, 0);
+ matrow1 = ureg_DECL_constant(ureg, 1);
+ matrow2 = ureg_DECL_constant(ureg, 2);
+
+ ureg_TEX(ureg, y, TGSI_TEXTURE_2D, pos, y_sampler);
+ ureg_TEX(ureg, u, TGSI_TEXTURE_2D, pos, u_sampler);
+ ureg_TEX(ureg, v, TGSI_TEXTURE_2D, pos, v_sampler);
+
+ ureg_SUB(ureg, u, ureg_src(u), ureg_scalar(matrow0, TGSI_SWIZZLE_W));
+ ureg_SUB(ureg, v, ureg_src(v), ureg_scalar(matrow0, TGSI_SWIZZLE_W));
+
+ ureg_MUL(ureg, rgb, ureg_scalar(ureg_src(y), TGSI_SWIZZLE_X), matrow0);
+ ureg_MAD(ureg, rgb,
+ ureg_scalar(ureg_src(u), TGSI_SWIZZLE_X), matrow1, ureg_src(rgb));
+ ureg_MAD(ureg, rgb,
+ ureg_scalar(ureg_src(v), TGSI_SWIZZLE_X), matrow2, ureg_src(rgb));
+
+ /* rgb.a = 1; */
+ ureg_MOV(ureg, ureg_writemask(rgb, TGSI_WRITEMASK_W),
+ ureg_scalar(matrow0, TGSI_SWIZZLE_X));
+
+ ureg_MOV(ureg, out, ureg_src(rgb));
+
+ ureg_release_temporary(ureg, rgb);
+ ureg_release_temporary(ureg, y);
+ ureg_release_temporary(ureg, u);
+ ureg_release_temporary(ureg, v);
+
+ ureg_END(ureg);
+
+ return ureg_create_shader_and_destroy(ureg, pipe);
+}
+
+static INLINE void
+xrender_tex(struct ureg_program *ureg,
+ struct ureg_dst dst,
+ struct ureg_src coords,
+ struct ureg_src sampler,
+ struct ureg_src imm0,
+ boolean repeat_none, boolean swizzle, boolean set_alpha)
+{
+ if (repeat_none) {
+ struct ureg_dst tmp0 = ureg_DECL_temporary(ureg);
+ struct ureg_dst tmp1 = ureg_DECL_temporary(ureg);
+
+ ureg_SGT(ureg, tmp1, ureg_swizzle(coords,
+ TGSI_SWIZZLE_X,
+ TGSI_SWIZZLE_Y,
+ TGSI_SWIZZLE_X,
+ TGSI_SWIZZLE_Y), ureg_scalar(imm0,
+ TGSI_SWIZZLE_X));
+ ureg_SLT(ureg, tmp0,
+ ureg_swizzle(coords, TGSI_SWIZZLE_X, TGSI_SWIZZLE_Y,
+ TGSI_SWIZZLE_X, TGSI_SWIZZLE_Y), ureg_scalar(imm0,
+ TGSI_SWIZZLE_W));
+ ureg_MIN(ureg, tmp0, ureg_src(tmp0), ureg_src(tmp1));
+ ureg_MIN(ureg, tmp0, ureg_scalar(ureg_src(tmp0), TGSI_SWIZZLE_X),
+ ureg_scalar(ureg_src(tmp0), TGSI_SWIZZLE_Y));
+ ureg_TEX(ureg, tmp1, TGSI_TEXTURE_2D, coords, sampler);
+ if (swizzle)
+ ureg_MOV(ureg, tmp1, ureg_swizzle(ureg_src(tmp1),
+ TGSI_SWIZZLE_Z,
+ TGSI_SWIZZLE_Y, TGSI_SWIZZLE_X,
+ TGSI_SWIZZLE_W));
+ if (set_alpha)
+ ureg_MOV(ureg,
+ ureg_writemask(tmp1, TGSI_WRITEMASK_W),
+ ureg_scalar(imm0, TGSI_SWIZZLE_W));
+ ureg_MUL(ureg, dst, ureg_src(tmp1), ureg_src(tmp0));
+ ureg_release_temporary(ureg, tmp0);
+ ureg_release_temporary(ureg, tmp1);
+ } else {
+ if (swizzle) {
+ struct ureg_dst tmp = ureg_DECL_temporary(ureg);
+
+ ureg_TEX(ureg, tmp, TGSI_TEXTURE_2D, coords, sampler);
+ ureg_MOV(ureg, dst, ureg_swizzle(ureg_src(tmp),
+ TGSI_SWIZZLE_Z,
+ TGSI_SWIZZLE_Y, TGSI_SWIZZLE_X,
+ TGSI_SWIZZLE_W));
+ ureg_release_temporary(ureg, tmp);
+ } else {
+ ureg_TEX(ureg, dst, TGSI_TEXTURE_2D, coords, sampler);
+ }
+ if (set_alpha)
+ ureg_MOV(ureg,
+ ureg_writemask(dst, TGSI_WRITEMASK_W),
+ ureg_scalar(imm0, TGSI_SWIZZLE_W));
+ }
+}
+
+static void *
+create_fs(struct pipe_context *pipe, unsigned fs_traits)
+{
+ struct ureg_program *ureg;
+ struct ureg_src /*dst_sampler, */ src_sampler, mask_sampler;
+ struct ureg_src /*dst_pos, */ src_input, mask_pos;
+ struct ureg_dst src, mask;
+ struct ureg_dst out;
+ struct ureg_src imm0 = { 0 };
+ unsigned has_mask = (fs_traits & FS_MASK) != 0;
+ unsigned is_fill = (fs_traits & FS_FILL) != 0;
+ unsigned is_composite = (fs_traits & FS_COMPOSITE) != 0;
+ unsigned is_solid = (fs_traits & FS_SOLID_FILL) != 0;
+ unsigned is_lingrad = (fs_traits & FS_LINGRAD_FILL) != 0;
+ unsigned is_radgrad = (fs_traits & FS_RADGRAD_FILL) != 0;
+ unsigned comp_alpha_mask = fs_traits & FS_COMPONENT_ALPHA;
+ unsigned is_yuv = (fs_traits & FS_YUV) != 0;
+ unsigned src_repeat_none = (fs_traits & FS_SRC_REPEAT_NONE) != 0;
+ unsigned mask_repeat_none = (fs_traits & FS_MASK_REPEAT_NONE) != 0;
+ unsigned src_swizzle = (fs_traits & FS_SRC_SWIZZLE_RGB) != 0;
+ unsigned mask_swizzle = (fs_traits & FS_MASK_SWIZZLE_RGB) != 0;
+ unsigned src_set_alpha = (fs_traits & FS_SRC_SET_ALPHA) != 0;
+ unsigned mask_set_alpha = (fs_traits & FS_MASK_SET_ALPHA) != 0;
+ unsigned src_luminance = (fs_traits & FS_SRC_LUMINANCE) != 0;
+ unsigned mask_luminance = (fs_traits & FS_MASK_LUMINANCE) != 0;
+
+#if 0
+ print_fs_traits(fs_traits);
+#else
+ (void)print_fs_traits;
+#endif
+
+ ureg = ureg_create(TGSI_PROCESSOR_FRAGMENT);
+ if (ureg == NULL)
+ return 0;
+
+ /* it has to be either a fill, a composite op or a yuv conversion */
+ debug_assert((is_fill ^ is_composite) ^ is_yuv);
+ (void)is_yuv;
+
+ out = ureg_DECL_output(ureg, TGSI_SEMANTIC_COLOR, 0);
+
+ if (src_repeat_none || mask_repeat_none ||
+ src_set_alpha || mask_set_alpha || src_luminance) {
+ imm0 = ureg_imm4f(ureg, 0, 0, 0, 1);
+ }
+ if (is_composite) {
+ src_sampler = ureg_DECL_sampler(ureg, 0);
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_GENERIC, 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ } else if (is_fill) {
+ if (is_solid)
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_COLOR, 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ else
+ src_input = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_POSITION, 0,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ } else {
+ debug_assert(is_yuv);
+ return create_yuv_shader(pipe, ureg);
+ }
+
+ if (has_mask) {
+ mask_sampler = ureg_DECL_sampler(ureg, 1);
+ mask_pos = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_GENERIC, 1,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+ }
+#if 0 /* unused right now */
+ dst_sampler = ureg_DECL_sampler(ureg, 2);
+ dst_pos = ureg_DECL_fs_input(ureg,
+ TGSI_SEMANTIC_POSITION, 2,
+ TGSI_INTERPOLATE_PERSPECTIVE);
+#endif
+
+ if (is_composite) {
+ if (has_mask || src_luminance)
+ src = ureg_DECL_temporary(ureg);
+ else
+ src = out;
+ xrender_tex(ureg, src, src_input, src_sampler, imm0,
+ src_repeat_none, src_swizzle, src_set_alpha);
+ } else if (is_fill) {
+ if (is_solid) {
+ if (has_mask || src_luminance)
+ src = ureg_dst(src_input);
+ else
+ ureg_MOV(ureg, out, src_input);
+ } else if (is_lingrad || is_radgrad) {
+ struct ureg_src coords, const0124, matrow0, matrow1, matrow2;
+
+ if (has_mask || src_luminance)
+ src = ureg_DECL_temporary(ureg);
+ else
+ src = out;
+
+ coords = ureg_DECL_constant(ureg, 0);
+ const0124 = ureg_DECL_constant(ureg, 1);
+ matrow0 = ureg_DECL_constant(ureg, 2);
+ matrow1 = ureg_DECL_constant(ureg, 3);
+ matrow2 = ureg_DECL_constant(ureg, 4);
+
+ if (is_lingrad) {
+ linear_gradient(ureg, src,
+ src_input, src_sampler,
+ coords, const0124, matrow0, matrow1, matrow2);
+ } else if (is_radgrad) {
+ radial_gradient(ureg, src,
+ src_input, src_sampler,
+ coords, const0124, matrow0, matrow1, matrow2);
+ }
+ } else
+ debug_assert(!"Unknown fill type!");
+ }
+ if (src_luminance) {
+ ureg_MOV(ureg, src, ureg_scalar(ureg_src(src), TGSI_SWIZZLE_X));
+ ureg_MOV(ureg, ureg_writemask(src, TGSI_WRITEMASK_XYZ),
+ ureg_scalar(imm0, TGSI_SWIZZLE_X));
+ if (!has_mask)
+ ureg_MOV(ureg, out, ureg_src(src));
+ }
+
+ if (has_mask) {
+ mask = ureg_DECL_temporary(ureg);
+ xrender_tex(ureg, mask, mask_pos, mask_sampler, imm0,
+ mask_repeat_none, mask_swizzle, mask_set_alpha);
+ /* src IN mask */
+ src_in_mask(ureg, out, ureg_src(src), ureg_src(mask),
+ comp_alpha_mask, mask_luminance);
+ ureg_release_temporary(ureg, mask);
+ }
+
+ ureg_END(ureg);
+
+ return ureg_create_shader_and_destroy(ureg, pipe);
+}
+
+struct xa_shaders *
+xa_shaders_create(struct xa_context *r)
+{
+ struct xa_shaders *sc = CALLOC_STRUCT(xa_shaders);
+
+ sc->r = r;
+ sc->vs_hash = cso_hash_create();
+ sc->fs_hash = cso_hash_create();
+
+ return sc;
+}
+
+static void
+cache_destroy(struct cso_context *cso,
+ struct cso_hash *hash, unsigned processor)
+{
+ struct cso_hash_iter iter = cso_hash_first_node(hash);
+
+ while (!cso_hash_iter_is_null(iter)) {
+ void *shader = (void *)cso_hash_iter_data(iter);
+
+ if (processor == PIPE_SHADER_FRAGMENT) {
+ cso_delete_fragment_shader(cso, shader);
+ } else if (processor == PIPE_SHADER_VERTEX) {
+ cso_delete_vertex_shader(cso, shader);
+ }
+ iter = cso_hash_erase(hash, iter);
+ }
+ cso_hash_delete(hash);
+}
+
+void
+xa_shaders_destroy(struct xa_shaders *sc)
+{
+ cache_destroy(sc->r->cso, sc->vs_hash, PIPE_SHADER_VERTEX);
+ cache_destroy(sc->r->cso, sc->fs_hash, PIPE_SHADER_FRAGMENT);
+
+ FREE(sc);
+}
+
+static INLINE void *
+shader_from_cache(struct pipe_context *pipe,
+ unsigned type, struct cso_hash *hash, unsigned key)
+{
+ void *shader = 0;
+
+ struct cso_hash_iter iter = cso_hash_find(hash, key);
+
+ if (cso_hash_iter_is_null(iter)) {
+ if (type == PIPE_SHADER_VERTEX)
+ shader = create_vs(pipe, key);
+ else
+ shader = create_fs(pipe, key);
+ cso_hash_insert(hash, key, shader);
+ } else
+ shader = (void *)cso_hash_iter_data(iter);
+
+ return shader;
+}
+
+struct xa_shader
+xa_shaders_get(struct xa_shaders *sc, unsigned vs_traits, unsigned fs_traits)
+{
+ struct xa_shader shader = { NULL, NULL };
+ void *vs, *fs;
+
+ vs = shader_from_cache(sc->r->pipe, PIPE_SHADER_VERTEX,
+ sc->vs_hash, vs_traits);
+ fs = shader_from_cache(sc->r->pipe, PIPE_SHADER_FRAGMENT,
+ sc->fs_hash, fs_traits);
+
+ debug_assert(vs && fs);
+ if (!vs || !fs)
+ return shader;
+
+ shader.vs = vs;
+ shader.fs = fs;
+
+ return shader;
+}
diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c
new file mode 100644
index 00000000000..12ee29c4647
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_tracker.c
@@ -0,0 +1,420 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Thomas Hellstrom
+ */
+
+#include "xa_tracker.h"
+#include "xa_priv.h"
+#include "pipe/p_state.h"
+#include "pipe/p_format.h"
+#include "state_tracker/drm_driver.h"
+#include "util/u_inlines.h"
+
+/*
+ * format_map [xa_surface_type][first..last in list].
+ * Needs to be updated when enum xa_formats is updated.
+ */
+
+static const enum xa_formats preferred_a[] = { xa_format_a8 };
+
+static const enum xa_formats preferred_argb[] =
+ { xa_format_a8r8g8b8, xa_format_x8r8g8b8, xa_format_r5g6b5,
+ xa_format_x1r5g5b5
+};
+static const enum xa_formats preferred_z[] =
+ { xa_format_z32, xa_format_z24, xa_format_z16 };
+static const enum xa_formats preferred_sz[] =
+ { xa_format_x8z24, xa_format_s8z24 };
+static const enum xa_formats preferred_zs[] =
+ { xa_format_z24x8, xa_format_z24s8 };
+static const enum xa_formats preferred_yuv[] = { xa_format_yuv8 };
+
+static const enum xa_formats *preferred[] =
+ { NULL, preferred_a, preferred_argb, NULL, NULL,
+ preferred_z, preferred_zs, preferred_sz, preferred_yuv
+};
+
+static const unsigned int num_preferred[] = { 0,
+ sizeof(preferred_a) / sizeof(enum xa_formats),
+ sizeof(preferred_argb) / sizeof(enum xa_formats),
+ 0,
+ 0,
+ sizeof(preferred_z) / sizeof(enum xa_formats),
+ sizeof(preferred_zs) / sizeof(enum xa_formats),
+ sizeof(preferred_sz) / sizeof(enum xa_formats),
+ sizeof(preferred_yuv) / sizeof(enum xa_formats)
+};
+
+static const unsigned int stype_bind[XA_LAST_SURFACE_TYPE] = { 0,
+ PIPE_BIND_SAMPLER_VIEW,
+ PIPE_BIND_SAMPLER_VIEW,
+ PIPE_BIND_SAMPLER_VIEW,
+ PIPE_BIND_SAMPLER_VIEW,
+ PIPE_BIND_DEPTH_STENCIL,
+ PIPE_BIND_DEPTH_STENCIL,
+ PIPE_BIND_DEPTH_STENCIL,
+ PIPE_BIND_SAMPLER_VIEW
+};
+
+static struct xa_format_descriptor
+xa_get_pipe_format(enum xa_formats xa_format)
+{
+ struct xa_format_descriptor fdesc;
+
+ fdesc.xa_format = xa_format;
+
+ switch (xa_format) {
+ case xa_format_a8r8g8b8:
+ fdesc.format = PIPE_FORMAT_B8G8R8A8_UNORM;
+ break;
+ case xa_format_x8r8g8b8:
+ fdesc.format = PIPE_FORMAT_B8G8R8X8_UNORM;
+ break;
+ case xa_format_r5g6b5:
+ fdesc.format = PIPE_FORMAT_B5G6R5_UNORM;
+ break;
+ case xa_format_x1r5g5b5:
+ fdesc.format = PIPE_FORMAT_B5G5R5A1_UNORM;
+ break;
+ case xa_format_a8:
+ fdesc.format = PIPE_FORMAT_L8_UNORM;
+ break;
+ case xa_format_z24:
+ fdesc.format = PIPE_FORMAT_Z24X8_UNORM;
+ break;
+ case xa_format_z16:
+ fdesc.format = PIPE_FORMAT_Z16_UNORM;
+ break;
+ case xa_format_z32:
+ fdesc.format = PIPE_FORMAT_Z32_UNORM;
+ break;
+ case xa_format_x8z24:
+ fdesc.format = PIPE_FORMAT_Z24X8_UNORM;
+ break;
+ case xa_format_z24x8:
+ fdesc.format = PIPE_FORMAT_X8Z24_UNORM;
+ break;
+ case xa_format_s8z24:
+ fdesc.format = PIPE_FORMAT_Z24_UNORM_S8_USCALED;
+ break;
+ case xa_format_z24s8:
+ fdesc.format = PIPE_FORMAT_S8_USCALED_Z24_UNORM;
+ break;
+ case xa_format_yuv8:
+ fdesc.format = PIPE_FORMAT_L8_UNORM;
+ break;
+ default:
+ fdesc.xa_format = xa_format_unknown;
+ break;
+ }
+ return fdesc;
+}
+
+struct xa_tracker *
+xa_tracker_create(int drm_fd)
+{
+ struct xa_tracker *xa = calloc(1, sizeof(struct xa_tracker));
+ enum xa_surface_type stype;
+ unsigned int num_formats;
+
+ if (!xa)
+ return NULL;
+
+ xa->screen = driver_descriptor.create_screen(drm_fd);
+ if (!xa->screen)
+ goto out_no_screen;
+
+ xa->default_ctx = xa_context_create(xa);
+ if (!xa->default_ctx)
+ goto out_no_pipe;
+
+ num_formats = 0;
+ for (stype = 0; stype < XA_LAST_SURFACE_TYPE; ++stype)
+ num_formats += num_preferred[stype];
+
+ num_formats += 1;
+ xa->supported_formats = calloc(num_formats, sizeof(*xa->supported_formats));
+ if (!xa->supported_formats)
+ goto out_sf_alloc_fail;
+
+ xa->supported_formats[0] = xa_format_unknown;
+ num_formats = 1;
+ memset(xa->format_map, 0, sizeof(xa->format_map));
+
+ for (stype = 0; stype < XA_LAST_SURFACE_TYPE; ++stype) {
+ unsigned int bind = stype_bind[stype];
+ enum xa_formats xa_format;
+ int i;
+
+ for (i = 0; i < num_preferred[stype]; ++i) {
+ xa_format = preferred[stype][i];
+
+ struct xa_format_descriptor fdesc = xa_get_pipe_format(xa_format);
+
+ if (xa->screen->is_format_supported(xa->screen, fdesc.format,
+ PIPE_TEXTURE_2D, 0, bind)) {
+ if (xa->format_map[stype][0] == 0)
+ xa->format_map[stype][0] = num_formats;
+ xa->format_map[stype][1] = num_formats;
+ xa->supported_formats[num_formats++] = xa_format;
+ }
+ }
+ }
+ return xa;
+
+ out_sf_alloc_fail:
+ xa_context_destroy(xa->default_ctx);
+ out_no_pipe:
+ xa->screen->destroy(xa->screen);
+ out_no_screen:
+ free(xa);
+ return NULL;
+}
+
+void
+xa_tracker_destroy(struct xa_tracker *xa)
+{
+ free(xa->supported_formats);
+ xa_context_destroy(xa->default_ctx);
+ xa->screen->destroy(xa->screen);
+ free(xa);
+}
+
+static int
+xa_flags_compat(unsigned int old_flags, unsigned int new_flags)
+{
+ unsigned int flag_diff = (old_flags ^ new_flags);
+
+ if (flag_diff == 0)
+ return 1;
+
+ if (flag_diff & XA_FLAG_SHARED)
+ return 0;
+ /*
+ * Don't recreate if we're dropping the render target flag.
+ */
+ if (flag_diff & XA_FLAG_RENDER_TARGET)
+ return ((new_flags & XA_FLAG_RENDER_TARGET) == 0);
+
+ /*
+ * Always recreate for unknown / unimplemented flags.
+ */
+ return 0;
+}
+
+static struct xa_format_descriptor
+xa_get_format_stype_depth(struct xa_tracker *xa,
+ enum xa_surface_type stype, unsigned int depth)
+{
+ unsigned int i;
+ struct xa_format_descriptor fdesc;
+ int found = 0;
+
+ for (i = xa->format_map[stype][0]; i <= xa->format_map[stype][1]; ++i) {
+ fdesc = xa_get_pipe_format(xa->supported_formats[i]);
+ if (fdesc.xa_format != xa_format_unknown &&
+ xa_format_depth(fdesc.xa_format) == depth) {
+ found = 1;
+ break;
+ }
+ }
+
+ if (!found)
+ fdesc.xa_format = xa_format_unknown;
+
+ return fdesc;
+}
+
+struct xa_surface *
+xa_surface_create(struct xa_tracker *xa,
+ int width,
+ int height,
+ int depth,
+ enum xa_surface_type stype,
+ enum xa_formats xa_format, unsigned int flags)
+{
+ struct pipe_resource *template;
+ struct xa_surface *srf;
+ struct xa_format_descriptor fdesc;
+
+ if (xa_format == xa_format_unknown)
+ fdesc = xa_get_format_stype_depth(xa, stype, depth);
+ else
+ fdesc = xa_get_pipe_format(xa_format);
+
+ if (fdesc.xa_format == xa_format_unknown)
+ return NULL;
+
+ srf = calloc(1, sizeof(*srf));
+ if (!srf)
+ return NULL;
+
+ template = &srf->template;
+ template->format = fdesc.format;
+ template->target = PIPE_TEXTURE_2D;
+ template->width0 = width;
+ template->height0 = height;
+ template->depth0 = 1;
+ template->array_size = 1;
+ template->last_level = 0;
+ template->bind = stype_bind[xa_format_type(fdesc.xa_format)];
+
+ if (flags & XA_FLAG_SHARED)
+ template->bind |= PIPE_BIND_SHARED;
+ if (flags & XA_FLAG_RENDER_TARGET)
+ template->bind |= PIPE_BIND_RENDER_TARGET;
+
+ srf->tex = xa->screen->resource_create(xa->screen, template);
+ if (!srf->tex)
+ goto out_no_tex;
+
+ srf->srf = NULL;
+ srf->xa = xa;
+ srf->flags = flags;
+ srf->fdesc = fdesc;
+
+ return srf;
+ out_no_tex:
+ free(srf);
+ return NULL;
+}
+
+int
+xa_surface_redefine(struct xa_surface *srf,
+ int width,
+ int height,
+ int depth,
+ enum xa_surface_type stype,
+ enum xa_formats xa_format,
+ unsigned int add_flags,
+ unsigned int remove_flags, int copy_contents)
+{
+ struct pipe_resource *template = &srf->template;
+ struct pipe_resource *texture;
+ struct pipe_box src_box;
+ struct xa_tracker *xa = srf->xa;
+ int save_width;
+ int save_height;
+ unsigned int new_flags = (srf->flags | add_flags) & ~(remove_flags);
+ struct xa_format_descriptor fdesc;
+
+ if (xa_format == xa_format_unknown)
+ fdesc = xa_get_format_stype_depth(xa, stype, depth);
+ else
+ fdesc = xa_get_pipe_format(xa_format);
+
+ if (width == template->width0 && height == template->height0 &&
+ template->format == fdesc.format &&
+ xa_flags_compat(srf->flags, new_flags))
+ return XA_ERR_NONE;
+
+ template->bind = stype_bind[xa_format_type(fdesc.xa_format)];
+ if (new_flags & XA_FLAG_SHARED)
+ template->bind |= PIPE_BIND_SHARED;
+ if (new_flags & XA_FLAG_RENDER_TARGET)
+ template->bind |= PIPE_BIND_RENDER_TARGET;
+
+ if (copy_contents) {
+ if (!xa_format_type_is_color(fdesc.xa_format) ||
+ xa_format_type(fdesc.xa_format) == xa_type_a)
+ return -XA_ERR_INVAL;
+
+ if (!xa->screen->is_format_supported(xa->screen, fdesc.format,
+ PIPE_TEXTURE_2D, 0,
+ template->bind |
+ PIPE_BIND_RENDER_TARGET))
+ return -XA_ERR_INVAL;
+ }
+
+ save_width = template->width0;
+ save_height = template->height0;
+
+ template->width0 = width;
+ template->height0 = height;
+
+ texture = xa->screen->resource_create(xa->screen, template);
+ if (!texture) {
+ template->width0 = save_width;
+ template->height0 = save_height;
+ return -XA_ERR_NORES;
+ }
+
+ pipe_surface_reference(&srf->srf, NULL);
+
+ if (copy_contents) {
+ struct pipe_context *pipe = xa->default_ctx->pipe;
+
+ u_box_origin_2d(xa_min(save_width, template->width0),
+ xa_min(save_height, template->height0), &src_box);
+ pipe->resource_copy_region(pipe, texture,
+ 0, 0, 0, 0, srf->tex, 0, &src_box);
+ pipe->flush(pipe, &xa->default_ctx->last_fence);
+ }
+
+ pipe_resource_reference(&srf->tex, texture);
+ pipe_resource_reference(&texture, NULL);
+ srf->fdesc = fdesc;
+ srf->flags = new_flags;
+
+ return XA_ERR_NONE;
+}
+
+void
+xa_surface_destroy(struct xa_surface *srf)
+{
+ pipe_surface_reference(&srf->srf, NULL);
+ pipe_resource_reference(&srf->tex, NULL);
+ free(srf);
+}
+
+extern void
+xa_tracker_version(int *major, int *minor, int *patch)
+{
+ *major = XA_TRACKER_VERSION_MAJOR;
+ *minor = XA_TRACKER_VERSION_MINOR;
+ *patch = XA_TRACKER_VERSION_PATCH;
+}
+
+extern int
+xa_surface_handle(struct xa_surface *srf,
+ uint32_t * handle, unsigned int *stride)
+{
+ struct winsys_handle whandle;
+
+ struct pipe_screen *screen = srf->xa->screen;
+ boolean res;
+
+ memset(&whandle, 0, sizeof(whandle));
+ whandle.type = DRM_API_HANDLE_TYPE_SHARED;
+ res = screen->resource_get_handle(screen, srf->tex, &whandle);
+ if (!res)
+ return -XA_ERR_INVAL;
+
+ *handle = whandle.handle;
+ *stride = whandle.stride;
+
+ return XA_ERR_NONE;
+}
diff --git a/src/gallium/state_trackers/xa/xa_tracker.h b/src/gallium/state_trackers/xa/xa_tracker.h
new file mode 100644
index 00000000000..3090de6fbbb
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_tracker.h
@@ -0,0 +1,174 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ * The format encoding idea is partially borrowed from libpixman, but it is not
+ * considered a "substantial part of the software", so the pixman copyright
+ * is left out for simplicity, and acknowledgment is instead given in this way.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+
+#ifndef _XA_TRACKER_H_
+#define _XA_TRACKER_H_
+
+#include
+
+#define XA_TRACKER_VERSION_MAJOR 0
+#define XA_TRACKER_VERSION_MINOR 1
+#define XA_TRACKER_VERSION_PATCH 0
+
+#define XA_FLAG_SHARED (1 << 0)
+#define XA_FLAG_RENDER_TARGET (1 << 1)
+
+#define XA_MAP_READ (1 << 0)
+#define XA_MAP_WRITE (1 << 1)
+
+#define XA_ERR_NONE 0
+#define XA_ERR_NORES 1
+#define XA_ERR_INVAL 2
+#define XA_ERR_BUSY 3
+
+enum xa_surface_type {
+ xa_type_other,
+ xa_type_a,
+ xa_type_argb,
+ xa_type_abgr,
+ xa_type_bgra,
+ xa_type_z,
+ xa_type_zs,
+ xa_type_sz,
+ xa_type_yuv_component
+};
+
+/*
+ * Note that these formats should not be assumed to be binary compatible with
+ * pixman formats, but with the below macros and a format type map,
+ * conversion should be simple. Macros for now. We might replace with
+ * inline functions.
+ */
+
+#define xa_format(bpp,type,a,r,g,b) (((bpp) << 24) | \
+ ((type) << 16) | \
+ ((a) << 12) | \
+ ((r) << 8) | \
+ ((g) << 4) | \
+ ((b)))
+/*
+ * Non-RGBA one- and two component formats.
+ */
+
+#define xa_format_c(bpp,type,c1,c2) (((bpp) << 24) | \
+ ((type) << 16) | \
+ ((c1) << 8) | \
+ ((c2)))
+#define xa_format_bpp(f) (((f) >> 24) )
+#define xa_format_type(f) (((f) >> 16) & 0xff)
+#define xa_format_a(f) (((f) >> 12) & 0x0f)
+#define xa_format_r(f) (((f) >> 8) & 0x0f)
+#define xa_format_g(f) (((f) >> 4) & 0x0f)
+#define xa_format_b(f) (((f) ) & 0x0f)
+#define xa_format_rgb(f) (((f) ) & 0xfff)
+#define xa_format_c1(f) (((f) >> 8 ) & 0xff)
+#define xa_format_c2(f) (((f) ) & 0xff)
+#define xa_format_argb_depth(f) (xa_format_a(f) + \
+ xa_format_r(f) + \
+ xa_format_g(f) + \
+ xa_format_b(f))
+#define xa_format_c_depth(f) (xa_format_c1(f) + \
+ xa_format_c2(f))
+
+static inline int
+xa_format_type_is_color(uint32_t xa_format)
+{
+ return (xa_format_type(xa_format) < xa_type_z);
+}
+
+static inline unsigned int
+xa_format_depth(uint32_t xa_format)
+{
+ return ((xa_format_type_is_color(xa_format)) ?
+ xa_format_argb_depth(xa_format) : xa_format_c_depth(xa_format));
+}
+
+enum xa_formats {
+ xa_format_unknown = 0,
+ xa_format_a8 = xa_format(8, xa_type_a, 8, 0, 0, 0),
+
+ xa_format_a8r8g8b8 = xa_format(32, xa_type_argb, 8, 8, 8, 8),
+ xa_format_x8r8g8b8 = xa_format(32, xa_type_argb, 0, 8, 8, 8),
+ xa_format_r5g6b5 = xa_format(16, xa_type_argb, 0, 5, 6, 5),
+ xa_format_x1r5g5b5 = xa_format(16, xa_type_argb, 0, 5, 5, 5),
+
+ xa_format_z16 = xa_format_c(16, xa_type_z, 16, 0),
+ xa_format_z32 = xa_format_c(32, xa_type_z, 32, 0),
+ xa_format_z24 = xa_format_c(32, xa_type_z, 24, 0),
+
+ xa_format_x8z24 = xa_format_c(32, xa_type_sz, 24, 0),
+ xa_format_s8z24 = xa_format_c(32, xa_type_sz, 24, 8),
+ xa_format_z24x8 = xa_format_c(32, xa_type_zs, 24, 0),
+ xa_format_z24s8 = xa_format_c(32, xa_type_zs, 24, 8),
+
+ xa_format_yuv8 = xa_format_c(8, xa_type_yuv_component, 8, 0)
+};
+
+struct xa_tracker;
+struct xa_surface;
+
+struct xa_box {
+ uint16_t x1, y1, x2, y2;
+};
+
+extern void xa_tracker_version(int *major, int *minor, int *patch);
+
+extern struct xa_tracker *xa_tracker_create(int drm_fd);
+
+extern void xa_tracker_destroy(struct xa_tracker *xa);
+
+extern struct xa_surface *xa_surface_create(struct xa_tracker *xa,
+ int width,
+ int height,
+ int depth,
+ enum xa_surface_type stype,
+ enum xa_formats pform,
+ unsigned int flags);
+
+enum xa_formats xa_surface_pict_format(const struct xa_surface *srf);
+
+extern void xa_surface_destroy(struct xa_surface *srf);
+
+extern int xa_surface_redefine(struct xa_surface *srf,
+ int width,
+ int height,
+ int depth,
+ enum xa_surface_type stype,
+ enum xa_formats rgb_format,
+ unsigned int add_flags,
+ unsigned int remove_flags, int copy_contents);
+
+extern int xa_surface_handle(struct xa_surface *srf,
+ uint32_t * handle, unsigned int *byte_stride);
+
+#endif
diff --git a/src/gallium/state_trackers/xa/xa_yuv.c b/src/gallium/state_trackers/xa/xa_yuv.c
new file mode 100644
index 00000000000..248c77ab645
--- /dev/null
+++ b/src/gallium/state_trackers/xa/xa_yuv.c
@@ -0,0 +1,178 @@
+/**********************************************************
+ * Copyright 2009-2011 VMware, Inc. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ *********************************************************
+ * Authors:
+ * Zack Rusin
+ * Thomas Hellstrom
+ */
+
+#include "xa_context.h"
+#include "xa_priv.h"
+#include "util/u_inlines.h"
+#include "util/u_sampler.h"
+#include "util/u_surface.h"
+#include "cso_cache/cso_context.h"
+
+static void
+xa_yuv_bind_blend_state(struct xa_context *r)
+{
+ struct pipe_blend_state blend;
+
+ memset(&blend, 0, sizeof(struct pipe_blend_state));
+ blend.rt[0].blend_enable = 0;
+ blend.rt[0].colormask = PIPE_MASK_RGBA;
+
+ /* porter&duff src */
+ blend.rt[0].rgb_src_factor = PIPE_BLENDFACTOR_ONE;
+ blend.rt[0].alpha_src_factor = PIPE_BLENDFACTOR_ONE;
+ blend.rt[0].rgb_dst_factor = PIPE_BLENDFACTOR_ZERO;
+ blend.rt[0].alpha_dst_factor = PIPE_BLENDFACTOR_ZERO;
+
+ cso_set_blend(r->cso, &blend);
+}
+
+static void
+xa_yuv_bind_shaders(struct xa_context *r)
+{
+ unsigned vs_traits = 0, fs_traits = 0;
+ struct xa_shader shader;
+
+ vs_traits |= VS_YUV;
+ fs_traits |= FS_YUV;
+
+ shader = xa_shaders_get(r->shaders, vs_traits, fs_traits);
+ cso_set_vertex_shader_handle(r->cso, shader.vs);
+ cso_set_fragment_shader_handle(r->cso, shader.fs);
+}
+
+static void
+xa_yuv_bind_samplers(struct xa_context *r, struct xa_surface *yuv[])
+{
+ struct pipe_sampler_state *samplers[3];
+ struct pipe_sampler_state sampler;
+ struct pipe_sampler_view *views[3];
+ struct pipe_sampler_view view_templ;
+ unsigned int i;
+
+ memset(&sampler, 0, sizeof(struct pipe_sampler_state));
+
+ sampler.wrap_s = PIPE_TEX_WRAP_CLAMP;
+ sampler.wrap_t = PIPE_TEX_WRAP_CLAMP;
+ sampler.min_img_filter = PIPE_TEX_FILTER_LINEAR;
+ sampler.mag_img_filter = PIPE_TEX_FILTER_LINEAR;
+ sampler.min_mip_filter = PIPE_TEX_MIPFILTER_NEAREST;
+ sampler.normalized_coords = 1;
+
+ for (i = 0; i < 3; ++i) {
+ samplers[i] = &sampler;
+ if (!yuv[i]->view) {
+ u_sampler_view_default_template(&view_templ,
+ yuv[i]->tex, yuv[i]->tex->format);
+
+ yuv[i]->view = r->pipe->create_sampler_view(r->pipe,
+ yuv[i]->tex,
+ &view_templ);
+ }
+ views[i] = yuv[i]->view;
+ }
+
+ cso_set_samplers(r->cso, 3, (const struct pipe_sampler_state **)samplers);
+ cso_set_fragment_sampler_views(r->cso, 3, views);
+}
+
+static void
+xa_yuv_fs_constants(struct xa_context *r, const float conversion_matrix[])
+{
+ const int param_bytes = 12 * sizeof(float);
+
+ renderer_set_constants(r, PIPE_SHADER_FRAGMENT,
+ conversion_matrix, param_bytes);
+}
+
+static void
+xa_yuv_destroy_sampler_views(struct xa_surface *yuv[])
+{
+ unsigned int i;
+
+ for (i = 0; i < 3; ++i) {
+ pipe_sampler_view_reference(&yuv[i]->view, NULL);
+ }
+}
+
+extern int
+xa_yuv_planar_blit(struct xa_context *r,
+ int src_x,
+ int src_y,
+ int src_w,
+ int src_h,
+ int dst_x,
+ int dst_y,
+ int dst_w,
+ int dst_h,
+ struct xa_box *box,
+ unsigned int num_boxes,
+ const float conversion_matrix[],
+ struct xa_surface *dst, struct xa_surface *yuv[])
+{
+ float scale_x;
+ float scale_y;
+ struct pipe_surface srf_templ;
+
+ if (dst_w == 0 || dst_h == 0)
+ return XA_ERR_NONE;
+
+ memset(&srf_templ, 0, sizeof(srf_templ));
+ u_surface_default_template(&srf_templ, dst->tex, PIPE_BIND_RENDER_TARGET);
+ dst->srf = r->pipe->create_surface(r->pipe, dst->tex, &srf_templ);
+ if (!dst->srf)
+ return -XA_ERR_NORES;
+
+ renderer_bind_destination(r, dst->srf, dst->srf->width, dst->srf->height);
+ xa_yuv_bind_blend_state(r);
+ xa_yuv_bind_shaders(r);
+ xa_yuv_bind_samplers(r, yuv);
+ xa_yuv_fs_constants(r, conversion_matrix);
+
+ scale_x = (float)src_w / (float)dst_w;
+ scale_y = (float)src_h / (float)dst_h;
+
+ while (num_boxes--) {
+ int x = box->x1;
+ int y = box->y1;
+ int w = box->x2 - box->x1;
+ int h = box->y2 - box->y1;
+
+ renderer_draw_yuv(r,
+ (float)src_x + scale_x * (x - dst_x),
+ (float)src_y + scale_y * (y - dst_y),
+ scale_x * w, scale_y * h, x, y, w, h, yuv);
+ }
+
+ r->pipe->flush(r->pipe, &r->last_fence);
+
+ xa_yuv_destroy_sampler_views(yuv);
+ pipe_surface_reference(&dst->srf, NULL);
+
+ return XA_ERR_NONE;
+}
diff --git a/src/gallium/targets/xa-vmwgfx/Makefile b/src/gallium/targets/xa-vmwgfx/Makefile
new file mode 100644
index 00000000000..9496b22b51c
--- /dev/null
+++ b/src/gallium/targets/xa-vmwgfx/Makefile
@@ -0,0 +1,100 @@
+TOP = ../../../..
+include $(TOP)/configs/current
+
+##### MACROS #####
+
+XA_MAJOR = 0
+XA_MINOR = 1
+XA_TINY = 0
+XA_CFLAGS = -g -fPIC
+
+XA_INCLUDES= -I$(TOP)/src/gallium/ \
+ -I$(TOP)/src/gallium/auxiliary \
+ -I$(TOP)/src/gallium/include \
+ -I$(TOP)/src/gallium/winsys \
+ -I$(TOP)/src/gallium/drivers
+
+XA_LIB = xatracker
+XA_LIB_NAME = lib$(XA_LIB).so
+XA_LIB_GLOB = lib$(XA_LIB)*.so*
+XA_LIB_DEPS = \
+ $(TOP)/src/gallium/state_trackers/xa/libxatracker.o \
+ $(TOP)/src/gallium/winsys/svga/drm/libsvgadrm.a \
+ $(TOP)/src/gallium/drivers/svga/libsvga.a \
+ $(TOP)/src/gallium/drivers/trace/libtrace.a \
+ $(TOP)/src/gallium/drivers/rbug/librbug.a
+
+
+COMMON_GALLIUM_SOURCES=
+
+SOURCES = vmw_target.c
+OBJECTS = $(SOURCES:.c=.o)
+
+ifeq ($(MESA_LLVM),1)
+LDFLAGS += $(LLVM_LDFLAGS)
+GALLIUM_AUXILIARIES += $(LLVM_LIBS)
+else
+LDFLAGS += -lstdc++
+endif
+
+##### RULES #####
+
+.c.o:
+ $(CC) -c $(XA_CFLAGS) $(XA_INCLUDES) $<
+
+
+##### TARGETS #####
+
+default: $(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME)
+
+
+# Make the library
+$(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_NAME): depend $(OBJECTS) $(XA_LIB_DEPS)
+ $(MKLIB) -o $(XA_LIB) -linker $(CC) -ldflags '$(LDFLAGS)' \
+ -major $(XA_MAJOR) -minor $(XA_MINOR) -patch $(XA_TINY) \
+ $(MKLIB_OPTIONS) \
+ -exports $(TOP)/src/gallium/state_trackers/xa/xa_symbols\
+ -install $(TOP)/$(LIB_DIR)/gallium \
+ $(OBJECTS) $(XA_LIB_DEPS) $(GALLIUM_AUXILIARIES)
+
+# xa pkgconfig file
+pcedit = sed \
+ -e 's,@INSTALL_DIR@,$(INSTALL_DIR),g' \
+ -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),g' \
+ -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),g' \
+ -e 's,@VERSION@,$(XA_MAJOR).$(XA_MINOR).$(XA_TINY),g' \
+ -e 's,@XA_PC_REQ_PRIV@,$(XA_PC_REQ_PRIV),g' \
+ -e 's,@XA_PC_LIB_PRIV@,$(XA_PC_LIB_PRIV),g' \
+ -e 's,@XA_PC_CFLAGS@,$(XA_PC_CFLAGS),g' \
+ -e 's,@XA_LIB@,$(XA_LIB),g'
+xatracker.pc: xatracker.pc.in
+ $(pcedit) $< > $@
+
+install: xatracker.pc
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+ $(INSTALL) -m 644 $(TOP)/src/gallium/state_trackers/xa/xa_tracker.h $(DESTDIR)$(INSTALL_INC_DIR)
+ $(INSTALL) -m 644 $(TOP)/src/gallium/state_trackers/xa/xa_context.h $(DESTDIR)$(INSTALL_INC_DIR)
+ $(MINSTALL) -m 755 $(TOP)/$(LIB_DIR)/gallium/$(XA_LIB_GLOB) $(DESTDIR)$(INSTALL_LIB_DIR)
+ $(INSTALL) -m 644 xatracker.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+
+clean:
+ -rm -f *.o *~
+ -rm -f *.lo
+ -rm -f *.la
+ -rm -f *.pc
+ -rm -rf .libs
+ -rm -f depend depend.bak exptmp
+
+
+depend: $(SOURCES)
+ @ echo "running $(MKDEP)"
+ @ rm -f depend
+ @ touch depend
+ @ $(MKDEP) $(MKDEP_OPTIONS) -I$(TOP)/include $(XA_INCLUDES) $(SOURCES) \
+ > /dev/null
+
+-include depend
+
+FORCE:
diff --git a/src/gallium/targets/xa-vmwgfx/vmw_target.c b/src/gallium/targets/xa-vmwgfx/vmw_target.c
new file mode 100644
index 00000000000..f4a49d9a6f2
--- /dev/null
+++ b/src/gallium/targets/xa-vmwgfx/vmw_target.c
@@ -0,0 +1,27 @@
+
+#include "target-helpers/inline_debug_helper.h"
+#include "state_tracker/drm_driver.h"
+#include "svga/drm/svga_drm_public.h"
+#include "svga/svga_public.h"
+#include "xa_tracker.h"
+
+static struct pipe_screen *
+create_screen(int fd)
+{
+ struct svga_winsys_screen *sws;
+ struct pipe_screen *screen;
+
+ sws = svga_drm_winsys_screen_create(fd);
+ if (!sws)
+ return NULL;
+
+ screen = svga_screen_create(sws);
+ if (!screen)
+ return NULL;
+
+ screen = debug_screen_wrap(screen);
+
+ return screen;
+}
+
+DRM_DRIVER_DESCRIPTOR("vmwgfx", "vmwgfx", create_screen)
diff --git a/src/gallium/targets/xa-vmwgfx/xatracker.pc.in b/src/gallium/targets/xa-vmwgfx/xatracker.pc.in
new file mode 100644
index 00000000000..4ea2f4057d7
--- /dev/null
+++ b/src/gallium/targets/xa-vmwgfx/xatracker.pc.in
@@ -0,0 +1,13 @@
+prefix=@INSTALL_DIR@
+exec_prefix=${prefix}
+libdir=@INSTALL_LIB_DIR@
+includedir=@INSTALL_INC_DIR@
+
+Name: xatracker
+Description: Xorg Gallium3D acceleration library
+Requires:
+Requires.private: @XA_PC_REQ_PRIV@
+Version: @VERSION@
+Libs: -L${libdir} -l@XA_LIB@
+Libs.private: @XA_PC_LIB_PRIV@
+Cflags: -I${includedir} @XA_PC_CFLAGS@
From 6f243ec25d88589747c7a595903e201b90a4d767 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Wed, 15 Jun 2011 14:26:41 +0200
Subject: [PATCH 099/406] r600g: disable render condition for some blitter
operations
---
src/gallium/drivers/r600/r600_blit.c | 33 ++++++++++++++++++++++-----
src/gallium/drivers/r600/r600_pipe.h | 4 ++++
src/gallium/drivers/r600/r600_query.c | 3 +++
3 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index e9f35c10ac1..043c8759f56 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -27,9 +27,18 @@
enum r600_blitter_op /* bitmask */
{
- R600_CLEAR = 1,
- R600_CLEAR_SURFACE = 2,
- R600_COPY = 4
+ R600_SAVE_TEXTURES = 1,
+ R600_SAVE_FRAMEBUFFER = 2,
+ R600_DISABLE_RENDER_COND = 4,
+
+ R600_CLEAR = 0,
+
+ R600_CLEAR_SURFACE = R600_SAVE_FRAMEBUFFER,
+
+ R600_COPY = R600_SAVE_FRAMEBUFFER | R600_SAVE_TEXTURES |
+ R600_DISABLE_RENDER_COND,
+
+ R600_DECOMPRESS = R600_SAVE_FRAMEBUFFER | R600_DISABLE_RENDER_COND,
};
static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op)
@@ -58,10 +67,10 @@ static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op
rctx->vbuf_mgr->nr_vertex_buffers,
rctx->vbuf_mgr->vertex_buffer);
- if (op & (R600_CLEAR_SURFACE | R600_COPY))
+ if (op & R600_SAVE_FRAMEBUFFER)
util_blitter_save_framebuffer(rctx->blitter, &rctx->framebuffer);
- if (op & R600_COPY) {
+ if (op & R600_SAVE_TEXTURES) {
util_blitter_save_fragment_sampler_states(
rctx->blitter, rctx->ps_samplers.n_samplers,
(void**)rctx->ps_samplers.samplers);
@@ -71,11 +80,23 @@ static void r600_blitter_begin(struct pipe_context *ctx, enum r600_blitter_op op
(struct pipe_sampler_view**)rctx->ps_samplers.views);
}
+ if ((op & R600_DISABLE_RENDER_COND) && rctx->current_render_cond) {
+ rctx->saved_render_cond = rctx->current_render_cond;
+ rctx->saved_render_cond_mode = rctx->current_render_cond_mode;
+ rctx->context.render_condition(&rctx->context, NULL, 0);
+ }
+
}
static void r600_blitter_end(struct pipe_context *ctx)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
+ if (rctx->saved_render_cond) {
+ rctx->context.render_condition(&rctx->context,
+ rctx->saved_render_cond,
+ rctx->saved_render_cond_mode);
+ rctx->saved_render_cond = NULL;
+ }
r600_context_queries_resume(&rctx->ctx);
rctx->blit = false;
}
@@ -107,7 +128,7 @@ void r600_blit_uncompress_depth(struct pipe_context *ctx, struct r600_resource_t
rctx->family == CHIP_RV620 || rctx->family == CHIP_RV635)
depth = 0.0f;
- r600_blitter_begin(ctx, R600_CLEAR_SURFACE);
+ r600_blitter_begin(ctx, R600_DECOMPRESS);
util_blitter_custom_depth_stencil(rctx->blitter, zsurf, cbsurf, rctx->custom_dsa_flush, depth);
r600_blitter_end(ctx);
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index 5e534ca905c..84a45bec05d 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -191,6 +191,10 @@ struct r600_pipe_context {
struct r600_pipe_rasterizer *rasterizer;
struct r600_pipe_state vgt;
struct r600_pipe_state spi;
+ struct pipe_query *current_render_cond;
+ unsigned current_render_cond_mode;
+ struct pipe_query *saved_render_cond;
+ unsigned saved_render_cond_mode;
/* shader information */
unsigned sprite_coord_enable;
boolean flatshade;
diff --git a/src/gallium/drivers/r600/r600_query.c b/src/gallium/drivers/r600/r600_query.c
index 181ea3f9e49..bedb48b6031 100644
--- a/src/gallium/drivers/r600/r600_query.c
+++ b/src/gallium/drivers/r600/r600_query.c
@@ -75,6 +75,9 @@ static void r600_render_condition(struct pipe_context *ctx,
struct r600_query *rquery = (struct r600_query *)query;
int wait_flag = 0;
+ rctx->current_render_cond = query;
+ rctx->current_render_cond_mode = mode;
+
if (!query) {
rctx->ctx.predicate_drawing = false;
r600_query_predication(&rctx->ctx, NULL, PREDICATION_OP_CLEAR, 1);
From d105f6684dfbfe596e57ddeb9377e7f9e4e57dcb Mon Sep 17 00:00:00 2001
From: Chad Versace
Date: Wed, 8 Jun 2011 21:51:10 -0700
Subject: [PATCH 100/406] i965/gen5,6: Fix hang when emitting hiz buffer
without stencil buffer
When emitting either a hiz or stencil buffer, the 'separate stencil
enable' and 'hiz enable' bits are set in 3DSTATE_DEPTH_BUFFER. Therefore
we must emit both 3DSTATE_HIER_DEPTH_BUFFER and 3DSTATE_STENCIL_BUFFER.
Even if there is no stencil buffer, 3DSTATE_STENCIL_BUFFER must be
emitted; failure to do so causes a hang on gen5 and a stall on gen6.
This also fixes a silly, obvious segfault that occured when a hiz buffer
xor separate stencil buffer existed.
Fixes the piglit tests below on Gen5 when hiz and separate stencil are
manually enabled:
fbo-alphatest-nocolor
fbo-depth-sample-compare
fbo
hiz-depth-read-fbo-d24-s0
hiz-depth-stencil-test-fbo-d24-s0
hiz-depth-test-fbo-d24-s0
hiz-stencil-read-fbo-d0-s8
hiz-stencil-test-fbo-d0-s8
fbo-missing-attachment-clear
fbo-clear-formats
fbo-depth-*
Changes piglit test result from crash to fail:
hiz-depth-stencil-test-fbo-d0-s8
Signed-off-by: Chad Versace
---
src/mesa/drivers/dri/i965/brw_misc_state.c | 58 +++++++++++++++-------
1 file changed, 40 insertions(+), 18 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 2b5ec8ac677..1f3b64fd538 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -355,26 +355,48 @@ static void emit_depthbuffer(struct brw_context *brw)
ADVANCE_BATCH();
}
- /* Emit hiz buffer. */
if (hiz_region || stencil_irb) {
- BEGIN_BATCH(3);
- OUT_BATCH((_3DSTATE_HIER_DEPTH_BUFFER << 16) | (3 - 2));
- OUT_BATCH(hiz_region->pitch * hiz_region->cpp - 1);
- OUT_RELOC(hiz_region->buffer,
- I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
- 0);
- ADVANCE_BATCH();
- }
+ /*
+ * In the 3DSTATE_DEPTH_BUFFER batch emitted above, the 'separate
+ * stencil enable' and 'hiz enable' bits were set. Therefore we must
+ * emit 3DSTATE_HIER_DEPTH_BUFFER and 3DSTATE_STENCIL_BUFFER. Even if
+ * there is no stencil buffer, 3DSTATE_STENCIL_BUFFER must be emitted;
+ * failure to do so causes hangs on gen5 and a stall on gen6.
+ */
- /* Emit stencil buffer. */
- if (hiz_region || stencil_irb) {
- BEGIN_BATCH(3);
- OUT_BATCH((_3DSTATE_STENCIL_BUFFER << 16) | (3 - 2));
- OUT_BATCH(stencil_irb->region->pitch * stencil_irb->region->cpp - 1);
- OUT_RELOC(stencil_irb->region->buffer,
- I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
- 0);
- ADVANCE_BATCH();
+ /* Emit hiz buffer. */
+ if (hiz_region) {
+ BEGIN_BATCH(3);
+ OUT_BATCH((_3DSTATE_HIER_DEPTH_BUFFER << 16) | (3 - 2));
+ OUT_BATCH(hiz_region->pitch * hiz_region->cpp - 1);
+ OUT_RELOC(hiz_region->buffer,
+ I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
+ 0);
+ ADVANCE_BATCH();
+ } else {
+ BEGIN_BATCH(3);
+ OUT_BATCH((_3DSTATE_HIER_DEPTH_BUFFER << 16) | (3 - 2));
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ ADVANCE_BATCH();
+ }
+
+ /* Emit stencil buffer. */
+ if (stencil_irb) {
+ BEGIN_BATCH(3);
+ OUT_BATCH((_3DSTATE_STENCIL_BUFFER << 16) | (3 - 2));
+ OUT_BATCH(stencil_irb->region->pitch * stencil_irb->region->cpp - 1);
+ OUT_RELOC(stencil_irb->region->buffer,
+ I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
+ 0);
+ ADVANCE_BATCH();
+ } else {
+ BEGIN_BATCH(3);
+ OUT_BATCH((_3DSTATE_STENCIL_BUFFER << 16) | (3 - 2));
+ OUT_BATCH(0);
+ OUT_BATCH(0);
+ ADVANCE_BATCH();
+ }
}
/*
From 8875dd58719b978283e89acf04422a4eaf9b021d Mon Sep 17 00:00:00 2001
From: Chad Versace
Date: Tue, 14 Jun 2011 12:56:49 -0700
Subject: [PATCH 101/406] intel: Fix typo in intel_offset_S8 comments
Signed-off-by: Chad Versace
---
src/mesa/drivers/dri/intel/intel_span.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c
index 9343f40eef0..fdf687a04a6 100644
--- a/src/mesa/drivers/dri/intel/intel_span.c
+++ b/src/mesa/drivers/dri/intel/intel_span.c
@@ -148,7 +148,7 @@ intel_set_span_functions(struct intel_context *intel,
* x | y | byte offset
* --------------------------
* 0 | 0 | 0
- * 0 | 0 | 1
+ * 0 | 1 | 1
* 1 | 0 | 2
* 1 | 1 | 3
* ... | ... | ...
From 016621ee142682153cb292cd3774e6d9377871ae Mon Sep 17 00:00:00 2001
From: Vadim Girlin
Date: Tue, 14 Jun 2011 21:11:04 +0400
Subject: [PATCH 102/406] r600: fix SPI inputs setup on r600/r700
Signed-off-by: Vadim Girlin
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_state_common.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index fa0c5cb89d7..5f9f398bf25 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -351,7 +351,7 @@ static void r600_spi_update(struct r600_pipe_context *rctx)
struct r600_pipe_shader *shader = rctx->ps_shader;
struct r600_pipe_state *rstate = &rctx->spi;
struct r600_shader *rshader = &shader->shader;
- unsigned i, tmp;
+ unsigned i, tmp, sid;
if (rctx->spi.id == 0)
r600_spi_block_init(rctx, &rctx->spi);
@@ -360,9 +360,14 @@ static void r600_spi_update(struct r600_pipe_context *rctx)
for (i = 0; i < rshader->ninput; i++) {
if (rshader->input[i].name == TGSI_SEMANTIC_POSITION ||
rshader->input[i].name == TGSI_SEMANTIC_FACE)
- continue;
+ if (rctx->family >= CHIP_CEDAR)
+ continue;
+ else
+ sid=0;
+ else
+ sid=r600_find_vs_semantic_index(&rctx->vs_shader->shader, rshader, i);
- tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(&rctx->vs_shader->shader, rshader, i));
+ tmp = S_028644_SEMANTIC(sid);
if (rshader->input[i].name == TGSI_SEMANTIC_COLOR ||
rshader->input[i].name == TGSI_SEMANTIC_BCOLOR ||
From 296052681601f98e16c701299d2b2a6d9bd5eeab Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Thu, 16 Jun 2011 07:31:58 -0600
Subject: [PATCH 103/406] mesa: updated comments in _make_current()
---
src/mesa/main/context.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index ea13bdd6835..ef79f1f453c 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1430,7 +1430,8 @@ _mesa_make_current( struct gl_context *newCtx,
}
if (curCtx &&
- (curCtx->WinSysDrawBuffer || curCtx->WinSysReadBuffer) && /* make sure this context is valid for flushing */
+ (curCtx->WinSysDrawBuffer || curCtx->WinSysReadBuffer) &&
+ /* make sure this context is valid for flushing */
curCtx != newCtx)
_mesa_flush(curCtx);
@@ -1445,8 +1446,6 @@ _mesa_make_current( struct gl_context *newCtx,
_glapi_set_dispatch(newCtx->CurrentDispatch);
if (drawBuffer && readBuffer) {
- /* TODO: check if newCtx and buffer's visual match??? */
-
ASSERT(drawBuffer->Name == 0);
ASSERT(readBuffer->Name == 0);
_mesa_reference_framebuffer(&newCtx->WinSysDrawBuffer, drawBuffer);
@@ -1457,11 +1456,9 @@ _mesa_make_current( struct gl_context *newCtx,
* or not bound to a user-created FBO.
*/
if (!newCtx->DrawBuffer || newCtx->DrawBuffer->Name == 0) {
- /* KW: merge conflict here, revisit.
- */
- /* fix up the fb fields - these will end up wrong otherwise
- * if the DRIdrawable changes, and everything relies on them.
- * This is a bit messy (same as needed in _mesa_BindFramebufferEXT)
+ /* Update the FBO's list of drawbuffers/renderbuffers.
+ * For winsys FBOs this comes from the GL state (which may have
+ * changed since the last time this FBO was bound).
*/
unsigned int i;
GLenum buffers[MAX_DRAW_BUFFERS];
From 37e6ab7b2de90ee90c06ceb08974423248fa6ee5 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Thu, 16 Jun 2011 07:31:58 -0600
Subject: [PATCH 104/406] mesa: refactor, create _mesa_update_draw_buffers()
helper
Move this code out of _mesa_make_current() and put it into a
helper function.
---
src/mesa/main/buffers.c | 21 +++++++++++++++++++++
src/mesa/main/buffers.h | 4 ++++
src/mesa/main/context.c | 13 ++-----------
3 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
index 63f53e2b080..a75c9c2e782 100644
--- a/src/mesa/main/buffers.c
+++ b/src/mesa/main/buffers.c
@@ -461,6 +461,27 @@ _mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers,
}
+/**
+ * Update the current drawbuffer's _ColorDrawBufferIndex[] list, etc.
+ * from the context's Color.DrawBuffer[] state.
+ * Use when changing contexts.
+ */
+void
+_mesa_update_draw_buffers(struct gl_context *ctx)
+{
+ GLenum buffers[MAX_DRAW_BUFFERS];
+ GLuint i;
+
+ /* should be a window system FBO */
+ assert(ctx->DrawBuffer->Name == 0);
+
+ for (i = 0; i < ctx->Const.MaxDrawBuffers; i++)
+ buffers[i] = ctx->Color.DrawBuffer[i];
+
+ _mesa_drawbuffers(ctx, ctx->Const.MaxDrawBuffers, buffers, NULL);
+}
+
+
/**
* Like \sa _mesa_drawbuffers(), this is a helper function for setting
* GL_READ_BUFFER state in the context and current FBO.
diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h
index 1404112c411..8083bc3d353 100644
--- a/src/mesa/main/buffers.h
+++ b/src/mesa/main/buffers.h
@@ -50,6 +50,10 @@ _mesa_drawbuffers(struct gl_context *ctx, GLuint n, const GLenum *buffers,
extern void
_mesa_readbuffer(struct gl_context *ctx, GLenum buffer, GLint bufferIndex);
+extern void
+_mesa_update_draw_buffers(struct gl_context *ctx);
+
+
extern void GLAPIENTRY
_mesa_ReadBuffer( GLenum mode );
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index ef79f1f453c..b83a5d621fa 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1456,21 +1456,12 @@ _mesa_make_current( struct gl_context *newCtx,
* or not bound to a user-created FBO.
*/
if (!newCtx->DrawBuffer || newCtx->DrawBuffer->Name == 0) {
+ _mesa_reference_framebuffer(&newCtx->DrawBuffer, drawBuffer);
/* Update the FBO's list of drawbuffers/renderbuffers.
* For winsys FBOs this comes from the GL state (which may have
* changed since the last time this FBO was bound).
*/
- unsigned int i;
- GLenum buffers[MAX_DRAW_BUFFERS];
-
- _mesa_reference_framebuffer(&newCtx->DrawBuffer, drawBuffer);
-
- for(i = 0; i < newCtx->Const.MaxDrawBuffers; i++) {
- buffers[i] = newCtx->Color.DrawBuffer[i];
- }
-
- _mesa_drawbuffers(newCtx, newCtx->Const.MaxDrawBuffers,
- buffers, NULL);
+ _mesa_update_draw_buffers(newCtx);
}
if (!newCtx->ReadBuffer || newCtx->ReadBuffer->Name == 0) {
_mesa_reference_framebuffer(&newCtx->ReadBuffer, readBuffer);
From fc8c4a3a7b92a1134cd3a9312063abba9e14b0fe Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Thu, 16 Jun 2011 07:31:58 -0600
Subject: [PATCH 105/406] mesa: use helper functions to distinguish between
user/winsys FBOs
And replace IS_CUBE_FACE() macro w/ inline function.
---
src/mesa/main/fbobject.c | 60 ++++++++++++++++++++++++++++------------
1 file changed, 42 insertions(+), 18 deletions(-)
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 2230b262336..07853e03ce1 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -78,9 +78,32 @@ static struct gl_renderbuffer DummyRenderbuffer;
static struct gl_framebuffer IncompleteFramebuffer;
-#define IS_CUBE_FACE(TARGET) \
- ((TARGET) >= GL_TEXTURE_CUBE_MAP_POSITIVE_X && \
- (TARGET) <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)
+static INLINE GLboolean
+is_cube_face(GLenum target)
+{
+ return (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X &&
+ target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z);
+}
+
+
+/**
+ * Is the given FBO a user-created FBO?
+ */
+static INLINE GLboolean
+is_user_fbo(const struct gl_framebuffer *fb)
+{
+ return fb->Name != 0;
+}
+
+
+/**
+ * Is the given FBO a window system FBO (like an X window)?
+ */
+static INLINE GLboolean
+is_winsys_fbo(const struct gl_framebuffer *fb)
+{
+ return fb->Name == 0;
+}
static void
@@ -196,7 +219,7 @@ _mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb,
{
GLuint i;
- assert(fb->Name > 0);
+ assert(is_user_fbo(fb));
switch (attachment) {
case GL_COLOR_ATTACHMENT0_EXT:
@@ -244,7 +267,7 @@ static struct gl_renderbuffer_attachment *
_mesa_get_fb0_attachment(struct gl_context *ctx, struct gl_framebuffer *fb,
GLenum attachment)
{
- assert(fb->Name == 0);
+ assert(is_winsys_fbo(fb));
switch (attachment) {
case GL_FRONT_LEFT:
@@ -669,7 +692,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,
GLint i;
GLuint j;
- assert(fb->Name != 0);
+ assert(is_user_fbo(fb));
numImages = 0;
fb->Width = 0;
@@ -968,10 +991,11 @@ _mesa_DeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers)
_mesa_BindRenderbufferEXT(GL_RENDERBUFFER_EXT, 0);
}
- if (ctx->DrawBuffer->Name) {
+ if (is_user_fbo(ctx->DrawBuffer)) {
detach_renderbuffer(ctx, ctx->DrawBuffer, rb);
}
- if (ctx->ReadBuffer->Name && ctx->ReadBuffer != ctx->DrawBuffer) {
+ if (is_user_fbo(ctx->ReadBuffer)
+ && ctx->ReadBuffer != ctx->DrawBuffer) {
detach_renderbuffer(ctx, ctx->ReadBuffer, rb);
}
@@ -1203,7 +1227,7 @@ invalidate_rb(GLuint key, void *data, void *userData)
struct gl_renderbuffer *rb = (struct gl_renderbuffer *) userData;
/* If this is a user-created FBO */
- if (fb->Name) {
+ if (is_user_fbo(fb)) {
GLuint i;
for (i = 0; i < BUFFER_COUNT; i++) {
struct gl_renderbuffer_attachment *att = fb->Attachment + i;
@@ -1532,7 +1556,7 @@ check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
GLuint i;
ASSERT(ctx->Driver.RenderTexture);
- if (fb->Name == 0)
+ if (is_winsys_fbo(fb));
return; /* can't render to texture with winsys framebuffers */
for (i = 0; i < BUFFER_COUNT; i++) {
@@ -1552,7 +1576,7 @@ check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
static void
check_end_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
{
- if (fb->Name == 0)
+ if (is_winsys_fbo(fb));
return; /* can't render to texture with winsys framebuffers */
if (ctx->Driver.FinishRenderTexture) {
@@ -1805,7 +1829,7 @@ _mesa_CheckFramebufferStatusEXT(GLenum target)
return 0;
}
- if (buffer->Name == 0) {
+ if (is_winsys_fbo(buffer)) {
/* The window system / default framebuffer is always complete */
return GL_FRAMEBUFFER_COMPLETE_EXT;
}
@@ -1843,7 +1867,7 @@ framebuffer_texture(struct gl_context *ctx, const char *caller, GLenum target,
}
/* check framebuffer binding */
- if (fb->Name == 0) {
+ if (is_winsys_fbo(fb)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glFramebufferTexture%sEXT", caller);
return;
@@ -1866,7 +1890,7 @@ framebuffer_texture(struct gl_context *ctx, const char *caller, GLenum target,
}
else {
err = (texObj->Target == GL_TEXTURE_CUBE_MAP)
- ? !IS_CUBE_FACE(textarget)
+ ? !is_cube_face(textarget)
: (texObj->Target != textarget);
}
}
@@ -1970,7 +1994,7 @@ _mesa_FramebufferTexture2DEXT(GLenum target, GLenum attachment,
if ((texture != 0) &&
(textarget != GL_TEXTURE_2D) &&
(textarget != GL_TEXTURE_RECTANGLE_ARB) &&
- (!IS_CUBE_FACE(textarget))) {
+ (!is_cube_face(textarget))) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glFramebufferTexture2DEXT(textarget=0x%x)", textarget);
return;
@@ -2034,7 +2058,7 @@ _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
return;
}
- if (fb->Name == 0) {
+ if (is_winsys_fbo(fb)) {
/* Can't attach new renderbuffers to a window system framebuffer */
_mesa_error(ctx, GL_INVALID_OPERATION, "glFramebufferRenderbufferEXT");
return;
@@ -2111,7 +2135,7 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
return;
}
- if (buffer->Name == 0) {
+ if (is_winsys_fbo(buffer)) {
/* the default / window-system FBO */
att = _mesa_get_fb0_attachment(ctx, buffer, attachment);
}
@@ -2143,7 +2167,7 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
switch (pname) {
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT:
- *params = buffer->Name == 0 ? GL_FRAMEBUFFER_DEFAULT : att->Type;
+ *params = is_winsys_fbo(buffer) ? GL_FRAMEBUFFER_DEFAULT : att->Type;
return;
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT:
if (att->Type == GL_RENDERBUFFER_EXT) {
From 82301ea011c8365cf270c86ed3db27cc7e41360f Mon Sep 17 00:00:00 2001
From: Thomas
Date: Wed, 15 Jun 2011 13:04:40 +0200
Subject: [PATCH 106/406] target/dri-vmwgfx: Throttle dri clients by default.
Throttle pretty hard in order to prioritize user-space interactivity over
3D application speed. May revisit this later.
Signed-off-by: Thomas
---
src/gallium/targets/dri-vmwgfx/target.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/targets/dri-vmwgfx/target.c b/src/gallium/targets/dri-vmwgfx/target.c
index 1362851d6be..da50b8b8bda 100644
--- a/src/gallium/targets/dri-vmwgfx/target.c
+++ b/src/gallium/targets/dri-vmwgfx/target.c
@@ -19,6 +19,7 @@ create_screen(int fd)
if (!screen)
return NULL;
+ vmw_winsys_screen_set_throttling(screen, 10);
screen = sw_screen_wrap(screen);
screen = debug_screen_wrap(screen);
From 7ba80e0c509c0bf1b14c2a20db579055b999f066 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Thu, 16 Jun 2011 16:21:21 +0200
Subject: [PATCH 107/406] st/xa: Fix a typo pointed out by Keith Whitwell.
Signed-off-by: Thomas Hellstrom
---
src/gallium/state_trackers/xa/README | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/state_trackers/xa/README b/src/gallium/state_trackers/xa/README
index 475585df328..1ed6f8d2e9a 100644
--- a/src/gallium/state_trackers/xa/README
+++ b/src/gallium/state_trackers/xa/README
@@ -39,7 +39,7 @@ a number of interfaces to work with:
3) KMS modesetting (versioned)
4) Driver-private (hopefully versioned)
-Since Gallium3D is versioned, the Xorg state tracker needs to be compiled
+Since Gallium3D is not versioned, the Xorg state tracker needs to be compiled
with Gallium, but it's really beneficial to be able to compile xorg drivers
standalone.
From a18ffcd40d172835b30ef46d8547755e4d91bbe2 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Thu, 16 Jun 2011 16:22:59 +0200
Subject: [PATCH 108/406] st/xa: Make sure we blit all yuv regions.
The code forgot to increment a pointer.
Signed-off-by: Thomas Hellstrom
---
src/gallium/state_trackers/xa/xa_yuv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/state_trackers/xa/xa_yuv.c b/src/gallium/state_trackers/xa/xa_yuv.c
index 248c77ab645..66cbc5393b5 100644
--- a/src/gallium/state_trackers/xa/xa_yuv.c
+++ b/src/gallium/state_trackers/xa/xa_yuv.c
@@ -167,6 +167,7 @@ xa_yuv_planar_blit(struct xa_context *r,
(float)src_x + scale_x * (x - dst_x),
(float)src_y + scale_y * (y - dst_y),
scale_x * w, scale_y * h, x, y, w, h, yuv);
+ box++;
}
r->pipe->flush(r->pipe, &r->last_fence);
From 41750107496858a047afa8d81d20fe903f285a78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 14:48:28 +0100
Subject: [PATCH 109/406] scons: make embedding orthogonal to the platform
To enable embedding in platforms other than linux.
---
SConstruct | 19 +-----
common.py | 3 +-
scons/gallium.py | 6 +-
src/gallium/SConscript | 80 ++++++++++++------------
src/gallium/auxiliary/os/os_memory.h | 2 +-
src/gallium/auxiliary/os/os_misc.h | 4 --
src/gallium/auxiliary/os/os_thread.h | 12 ++--
src/gallium/auxiliary/os/os_time.c | 5 --
src/gallium/auxiliary/util/u_debug.c | 2 +-
src/gallium/drivers/llvmpipe/SConscript | 2 +-
src/gallium/drivers/llvmpipe/lp_screen.c | 2 +-
src/gallium/include/pipe/p_config.h | 4 --
src/glsl/SConscript | 4 +-
13 files changed, 59 insertions(+), 86 deletions(-)
diff --git a/SConstruct b/SConstruct
index 8607d2cd8e0..dc5fd776a71 100644
--- a/SConstruct
+++ b/SConstruct
@@ -80,23 +80,6 @@ env.Append(CPPPATH = [
if env['msvc']:
env.Append(CPPPATH = ['#include/c99'])
-# Embedded
-if env['platform'] == 'embedded':
- env.Append(CPPDEFINES = [
- '_POSIX_SOURCE',
- ('_POSIX_C_SOURCE', '199309L'),
- '_SVID_SOURCE',
- '_BSD_SOURCE',
- '_GNU_SOURCE',
-
- 'PTHREADS',
- ])
- env.Append(LIBS = [
- 'm',
- 'pthread',
- 'dl',
- ])
-
# Posix
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
env.Append(CPPDEFINES = [
@@ -130,7 +113,7 @@ if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
#
# Create host environent
-if env['crosscompile'] and env['platform'] != 'embedded':
+if env['crosscompile'] and not env['embedded']:
host_env = Environment(
options = opts,
# no tool used
diff --git a/common.py b/common.py
index 0a3dcdcf543..052929e2bb0 100644
--- a/common.py
+++ b/common.py
@@ -83,7 +83,8 @@ def AddOptions(opts):
opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
opts.Add(EnumOption('platform', 'target platform', host_platform,
- allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'embedded', 'cygwin', 'sunos', 'freebsd8')))
+ allowed_values=('linux', 'cell', 'windows', 'winddk', 'wince', 'darwin', 'cygwin', 'sunos', 'freebsd8')))
+ opts.Add(BoolOption('embedded', 'embedded build', 'no'))
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
diff --git a/scons/gallium.py b/scons/gallium.py
index a94bf736480..57acfe032f2 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -247,6 +247,8 @@ def generate(env):
# configuration. See also http://www.scons.org/wiki/AdvancedBuildExample
build_topdir = 'build'
build_subdir = env['platform']
+ if env['embedded']:
+ build_subdir = 'embedded-' + build_subdir
if env['machine'] != 'generic':
build_subdir += '-' + env['machine']
if env['build'] != 'release':
@@ -349,8 +351,8 @@ def generate(env):
if platform == 'wince':
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_CE']
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_CE_OGL']
- if platform == 'embedded':
- cppdefines += ['PIPE_OS_EMBEDDED']
+ if env['embedded']:
+ cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
env.Append(CPPDEFINES = cppdefines)
# C compiler options
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
index 428bc31f86b..3072ee936f2 100644
--- a/src/gallium/SConscript
+++ b/src/gallium/SConscript
@@ -53,7 +53,7 @@ if env['drm']:
# Needed by some state trackers
SConscript('winsys/sw/null/SConscript')
-if env['platform'] != 'embedded':
+if not env['embedded']:
SConscript('state_trackers/vega/SConscript')
SConscript('state_trackers/egl/SConscript')
@@ -66,8 +66,8 @@ if env['platform'] != 'embedded':
if env['dri'] and env['xorg']:
SConscript('state_trackers/xorg/SConscript')
-if env['platform'] == 'windows':
- SConscript('state_trackers/wgl/SConscript')
+ if env['platform'] == 'windows':
+ SConscript('state_trackers/wgl/SConscript')
#
# Winsys
@@ -83,55 +83,55 @@ SConscript([
'targets/graw-null/SConscript',
])
-if env['platform'] != 'embedded':
+if not env['embedded']:
SConscript([
'targets/egl-static/SConscript'
])
-if env['x11']:
- SConscript([
- 'targets/graw-xlib/SConscript',
- 'targets/libgl-xlib/SConscript',
- ])
-
-if env['platform'] == 'windows':
- SConscript([
- 'targets/graw-gdi/SConscript',
- 'targets/libgl-gdi/SConscript',
- ])
-
-if env['dri']:
- SConscript([
- 'targets/SConscript.dri',
- 'targets/dri-swrast/SConscript',
- 'targets/dri-vmwgfx/SConscript',
- #'targets/dri-nouveau/SConscript',
- ])
- if env['drm_intel']:
+ if env['x11']:
SConscript([
- 'targets/dri-i915/SConscript',
- 'targets/dri-i965/SConscript',
- ])
- if env['drm_radeon']:
- SConscript([
- 'targets/dri-r300/SConscript',
- 'targets/dri-r600/SConscript',
+ 'targets/graw-xlib/SConscript',
+ 'targets/libgl-xlib/SConscript',
])
-if env['xorg'] and env['drm']:
- SConscript([
- #'targets/xorg-i915/SConscript',
- #'targets/xorg-i965/SConscript',
- #'targets/xorg-nouveau/SConscript',
- #'targets/xorg-radeon/SConscript',
- 'targets/xorg-vmwgfx/SConscript',
- ])
+ if env['platform'] == 'windows':
+ SConscript([
+ 'targets/graw-gdi/SConscript',
+ 'targets/libgl-gdi/SConscript',
+ ])
+
+ if env['dri']:
+ SConscript([
+ 'targets/SConscript.dri',
+ 'targets/dri-swrast/SConscript',
+ 'targets/dri-vmwgfx/SConscript',
+ #'targets/dri-nouveau/SConscript',
+ ])
+ if env['drm_intel']:
+ SConscript([
+ 'targets/dri-i915/SConscript',
+ 'targets/dri-i965/SConscript',
+ ])
+ if env['drm_radeon']:
+ SConscript([
+ 'targets/dri-r300/SConscript',
+ 'targets/dri-r600/SConscript',
+ ])
+
+ if env['xorg'] and env['drm']:
+ SConscript([
+ #'targets/xorg-i915/SConscript',
+ #'targets/xorg-i965/SConscript',
+ #'targets/xorg-nouveau/SConscript',
+ #'targets/xorg-radeon/SConscript',
+ 'targets/xorg-vmwgfx/SConscript',
+ ])
#
# Unit tests & tools
#
-if env['platform'] != 'embedded':
+if not env['embedded']:
SConscript('tests/unit/SConscript')
SConscript('tests/graw/SConscript')
diff --git a/src/gallium/auxiliary/os/os_memory.h b/src/gallium/auxiliary/os/os_memory.h
index 556662d35e1..91a84a24bc8 100644
--- a/src/gallium/auxiliary/os/os_memory.h
+++ b/src/gallium/auxiliary/os/os_memory.h
@@ -39,7 +39,7 @@
#include "pipe/p_compiler.h"
-#if defined(PIPE_OS_EMBEDDED)
+#if defined(PIPE_SUBSYSTEM_EMBEDDED)
#ifdef __cplusplus
extern "C" {
diff --git a/src/gallium/auxiliary/os/os_misc.h b/src/gallium/auxiliary/os/os_misc.h
index d59f9819fec..48522dac4d7 100644
--- a/src/gallium/auxiliary/os/os_misc.h
+++ b/src/gallium/auxiliary/os/os_misc.h
@@ -58,8 +58,6 @@ extern "C" {
# define os_break() __debugbreak()
#elif defined(PIPE_OS_UNIX)
# define os_break() kill(getpid(), SIGTRAP)
-#elif defined(PIPE_OS_EMBEDDED)
-void os_break(void);
#else
# define os_break() abort()
#endif
@@ -70,8 +68,6 @@ void os_break(void);
*/
#if defined(DEBUG) || defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)
# define os_abort() os_break()
-#elif defined(PIPE_OS_EMBEDDED)
-void os_abort(void);
#else
# define os_abort() abort()
#endif
diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h
index 6b4281ad661..8f1245bff55 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -40,7 +40,7 @@
#include "util/u_debug.h" /* for assert */
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) || defined(PIPE_OS_CYGWIN)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_CYGWIN)
#include /* POSIX threads headers */
#include /* for perror() */
@@ -314,7 +314,7 @@ typedef int64_t pipe_condvar;
* pipe_barrier
*/
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU)
typedef pthread_barrier_t pipe_barrier;
@@ -442,7 +442,7 @@ pipe_semaphore_wait(pipe_semaphore *sema)
*/
typedef struct {
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) || defined(PIPE_OS_CYGWIN)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_CYGWIN)
pthread_key_t key;
#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
DWORD key;
@@ -457,7 +457,7 @@ typedef struct {
static INLINE void
pipe_tsd_init(pipe_tsd *tsd)
{
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) || defined(PIPE_OS_CYGWIN)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_CYGWIN)
if (pthread_key_create(&tsd->key, NULL/*free*/) != 0) {
perror("pthread_key_create(): failed to allocate key for thread specific data");
exit(-1);
@@ -474,7 +474,7 @@ pipe_tsd_get(pipe_tsd *tsd)
if (tsd->initMagic != (int) PIPE_TSD_INIT_MAGIC) {
pipe_tsd_init(tsd);
}
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) || defined(PIPE_OS_CYGWIN)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_CYGWIN)
return pthread_getspecific(tsd->key);
#elif defined(PIPE_SUBSYSTEM_WINDOWS_USER)
assert(0);
@@ -491,7 +491,7 @@ pipe_tsd_set(pipe_tsd *tsd, void *value)
if (tsd->initMagic != (int) PIPE_TSD_INIT_MAGIC) {
pipe_tsd_init(tsd);
}
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_EMBEDDED) || defined(PIPE_OS_CYGWIN)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) || defined(PIPE_OS_CYGWIN)
if (pthread_setspecific(tsd->key, value) != 0) {
perror("pthread_set_specific() failed");
exit(-1);
diff --git a/src/gallium/auxiliary/os/os_time.c b/src/gallium/auxiliary/os/os_time.c
index 325f316784c..73d86296d91 100644
--- a/src/gallium/auxiliary/os/os_time.c
+++ b/src/gallium/auxiliary/os/os_time.c
@@ -35,8 +35,6 @@
#include "pipe/p_config.h"
-#if !defined(PIPE_OS_EMBEDDED)
-
#if defined(PIPE_OS_UNIX)
# include /* timeval */
#elif defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY)
@@ -123,6 +121,3 @@ os_time_sleep(int64_t usecs)
}
#endif
-
-
-#endif /* !PIPE_OS_EMBEDDED */
diff --git a/src/gallium/auxiliary/util/u_debug.c b/src/gallium/auxiliary/util/u_debug.c
index 36ce4b57713..004df439ff5 100644
--- a/src/gallium/auxiliary/util/u_debug.c
+++ b/src/gallium/auxiliary/util/u_debug.c
@@ -48,7 +48,7 @@
void _debug_vprintf(const char *format, va_list ap)
{
-#if defined(PIPE_OS_WINDOWS) || defined(PIPE_OS_EMBEDDED)
+#if defined(PIPE_OS_WINDOWS) || defined(PIPE_SUBSYSTEM_EMBEDDED)
/* We buffer until we find a newline. */
static char buf[4096] = {'\0'};
size_t len = strlen(buf);
diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript
index c10a8cbc12c..d6b20ceb5ce 100644
--- a/src/gallium/drivers/llvmpipe/SConscript
+++ b/src/gallium/drivers/llvmpipe/SConscript
@@ -79,7 +79,7 @@ llvmpipe = env.ConvenienceLibrary(
env.Alias('llvmpipe', llvmpipe)
-if env['platform'] != 'embedded':
+if not env['embedded']:
env = env.Clone()
env.Prepend(LIBS = [llvmpipe] + gallium)
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 036a6e0c379..4b2ae1436ea 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -423,7 +423,7 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
lp_jit_screen_init(screen);
screen->num_threads = util_cpu_caps.nr_cpus > 1 ? util_cpu_caps.nr_cpus : 0;
-#ifdef PIPE_OS_EMBEDDED
+#ifdef PIPE_SUBSYSTEM_EMBEDDED
screen->num_threads = 0;
#endif
screen->num_threads = debug_get_num_option("LP_NUM_THREADS", screen->num_threads);
diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h
index 40f6f2bcb5f..eea3d79e64b 100644
--- a/src/gallium/include/pipe/p_config.h
+++ b/src/gallium/include/pipe/p_config.h
@@ -134,8 +134,6 @@
#error Unknown Endianness
#endif
-#if !defined(PIPE_OS_EMBEDDED)
-
/*
* Auto-detect the operating system family.
*
@@ -222,7 +220,5 @@
#endif
#endif /* PIPE_OS_WINDOWS */
-#endif /* !PIPE_OS_EMBEDDED */
-
#endif /* P_CONFIG_H_ */
diff --git a/src/glsl/SConscript b/src/glsl/SConscript
index c3255835fb4..1441cc74bd8 100644
--- a/src/glsl/SConscript
+++ b/src/glsl/SConscript
@@ -102,7 +102,7 @@ if env['msvc']:
env.Prepend(CPPPATH = ['#/src/getopt'])
env.PrependUnique(LIBS = [getopt])
-if env['crosscompile'] and env['platform'] != 'embedded':
+if env['crosscompile'] and not env['embedded']:
Import('builtin_glsl_function')
else:
# Copy these files to avoid generation object files into src/mesa/program
@@ -156,7 +156,7 @@ Export('glsl')
# Skip building these programs as they will cause SCons error "Two environments
# with different actions were specified for the same target"
-if env['crosscompile'] or env['platform'] == 'embedded':
+if env['crosscompile'] or env['embedded']:
Return()
env = env.Clone()
From 8173471fc25f4c768cab54fa840fd4c53d1c3c0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 16:28:27 +0100
Subject: [PATCH 110/406] scons: Move all env setup to scons/gallium.py
---
SConstruct | 21 ---------------------
scons/gallium.py | 19 ++++++++++++++++++-
2 files changed, 18 insertions(+), 22 deletions(-)
diff --git a/SConstruct b/SConstruct
index dc5fd776a71..104cc38aa63 100644
--- a/SConstruct
+++ b/SConstruct
@@ -80,27 +80,6 @@ env.Append(CPPPATH = [
if env['msvc']:
env.Append(CPPPATH = ['#include/c99'])
-# Posix
-if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
- env.Append(CPPDEFINES = [
- '_POSIX_SOURCE',
- ('_POSIX_C_SOURCE', '199309L'),
- '_SVID_SOURCE',
- '_BSD_SOURCE',
- '_GNU_SOURCE',
- 'PTHREADS',
- 'HAVE_POSIX_MEMALIGN',
- ])
- if env['gcc']:
- env.Append(CFLAGS = ['-fvisibility=hidden'])
- if env['platform'] == 'darwin':
- env.Append(CPPDEFINES = ['_DARWIN_C_SOURCE'])
- env.Append(LIBS = [
- 'm',
- 'pthread',
- 'dl',
- ])
-
# for debugging
#print env.Dump()
diff --git a/scons/gallium.py b/scons/gallium.py
index 57acfe032f2..9d08efdd10c 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -279,6 +279,18 @@ def generate(env):
cppdefines += ['NDEBUG']
if env['build'] == 'profile':
cppdefines += ['PROFILE']
+ if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
+ cppdefines += [
+ '_POSIX_SOURCE',
+ ('_POSIX_C_SOURCE', '199309L'),
+ '_SVID_SOURCE',
+ '_BSD_SOURCE',
+ '_GNU_SOURCE',
+ 'PTHREADS',
+ 'HAVE_POSIX_MEMALIGN',
+ ]
+ if env['platform'] == 'darwin':
+ cppdefines += ['_DARWIN_C_SOURCE']
if platform == 'windows':
cppdefines += [
'WIN32',
@@ -405,6 +417,8 @@ def generate(env):
ccflags += ['-m64']
if platform == 'darwin':
ccflags += ['-fno-common']
+ if env['platform'] != 'windows':
+ ccflags += ['-fvisibility=hidden']
# See also:
# - http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
ccflags += [
@@ -597,7 +611,10 @@ def generate(env):
env['LINK'] = env['CXX']
# Default libs
- env.Append(LIBS = [])
+ libs = []
+ if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
+ libs += ['m', 'pthread', 'dl']
+ env.Append(LIBS = libs)
# Load tools
env.Tool('lex')
From bf69ce37f0dcbb479078ee676d5100ac63e20750 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Marchesin?=
Date: Wed, 15 Jun 2011 15:09:12 -0700
Subject: [PATCH 111/406] glx: implement drawable refcounting.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The current dri context unbind logic will leak drawables until the process
dies (they will then get released by the GEM code). There are two ways to fix
this: either always call driReleaseDrawables every time we unbind a context
(but that costs us round trips to the X server at getbuffers() time) or
implement proper drawable refcounting. This patch implements the latter.
Signed-off-by: Antoine Labour
Signed-off-by: Stéphane Marchesin
Reviewed-by: Adam Jackson
---
src/glx/dri2_glx.c | 5 ++---
src/glx/dri_common.c | 26 +++++++++++++++++++-------
src/glx/dri_glx.c | 6 ++++--
src/glx/drisw_glx.c | 6 ++++--
src/glx/glxclient.h | 1 +
src/glx/glxcurrent.c | 14 +++++++-------
6 files changed, 37 insertions(+), 21 deletions(-)
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 506754ccc1f..e7c18ffe1eb 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -143,6 +143,8 @@ dri2_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct dri2_drawable *) driFetchDrawable(context, draw);
pread = (struct dri2_drawable *) driFetchDrawable(context, read);
+ driReleaseDrawables(&pcp->base);
+
if (pdraw == NULL || pread == NULL)
return GLXBadDrawable;
@@ -170,9 +172,6 @@ dri2_unbind_context(struct glx_context *context, struct glx_context *new)
struct dri2_screen *psc = (struct dri2_screen *) pcp->base.psc;
(*psc->core->unbindContext) (pcp->driContext);
-
- if (context == new)
- driReleaseDrawables(&pcp->base);
}
static struct glx_context *
diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c
index 06a73e4a6b2..bac0c9e5911 100644
--- a/src/glx/dri_common.c
+++ b/src/glx/dri_common.c
@@ -369,8 +369,10 @@ driFetchDrawable(struct glx_context *gc, GLXDrawable glxDrawable)
if (priv->drawHash == NULL)
return NULL;
- if (__glxHashLookup(priv->drawHash, glxDrawable, (void *) &pdraw) == 0)
+ if (__glxHashLookup(priv->drawHash, glxDrawable, (void *) &pdraw) == 0) {
+ pdraw->refcount ++;
return pdraw;
+ }
pdraw = psc->driScreen->createDrawable(psc, glxDrawable,
glxDrawable, gc->config);
@@ -378,6 +380,7 @@ driFetchDrawable(struct glx_context *gc, GLXDrawable glxDrawable)
(*pdraw->destroyDrawable) (pdraw);
return NULL;
}
+ pdraw->refcount = 1;
return pdraw;
}
@@ -394,19 +397,28 @@ driReleaseDrawables(struct glx_context *gc)
if (__glxHashLookup(priv->drawHash,
gc->currentDrawable, (void *) &pdraw) == 0) {
if (pdraw->drawable == pdraw->xDrawable) {
- (*pdraw->destroyDrawable)(pdraw);
- __glxHashDelete(priv->drawHash, gc->currentDrawable);
+ pdraw->refcount --;
+ if (pdraw->refcount == 0) {
+ (*pdraw->destroyDrawable)(pdraw);
+ __glxHashDelete(priv->drawHash, gc->currentDrawable);
+ }
}
}
- if (gc->currentDrawable != gc->currentReadable &&
- __glxHashLookup(priv->drawHash,
+ if (__glxHashLookup(priv->drawHash,
gc->currentReadable, (void *) &pdraw) == 0) {
if (pdraw->drawable == pdraw->xDrawable) {
- (*pdraw->destroyDrawable)(pdraw);
- __glxHashDelete(priv->drawHash, gc->currentReadable);
+ pdraw->refcount --;
+ if (pdraw->refcount == 0) {
+ (*pdraw->destroyDrawable)(pdraw);
+ __glxHashDelete(priv->drawHash, gc->currentReadable);
+ }
}
}
+
+ gc->currentDrawable = None;
+ gc->currentReadable = None;
+
}
#endif /* GLX_DIRECT_RENDERING */
diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c
index ff027dc9e9c..d59784c6a4f 100644
--- a/src/glx/dri_glx.c
+++ b/src/glx/dri_glx.c
@@ -503,6 +503,8 @@ dri_destroy_context(struct glx_context * context)
struct dri_context *pcp = (struct dri_context *) context;
struct dri_screen *psc = (struct dri_screen *) context->psc;
+ driReleaseDrawables(&pcp->base);
+
if (context->xid)
glx_send_destroy_context(psc->base.dpy, context->xid);
@@ -526,6 +528,8 @@ dri_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct dri_drawable *) driFetchDrawable(context, draw);
pread = (struct dri_drawable *) driFetchDrawable(context, read);
+ driReleaseDrawables(&pcp->base);
+
if (pdraw == NULL || pread == NULL)
return GLXBadDrawable;
@@ -543,8 +547,6 @@ dri_unbind_context(struct glx_context *context, struct glx_context *new)
struct dri_screen *psc = (struct dri_screen *) pcp->base.psc;
(*psc->core->unbindContext) (pcp->driContext);
-
- driReleaseDrawables(&pcp->base);
}
static const struct glx_context_vtable dri_context_vtable = {
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 2eaa3c59348..00756959320 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -242,6 +242,8 @@ drisw_destroy_context(struct glx_context *context)
struct drisw_context *pcp = (struct drisw_context *) context;
struct drisw_screen *psc = (struct drisw_screen *) context->psc;
+ driReleaseDrawables(&pcp->base);
+
if (context->xid)
glx_send_destroy_context(psc->base.dpy, context->xid);
@@ -264,6 +266,8 @@ drisw_bind_context(struct glx_context *context, struct glx_context *old,
pdraw = (struct drisw_drawable *) driFetchDrawable(context, draw);
pread = (struct drisw_drawable *) driFetchDrawable(context, read);
+ driReleaseDrawables(&pcp->base);
+
if (pdraw == NULL || pread == NULL)
return GLXBadDrawable;
@@ -281,8 +285,6 @@ drisw_unbind_context(struct glx_context *context, struct glx_context *new)
struct drisw_screen *psc = (struct drisw_screen *) pcp->base.psc;
(*psc->core->unbindContext) (pcp->driContext);
-
- driReleaseDrawables(&pcp->base);
}
static const struct glx_context_vtable drisw_context_vtable = {
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index fa2e2d360ca..88a6edd097c 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -138,6 +138,7 @@ struct __GLXDRIdrawableRec
GLenum textureTarget;
GLenum textureFormat; /* EXT_texture_from_pixmap support */
unsigned long eventMask;
+ int refcount;
};
/*
diff --git a/src/glx/glxcurrent.c b/src/glx/glxcurrent.c
index 064fd71ae6e..9eb7d5ac546 100644
--- a/src/glx/glxcurrent.c
+++ b/src/glx/glxcurrent.c
@@ -255,8 +255,6 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
if (--oldGC->thread_refcount == 0) {
oldGC->vtable->unbind(oldGC, gc);
oldGC->currentDpy = 0;
- oldGC->currentDrawable = None;
- oldGC->currentReadable = None;
if (oldGC->xid == None && oldGC != gc) {
/* We are switching away from a context that was
@@ -268,13 +266,15 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
}
if (gc) {
- if (gc->thread_refcount++ == 0) {
- gc->currentDpy = dpy;
- gc->currentDrawable = draw;
- gc->currentReadable = read;
- }
+ if (gc->thread_refcount == 0)
+ gc->currentDpy = dpy;
__glXSetCurrentContext(gc);
ret = gc->vtable->bind(gc, oldGC, draw, read);
+ if (gc->thread_refcount == 0) {
+ gc->currentDrawable = draw;
+ gc->currentReadable = read;
+ }
+ gc->thread_refcount++;
} else {
__glXSetCurrentContextNull();
}
From c7bd0fa4851187c3102948f5f4d70c26d1b55a5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 18:42:39 +0100
Subject: [PATCH 112/406] scons: Accept verbose=yes instead of quiet=no.
'verbose' is affirmative, and much more common name for this sort of option.
---
common.py | 3 ++-
scons/custom.py | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/common.py b/common.py
index 052929e2bb0..f218e6f6c67 100644
--- a/common.py
+++ b/common.py
@@ -79,7 +79,7 @@ def AddOptions(opts):
from SCons.Options.EnumOption import EnumOption
opts.Add(EnumOption('build', 'build type', 'debug',
allowed_values=('debug', 'checked', 'profile', 'release')))
- opts.Add(BoolOption('quiet', 'quiet command lines', 'yes'))
+ opts.Add(BoolOption('verbose', 'verbose output', 'no'))
opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
opts.Add(EnumOption('platform', 'target platform', host_platform,
@@ -90,4 +90,5 @@ def AddOptions(opts):
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
+ opts.Add(BoolOption('quiet', 'DEPRECATED: quiet command lines', 'yes'))
opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
diff --git a/scons/custom.py b/scons/custom.py
index a2c690f655e..029f99b9946 100644
--- a/scons/custom.py
+++ b/scons/custom.py
@@ -157,7 +157,8 @@ def createCodeGenerateMethod(env):
def generate(env):
"""Common environment generation code"""
- if env.get('quiet', True):
+ verbose = env.get('verbose', False) or not env.get('quiet', True)
+ if not verbose:
quietCommandLines(env)
# Custom builders and methods
From d6a0fe19e8da0cb12d73977e4e3ece596a26320f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 19:23:06 +0100
Subject: [PATCH 113/406] scons: Correct glapi USE_xxx_ASM flags.
---
src/mapi/glapi/SConscript | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/src/mapi/glapi/SConscript b/src/mapi/glapi/SConscript
index 276b2160246..a7764745eda 100644
--- a/src/mapi/glapi/SConscript
+++ b/src/mapi/glapi/SConscript
@@ -52,29 +52,22 @@ if env['platform'] != 'winddk':
if env['gcc'] and env['platform'] != 'windows':
if env['machine'] == 'x86':
env.Append(CPPDEFINES = [
- 'USE_X86_ASM',
- 'USE_MMX_ASM',
- 'USE_3DNOW_ASM',
- 'USE_SSE_ASM',
+ 'USE_X86_ASM',
])
glapi_sources += [
'glapi_x86.S',
]
elif env['machine'] == 'x86_64':
env.Append(CPPDEFINES = [
- 'USE_X86_64_ASM',
+ 'USE_X86_64_ASM',
])
glapi_sources += [
'glapi_x86-64.S'
]
- elif env['machine'] == 'ppc':
- env.Append(CPPDEFINES = [
- 'USE_PPC_ASM',
- 'USE_VMX_ASM',
- ])
- glapi_sources += [
- ]
elif env['machine'] == 'sparc':
+ env.Append(CPPDEFINES = [
+ 'USE_SPARC_ASM',
+ ])
glapi_sources += [
'glapi_sparc.S'
]
From c9be435c79e2bbc883701c5533ae0490780495be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 20:07:12 +0100
Subject: [PATCH 114/406] scons: Don't list MSVS_VERSION option outside windows
platforms.
---
common.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/common.py b/common.py
index f218e6f6c67..8f13186f52a 100644
--- a/common.py
+++ b/common.py
@@ -91,4 +91,5 @@ def AddOptions(opts):
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
opts.Add(BoolOption('quiet', 'DEPRECATED: quiet command lines', 'yes'))
- opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
+ if host_platform == 'windows':
+ opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0')))
From ef4bf40db03ff1df2bae2db8f4a65421bf4a7c06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 20:11:35 +0100
Subject: [PATCH 115/406] scons: Remember the options set on the command line.
Save them in config.py
---
SConstruct | 2 ++
1 file changed, 2 insertions(+)
diff --git a/SConstruct b/SConstruct
index 104cc38aa63..6b725c4b695 100644
--- a/SConstruct
+++ b/SConstruct
@@ -40,6 +40,8 @@ env = Environment(
ENV = os.environ,
)
+opts.Save('config.py', env)
+
# Backwards compatability with old target configuration variable
try:
targets = ARGUMENTS['targets']
From 10562fbc5c630b7f1a97344bc3d6b2649c7393a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Fonseca?=
Date: Fri, 17 Jun 2011 20:11:50 +0100
Subject: [PATCH 116/406] scons: List all targets.
---
SConstruct | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/SConstruct b/SConstruct
index 6b725c4b695..029daa1c6f3 100644
--- a/SConstruct
+++ b/SConstruct
@@ -143,3 +143,18 @@ SConscript(
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
)
+
+########################################################################
+# List all aliases
+
+try:
+ from SCons.Node.Alias import default_ans
+except ImportError:
+ pass
+else:
+ aliases = default_ans.keys()
+ aliases.sort()
+ env.Help('\n')
+ env.Help('Recognized targets:\n')
+ for alias in aliases:
+ env.Help(' %s\n' % alias)
From cb5a5f055b6a9f05aed927d28a242bde81dd5bfc Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston
Date: Wed, 15 Jun 2011 00:22:00 -0700
Subject: [PATCH 117/406] apple: Use apple_cgl_get_dl_handle() rather than
opening a new handle
Signed-off-by: Jeremy Huddleston
---
src/glx/apple/apple_glapi.c | 24 ++----------------------
1 file changed, 2 insertions(+), 22 deletions(-)
diff --git a/src/glx/apple/apple_glapi.c b/src/glx/apple/apple_glapi.c
index 0c89f46779c..34f726efb64 100644
--- a/src/glx/apple/apple_glapi.c
+++ b/src/glx/apple/apple_glapi.c
@@ -44,38 +44,18 @@
#include "apple_glx.h"
#include "apple_xgl_api.h"
-
-#ifndef OPENGL_FRAMEWORK_PATH
-#define OPENGL_FRAMEWORK_PATH "/System/Library/Frameworks/OpenGL.framework/OpenGL"
-#endif
+#include "apple_cgl.h"
struct _glapi_table * __ogl_framework_api = NULL;
struct _glapi_table * __applegl_api = NULL;
void apple_glapi_set_dispatch(void) {
- static void *handle;
- const char *opengl_framework_path;
-
if(__applegl_api) {
_glapi_set_dispatch(__applegl_api);
return;
}
- opengl_framework_path = getenv("OPENGL_FRAMEWORK_PATH");
- if (!opengl_framework_path) {
- opengl_framework_path = OPENGL_FRAMEWORK_PATH;
- }
-
- (void) dlerror(); /*drain dlerror */
- handle = dlopen(opengl_framework_path, RTLD_LOCAL);
-
- if (!handle) {
- fprintf(stderr, "error: unable to dlopen %s : %s\n",
- opengl_framework_path, dlerror());
- abort();
- }
-
- __ogl_framework_api = _glapi_create_table_from_handle(handle, "gl");
+ __ogl_framework_api = _glapi_create_table_from_handle(apple_cgl_get_dl_handle(), "gl");
assert(__ogl_framework_api);
__applegl_api = malloc(sizeof(struct _glapi_table));
From befaab8fa12eb4f628e21ffa75e523ac5eb7fbc2 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Fri, 17 Jun 2011 13:22:43 -0600
Subject: [PATCH 118/406] st/mesa: move comment for ChooseTextureFormat() to
right place
---
src/mesa/state_tracker/st_format.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 35835712547..bd17448e6e8 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1188,9 +1188,6 @@ st_choose_renderbuffer_format(struct pipe_screen *screen,
}
-/**
- * Called via ctx->Driver.chooseTextureFormat().
- */
gl_format
st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
GLenum format, GLenum type, GLboolean renderable)
@@ -1231,6 +1228,10 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
return st_pipe_format_to_mesa_format(pFormat);
}
+
+/**
+ * Called via ctx->Driver.ChooseTextureFormat().
+ */
gl_format
st_ChooseTextureFormat(struct gl_context *ctx, GLint internalFormat,
GLenum format, GLenum type)
From 3ea6fdfdf1a6aed5c924cfe52aa0d543c6d58aa3 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Fri, 17 Jun 2011 13:23:16 -0600
Subject: [PATCH 119/406] st/mesa: remove trailing whitespace in st_format.c
---
src/mesa/state_tracker/st_format.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index bd17448e6e8..d11308ded7f 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1108,7 +1108,7 @@ static struct format_mapping format_map[] = {
* Return first supported format from the given list.
*/
static enum pipe_format
-find_supported_format(struct pipe_screen *screen,
+find_supported_format(struct pipe_screen *screen,
const enum pipe_format formats[],
enum pipe_texture_target target,
unsigned sample_count,
@@ -1207,7 +1207,7 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
if (_mesa_is_depth_format(internalFormat) ||
_mesa_is_depth_or_stencil_format(internalFormat))
bindings |= PIPE_BIND_DEPTH_STENCIL;
- else
+ else
bindings |= PIPE_BIND_RENDER_TARGET;
}
From 15750d89b9d3592032814faf7dd885c9dd6d686b Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Fri, 17 Jun 2011 13:25:31 -0600
Subject: [PATCH 120/406] st/mesa: remove redundant _mesa_is_depth_format()
call
The _mesa_is_depth_or_stencil_format() call covers all depth
format cases too.
---
src/mesa/state_tracker/st_format.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index d11308ded7f..99f486bba2c 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1204,8 +1204,7 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
*/
bindings = PIPE_BIND_SAMPLER_VIEW;
if (renderable == GL_TRUE) {
- if (_mesa_is_depth_format(internalFormat) ||
- _mesa_is_depth_or_stencil_format(internalFormat))
+ if (_mesa_is_depth_or_stencil_format(internalFormat))
bindings |= PIPE_BIND_DEPTH_STENCIL;
else
bindings |= PIPE_BIND_RENDER_TARGET;
From da5c852d636dfeffeb792c78b882c80c91ab6a89 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Fri, 17 Jun 2011 13:28:38 -0600
Subject: [PATCH 121/406] st/mesa: remove unneeded test for GL_TRUE
---
src/mesa/state_tracker/st_format.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 99f486bba2c..45e47667196 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -1203,7 +1203,7 @@ st_ChooseTextureFormat_renderable(struct gl_context *ctx, GLint internalFormat,
* that in advance. Specify potential render target flags now.
*/
bindings = PIPE_BIND_SAMPLER_VIEW;
- if (renderable == GL_TRUE) {
+ if (renderable) {
if (_mesa_is_depth_or_stencil_format(internalFormat))
bindings |= PIPE_BIND_DEPTH_STENCIL;
else
From 753660780a84187043d0dc4b0e0f449786862182 Mon Sep 17 00:00:00 2001
From: Brian Paul
Date: Fri, 17 Jun 2011 13:43:06 -0600
Subject: [PATCH 122/406] mesa: allow depth texture arrays
The GL_EXT_texture_array spec allows this (Section 3.8.1).
Fixes failing piglit fbo-depth-array test.
NOTE: This is a candidate for the 7.10 branch.
---
src/mesa/main/teximage.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
index 0827cb883e8..40398a8afc3 100644
--- a/src/mesa/main/teximage.c
+++ b/src/mesa/main/teximage.c
@@ -1685,11 +1685,15 @@ texture_error_check( struct gl_context *ctx,
/* additional checks for depth textures */
if (_mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_COMPONENT) {
- /* Only 1D, 2D and rectangular textures supported, not 3D or cubes */
+ /* Only 1D, 2D, rect and array textures supported, not 3D or cubes */
if (target != GL_TEXTURE_1D &&
target != GL_PROXY_TEXTURE_1D &&
target != GL_TEXTURE_2D &&
target != GL_PROXY_TEXTURE_2D &&
+ target != GL_TEXTURE_1D_ARRAY &&
+ target != GL_PROXY_TEXTURE_1D_ARRAY &&
+ target != GL_TEXTURE_2D_ARRAY &&
+ target != GL_PROXY_TEXTURE_2D_ARRAY &&
target != GL_TEXTURE_RECTANGLE_ARB &&
target != GL_PROXY_TEXTURE_RECTANGLE_ARB) {
if (!isProxy)
From a916d4279a2c8daac832f77b84aff66f33b590a3 Mon Sep 17 00:00:00 2001
From: Vadim Girlin
Date: Fri, 17 Jun 2011 23:01:59 +0400
Subject: [PATCH 123/406] r600g: fix source box in r600_resource_copy_region
Source box needs to be adjusted for blitting from compressed formats.
fixes https://bugs.freedesktop.org/show_bug.cgi?id=35434
Signed-off-by: Vadim Girlin
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_blit.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index 043c8759f56..e858ea212ea 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -294,6 +294,7 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
{
struct r600_resource_texture *rsrc = (struct r600_resource_texture*)src;
struct texture_orig_info orig_info[2];
+ struct pipe_box sbox, *psbox;
boolean restore_orig[2];
/* Fallback for buffers. */
@@ -311,7 +312,15 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
if (util_format_is_compressed(src->format)) {
r600_compressed_to_blittable(src, src_level, &orig_info[0]);
restore_orig[0] = TRUE;
- }
+ sbox.x = util_format_get_nblocksx(orig_info[0].format, src_box->x);
+ sbox.y = util_format_get_nblocksy(orig_info[0].format, src_box->y);
+ sbox.z = src_box->z;
+ sbox.width = util_format_get_nblocksx(orig_info[0].format, src_box->width);
+ sbox.height = util_format_get_nblocksy(orig_info[0].format, src_box->height);
+ sbox.depth = src_box->depth;
+ psbox=&sbox;
+ } else
+ psbox=src_box;
if (util_format_is_compressed(dst->format)) {
r600_compressed_to_blittable(dst, dst_level, &orig_info[1]);
@@ -322,7 +331,7 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
}
r600_hw_copy_region(ctx, dst, dst_level, dstx, dsty, dstz,
- src, src_level, src_box);
+ src, src_level, psbox);
if (restore_orig[0])
r600_reset_blittable_to_compressed(src, src_level, &orig_info[0]);
From 8ab1c5328b12e8b075f62599a84672024aaf2982 Mon Sep 17 00:00:00 2001
From: Vadim Girlin
Date: Fri, 17 Jun 2011 23:02:00 +0400
Subject: [PATCH 124/406] r600g: fix RSQ to use abs value of operand on
evergreen
fixes https://bugs.freedesktop.org/show_bug.cgi?id=36917
Signed-off-by: Vadim Girlin
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index b8a86b03143..0995dd5a99b 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -3266,7 +3266,7 @@ static struct r600_shader_tgsi_instruction eg_shader_tgsi_instruction[] = {
{TGSI_OPCODE_MOV, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV, tgsi_op2},
{TGSI_OPCODE_LIT, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_lit},
{TGSI_OPCODE_RCP, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_IEEE, tgsi_trans_srcx_replicate},
- {TGSI_OPCODE_RSQ, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE, tgsi_trans_srcx_replicate},
+ {TGSI_OPCODE_RSQ, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE, tgsi_rsq},
{TGSI_OPCODE_EXP, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_exp},
{TGSI_OPCODE_LOG, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, tgsi_log},
{TGSI_OPCODE_MUL, 0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL, tgsi_op2},
From 2fe39b46e73aea37152777fe11d489e0b1bc3f92 Mon Sep 17 00:00:00 2001
From: Vadim Girlin
Date: Fri, 17 Jun 2011 23:02:01 +0400
Subject: [PATCH 125/406] r600g: fix LIT to handle src==dst properly
Current LIT implementation uses dst components for storing temp
results, possibly overwriting still needed values (depends on the
swizzles).
This patch uses temp reg for one of such cases (found in etqw) and
fixes "LIT R.z, R.xyzz".
Tested on evergreen. Fixes some etqw-demo rendering glitches when
"Lighting" is set to "High" in the settings.
Signed-off-by: Vadim Girlin
Signed-off-by: Dave Airlie
---
src/gallium/drivers/r600/r600_shader.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 0995dd5a99b..02681081c93 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1366,7 +1366,9 @@ static int tgsi_lit(struct r600_shader_ctx *ctx)
memset(&alu, 0, sizeof(struct r600_bc_alu));
alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_CLAMPED);
r600_bc_src(&alu.src[0], &ctx->src[0], 1);
- tgsi_dst(ctx, &inst->Dst[0], 2, &alu.dst);
+ alu.dst.sel = ctx->temp_reg;
+ alu.dst.chan = 2;
+ alu.dst.write = 1;
alu.last = 1;
r = r600_bc_add_alu(ctx->bc, &alu);
if (r)
From 7df7eaf8453bbc7bfd8d23b7808c92d30c62bf55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Fri, 17 Jun 2011 19:21:59 +0200
Subject: [PATCH 126/406] r300g: fix handling PREP_* options
This should fix rendering >65532 vertices using draw_arrays on r300-r400.
NOTE: This is a candidate for the 7.10 branch.
---
src/gallium/drivers/r300/r300_render.c | 71 +++++++++++++-------------
1 file changed, 36 insertions(+), 35 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index d9399d78ef9..fe7fa17e789 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -193,23 +193,22 @@ static boolean r300_reserve_cs_dwords(struct r300_context *r300,
unsigned cs_dwords)
{
boolean flushed = FALSE;
- boolean first_draw = flags & PREP_EMIT_STATES;
+ boolean emit_states = flags & PREP_EMIT_STATES;
boolean emit_vertex_arrays = flags & PREP_EMIT_AOS;
boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_AOS_SWTCL;
/* Add dirty state, index offset, and AOS. */
- if (first_draw) {
+ if (emit_states)
cs_dwords += r300_get_num_dirty_dwords(r300);
- if (r300->screen->caps.is_r500)
- cs_dwords += 2; /* emit_index_offset */
+ if (r300->screen->caps.is_r500)
+ cs_dwords += 2; /* emit_index_offset */
- if (emit_vertex_arrays)
- cs_dwords += 55; /* emit_vertex_arrays */
+ if (emit_vertex_arrays)
+ cs_dwords += 55; /* emit_vertex_arrays */
- if (emit_vertex_arrays_swtcl)
- cs_dwords += 7; /* emit_vertex_arrays_swtcl */
- }
+ if (emit_vertex_arrays_swtcl)
+ cs_dwords += 7; /* emit_vertex_arrays_swtcl */
cs_dwords += r300_get_num_cs_end_dwords(r300);
@@ -238,46 +237,48 @@ static boolean r300_emit_states(struct r300_context *r300,
int buffer_offset,
int index_bias, int instance_id)
{
- boolean first_draw = flags & PREP_EMIT_STATES;
+ boolean emit_states = flags & PREP_EMIT_STATES;
boolean emit_vertex_arrays = flags & PREP_EMIT_AOS;
boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_AOS_SWTCL;
boolean indexed = flags & PREP_INDEXED;
boolean validate_vbos = flags & PREP_VALIDATE_VBOS;
/* Validate buffers and emit dirty state if needed. */
- if (first_draw) {
+ if (emit_states || (emit_vertex_arrays && validate_vbos)) {
if (!r300_emit_buffer_validate(r300, validate_vbos,
index_buffer)) {
fprintf(stderr, "r300: CS space validation failed. "
"(not enough memory?) Skipping rendering.\n");
return FALSE;
}
-
- r300_emit_dirty_state(r300);
- if (r300->screen->caps.is_r500) {
- if (r300->screen->caps.has_tcl)
- r500_emit_index_bias(r300, index_bias);
- else
- r500_emit_index_bias(r300, 0);
- }
-
- if (emit_vertex_arrays &&
- (r300->vertex_arrays_dirty ||
- r300->vertex_arrays_indexed != indexed ||
- r300->vertex_arrays_offset != buffer_offset ||
- r300->vertex_arrays_instance_id != instance_id)) {
- r300_emit_vertex_arrays(r300, buffer_offset, indexed, instance_id);
-
- r300->vertex_arrays_dirty = FALSE;
- r300->vertex_arrays_indexed = indexed;
- r300->vertex_arrays_offset = buffer_offset;
- r300->vertex_arrays_instance_id = instance_id;
- }
-
- if (emit_vertex_arrays_swtcl)
- r300_emit_vertex_arrays_swtcl(r300, indexed);
}
+ if (emit_states)
+ r300_emit_dirty_state(r300);
+
+ if (r300->screen->caps.is_r500) {
+ if (r300->screen->caps.has_tcl)
+ r500_emit_index_bias(r300, index_bias);
+ else
+ r500_emit_index_bias(r300, 0);
+ }
+
+ if (emit_vertex_arrays &&
+ (r300->vertex_arrays_dirty ||
+ r300->vertex_arrays_indexed != indexed ||
+ r300->vertex_arrays_offset != buffer_offset ||
+ r300->vertex_arrays_instance_id != instance_id)) {
+ r300_emit_vertex_arrays(r300, buffer_offset, indexed, instance_id);
+
+ r300->vertex_arrays_dirty = FALSE;
+ r300->vertex_arrays_indexed = indexed;
+ r300->vertex_arrays_offset = buffer_offset;
+ r300->vertex_arrays_instance_id = instance_id;
+ }
+
+ if (emit_vertex_arrays_swtcl)
+ r300_emit_vertex_arrays_swtcl(r300, indexed);
+
return TRUE;
}
From a4f4e24f0756f496cd5fa807ea70bcbee98a3134 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sat, 18 Jun 2011 18:58:57 +0200
Subject: [PATCH 127/406] r300g: rename AOS -> VARRAYS
---
src/gallium/drivers/r300/r300_render.c | 34 +++++++++++++-------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index fe7fa17e789..7cf0aba2ed0 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -175,8 +175,8 @@ static void r300_split_index_bias(struct r300_context *r300, int index_bias,
enum r300_prepare_flags {
PREP_EMIT_STATES = (1 << 0), /* call emit_dirty_state and friends? */
PREP_VALIDATE_VBOS = (1 << 1), /* validate VBOs? */
- PREP_EMIT_AOS = (1 << 2), /* call emit_vertex_arrays? */
- PREP_EMIT_AOS_SWTCL = (1 << 3), /* call emit_vertex_arrays_swtcl? */
+ PREP_EMIT_VARRAYS = (1 << 2), /* call emit_vertex_arrays? */
+ PREP_EMIT_VARRAYS_SWTCL = (1 << 3), /* call emit_vertex_arrays_swtcl? */
PREP_INDEXED = (1 << 4) /* is this draw_elements? */
};
@@ -194,8 +194,8 @@ static boolean r300_reserve_cs_dwords(struct r300_context *r300,
{
boolean flushed = FALSE;
boolean emit_states = flags & PREP_EMIT_STATES;
- boolean emit_vertex_arrays = flags & PREP_EMIT_AOS;
- boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_AOS_SWTCL;
+ boolean emit_vertex_arrays = flags & PREP_EMIT_VARRAYS;
+ boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_VARRAYS_SWTCL;
/* Add dirty state, index offset, and AOS. */
if (emit_states)
@@ -238,8 +238,8 @@ static boolean r300_emit_states(struct r300_context *r300,
int index_bias, int instance_id)
{
boolean emit_states = flags & PREP_EMIT_STATES;
- boolean emit_vertex_arrays = flags & PREP_EMIT_AOS;
- boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_AOS_SWTCL;
+ boolean emit_vertex_arrays = flags & PREP_EMIT_VARRAYS;
+ boolean emit_vertex_arrays_swtcl = flags & PREP_EMIT_VARRAYS_SWTCL;
boolean indexed = flags & PREP_INDEXED;
boolean validate_vbos = flags & PREP_VALIDATE_VBOS;
@@ -541,7 +541,7 @@ static void r300_draw_elements_immediate(struct r300_context *r300,
/* 19 dwords for r300_draw_elements_immediate. Give up if the function fails. */
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_AOS |
+ PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_VARRAYS |
PREP_INDEXED, NULL, 2+count_dwords, 0, info->index_bias, -1))
return;
@@ -663,7 +663,7 @@ static void r300_draw_elements(struct r300_context *r300,
/* 19 dwords for emit_draw_elements. Give up if the function fails. */
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_AOS |
+ PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_VARRAYS |
PREP_INDEXED, indexBuffer, 19, buffer_offset, info->index_bias,
instance_id))
goto done;
@@ -690,7 +690,7 @@ static void r300_draw_elements(struct r300_context *r300,
/* 15 dwords for emit_draw_elements */
if (count) {
if (!r300_prepare_for_rendering(r300,
- PREP_VALIDATE_VBOS | PREP_EMIT_AOS | PREP_INDEXED,
+ PREP_VALIDATE_VBOS | PREP_EMIT_VARRAYS | PREP_INDEXED,
indexBuffer, 19, buffer_offset, info->index_bias,
instance_id))
goto done;
@@ -716,7 +716,7 @@ static void r300_draw_arrays(struct r300_context *r300,
/* 9 spare dwords for emit_draw_arrays. Give up if the function fails. */
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_AOS,
+ PREP_EMIT_STATES | PREP_VALIDATE_VBOS | PREP_EMIT_VARRAYS,
NULL, 9, start, 0, instance_id))
return;
@@ -737,7 +737,7 @@ static void r300_draw_arrays(struct r300_context *r300,
/* 9 spare dwords for emit_draw_arrays. Give up if the function fails. */
if (count) {
if (!r300_prepare_for_rendering(r300,
- PREP_VALIDATE_VBOS | PREP_EMIT_AOS, NULL, 9,
+ PREP_VALIDATE_VBOS | PREP_EMIT_VARRAYS, NULL, 9,
start, 0, instance_id))
return;
}
@@ -844,7 +844,7 @@ static void r300_swtcl_draw_vbo(struct pipe_context* pipe,
r300_update_derived_state(r300);
r300_reserve_cs_dwords(r300,
- PREP_EMIT_STATES | PREP_EMIT_AOS_SWTCL |
+ PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL |
(indexed ? PREP_INDEXED : 0),
indexed ? 256 : 6);
@@ -1026,12 +1026,12 @@ static void r300_render_draw_arrays(struct vbuf_render* render,
if (r300->draw_first_emitted) {
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_STATES | PREP_EMIT_AOS_SWTCL,
+ PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL,
NULL, dwords, 0, 0, -1))
return;
} else {
if (!r300_emit_states(r300,
- PREP_EMIT_STATES | PREP_EMIT_AOS_SWTCL,
+ PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL,
NULL, 0, 0, -1))
return;
}
@@ -1066,12 +1066,12 @@ static void r300_render_draw_elements(struct vbuf_render* render,
if (r300->draw_first_emitted) {
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_STATES | PREP_EMIT_AOS_SWTCL | PREP_INDEXED,
+ PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL | PREP_INDEXED,
NULL, 256, 0, 0, -1))
return;
} else {
if (!r300_emit_states(r300,
- PREP_EMIT_STATES | PREP_EMIT_AOS_SWTCL | PREP_INDEXED,
+ PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL | PREP_INDEXED,
NULL, 0, 0, -1))
return;
}
@@ -1108,7 +1108,7 @@ static void r300_render_draw_elements(struct vbuf_render* render,
if (count) {
if (!r300_prepare_for_rendering(r300,
- PREP_EMIT_AOS_SWTCL | PREP_INDEXED,
+ PREP_EMIT_VARRAYS_SWTCL | PREP_INDEXED,
NULL, 256, 0, 0, -1))
return;
From 5c2c60175d0e5da9b0e9688538b84dedf05107de Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 15:07:59 -0700
Subject: [PATCH 128/406] i965: Add missing state flag for vertex elements on
current VS program.
Fixes a missing 3DSTATE_VERTEX_ELEMENTS on topogun.trace.
---
src/mesa/drivers/dri/i965/brw_draw_upload.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index c6e53951069..13d3aa7841c 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -278,6 +278,7 @@ static void brw_prepare_vertices(struct brw_context *brw)
{
struct gl_context *ctx = &brw->intel.ctx;
struct intel_context *intel = intel_context(ctx);
+ /* CACHE_NEW_VS_PROG */
GLbitfield vs_inputs = brw->vs.prog_data->inputs_read;
const unsigned char *ptr = NULL;
GLuint interleaved = 0, total_size = 0;
@@ -646,7 +647,7 @@ const struct brw_tracked_state brw_vertices = {
.dirty = {
.mesa = 0,
.brw = BRW_NEW_BATCH | BRW_NEW_VERTICES,
- .cache = 0,
+ .cache = CACHE_NEW_VS_PROG,
},
.prepare = brw_prepare_vertices,
.emit = brw_emit_vertices,
From a5a36d9b158a317daa1cf10a6b6ed2bed6b22750 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Fri, 10 Jun 2011 20:19:01 -0700
Subject: [PATCH 129/406] i965: Don't try to continue space before the start of
a VBO.
This loop is trying to see if all the buffers to be uploaded happen to
be the same increment from the start of the 3DSTATE_VERTEX_BUFFERS
currently loaded in the hardware. However, we might be at a smaller
offset than the previous set of VERTEX_BUFFERS, so we can't reuse
because that packet made the first entry be its starting offset (you
can't access outside the given bounds).
Fixes piglit ARB_vertex_buffer_object/elements-negative-offset.
---
src/mesa/drivers/dri/i965/brw_draw_upload.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index 13d3aa7841c..32a1d297479 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -500,6 +500,8 @@ static void brw_prepare_vertices(struct brw_context *brw)
break;
d = brw->vb.buffers[i].offset - brw->vb.current_buffers[i].offset;
+ if (d < 0)
+ break;
if (i == 0)
delta = d / brw->vb.current_buffers[i].stride;
if (delta * brw->vb.current_buffers[i].stride != d)
From 001e07144332203bb30993eed4181b0e411a18be Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 25 May 2011 16:37:09 -0700
Subject: [PATCH 130/406] mesa: Flag _NEW_BUFFERS when unbinding an attachment
on glDeleteTextures.
The _ColorDrawBuffers[] wouldn't get updated despite us having updated
what it depends on (Attachments[]->Renderbuffer). Other callers of
_mesa_remove_attachment are already flagging _NEW_BUFFERS for other
reasons. The specific bug report that led to this fix (and
the fbo-finish-deleted testcase) was fixed by
23b6f9606dc247488835745668b3686218612536, though.
Reviewed-by: Brian Paul
---
src/mesa/main/texobj.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
index fdf12817c9a..565a3a2d8df 100644
--- a/src/mesa/main/texobj.c
+++ b/src/mesa/main/texobj.c
@@ -879,6 +879,8 @@ unbind_texobj_from_fbo(struct gl_context *ctx,
for (j = 0; j < BUFFER_COUNT; j++) {
if (fb->Attachment[j].Type == GL_TEXTURE &&
fb->Attachment[j].Texture == texObj) {
+ /* Vertices are already flushed by _mesa_DeleteTextures */
+ ctx->NewState |= _NEW_BUFFERS;
_mesa_remove_attachment(ctx, fb->Attachment + j);
}
}
From 6f998b58bc61f2507cd53204d7567299379c42ca Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Sat, 18 Jun 2011 15:59:00 -0700
Subject: [PATCH 131/406] mesa: Fix render-to-texture regression.
Accidentally introduced in fc8c4a3a7b92a1134cd3a9312063abba9e14b0fe.
Fixes fbo-drawbuffers-maxtargets and friends.
---
src/mesa/main/fbobject.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 07853e03ce1..8cc3fd49a34 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1556,7 +1556,7 @@ check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
GLuint i;
ASSERT(ctx->Driver.RenderTexture);
- if (is_winsys_fbo(fb));
+ if (is_winsys_fbo(fb))
return; /* can't render to texture with winsys framebuffers */
for (i = 0; i < BUFFER_COUNT; i++) {
@@ -1576,7 +1576,7 @@ check_begin_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
static void
check_end_texture_render(struct gl_context *ctx, struct gl_framebuffer *fb)
{
- if (is_winsys_fbo(fb));
+ if (is_winsys_fbo(fb))
return; /* can't render to texture with winsys framebuffers */
if (ctx->Driver.FinishRenderTexture) {
From 962dab948609c97c1c01fde6a27e19307948d302 Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Tue, 14 Jun 2011 15:48:24 -0700
Subject: [PATCH 132/406] i965: Only flag the new-batch related state as dirty
at new batch time.
This was debug code from the initial import of the driver. No
statistically significant performance difference on cairo-gl or
nexuiz (n=6).
---
src/mesa/drivers/dri/i965/brw_vtbl.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index 69650e1df77..236c4d297d1 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -122,11 +122,7 @@ static void brw_new_batch( struct intel_context *intel )
* This is probably not as severe as on 915, since almost all of our state
* is just in referenced buffers.
*/
- brw->state.dirty.brw |= BRW_NEW_CONTEXT;
-
- brw->state.dirty.mesa |= ~0;
- brw->state.dirty.brw |= ~0;
- brw->state.dirty.cache |= ~0;
+ brw->state.dirty.brw |= BRW_NEW_CONTEXT | BRW_NEW_BATCH;
brw->vb.nr_current_buffers = 0;
}
From c173541d9769d41a85cc899bc49699a3587df4bf Mon Sep 17 00:00:00 2001
From: Eric Anholt
Date: Wed, 27 Apr 2011 13:33:10 -0700
Subject: [PATCH 133/406] i965: Use state streaming on programs, and state base
address on gen5+.
There will be a little bit of thrashing of the program cache BO as the
cache warms up, but once the application is in steady state, this
reduces relocations on gen5 and later.
On my T420 laptop, cairogl firefox-talos-gfx performance improves 2.6%
+/- 1.3% (n=6). No statistically significant performance difference
on nexuiz (n=5).
---
src/mesa/drivers/dri/i965/brw_clip.c | 24 ++-
src/mesa/drivers/dri/i965/brw_clip_state.c | 19 +--
src/mesa/drivers/dri/i965/brw_context.h | 55 +++++--
src/mesa/drivers/dri/i965/brw_fs.cpp | 6 +-
src/mesa/drivers/dri/i965/brw_gs.c | 24 +--
src/mesa/drivers/dri/i965/brw_gs_state.c | 19 +--
src/mesa/drivers/dri/i965/brw_misc_state.c | 10 +-
src/mesa/drivers/dri/i965/brw_sf.c | 22 +--
src/mesa/drivers/dri/i965/brw_sf_state.c | 15 +-
src/mesa/drivers/dri/i965/brw_state.h | 28 ++--
src/mesa/drivers/dri/i965/brw_state_cache.c | 164 +++++++++----------
src/mesa/drivers/dri/i965/brw_state_dump.c | 26 +--
src/mesa/drivers/dri/i965/brw_state_upload.c | 17 +-
src/mesa/drivers/dri/i965/brw_vs.c | 22 +--
src/mesa/drivers/dri/i965/brw_vs_state.c | 18 +-
src/mesa/drivers/dri/i965/brw_vtbl.c | 12 +-
src/mesa/drivers/dri/i965/brw_wm.c | 21 +--
src/mesa/drivers/dri/i965/brw_wm_state.c | 40 ++---
src/mesa/drivers/dri/i965/gen6_gs_state.c | 2 +-
src/mesa/drivers/dri/i965/gen6_urb.c | 2 +-
src/mesa/drivers/dri/i965/gen6_vs_state.c | 2 +-
src/mesa/drivers/dri/i965/gen6_wm_state.c | 10 +-
src/mesa/drivers/dri/i965/gen7_disable.c | 2 +-
src/mesa/drivers/dri/i965/gen7_urb.c | 2 +-
src/mesa/drivers/dri/i965/gen7_vs_state.c | 2 +-
src/mesa/drivers/dri/i965/gen7_wm_state.c | 9 +-
26 files changed, 276 insertions(+), 297 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_clip.c b/src/mesa/drivers/dri/i965/brw_clip.c
index c7d428ba48d..d82206bae52 100644
--- a/src/mesa/drivers/dri/i965/brw_clip.c
+++ b/src/mesa/drivers/dri/i965/brw_clip.c
@@ -146,15 +146,12 @@ static void compile_clip_prog( struct brw_context *brw,
printf("\n");
}
- /* Upload
- */
- drm_intel_bo_unreference(brw->clip.prog_bo);
- brw->clip.prog_bo = brw_upload_cache(&brw->cache,
- BRW_CLIP_PROG,
- &c.key, sizeof(c.key),
- program, program_size,
- &c.prog_data, sizeof(c.prog_data),
- &brw->clip.prog_data);
+ brw_upload_cache(&brw->cache,
+ BRW_CLIP_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->clip.prog_offset, &brw->clip.prog_data);
ralloc_free(mem_ctx);
}
@@ -271,12 +268,11 @@ static void upload_clip_prog(struct brw_context *brw)
}
}
- drm_intel_bo_unreference(brw->clip.prog_bo);
- brw->clip.prog_bo = brw_search_cache(&brw->cache, BRW_CLIP_PROG,
- &key, sizeof(key),
- &brw->clip.prog_data);
- if (brw->clip.prog_bo == NULL)
+ if (!brw_search_cache(&brw->cache, BRW_CLIP_PROG,
+ &key, sizeof(key),
+ &brw->clip.prog_offset, &brw->clip.prog_data)) {
compile_clip_prog( brw, &key );
+ }
}
diff --git a/src/mesa/drivers/dri/i965/brw_clip_state.c b/src/mesa/drivers/dri/i965/brw_clip_state.c
index 6015c8cbe9f..b9efbb74c87 100644
--- a/src/mesa/drivers/dri/i965/brw_clip_state.c
+++ b/src/mesa/drivers/dri/i965/brw_clip_state.c
@@ -43,11 +43,15 @@ brw_prepare_clip_unit(struct brw_context *brw)
clip = brw_state_batch(brw, sizeof(*clip), 32, &brw->clip.state_offset);
memset(clip, 0, sizeof(*clip));
- /* CACHE_NEW_CLIP_PROG */
+ /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_CLIP_PROG */
clip->thread0.grf_reg_count = (ALIGN(brw->clip.prog_data->total_grf, 16) /
16 - 1);
- /* reloc */
- clip->thread0.kernel_start_pointer = brw->clip.prog_bo->offset >> 6;
+ clip->thread0.kernel_start_pointer =
+ brw_program_reloc(brw,
+ brw->clip.state_offset +
+ offsetof(struct brw_clip_unit_state, thread0),
+ brw->clip.prog_offset +
+ (clip->thread0.grf_reg_count << 1)) >> 6;
clip->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
clip->thread1.single_program_flow = 1;
@@ -110,14 +114,6 @@ brw_prepare_clip_unit(struct brw_context *brw)
clip->viewport_ymin = -1;
clip->viewport_ymax = 1;
- /* Emit clip program relocation */
- assert(brw->clip.prog_bo);
- drm_intel_bo_emit_reloc(intel->batch.bo,
- (brw->clip.state_offset +
- offsetof(struct brw_clip_unit_state, thread0)),
- brw->clip.prog_bo, clip->thread0.grf_reg_count << 1,
- I915_GEM_DOMAIN_INSTRUCTION, 0);
-
brw->state.dirty.cache |= CACHE_NEW_CLIP_UNIT;
}
@@ -125,6 +121,7 @@ const struct brw_tracked_state brw_clip_unit = {
.dirty = {
.mesa = _NEW_TRANSFORM,
.brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE |
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_URB_FENCE),
.cache = CACHE_NEW_CLIP_PROG
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 621b6f8990b..16b71f6b1c9 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -142,7 +142,8 @@ enum brw_state_id {
BRW_STATE_NR_VS_SURFACES,
BRW_STATE_INDEX_BUFFER,
BRW_STATE_VS_CONSTBUF,
- BRW_STATE_WM_CONSTBUF
+ BRW_STATE_WM_CONSTBUF,
+ BRW_STATE_PROGRAM_CACHE,
};
#define BRW_NEW_URB_FENCE (1 << BRW_STATE_URB_FENCE)
@@ -172,6 +173,7 @@ enum brw_state_id {
#define BRW_NEW_INDEX_BUFFER (1 << BRW_STATE_INDEX_BUFFER)
#define BRW_NEW_VS_CONSTBUF (1 << BRW_STATE_VS_CONSTBUF)
#define BRW_NEW_WM_CONSTBUF (1 << BRW_STATE_WM_CONSTBUF)
+#define BRW_NEW_PROGRAM_CACHE (1 << BRW_STATE_PROGRAM_CACHE)
struct brw_state_flags {
/** State update flags signalled by mesa internals */
@@ -365,7 +367,8 @@ struct brw_cache_item {
GLuint key_size; /* for variable-sized keys */
const void *key;
- drm_intel_bo *bo;
+ uint32_t offset;
+ uint32_t size;
struct brw_cache_item *next;
};
@@ -376,14 +379,11 @@ struct brw_cache {
struct brw_context *brw;
struct brw_cache_item **items;
+ drm_intel_bo *bo;
GLuint size, n_items;
- char *name[BRW_MAX_CACHE];
-
- /* Record of the last BOs chosen for each cache_id. Used to set
- * brw->state.dirty.cache when a new cache item is chosen.
- */
- drm_intel_bo *last_bo[BRW_MAX_CACHE];
+ uint32_t next_offset;
+ bool bo_used_by_gpu;
};
@@ -634,8 +634,9 @@ struct brw_context
struct brw_vs_prog_data *prog_data;
int8_t *constant_map; /* variable array following prog_data */
- drm_intel_bo *prog_bo;
drm_intel_bo *const_bo;
+ /** Offset in the program cache to the VS program */
+ uint32_t prog_offset;
uint32_t state_offset;
/** Binding table of pointers to surf_bo entries */
@@ -651,14 +652,16 @@ struct brw_context
struct brw_gs_prog_data *prog_data;
GLboolean prog_active;
+ /** Offset in the program cache to the CLIP program pre-gen6 */
+ uint32_t prog_offset;
uint32_t state_offset;
- drm_intel_bo *prog_bo;
} gs;
struct {
struct brw_clip_prog_data *prog_data;
- drm_intel_bo *prog_bo;
+ /** Offset in the program cache to the CLIP program pre-gen6 */
+ uint32_t prog_offset;
/* Offset in the batch to the CLIP state on pre-gen6. */
uint32_t state_offset;
@@ -673,7 +676,8 @@ struct brw_context
struct {
struct brw_sf_prog_data *prog_data;
- drm_intel_bo *prog_bo;
+ /** Offset in the program cache to the CLIP program pre-gen6 */
+ uint32_t prog_offset;
uint32_t state_offset;
uint32_t vp_offset;
} sf;
@@ -700,12 +704,14 @@ struct brw_context
GLuint sampler_count;
uint32_t sampler_offset;
+ /** Offset in the program cache to the WM program */
+ uint32_t prog_offset;
+
/** Binding table of pointers to surf_bo entries */
uint32_t bind_bo_offset;
uint32_t surf_offset[BRW_WM_MAX_SURF];
uint32_t state_offset; /* offset in batchbuffer to pre-gen6 WM state */
- drm_intel_bo *prog_bo;
drm_intel_bo *const_bo; /* pull constant buffer. */
/**
* This is offset in the batch to the push constants on gen6.
@@ -717,9 +723,6 @@ struct brw_context
struct {
- /* gen4 */
- drm_intel_bo *prog_bo;
-
uint32_t state_offset;
uint32_t blend_state_offset;
uint32_t depth_stencil_state_offset;
@@ -874,6 +877,26 @@ brw_register_blocks(int reg_count)
return ALIGN(reg_count, 16) / 16 - 1;
}
+static inline uint32_t
+brw_program_reloc(struct brw_context *brw, uint32_t state_offset,
+ uint32_t prog_offset)
+{
+ struct intel_context *intel = &brw->intel;
+
+ if (intel->gen >= 5) {
+ /* Using state base address. */
+ return prog_offset;
+ }
+
+ drm_intel_bo_emit_reloc(intel->batch.bo,
+ state_offset,
+ brw->cache.bo,
+ prog_offset,
+ I915_GEM_DOMAIN_INSTRUCTION, 0);
+
+ return brw->cache.bo->offset + prog_offset;
+}
+
GLboolean brw_do_cubemap_normalize(struct exec_list *instructions);
#endif
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 7c73a8fbf02..8580c78fea1 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1697,14 +1697,12 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
key.program_string_id = bfp->id;
- drm_intel_bo *old_prog_bo = brw->wm.prog_bo;
+ uint32_t old_prog_offset = brw->wm.prog_offset;
struct brw_wm_prog_data *old_prog_data = brw->wm.prog_data;
- brw->wm.prog_bo = NULL;
bool success = do_wm_prog(brw, prog, bfp, &key);
- drm_intel_bo_unreference(brw->wm.prog_bo);
- brw->wm.prog_bo = old_prog_bo;
+ brw->wm.prog_offset = old_prog_offset;
brw->wm.prog_data = old_prog_data;
return success;
diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c
index 001cd62f8ca..3171e97d7af 100644
--- a/src/mesa/drivers/dri/i965/brw_gs.c
+++ b/src/mesa/drivers/dri/i965/brw_gs.c
@@ -121,14 +121,11 @@ static void compile_gs_prog( struct brw_context *brw,
printf("\n");
}
- /* Upload
- */
- drm_intel_bo_unreference(brw->gs.prog_bo);
- brw->gs.prog_bo = brw_upload_cache(&brw->cache, BRW_GS_PROG,
- &c.key, sizeof(c.key),
- program, program_size,
- &c.prog_data, sizeof(c.prog_data),
- &brw->gs.prog_data);
+ brw_upload_cache(&brw->cache, BRW_GS_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->gs.prog_offset, &brw->gs.prog_data);
ralloc_free(mem_ctx);
}
@@ -189,15 +186,12 @@ static void prepare_gs_prog(struct brw_context *brw)
brw->gs.prog_active = key.need_gs_prog;
}
- drm_intel_bo_unreference(brw->gs.prog_bo);
- brw->gs.prog_bo = NULL;
-
if (brw->gs.prog_active) {
- brw->gs.prog_bo = brw_search_cache(&brw->cache, BRW_GS_PROG,
- &key, sizeof(key),
- &brw->gs.prog_data);
- if (brw->gs.prog_bo == NULL)
+ if (!brw_search_cache(&brw->cache, BRW_GS_PROG,
+ &key, sizeof(key),
+ &brw->gs.prog_offset, &brw->gs.prog_data)) {
compile_gs_prog( brw, &key );
+ }
}
}
diff --git a/src/mesa/drivers/dri/i965/brw_gs_state.c b/src/mesa/drivers/dri/i965/brw_gs_state.c
index 542874b7706..bbfefcd816a 100644
--- a/src/mesa/drivers/dri/i965/brw_gs_state.c
+++ b/src/mesa/drivers/dri/i965/brw_gs_state.c
@@ -45,12 +45,17 @@ brw_prepare_gs_unit(struct brw_context *brw)
memset(gs, 0, sizeof(*gs));
- /* CACHE_NEW_GS_PROG */
+ /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_GS_PROG */
if (brw->gs.prog_active) {
gs->thread0.grf_reg_count = (ALIGN(brw->gs.prog_data->total_grf, 16) /
16 - 1);
- /* reloc */
- gs->thread0.kernel_start_pointer = brw->gs.prog_bo->offset >> 6;
+
+ gs->thread0.kernel_start_pointer =
+ brw_program_reloc(brw,
+ brw->gs.state_offset +
+ offsetof(struct brw_gs_unit_state, thread0),
+ brw->gs.prog_offset +
+ (gs->thread0.grf_reg_count << 1)) >> 6;
gs->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
gs->thread1.single_program_flow = 1;
@@ -69,13 +74,6 @@ brw_prepare_gs_unit(struct brw_context *brw)
gs->thread4.max_threads = 1;
else
gs->thread4.max_threads = 0;
-
- /* Emit GS program relocation */
- drm_intel_bo_emit_reloc(intel->batch.bo,
- (brw->gs.state_offset +
- offsetof(struct brw_gs_unit_state, thread0)),
- brw->gs.prog_bo, gs->thread0.grf_reg_count << 1,
- I915_GEM_DOMAIN_INSTRUCTION, 0);
}
if (intel->gen == 5)
@@ -91,6 +89,7 @@ const struct brw_tracked_state brw_gs_unit = {
.dirty = {
.mesa = 0,
.brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE |
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_URB_FENCE),
.cache = CACHE_NEW_GS_PROG
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 1f3b64fd538..b0f95dd66b5 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -706,7 +706,9 @@ static void upload_state_base_address( struct brw_context *brw )
I915_GEM_DOMAIN_INSTRUCTION), 0, 1);
OUT_BATCH(1); /* Indirect object base address: MEDIA_OBJECT data */
- OUT_BATCH(1); /* Instruction base address: shader kernels (incl. SIP) */
+ OUT_RELOC(brw->cache.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ 1); /* Instruction base address: shader kernels (incl. SIP) */
+
OUT_BATCH(1); /* General state upper bound */
OUT_BATCH(1); /* Dynamic state upper bound */
OUT_BATCH(1); /* Indirect object upper bound */
@@ -719,7 +721,8 @@ static void upload_state_base_address( struct brw_context *brw )
OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_SAMPLER, 0,
1); /* Surface state base address */
OUT_BATCH(1); /* Indirect object base address */
- OUT_BATCH(1); /* Instruction base address */
+ OUT_RELOC(brw->cache.bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
+ 1); /* Instruction base address */
OUT_BATCH(1); /* General state upper bound */
OUT_BATCH(1); /* Indirect object upper bound */
OUT_BATCH(1); /* Instruction access upper bound */
@@ -740,7 +743,8 @@ static void upload_state_base_address( struct brw_context *brw )
const struct brw_tracked_state brw_state_base_address = {
.dirty = {
.mesa = 0,
- .brw = BRW_NEW_BATCH,
+ .brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE),
.cache = 0,
},
.emit = upload_state_base_address
diff --git a/src/mesa/drivers/dri/i965/brw_sf.c b/src/mesa/drivers/dri/i965/brw_sf.c
index c2227777cfb..fca30a74aaf 100644
--- a/src/mesa/drivers/dri/i965/brw_sf.c
+++ b/src/mesa/drivers/dri/i965/brw_sf.c
@@ -120,14 +120,11 @@ static void compile_sf_prog( struct brw_context *brw,
printf("\n");
}
- /* Upload
- */
- drm_intel_bo_unreference(brw->sf.prog_bo);
- brw->sf.prog_bo = brw_upload_cache(&brw->cache, BRW_SF_PROG,
- &c.key, sizeof(c.key),
- program, program_size,
- &c.prog_data, sizeof(c.prog_data),
- &brw->sf.prog_data);
+ brw_upload_cache(&brw->cache, BRW_SF_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, sizeof(c.prog_data),
+ &brw->sf.prog_offset, &brw->sf.prog_data);
ralloc_free(mem_ctx);
}
@@ -191,12 +188,11 @@ static void upload_sf_prog(struct brw_context *brw)
key.frontface_ccw = (ctx->Polygon.FrontFace == GL_CCW) ^ (ctx->DrawBuffer->Name != 0);
}
- drm_intel_bo_unreference(brw->sf.prog_bo);
- brw->sf.prog_bo = brw_search_cache(&brw->cache, BRW_SF_PROG,
- &key, sizeof(key),
- &brw->sf.prog_data);
- if (brw->sf.prog_bo == NULL)
+ if (!brw_search_cache(&brw->cache, BRW_SF_PROG,
+ &key, sizeof(key),
+ &brw->sf.prog_offset, &brw->sf.prog_data)) {
compile_sf_prog( brw, &key );
+ }
}
diff --git a/src/mesa/drivers/dri/i965/brw_sf_state.c b/src/mesa/drivers/dri/i965/brw_sf_state.c
index 78b22c4df3d..eb3d103099b 100644
--- a/src/mesa/drivers/dri/i965/brw_sf_state.c
+++ b/src/mesa/drivers/dri/i965/brw_sf_state.c
@@ -133,9 +133,14 @@ static void upload_sf_unit( struct brw_context *brw )
memset(sf, 0, sizeof(*sf));
- /* CACHE_NEW_SF_PROG */
+ /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_SF_PROG */
sf->thread0.grf_reg_count = ALIGN(brw->sf.prog_data->total_grf, 16) / 16 - 1;
- sf->thread0.kernel_start_pointer = brw->sf.prog_bo->offset >> 6; /* reloc */
+ sf->thread0.kernel_start_pointer =
+ brw_program_reloc(brw,
+ brw->sf.state_offset +
+ offsetof(struct brw_sf_unit_state, thread0),
+ brw->sf.prog_offset +
+ (sf->thread0.grf_reg_count << 1)) >> 6;
sf->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
@@ -282,11 +287,6 @@ static void upload_sf_unit( struct brw_context *brw )
/* STATE_PREFETCH command description describes this state as being
* something loaded through the GPE (L2 ISC), so it's INSTRUCTION domain.
*/
- /* Emit SF program relocation */
- drm_intel_bo_emit_reloc(bo, (brw->sf.state_offset +
- offsetof(struct brw_sf_unit_state, thread0)),
- brw->sf.prog_bo, sf->thread0.grf_reg_count << 1,
- I915_GEM_DOMAIN_INSTRUCTION, 0);
/* Emit SF viewport relocation */
drm_intel_bo_emit_reloc(bo, (brw->sf.state_offset +
@@ -308,6 +308,7 @@ const struct brw_tracked_state brw_sf_unit = {
_NEW_SCISSOR |
_NEW_BUFFERS),
.brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE |
BRW_NEW_URB_FENCE),
.cache = (CACHE_NEW_SF_VP |
CACHE_NEW_SF_PROG)
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index 544ef7d47e6..b384651d8d0 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -145,21 +145,21 @@ void brw_clear_validated_bos(struct brw_context *brw);
* brw_state_cache.c
*/
-drm_intel_bo *brw_upload_cache(struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *key,
- GLuint key_sz,
- const void *data,
- GLuint data_sz,
- const void *aux,
- GLuint aux_sz,
- void *aux_return);
+void brw_upload_cache(struct brw_cache *cache,
+ enum brw_cache_id cache_id,
+ const void *key,
+ GLuint key_sz,
+ const void *data,
+ GLuint data_sz,
+ const void *aux,
+ GLuint aux_sz,
+ uint32_t *out_offset, void *out_aux);
-drm_intel_bo *brw_search_cache( struct brw_cache *cache,
- enum brw_cache_id cache_id,
- const void *key,
- GLuint key_size,
- void *aux_return);
+bool brw_search_cache(struct brw_cache *cache,
+ enum brw_cache_id cache_id,
+ const void *key,
+ GLuint key_size,
+ uint32_t *inout_offset, void *out_aux);
void brw_state_cache_check_size( struct brw_context *brw );
void brw_init_caches( struct brw_context *brw );
diff --git a/src/mesa/drivers/dri/i965/brw_state_cache.c b/src/mesa/drivers/dri/i965/brw_state_cache.c
index f13a41fa7cc..d13711b19b7 100644
--- a/src/mesa/drivers/dri/i965/brw_state_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_state_cache.c
@@ -45,6 +45,7 @@
*/
#include "main/imports.h"
+#include "intel_batchbuffer.h"
#include "brw_state.h"
#define FILE_DEBUG_FLAG DEBUG_STATE
@@ -67,23 +68,6 @@ hash_key(struct brw_cache_item *item)
return hash;
}
-
-/**
- * Marks a new buffer as being chosen for the given cache id.
- */
-static void
-update_cache_last(struct brw_cache *cache, enum brw_cache_id cache_id,
- drm_intel_bo *bo)
-{
- if (bo == cache->last_bo[cache_id])
- return; /* no change */
-
- drm_intel_bo_unreference(cache->last_bo[cache_id]);
- cache->last_bo[cache_id] = bo;
- drm_intel_bo_reference(cache->last_bo[cache_id]);
- cache->brw->state.dirty.cache |= 1 << cache_id;
-}
-
static int
brw_cache_item_equals(const struct brw_cache_item *a,
const struct brw_cache_item *b)
@@ -145,12 +129,13 @@ rehash(struct brw_cache *cache)
/**
* Returns the buffer object matching cache_id and key, or NULL.
*/
-drm_intel_bo *
+bool
brw_search_cache(struct brw_cache *cache,
enum brw_cache_id cache_id,
const void *key, GLuint key_size,
- void *aux_return)
+ uint32_t *inout_offset, void *out_aux)
{
+ struct brw_context *brw = cache->brw;
struct brw_cache_item *item;
struct brw_cache_item lookup;
GLuint hash;
@@ -164,19 +149,45 @@ brw_search_cache(struct brw_cache *cache,
item = search_cache(cache, hash, &lookup);
if (item == NULL)
- return NULL;
+ return false;
- if (aux_return)
- *(void **)aux_return = (void *)((char *)item->key + item->key_size);
+ *(void **)out_aux = ((char *)item->key + item->key_size);
- update_cache_last(cache, cache_id, item->bo);
+ if (item->offset != *inout_offset) {
+ brw->state.dirty.cache |= (1 << cache_id);
+ *inout_offset = item->offset;
+ }
- drm_intel_bo_reference(item->bo);
- return item->bo;
+ return true;
}
+static void
+brw_cache_new_bo(struct brw_cache *cache, uint32_t new_size)
+{
+ struct brw_context *brw = cache->brw;
+ struct intel_context *intel = &brw->intel;
+ drm_intel_bo *new_bo;
-drm_intel_bo *
+ new_bo = drm_intel_bo_alloc(intel->bufmgr, "program cache", new_size, 64);
+
+ /* Copy any existing data that needs to be saved. */
+ if (cache->next_offset != 0) {
+ drm_intel_bo_map(cache->bo, false);
+ drm_intel_bo_subdata(new_bo, 0, cache->next_offset, cache->bo->virtual);
+ drm_intel_bo_unmap(cache->bo);
+ }
+
+ drm_intel_bo_unreference(cache->bo);
+ cache->bo = new_bo;
+ cache->bo_used_by_gpu = false;
+
+ /* Since we have a new BO in place, we need to signal the units
+ * that depend on it (state base address on gen5+, or unit state before).
+ */
+ brw->state.dirty.brw |= BRW_NEW_PROGRAM_CACHE;
+}
+
+void
brw_upload_cache(struct brw_cache *cache,
enum brw_cache_id cache_id,
const void *key,
@@ -185,12 +196,12 @@ brw_upload_cache(struct brw_cache *cache,
GLuint data_size,
const void *aux,
GLuint aux_size,
- void *aux_return)
+ uint32_t *out_offset,
+ void *out_aux)
{
struct brw_cache_item *item = CALLOC_STRUCT(brw_cache_item);
GLuint hash;
void *tmp;
- drm_intel_bo *bo;
item->cache_id = cache_id;
item->key = key;
@@ -198,10 +209,28 @@ brw_upload_cache(struct brw_cache *cache,
hash = hash_key(item);
item->hash = hash;
- /* Create the buffer object to contain the data */
- bo = drm_intel_bo_alloc(cache->brw->intel.bufmgr,
- cache->name[cache_id], data_size, 1 << 6);
+ /* Allocate space in the cache BO for our new program. */
+ if (cache->next_offset + data_size > cache->bo->size) {
+ uint32_t new_size = cache->bo->size * 2;
+ while (cache->next_offset + data_size > new_size)
+ new_size *= 2;
+
+ brw_cache_new_bo(cache, new_size);
+ }
+
+ /* If we would block on writing to an in-use program BO, just
+ * recreate it.
+ */
+ if (cache->bo_used_by_gpu) {
+ brw_cache_new_bo(cache, cache->bo->size);
+ }
+
+ item->offset = cache->next_offset;
+ item->size = data_size;
+
+ /* Programs are always 64-byte aligned, so set up the next one now */
+ cache->next_offset = ALIGN(item->offset + data_size, 64);
/* Set up the memory containing the key and aux_data */
tmp = malloc(key_size + aux_size);
@@ -211,9 +240,6 @@ brw_upload_cache(struct brw_cache *cache,
item->key = tmp;
- item->bo = bo;
- drm_intel_bo_reference(bo);
-
if (cache->n_items > cache->size * 1.5)
rehash(cache);
@@ -222,34 +248,18 @@ brw_upload_cache(struct brw_cache *cache,
cache->items[hash] = item;
cache->n_items++;
- if (aux_return) {
- *(void **)aux_return = (void *)((char *)item->key + item->key_size);
- }
-
- DBG("upload %s: %d bytes to cache id %d\n",
- cache->name[cache_id],
- data_size, cache_id);
-
/* Copy data to the buffer */
- drm_intel_bo_subdata(bo, 0, data_size, data);
+ drm_intel_bo_subdata(cache->bo, item->offset, data_size, data);
- update_cache_last(cache, cache_id, bo);
-
- return bo;
+ *out_offset = item->offset;
+ *(void **)out_aux = (void *)((char *)item->key + item->key_size);
+ cache->brw->state.dirty.cache |= 1 << cache_id;
}
-static void
-brw_init_cache_id(struct brw_cache *cache,
- const char *name,
- enum brw_cache_id id)
-{
- cache->name[id] = strdup(name);
-}
-
-
void
brw_init_caches(struct brw_context *brw)
{
+ struct intel_context *intel = &brw->intel;
struct brw_cache *cache = &brw->cache;
cache->brw = brw;
@@ -259,36 +269,15 @@ brw_init_caches(struct brw_context *brw)
cache->items = (struct brw_cache_item **)
calloc(1, cache->size * sizeof(struct brw_cache_item));
- brw_init_cache_id(cache, "CC_VP", BRW_CC_VP);
- brw_init_cache_id(cache, "CC_UNIT", BRW_CC_UNIT);
- brw_init_cache_id(cache, "WM_PROG", BRW_WM_PROG);
- brw_init_cache_id(cache, "SAMPLER", BRW_SAMPLER);
- brw_init_cache_id(cache, "WM_UNIT", BRW_WM_UNIT);
- brw_init_cache_id(cache, "SF_PROG", BRW_SF_PROG);
- brw_init_cache_id(cache, "SF_VP", BRW_SF_VP);
-
- brw_init_cache_id(cache, "SF_UNIT", BRW_SF_UNIT);
-
- brw_init_cache_id(cache, "VS_UNIT", BRW_VS_UNIT);
-
- brw_init_cache_id(cache, "VS_PROG", BRW_VS_PROG);
-
- brw_init_cache_id(cache, "CLIP_UNIT", BRW_CLIP_UNIT);
-
- brw_init_cache_id(cache, "CLIP_PROG", BRW_CLIP_PROG);
- brw_init_cache_id(cache, "CLIP_VP", BRW_CLIP_VP);
-
- brw_init_cache_id(cache, "GS_UNIT", BRW_GS_UNIT);
-
- brw_init_cache_id(cache, "GS_PROG", BRW_GS_PROG);
- brw_init_cache_id(cache, "BLEND_STATE", BRW_BLEND_STATE);
- brw_init_cache_id(cache, "COLOR_CALC_STATE", BRW_COLOR_CALC_STATE);
- brw_init_cache_id(cache, "DEPTH_STENCIL_STATE", BRW_DEPTH_STENCIL_STATE);
+ cache->bo = drm_intel_bo_alloc(intel->bufmgr,
+ "program cache",
+ 4096, 64);
}
static void
brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
{
+ struct intel_context *intel = &brw->intel;
struct brw_cache_item *c, *next;
GLuint i;
@@ -297,7 +286,6 @@ brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
for (i = 0; i < cache->size; i++) {
for (c = cache->items[i]; c; c = next) {
next = c->next;
- drm_intel_bo_unreference(c->bo);
free((void *)c->key);
free(c);
}
@@ -306,9 +294,18 @@ brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
cache->n_items = 0;
+ /* Start putting programs into the start of the BO again, since
+ * we'll never find the old results.
+ */
+ cache->next_offset = 0;
+
+ /* We need to make sure that the programs get regenerated, since
+ * any offsets leftover in brw_context will no longer be valid.
+ */
brw->state.dirty.mesa |= ~0;
brw->state.dirty.brw |= ~0;
brw->state.dirty.cache |= ~0;
+ intel_batchbuffer_flush(intel);
}
void
@@ -325,15 +322,10 @@ brw_state_cache_check_size(struct brw_context *brw)
static void
brw_destroy_cache(struct brw_context *brw, struct brw_cache *cache)
{
- GLuint i;
DBG("%s\n", __FUNCTION__);
brw_clear_cache(brw, cache);
- for (i = 0; i < BRW_MAX_CACHE; i++) {
- drm_intel_bo_unreference(cache->last_bo[i]);
- free(cache->name[i]);
- }
free(cache->items);
cache->items = NULL;
cache->size = 0;
diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c b/src/mesa/drivers/dri/i965/brw_state_dump.c
index ff06cb3a91e..7a3a88f04f5 100644
--- a/src/mesa/drivers/dri/i965/brw_state_dump.c
+++ b/src/mesa/drivers/dri/i965/brw_state_dump.c
@@ -459,21 +459,19 @@ static void dump_blend_state(struct brw_context *brw)
}
-static void brw_debug_prog(const char *name, drm_intel_bo *prog)
+static void brw_debug_prog(struct brw_context *brw,
+ const char *name, uint32_t prog_offset)
{
unsigned int i;
uint32_t *data;
- if (prog == NULL)
- return;
+ drm_intel_bo_map(brw->cache.bo, false);
- drm_intel_bo_map(prog, GL_FALSE);
+ data = brw->cache.bo->virtual + prog_offset;
- data = prog->virtual;
-
- for (i = 0; i < prog->size / 4 / 4; i++) {
+ for (i = 0; i < brw->cache.bo->size / 4 / 4; i++) {
fprintf(stderr, "%8s: 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n",
- name, (unsigned int)prog->offset + i * 4 * 4,
+ name, (unsigned int)brw->cache.bo->offset + i * 4 * 4,
data[i * 4], data[i * 4 + 1], data[i * 4 + 2], data[i * 4 + 3]);
/* Stop at the end of the program. It'd be nice to keep track of the actual
* intended program size instead of guessing like this.
@@ -485,7 +483,7 @@ static void brw_debug_prog(const char *name, drm_intel_bo *prog)
break;
}
- drm_intel_bo_unmap(prog);
+ drm_intel_bo_unmap(brw->cache.bo);
}
@@ -518,17 +516,19 @@ void brw_debug_batch(struct intel_context *intel)
if (intel->gen < 6)
state_struct_out("VS", intel->batch.bo, brw->vs.state_offset,
sizeof(struct brw_vs_unit_state));
- brw_debug_prog("VS prog", brw->vs.prog_bo);
+ brw_debug_prog(brw, "VS prog", brw->vs.prog_offset);
if (intel->gen < 6)
state_struct_out("GS", intel->batch.bo, brw->gs.state_offset,
sizeof(struct brw_gs_unit_state));
- brw_debug_prog("GS prog", brw->gs.prog_bo);
+ if (brw->gs.prog_active) {
+ brw_debug_prog(brw, "GS prog", brw->gs.prog_offset);
+ }
if (intel->gen < 6) {
state_struct_out("SF", intel->batch.bo, brw->sf.state_offset,
sizeof(struct brw_sf_unit_state));
- brw_debug_prog("SF prog", brw->sf.prog_bo);
+ brw_debug_prog(brw, "SF prog", brw->sf.prog_offset);
}
if (intel->gen >= 7)
dump_sf_clip_viewport_state(brw);
@@ -540,7 +540,7 @@ void brw_debug_batch(struct intel_context *intel)
if (intel->gen < 6)
state_struct_out("WM", intel->batch.bo, brw->wm.state_offset,
sizeof(struct brw_wm_unit_state));
- brw_debug_prog("WM prog", brw->wm.prog_bo);
+ brw_debug_prog(brw, "WM prog", brw->wm.prog_offset);
if (intel->gen >= 6) {
dump_cc_viewport_state(brw);
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 6a4c112dcf5..50ab490f339 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -47,11 +47,11 @@ static const struct brw_tracked_state *gen4_atoms[] =
&brw_check_fallback,
&brw_wm_input_sizes,
- &brw_vs_prog,
- &brw_gs_prog,
- &brw_clip_prog,
- &brw_sf_prog,
- &brw_wm_prog,
+ &brw_vs_prog, /* must do before GS prog, state base address. */
+ &brw_gs_prog, /* must do before state base address */
+ &brw_clip_prog, /* must do before state base address */
+ &brw_sf_prog, /* must do before state base address */
+ &brw_wm_prog, /* must do before state base address */
/* Once all the programs are done, we know how large urb entry
* sizes need to be and can decide if we need to change the urb
@@ -110,9 +110,9 @@ static const struct brw_tracked_state *gen6_atoms[] =
&brw_check_fallback,
&brw_wm_input_sizes,
- &brw_vs_prog,
- &brw_gs_prog,
- &brw_wm_prog,
+ &brw_vs_prog, /* must do before state base address */
+ &brw_gs_prog, /* must do before state base address */
+ &brw_wm_prog, /* must do before state base address */
&gen6_clip_vp,
&gen6_sf_vp,
@@ -365,6 +365,7 @@ static struct dirty_bit_map brw_bits[] = {
DEFINE_BIT(BRW_NEW_PRIMITIVE),
DEFINE_BIT(BRW_NEW_CONTEXT),
DEFINE_BIT(BRW_NEW_WM_INPUT_DIMENSIONS),
+ DEFINE_BIT(BRW_NEW_PROGRAM_CACHE),
DEFINE_BIT(BRW_NEW_PSP),
DEFINE_BIT(BRW_NEW_WM_SURFACES),
DEFINE_BIT(BRW_NEW_INDICES),
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index 80d5e78ed0b..a9ad5311fe3 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -105,12 +105,11 @@ static void do_vs_prog( struct brw_context *brw,
/* constant_map */
aux_size += c.vp->program.Base.Parameters->NumParameters;
- drm_intel_bo_unreference(brw->vs.prog_bo);
- brw->vs.prog_bo = brw_upload_cache(&brw->cache, BRW_VS_PROG,
- &c.key, sizeof(c.key),
- program, program_size,
- &c.prog_data, aux_size,
- &brw->vs.prog_data);
+ brw_upload_cache(&brw->cache, BRW_VS_PROG,
+ &c.key, sizeof(c.key),
+ program, program_size,
+ &c.prog_data, aux_size,
+ &brw->vs.prog_offset, &brw->vs.prog_data);
ralloc_free(mem_ctx);
}
@@ -153,14 +152,11 @@ static void brw_upload_vs_prog(struct brw_context *brw)
}
}
- /* Make an early check for the key.
- */
- drm_intel_bo_unreference(brw->vs.prog_bo);
- brw->vs.prog_bo = brw_search_cache(&brw->cache, BRW_VS_PROG,
- &key, sizeof(key),
- &brw->vs.prog_data);
- if (brw->vs.prog_bo == NULL)
+ if (!brw_search_cache(&brw->cache, BRW_VS_PROG,
+ &key, sizeof(key),
+ &brw->vs.prog_offset, &brw->vs.prog_data)) {
do_vs_prog(brw, vp, &key);
+ }
brw->vs.constant_map = ((int8_t *)brw->vs.prog_data +
sizeof(*brw->vs.prog_data));
}
diff --git a/src/mesa/drivers/dri/i965/brw_vs_state.c b/src/mesa/drivers/dri/i965/brw_vs_state.c
index 1eee5b7e5de..185020c8164 100644
--- a/src/mesa/drivers/dri/i965/brw_vs_state.c
+++ b/src/mesa/drivers/dri/i965/brw_vs_state.c
@@ -58,8 +58,14 @@ brw_prepare_vs_unit(struct brw_context *brw)
vs = brw_state_batch(brw, sizeof(*vs), 32, &brw->vs.state_offset);
memset(vs, 0, sizeof(*vs));
- /* CACHE_NEW_VS_PROG */
- vs->thread0.kernel_start_pointer = brw->vs.prog_bo->offset >> 6; /* reloc */
+ /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_VS_PROG */
+ vs->thread0.kernel_start_pointer =
+ brw_program_reloc(brw,
+ brw->vs.state_offset +
+ offsetof(struct brw_vs_unit_state, thread0),
+ brw->vs.prog_offset +
+ (vs->thread0.grf_reg_count << 1)) >> 6;
+
vs->thread0.grf_reg_count = ALIGN(brw->vs.prog_data->total_grf, 16) / 16 - 1;
vs->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
/* Choosing multiple program flow means that we may get 2-vertex threads,
@@ -152,13 +158,6 @@ brw_prepare_vs_unit(struct brw_context *brw)
*/
vs->vs6.vs_enable = 1;
- /* Emit VS program relocation */
- drm_intel_bo_emit_reloc(intel->batch.bo, (brw->vs.state_offset +
- offsetof(struct brw_vs_unit_state,
- thread0)),
- brw->vs.prog_bo, vs->thread0.grf_reg_count << 1,
- I915_GEM_DOMAIN_INSTRUCTION, 0);
-
brw->state.dirty.cache |= CACHE_NEW_VS_UNIT;
}
@@ -166,6 +165,7 @@ const struct brw_tracked_state brw_vs_unit = {
.dirty = {
.mesa = _NEW_TRANSFORM,
.brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE |
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_NR_VS_SURFACES |
BRW_NEW_URB_FENCE),
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index 236c4d297d1..0f731482629 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -69,14 +69,8 @@ static void brw_destroy_context( struct intel_context *intel )
ralloc_free(brw->wm.compile_data);
dri_bo_release(&brw->curbe.curbe_bo);
- dri_bo_release(&brw->vs.prog_bo);
dri_bo_release(&brw->vs.const_bo);
- dri_bo_release(&brw->gs.prog_bo);
- dri_bo_release(&brw->clip.prog_bo);
- dri_bo_release(&brw->sf.prog_bo);
- dri_bo_release(&brw->wm.prog_bo);
dri_bo_release(&brw->wm.const_bo);
- dri_bo_release(&brw->cc.prog_bo);
free(brw->curbe.last_buf);
free(brw->curbe.next_buf);
@@ -125,6 +119,12 @@ static void brw_new_batch( struct intel_context *intel )
brw->state.dirty.brw |= BRW_NEW_CONTEXT | BRW_NEW_BATCH;
brw->vb.nr_current_buffers = 0;
+
+ /* Mark that the current program cache BO has been used by the GPU.
+ * It will be reallocated if we need to put new programs in for the
+ * next batch.
+ */
+ brw->cache.bo_used_by_gpu = true;
}
static void brw_invalidate_state( struct intel_context *intel, GLuint new_state )
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 1aebd12df49..f1c9985290c 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -273,12 +273,11 @@ bool do_wm_prog(struct brw_context *brw,
*/
program = brw_get_program(&c->func, &program_size);
- drm_intel_bo_unreference(brw->wm.prog_bo);
- brw->wm.prog_bo = brw_upload_cache(&brw->cache, BRW_WM_PROG,
- &c->key, sizeof(c->key),
- program, program_size,
- &c->prog_data, sizeof(c->prog_data),
- &brw->wm.prog_data);
+ brw_upload_cache(&brw->cache, BRW_WM_PROG,
+ &c->key, sizeof(c->key),
+ program, program_size,
+ &c->prog_data, sizeof(c->prog_data),
+ &brw->wm.prog_offset, &brw->wm.prog_data);
return true;
}
@@ -477,13 +476,9 @@ static void brw_prepare_wm_prog(struct brw_context *brw)
brw_wm_populate_key(brw, &key);
- /* Make an early check for the key.
- */
- drm_intel_bo_unreference(brw->wm.prog_bo);
- brw->wm.prog_bo = brw_search_cache(&brw->cache, BRW_WM_PROG,
- &key, sizeof(key),
- &brw->wm.prog_data);
- if (brw->wm.prog_bo == NULL) {
+ if (!brw_search_cache(&brw->cache, BRW_WM_PROG,
+ &key, sizeof(key),
+ &brw->wm.prog_offset, &brw->wm.prog_data)) {
bool success = do_wm_prog(brw, ctx->Shader.CurrentFragmentProgram, fp,
&key);
assert(success);
diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c
index ef98f8126dc..506e2bdff5b 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_state.c
@@ -90,13 +90,25 @@ brw_prepare_wm_unit(struct brw_context *brw)
brw->wm.prog_data->first_curbe_grf_16);
}
- /* CACHE_NEW_WM_PROG */
+ /* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_WM_PROG */
wm->thread0.grf_reg_count = brw->wm.prog_data->reg_blocks;
wm->wm9.grf_reg_count_2 = brw->wm.prog_data->reg_blocks_16;
- wm->thread0.kernel_start_pointer = brw->wm.prog_bo->offset >> 6; /* reloc */
- /* reloc */
- wm->wm9.kernel_start_pointer_2 = (brw->wm.prog_bo->offset +
- brw->wm.prog_data->prog_offset_16) >> 6;
+
+ wm->thread0.kernel_start_pointer =
+ brw_program_reloc(brw,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, thread0),
+ brw->wm.prog_offset +
+ (wm->thread0.grf_reg_count << 1)) >> 6;
+
+ wm->wm9.kernel_start_pointer_2 =
+ brw_program_reloc(brw,
+ brw->wm.state_offset +
+ offsetof(struct brw_wm_unit_state, wm9),
+ brw->wm.prog_offset +
+ brw->wm.prog_data->prog_offset_16 +
+ (wm->wm9.grf_reg_count_2 << 1)) >> 6;
+
wm->thread1.depth_coef_urb_read_offset = 1;
wm->thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754;
@@ -214,23 +226,6 @@ brw_prepare_wm_unit(struct brw_context *brw)
if (unlikely(INTEL_DEBUG & DEBUG_STATS) || intel->stats_wm)
wm->wm4.stats_enable = 1;
- /* Emit WM program relocation */
- drm_intel_bo_emit_reloc(intel->batch.bo,
- brw->wm.state_offset +
- offsetof(struct brw_wm_unit_state, thread0),
- brw->wm.prog_bo, wm->thread0.grf_reg_count << 1,
- I915_GEM_DOMAIN_INSTRUCTION, 0);
-
- if (brw->wm.prog_data->prog_offset_16) {
- drm_intel_bo_emit_reloc(intel->batch.bo,
- brw->wm.state_offset +
- offsetof(struct brw_wm_unit_state, wm9),
- brw->wm.prog_bo,
- ((wm->wm9.grf_reg_count_2 << 1) +
- brw->wm.prog_data->prog_offset_16),
- I915_GEM_DOMAIN_INSTRUCTION, 0);
- }
-
/* Emit scratch space relocation */
if (brw->wm.prog_data->total_scratch != 0) {
drm_intel_bo_emit_reloc(intel->batch.bo,
@@ -265,6 +260,7 @@ const struct brw_tracked_state brw_wm_unit = {
_NEW_BUFFERS),
.brw = (BRW_NEW_BATCH |
+ BRW_NEW_PROGRAM_CACHE |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_NR_WM_SURFACES),
diff --git a/src/mesa/drivers/dri/i965/gen6_gs_state.c b/src/mesa/drivers/dri/i965/gen6_gs_state.c
index c1d0a739394..e73e7824afe 100644
--- a/src/mesa/drivers/dri/i965/gen6_gs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_gs_state.c
@@ -45,7 +45,7 @@ upload_gs_state(struct brw_context *brw)
ADVANCE_BATCH();
// GS should never be used on Gen6. Disable it.
- assert(brw->gs.prog_bo == NULL);
+ assert(!brw->gs.prog_active);
BEGIN_BATCH(7);
OUT_BATCH(_3DSTATE_GS << 16 | (7 - 2));
OUT_BATCH(0); /* prog_bo */
diff --git a/src/mesa/drivers/dri/i965/gen6_urb.c b/src/mesa/drivers/dri/i965/gen6_urb.c
index 62645a6a30f..b4105111c8c 100644
--- a/src/mesa/drivers/dri/i965/gen6_urb.c
+++ b/src/mesa/drivers/dri/i965/gen6_urb.c
@@ -64,7 +64,7 @@ upload_urb(struct brw_context *brw)
assert(brw->urb.nr_vs_entries % 4 == 0);
assert(brw->urb.nr_gs_entries % 4 == 0);
/* GS requirement */
- assert(!brw->gs.prog_bo || brw->urb.vs_size < 5);
+ assert(!brw->gs.prog_active || brw->urb.vs_size < 5);
BEGIN_BATCH(3);
OUT_BATCH(_3DSTATE_URB << 16 | (3 - 2));
diff --git a/src/mesa/drivers/dri/i965/gen6_vs_state.c b/src/mesa/drivers/dri/i965/gen6_vs_state.c
index b46368e36e2..7838a91d8d0 100644
--- a/src/mesa/drivers/dri/i965/gen6_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_vs_state.c
@@ -147,7 +147,7 @@ upload_vs_state(struct brw_context *brw)
BEGIN_BATCH(6);
OUT_BATCH(_3DSTATE_VS << 16 | (6 - 2));
- OUT_RELOC(brw->vs.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(brw->vs.prog_offset);
OUT_BATCH((0 << GEN6_VS_SAMPLER_COUNT_SHIFT) |
GEN6_VS_FLOATING_POINT_MODE_ALT |
(brw->vs.nr_surfaces << GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
diff --git a/src/mesa/drivers/dri/i965/gen6_wm_state.c b/src/mesa/drivers/dri/i965/gen6_wm_state.c
index 43e651db3ef..024a1d879e7 100644
--- a/src/mesa/drivers/dri/i965/gen6_wm_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_wm_state.c
@@ -183,7 +183,7 @@ upload_wm_state(struct brw_context *brw)
BEGIN_BATCH(9);
OUT_BATCH(_3DSTATE_WM << 16 | (9 - 2));
- OUT_RELOC(brw->wm.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(brw->wm.prog_offset);
OUT_BATCH(dw2);
if (brw->wm.prog_data->total_scratch) {
OUT_RELOC(brw->wm.scratch_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
@@ -195,12 +195,8 @@ upload_wm_state(struct brw_context *brw)
OUT_BATCH(dw5);
OUT_BATCH(dw6);
OUT_BATCH(0); /* kernel 1 pointer */
- if (brw->wm.prog_data->prog_offset_16) {
- OUT_RELOC(brw->wm.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
- brw->wm.prog_data->prog_offset_16);
- } else {
- OUT_BATCH(0); /* kernel 2 pointer */
- }
+ /* kernel 2 pointer */
+ OUT_BATCH(brw->wm.prog_offset + brw->wm.prog_data->prog_offset_16);
ADVANCE_BATCH();
}
diff --git a/src/mesa/drivers/dri/i965/gen7_disable.c b/src/mesa/drivers/dri/i965/gen7_disable.c
index 4e9461739d0..a44d31596b9 100644
--- a/src/mesa/drivers/dri/i965/gen7_disable.c
+++ b/src/mesa/drivers/dri/i965/gen7_disable.c
@@ -31,7 +31,7 @@ disable_stages(struct brw_context *brw)
{
struct intel_context *intel = &brw->intel;
- assert(brw->gs.prog_bo == NULL);
+ assert(!brw->gs.prog_active);
/* Disable the Geometry Shader (GS) Unit */
BEGIN_BATCH(7);
diff --git a/src/mesa/drivers/dri/i965/gen7_urb.c b/src/mesa/drivers/dri/i965/gen7_urb.c
index 3a614693dfc..b36d780ed4a 100644
--- a/src/mesa/drivers/dri/i965/gen7_urb.c
+++ b/src/mesa/drivers/dri/i965/gen7_urb.c
@@ -78,7 +78,7 @@ upload_urb(struct brw_context *brw)
assert(brw->urb.nr_vs_entries % 8 == 0);
assert(brw->urb.nr_gs_entries % 8 == 0);
/* GS requirement */
- assert(!brw->gs.prog_bo);
+ assert(brw->gs.prog_active);
BEGIN_BATCH(2);
OUT_BATCH(_3DSTATE_PUSH_CONSTANT_ALLOC_VS << 16 | (2 - 2));
diff --git a/src/mesa/drivers/dri/i965/gen7_vs_state.c b/src/mesa/drivers/dri/i965/gen7_vs_state.c
index ae7a1d6c35c..0fad3d2fb68 100644
--- a/src/mesa/drivers/dri/i965/gen7_vs_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_vs_state.c
@@ -67,7 +67,7 @@ upload_vs_state(struct brw_context *brw)
BEGIN_BATCH(6);
OUT_BATCH(_3DSTATE_VS << 16 | (6 - 2));
- OUT_RELOC(brw->vs.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(brw->vs.prog_offset);
OUT_BATCH((0 << GEN6_VS_SAMPLER_COUNT_SHIFT) |
GEN6_VS_FLOATING_POINT_MODE_ALT |
(brw->vs.nr_surfaces << GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_state.c b/src/mesa/drivers/dri/i965/gen7_wm_state.c
index 6a64eb8a2d3..ac6ba2fed12 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_state.c
@@ -227,18 +227,13 @@ upload_ps_state(struct brw_context *brw)
BEGIN_BATCH(8);
OUT_BATCH(_3DSTATE_PS << 16 | (8 - 2));
- OUT_RELOC(brw->wm.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0);
+ OUT_BATCH(brw->wm.prog_offset);
OUT_BATCH(dw2);
OUT_BATCH(0); /* scratch space base offset */
OUT_BATCH(dw4);
OUT_BATCH(dw5);
OUT_BATCH(0); /* kernel 1 pointer */
- if (brw->wm.prog_data->prog_offset_16) {
- OUT_RELOC(brw->wm.prog_bo, I915_GEM_DOMAIN_INSTRUCTION, 0,
- brw->wm.prog_data->prog_offset_16);
- } else {
- OUT_BATCH(0); /* kernel 2 pointer */
- }
+ OUT_BATCH(brw->wm.prog_offset + brw->wm.prog_data->prog_offset_16);
ADVANCE_BATCH();
}
From ad9481e12813d5f1dec95ce123927e132fa935fb Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Fri, 10 Jun 2011 16:00:03 -0700
Subject: [PATCH 134/406] i965/fs: Check for compilation failure and bail
before optimizing.
Prior to this patch, it would attempt to optimize and allocate registers
for the program even if it failed to compile. This seems wasteful.
More importantly, the "message length > 11" failure seems to choke the
instruction scheduler, making it somehow use an undefined value and
segmentation fault.
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 8580c78fea1..1cd673919f8 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1533,6 +1533,8 @@ fs_visitor::run()
this->result = reg_undef;
ir->accept(this);
}
+ if (failed)
+ return false;
emit_fb_writes();
From 3fa910fff9f72d1adf33f0f4dea3d790a9ce04ab Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Wed, 8 Jun 2011 16:08:07 -0700
Subject: [PATCH 135/406] i965/fs: Add support for non-shadow textureGrad (TXD)
on Ivybridge.
This is somewhat ugly, but I couldn't think of a nicer way to handle the
interleaved coordinate/derivative parameter loading.
Ironlake and Sandybridge will still hit an assertion in visit().
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 3 +-
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 50 ++++++++++++++++----
2 files changed, 43 insertions(+), 10 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index 6b7c434949c..844b89b7dc3 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
@@ -273,7 +273,8 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
}
break;
case FS_OPCODE_TXD:
- assert(!"TXD isn't supported on gen5+ yet.");
+ assert(!inst->shadow_compare);
+ msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS;
break;
}
} else {
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index b4857871c78..72559465864 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -796,20 +796,52 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result);
mlen += reg_width;
break;
- case ir_txd:
+ case ir_txd: {
+ if (c->dispatch_width == 16)
+ fail("Gen7 does not support sample_d/sample_d_c in SIMD16 mode.");
+
+ ir->lod_info.grad.dPdx->accept(this);
+ fs_reg dPdx = this->result;
+
+ ir->lod_info.grad.dPdy->accept(this);
+ fs_reg dPdy = this->result;
+
+ /* Load dPdx and the coordinate together:
+ * [hdr], [ref], x, dPdx.x, dPdy.x, y, dPdx.y, dPdy.y, z, dPdx.z, dPdy.z
+ */
+ for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
+ fs_inst *inst = emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen),
+ coordinate);
+ if (i < 3 && c->key.gl_clamp_mask[i] & (1 << sampler))
+ inst->saturate = true;
+ coordinate.reg_offset++;
+ mlen += reg_width;
+
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdx);
+ dPdx.reg_offset++;
+ mlen += reg_width;
+
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdy);
+ dPdy.reg_offset++;
+ mlen += reg_width;
+ }
+ break;
+ }
case ir_txf:
assert(!"GLSL 1.30 features unsupported");
break;
}
- /* Set up the coordinate */
- for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
- fs_inst *inst = emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen),
- coordinate);
- if (i < 3 && c->key.gl_clamp_mask[i] & (1 << sampler))
- inst->saturate = true;
- coordinate.reg_offset++;
- mlen += reg_width;
+ /* Set up the coordinate (except for TXD where it was done earlier) */
+ if (ir->op != ir_txd) {
+ for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
+ fs_inst *inst = emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen),
+ coordinate);
+ if (i < 3 && c->key.gl_clamp_mask[i] & (1 << sampler))
+ inst->saturate = true;
+ coordinate.reg_offset++;
+ mlen += reg_width;
+ }
}
/* Generate the SEND */
From 2f4a4b943f1cad9bbbb8f66c34dca506503ba5bb Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Wed, 8 Jun 2011 16:06:49 -0700
Subject: [PATCH 136/406] i965/fs: Add support for non-shadow textureGrad (TXD)
on gen5/6.
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 32 +++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 72559465864..638eaa416c8 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -742,7 +742,37 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate,
inst = emit(FS_OPCODE_TXL, dst);
break;
- case ir_txd:
+ case ir_txd: {
+ ir->lod_info.grad.dPdx->accept(this);
+ fs_reg dPdx = this->result;
+
+ ir->lod_info.grad.dPdy->accept(this);
+ fs_reg dPdy = this->result;
+
+ mlen = MAX2(mlen, header_present + 4 * reg_width); /* skip over 'ai' */
+
+ /**
+ * P = u, v, r
+ * dPdx = dudx, dvdx, drdx
+ * dPdy = dudy, dvdy, drdy
+ *
+ * Load up these values:
+ * - dudx dudy dvdx dvdy drdx drdy
+ * - dPdx.x dPdy.x dPdx.y dPdy.y dPdx.z dPdy.z
+ */
+ for (int i = 0; i < ir->lod_info.grad.dPdx->type->vector_elements; i++) {
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdx);
+ dPdx.reg_offset++;
+ mlen += reg_width;
+
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdy);
+ dPdy.reg_offset++;
+ mlen += reg_width;
+ }
+
+ inst = emit(FS_OPCODE_TXD, dst);
+ break;
+ }
case ir_txf:
assert(!"GLSL 1.30 features unsupported");
break;
From 6c947cfd1973c3791d54f1406c973357b4a9621a Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Wed, 8 Jun 2011 16:05:34 -0700
Subject: [PATCH 137/406] i965/fs: Add support for non-shadow textureGrad (TXD)
on gen4.
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 4 ++-
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 37 +++++++++++++++++++-
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index 844b89b7dc3..1c522cbad02 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
@@ -312,7 +312,9 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
}
break;
case FS_OPCODE_TXD:
- assert(!"TXD isn't supported on gen4 yet.");
+ assert(!inst->shadow_compare); // not supported yet
+ assert(inst->mlen == 7 || inst->mlen == 10);
+ msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS;
break;
}
}
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 638eaa416c8..a5479e1178b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -595,7 +595,42 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate,
/* gen4's SIMD8 sampler always has the slots for u,v,r present. */
mlen += 3;
} else if (ir->op == ir_txd) {
- assert(!"TXD isn't supported on gen4 yet.");
+ ir->lod_info.grad.dPdx->accept(this);
+ fs_reg dPdx = this->result;
+
+ ir->lod_info.grad.dPdy->accept(this);
+ fs_reg dPdy = this->result;
+
+ for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen + i), coordinate);
+ coordinate.reg_offset++;
+ }
+ /* the slots for u and v are always present, but r is optional */
+ mlen += MAX2(ir->coordinate->type->vector_elements, 2);
+
+ /* P = u, v, r
+ * dPdx = dudx, dvdx, drdx
+ * dPdy = dudy, dvdy, drdy
+ *
+ * 2-arg: dudx dvdx dudy dvdy
+ * dPdx.x dPdx.y dPdy.x dPdy.y
+ * m4 m5 m6 m7
+ *
+ * 3-arg: dudx dvdx drdx dudy dvdy drdy
+ * dPdx.x dPdx.y dPdx.z dPdy.x dPdy.y dPdy.z
+ * m5 m6 m7 m8 m9 m10
+ */
+ for (int i = 0; i < ir->lod_info.grad.dPdx->type->vector_elements; i++) {
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdx);
+ dPdx.reg_offset++;
+ mlen++;
+ }
+
+ for (int i = 0; i < ir->lod_info.grad.dPdy->type->vector_elements; i++) {
+ emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), dPdy);
+ dPdy.reg_offset++;
+ mlen++;
+ }
} else {
/* Oh joy. gen4 doesn't have SIMD8 non-shadow-compare bias/lod
* instructions. We'll need to do SIMD16 here.
From f1622cfe9c0f37a9b452be1297f187cba8c46e6a Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Fri, 10 Jun 2011 14:49:36 -0700
Subject: [PATCH 138/406] i965/fs: Move sampler fetch to the top of the
ir_texture visit function.
This makes it available earlier, which will soon be necessary.
(Separating code motion from actual changes.)
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index a5479e1178b..ac2437551ae 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -932,9 +932,11 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
void
fs_visitor::visit(ir_texture *ir)
{
- int sampler;
fs_inst *inst = NULL;
+ int sampler = _mesa_get_sampler_uniform_value(ir->sampler, prog, &fp->Base);
+ sampler = fp->Base.SamplerUnits[sampler];
+
this->result = reg_undef;
ir->coordinate->accept(this);
fs_reg coordinate = this->result;
@@ -973,11 +975,6 @@ fs_visitor::visit(ir_texture *ir)
/* Should be lowered by do_lower_texture_projection */
assert(!ir->projector);
- sampler = _mesa_get_sampler_uniform_value(ir->sampler,
- prog,
- &fp->Base);
- sampler = fp->Base.SamplerUnits[sampler];
-
/* The 965 requires the EU to do the normalization of GL rectangle
* texture coordinates. We use the program parameter state
* tracking to get the scaling factor.
From 01fa9addf447120e994415ad8fc8246ac234ec27 Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Fri, 10 Jun 2011 14:45:24 -0700
Subject: [PATCH 139/406] i965/fs: Refactor texture result swizzling into a
helper function.
The next patch will add a few additional uses.
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs.h | 2 ++
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 28 +++++++++++++-------
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h
index 7570dda1024..2bf850e5dea 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.h
+++ b/src/mesa/drivers/dri/i965/brw_fs.h
@@ -441,6 +441,8 @@ public:
void visit(ir_function *ir);
void visit(ir_function_signature *ir);
+ void swizzle_result(ir_texture *ir, fs_reg orig_val, int sampler);
+
fs_inst *emit(fs_inst inst);
fs_inst *emit(int opcode)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index ac2437551ae..35bda58cf54 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -1045,20 +1045,30 @@ fs_visitor::visit(ir_texture *ir)
inst->sampler = sampler;
- this->result = dst;
-
if (ir->shadow_comparitor)
inst->shadow_compare = true;
+ swizzle_result(ir, dst, sampler);
+}
+
+/**
+ * Swizzle the result of a texture result. This is necessary for
+ * EXT_texture_swizzle as well as DEPTH_TEXTURE_MODE for shadow comparisons.
+ */
+void
+fs_visitor::swizzle_result(ir_texture *ir, fs_reg orig_val, int sampler)
+{
+ this->result = orig_val;
+
if (ir->type == glsl_type::float_type) {
/* Ignore DEPTH_TEXTURE_MODE swizzling. */
assert(ir->sampler->type->sampler_shadow);
- } else if (c->key.tex_swizzles[inst->sampler] != SWIZZLE_NOOP) {
- fs_reg swizzle_dst = fs_reg(this, glsl_type::vec4_type);
+ } else if (c->key.tex_swizzles[sampler] != SWIZZLE_NOOP) {
+ fs_reg swizzled_result = fs_reg(this, glsl_type::vec4_type);
for (int i = 0; i < 4; i++) {
- int swiz = GET_SWZ(c->key.tex_swizzles[inst->sampler], i);
- fs_reg l = swizzle_dst;
+ int swiz = GET_SWZ(c->key.tex_swizzles[sampler], i);
+ fs_reg l = swizzled_result;
l.reg_offset += i;
if (swiz == SWIZZLE_ZERO) {
@@ -1066,12 +1076,12 @@ fs_visitor::visit(ir_texture *ir)
} else if (swiz == SWIZZLE_ONE) {
emit(BRW_OPCODE_MOV, l, fs_reg(1.0f));
} else {
- fs_reg r = dst;
- r.reg_offset += GET_SWZ(c->key.tex_swizzles[inst->sampler], i);
+ fs_reg r = orig_val;
+ r.reg_offset += GET_SWZ(c->key.tex_swizzles[sampler], i);
emit(BRW_OPCODE_MOV, l, r);
}
}
- this->result = swizzle_dst;
+ this->result = swizzled_result;
}
}
From 6430df37736d71dd2bd6f1fe447d39f0b68cb567 Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Fri, 10 Jun 2011 14:48:46 -0700
Subject: [PATCH 140/406] i965/fs: Add support for TXD with shadow comparisons.
Our hardware doesn't have a sample_d_c message, so we have to do a
regular sample_d and emit instructions to manually perform the
comparison.
This requires a state dependent recompile whenever the sampler's compare
mode or function change. This adds the per-sampler comparison functions
to brw_wm_prog_key, but only sets them when the sampler's compare mode
is GL_COMPARE_R_TO_TEXTURE (i.e. only for shadow sampling).
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
src/mesa/drivers/dri/i965/brw_fs.cpp | 3 +
src/mesa/drivers/dri/i965/brw_fs_emit.cpp | 4 +-
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 62 ++++++++++++++++++--
src/mesa/drivers/dri/i965/brw_wm.c | 2 +
src/mesa/drivers/dri/i965/brw_wm.h | 12 ++++
5 files changed, 76 insertions(+), 7 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 1cd673919f8..b5ea943387d 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1686,6 +1686,9 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
key.clamp_fragment_color = true;
for (int i = 0; i < BRW_MAX_TEX_UNIT; i++) {
+ if (fp->Base.ShadowSamplers & (1 << i))
+ key.compare_funcs[i] = GL_LESS;
+
/* FINISHME: depth compares might use (0,0,0,W) for example */
key.tex_swizzles[i] = SWIZZLE_XYZW;
}
diff --git a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
index 1c522cbad02..1d89b8f1d11 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_emit.cpp
@@ -273,7 +273,7 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
}
break;
case FS_OPCODE_TXD:
- assert(!inst->shadow_compare);
+ /* There is no sample_d_c message; comparisons are done manually */
msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS;
break;
}
@@ -312,7 +312,7 @@ fs_visitor::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src)
}
break;
case FS_OPCODE_TXD:
- assert(!inst->shadow_compare); // not supported yet
+ /* There is no sample_d_c message; comparisons are done manually */
assert(inst->mlen == 7 || inst->mlen == 10);
msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS;
break;
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 35bda58cf54..6116b1081e8 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -549,7 +549,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate,
/* g0 header. */
mlen = 1;
- if (ir->shadow_comparitor) {
+ if (ir->shadow_comparitor && ir->op != ir_txd) {
for (int i = 0; i < ir->coordinate->type->vector_elements; i++) {
fs_inst *inst = emit(BRW_OPCODE_MOV,
fs_reg(MRF, base_mrf + mlen + i), coordinate);
@@ -744,7 +744,7 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst, fs_reg coordinate,
}
mlen += ir->coordinate->type->vector_elements * reg_width;
- if (ir->shadow_comparitor) {
+ if (ir->shadow_comparitor && ir->op != ir_txd) {
mlen = MAX2(mlen, header_present + 4 * reg_width);
this->result = reg_undef;
@@ -841,7 +841,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
base_mrf--;
}
- if (ir->shadow_comparitor) {
+ if (ir->shadow_comparitor && ir->op != ir_txd) {
ir->shadow_comparitor->accept(this);
emit(BRW_OPCODE_MOV, fs_reg(MRF, base_mrf + mlen), this->result);
mlen += reg_width;
@@ -937,6 +937,19 @@ fs_visitor::visit(ir_texture *ir)
int sampler = _mesa_get_sampler_uniform_value(ir->sampler, prog, &fp->Base);
sampler = fp->Base.SamplerUnits[sampler];
+ /* Our hardware doesn't have a sample_d_c message, so shadow compares
+ * for textureGrad/TXD need to be emulated with instructions.
+ */
+ bool hw_compare_supported = ir->op != ir_txd;
+ if (ir->shadow_comparitor && !hw_compare_supported) {
+ assert(c->key.compare_funcs[sampler] != GL_NONE);
+ /* No need to even sample for GL_ALWAYS or GL_NEVER...bail early */
+ if (c->key.compare_funcs[sampler] == GL_ALWAYS)
+ return swizzle_result(ir, fs_reg(1.0f), sampler);
+ else if (c->key.compare_funcs[sampler] == GL_NEVER)
+ return swizzle_result(ir, fs_reg(0.0f), sampler);
+ }
+
this->result = reg_undef;
ir->coordinate->accept(this);
fs_reg coordinate = this->result;
@@ -1045,8 +1058,47 @@ fs_visitor::visit(ir_texture *ir)
inst->sampler = sampler;
- if (ir->shadow_comparitor)
- inst->shadow_compare = true;
+ if (ir->shadow_comparitor) {
+ if (hw_compare_supported) {
+ inst->shadow_compare = true;
+ } else {
+ ir->shadow_comparitor->accept(this);
+ fs_reg ref = this->result;
+
+ fs_reg value = dst;
+ dst = fs_reg(this, glsl_type::vec4_type);
+
+ /* FINISHME: This needs to be done pre-filtering. */
+
+ uint32_t conditional = 0;
+ switch (c->key.compare_funcs[sampler]) {
+ /* GL_ALWAYS and GL_NEVER were handled at the top of the function */
+ case GL_LESS: conditional = BRW_CONDITIONAL_L; break;
+ case GL_GREATER: conditional = BRW_CONDITIONAL_G; break;
+ case GL_LEQUAL: conditional = BRW_CONDITIONAL_LE; break;
+ case GL_GEQUAL: conditional = BRW_CONDITIONAL_GE; break;
+ case GL_EQUAL: conditional = BRW_CONDITIONAL_EQ; break;
+ case GL_NOTEQUAL: conditional = BRW_CONDITIONAL_NEQ; break;
+ default: assert(!"Should not get here: bad shadow compare function");
+ }
+
+ /* Use conditional moves to load 0 or 1 as the result */
+ this->current_annotation = "manual shadow comparison";
+ for (int i = 0; i < 4; i++) {
+ inst = emit(BRW_OPCODE_MOV, dst, fs_reg(0.0f));
+
+ inst = emit(BRW_OPCODE_CMP, reg_null_f, ref, value);
+ inst->conditional_mod = conditional;
+
+ inst = emit(BRW_OPCODE_MOV, dst, fs_reg(1.0f));
+ inst->predicated = true;
+
+ dst.reg_offset++;
+ value.reg_offset++;
+ }
+ dst.reg_offset = 0;
+ }
+ }
swizzle_result(ir, dst, sampler);
}
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index f1c9985290c..b0dfdd536aa 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -388,6 +388,8 @@ static void brw_wm_populate_key( struct brw_context *brw,
* all 4 channels.
*/
if (sampler->CompareMode == GL_COMPARE_R_TO_TEXTURE_ARB) {
+ key->compare_funcs[i] = sampler->CompareFunc;
+
if (sampler->DepthMode == GL_ALPHA) {
swizzles[0] = SWIZZLE_ZERO;
swizzles[1] = SWIZZLE_ZERO;
diff --git a/src/mesa/drivers/dri/i965/brw_wm.h b/src/mesa/drivers/dri/i965/brw_wm.h
index e244b55a083..29082c19088 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.h
+++ b/src/mesa/drivers/dri/i965/brw_wm.h
@@ -68,6 +68,18 @@ struct brw_wm_prog_key {
GLuint clamp_fragment_color:1;
GLuint line_aa:2;
+ /**
+ * Per-sampler comparison functions:
+ *
+ * If comparison mode is GL_COMPARE_R_TO_TEXTURE, then this is set to one
+ * of GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL,
+ * GL_GEQUAL, or GL_ALWAYS. Otherwise (comparison mode is GL_NONE), this
+ * field is irrelevant so it's left as GL_NONE (0).
+ *
+ * While this is a GLenum, all possible values fit in 16-bits.
+ */
+ uint16_t compare_funcs[BRW_MAX_TEX_UNIT];
+
GLbitfield proj_attrib_mask; /**< one bit per fragment program attribute */
GLuint yuvtex_mask:16;
GLuint yuvtex_swap_mask:16; /* UV swaped */
From dd3b812962a8720aca0a80bf6ea35f70319d3ca1 Mon Sep 17 00:00:00 2001
From: Kenneth Graunke
Date: Fri, 10 Jun 2011 15:17:37 -0700
Subject: [PATCH 141/406] i965: Enable extension GL_ARB_shader_texture_lod.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36987
Signed-off-by: Kenneth Graunke
Reviewed-by: Eric Anholt
---
docs/relnotes-7.11.html | 2 +-
src/mesa/drivers/dri/intel/intel_extensions.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/relnotes-7.11.html b/docs/relnotes-7.11.html
index aaeabc25288..c81ac9f15c9 100644
--- a/docs/relnotes-7.11.html
+++ b/docs/relnotes-7.11.html
@@ -45,7 +45,7 @@ tbd
GL_ARB_robustness (all drivers)
GL_ARB_sampler_objects (gallium drivers)
GL_ARB_seamless_cube_map (gallium r600)
- GL_ARB_shader_texture_lod (gallium drivers)
+ GL_ARB_shader_texture_lod (gallium drivers, i965)
GL_ARB_sync (gallium drivers only, intel support was in 7.6)
GL_ARB_texture_compression_rgtc (gallium drivers, swrast, i965)
GL_ARB_texture_float (gallium, i965)
diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c b/src/mesa/drivers/dri/intel/intel_extensions.c
index 3fd987abd8c..64c996ca5cd 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -172,6 +172,7 @@ static const struct dri_extension brw_extensions[] = {
{ "GL_ARB_occlusion_query", GL_ARB_occlusion_query_functions },
{ "GL_ARB_point_sprite", NULL },
{ "GL_ARB_seamless_cube_map", NULL },
+ { "GL_ARB_shader_texture_lod", NULL },
{ "GL_ARB_shadow", NULL },
#ifdef TEXTURE_FLOAT_ENABLED
{ "GL_ARB_texture_float", NULL },
From 0d58723cde31703f13f2e8e0747cde30b9e5d6de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 19 Jun 2011 19:38:48 +0200
Subject: [PATCH 142/406] u_vbuf_mgr: fix uploading if format size is greater
than stride
---
src/gallium/auxiliary/util/u_vbuf_mgr.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.c b/src/gallium/auxiliary/util/u_vbuf_mgr.c
index 04149525ea7..fdfa9fcca3d 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.c
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.c
@@ -537,6 +537,11 @@ static void u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
} else if (vb->stride) {
first = vb->stride * min_index;
size = vb->stride * count;
+
+ /* Unusual case when stride is smaller than the format size.
+ * XXX This won't work with interleaved arrays. */
+ if (mgr->ve->native_format_size[i] > vb->stride)
+ size += mgr->ve->native_format_size[i] - vb->stride;
} else {
first = 0;
size = mgr->ve->native_format_size[i];
From 8623c68aec95e0883308051068b3496a85e8b9ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 19 Jun 2011 19:42:22 +0200
Subject: [PATCH 143/406] r600g: fix warning: assignment discards qualifiers
from pointer target type
---
src/gallium/drivers/r600/r600_blit.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index e858ea212ea..6171d285bb9 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -294,7 +294,8 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
{
struct r600_resource_texture *rsrc = (struct r600_resource_texture*)src;
struct texture_orig_info orig_info[2];
- struct pipe_box sbox, *psbox;
+ struct pipe_box sbox;
+ const struct pipe_box *psbox;
boolean restore_orig[2];
/* Fallback for buffers. */
From d1f66a9424d087f81d0040aafde033bd5cb1ca72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 19 Jun 2011 21:02:42 +0200
Subject: [PATCH 144/406] u_vbuf_mgr: make u_vbuf_mgr_draw_begin return flags
in a bitmask
---
src/gallium/auxiliary/util/u_vbuf_mgr.c | 53 ++++++++++----------
src/gallium/auxiliary/util/u_vbuf_mgr.h | 12 +++--
src/gallium/drivers/r300/r300_render.c | 5 +-
src/gallium/drivers/r600/r600_state_common.c | 2 +-
4 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.c b/src/gallium/auxiliary/util/u_vbuf_mgr.c
index fdfa9fcca3d..374fc336b83 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.c
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.c
@@ -152,9 +152,9 @@ void u_vbuf_mgr_destroy(struct u_vbuf_mgr *mgrb)
}
-static void u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
- int min_index, int max_index,
- boolean *upload_flushed)
+static enum u_vbuf_return_flags
+u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
+ int min_index, int max_index)
{
struct translate_key key;
struct translate_element *te;
@@ -166,6 +166,7 @@ static void u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
struct pipe_resource *out_buffer = NULL;
unsigned i, num_verts, out_offset;
struct pipe_vertex_element new_velems[PIPE_MAX_ATTRIBS];
+ boolean upload_flushed = FALSE;
memset(&key, 0, sizeof(key));
memset(tr_elem_index, 0xff, sizeof(tr_elem_index));
@@ -248,7 +249,7 @@ static void u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
u_upload_alloc(mgr->b.uploader,
key.output_stride * min_index,
key.output_stride * num_verts,
- &out_offset, &out_buffer, upload_flushed,
+ &out_offset, &out_buffer, &upload_flushed,
(void**)&out_map);
out_offset -= key.output_stride * min_index;
@@ -308,6 +309,8 @@ static void u_vbuf_translate_begin(struct u_vbuf_mgr_priv *mgr,
}
pipe_resource_reference(&out_buffer, NULL);
+
+ return upload_flushed ? U_VBUF_UPLOAD_FLUSHED : 0;
}
static void u_vbuf_translate_end(struct u_vbuf_mgr_priv *mgr)
@@ -510,14 +513,15 @@ void u_vbuf_mgr_set_vertex_buffers(struct u_vbuf_mgr *mgrb,
mgr->b.nr_real_vertex_buffers = count;
}
-static void u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
- int min_index, int max_index,
- unsigned instance_count,
- boolean *upload_flushed)
+static enum u_vbuf_return_flags
+u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
+ int min_index, int max_index,
+ unsigned instance_count)
{
unsigned i, nr = mgr->ve->count;
unsigned count = max_index + 1 - min_index;
boolean uploaded[PIPE_MAX_ATTRIBS] = {0};
+ enum u_vbuf_return_flags retval = 0;
for (i = 0; i < nr; i++) {
unsigned index = mgr->ve->ve[i].vertex_buffer_index;
@@ -556,11 +560,14 @@ static void u_vbuf_upload_buffers(struct u_vbuf_mgr_priv *mgr,
vb->buffer_offset -= first;
uploaded[index] = TRUE;
- *upload_flushed = *upload_flushed || flushed;
+ if (flushed)
+ retval |= U_VBUF_UPLOAD_FLUSHED;
} else {
assert(mgr->b.real_vertex_buffer[index]);
}
}
+
+ return retval;
}
static void u_vbuf_mgr_compute_max_index(struct u_vbuf_mgr_priv *mgr)
@@ -602,14 +609,13 @@ static void u_vbuf_mgr_compute_max_index(struct u_vbuf_mgr_priv *mgr)
}
}
-void u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgrb,
- const struct pipe_draw_info *info,
- boolean *buffers_updated,
- boolean *uploader_flushed)
+enum u_vbuf_return_flags
+u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgrb,
+ const struct pipe_draw_info *info)
{
struct u_vbuf_mgr_priv *mgr = (struct u_vbuf_mgr_priv*)mgrb;
- boolean bufs_updated = FALSE, upload_flushed = FALSE;
int min_index, max_index;
+ enum u_vbuf_return_flags retval = 0;
u_vbuf_mgr_compute_max_index(mgr);
@@ -622,27 +628,20 @@ void u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgrb,
/* Translate vertices with non-native layouts or formats. */
if (mgr->incompatible_vb_layout || mgr->ve->incompatible_layout) {
- u_vbuf_translate_begin(mgr, min_index, max_index, &upload_flushed);
+ retval |= u_vbuf_translate_begin(mgr, min_index, max_index);
if (mgr->fallback_ve) {
- bufs_updated = TRUE;
+ retval |= U_VBUF_BUFFERS_UPDATED;
}
}
/* Upload user buffers. */
if (mgr->any_user_vbs) {
- u_vbuf_upload_buffers(mgr, min_index, max_index, info->instance_count,
- &upload_flushed);
- bufs_updated = TRUE;
- }
-
- /* Set the return values. */
- if (buffers_updated) {
- *buffers_updated = bufs_updated;
- }
- if (uploader_flushed) {
- *uploader_flushed = upload_flushed;
+ retval |= u_vbuf_upload_buffers(mgr, min_index, max_index,
+ info->instance_count);
+ retval |= U_VBUF_BUFFERS_UPDATED;
}
+ return retval;
}
void u_vbuf_mgr_draw_end(struct u_vbuf_mgr *mgrb)
diff --git a/src/gallium/auxiliary/util/u_vbuf_mgr.h b/src/gallium/auxiliary/util/u_vbuf_mgr.h
index 9380dce4f72..4e6372435d8 100644
--- a/src/gallium/auxiliary/util/u_vbuf_mgr.h
+++ b/src/gallium/auxiliary/util/u_vbuf_mgr.h
@@ -78,6 +78,11 @@ enum u_fetch_alignment {
U_VERTEX_FETCH_DWORD_ALIGNED
};
+enum u_vbuf_return_flags {
+ U_VBUF_BUFFERS_UPDATED = 1,
+ U_VBUF_UPLOAD_FLUSHED = 2
+};
+
struct u_vbuf_mgr *
u_vbuf_mgr_create(struct pipe_context *pipe,
@@ -105,10 +110,9 @@ void u_vbuf_mgr_set_vertex_buffers(struct u_vbuf_mgr *mgr,
unsigned count,
const struct pipe_vertex_buffer *bufs);
-void u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgr,
- const struct pipe_draw_info *info,
- boolean *buffers_updated,
- boolean *uploader_flushed);
+enum u_vbuf_return_flags
+u_vbuf_mgr_draw_begin(struct u_vbuf_mgr *mgr,
+ const struct pipe_draw_info *info);
void u_vbuf_mgr_draw_end(struct u_vbuf_mgr *mgr);
diff --git a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c
index 7cf0aba2ed0..b31141a518e 100644
--- a/src/gallium/drivers/r300/r300_render.c
+++ b/src/gallium/drivers/r300/r300_render.c
@@ -768,7 +768,6 @@ static void r300_draw_vbo(struct pipe_context* pipe,
{
struct r300_context* r300 = r300_context(pipe);
struct pipe_draw_info info = *dinfo;
- boolean buffers_updated, uploader_flushed;
info.indexed = info.indexed && r300->index_buffer.buffer;
@@ -780,9 +779,7 @@ static void r300_draw_vbo(struct pipe_context* pipe,
r300_update_derived_state(r300);
/* Start the vbuf manager and update buffers if needed. */
- u_vbuf_mgr_draw_begin(r300->vbuf_mgr, &info,
- &buffers_updated, &uploader_flushed);
- if (buffers_updated) {
+ if (u_vbuf_mgr_draw_begin(r300->vbuf_mgr, &info) & U_VBUF_BUFFERS_UPDATED) {
r300->vertex_arrays_dirty = TRUE;
}
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
index 5f9f398bf25..816508a3bef 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -543,7 +543,7 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
if (rctx->have_depth_fb || rctx->have_depth_texture)
r600_flush_depth_textures(rctx);
}
- u_vbuf_mgr_draw_begin(rctx->vbuf_mgr, info, NULL, NULL);
+ u_vbuf_mgr_draw_begin(rctx->vbuf_mgr, info);
r600_vertex_buffer_update(rctx);
draw.info = *info;
From ad50abbac9b166b0fd10b3cf3c24eec32b366f6b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 05:14:27 +0200
Subject: [PATCH 145/406] configure.ac: remove redundant option
--enable-gallium-egl
We already have --enable-gallium, --enable-egl, and --with-state-trackers=egl.
Reviewed-by: Alex Deucher
---
configure.ac | 30 ++++--------------------------
1 file changed, 4 insertions(+), 26 deletions(-)
diff --git a/configure.ac b/configure.ac
index 69513c1c4e2..90171fae97d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1201,6 +1201,9 @@ if test "x$enable_egl" = xyes; then
SRC_DIRS="$SRC_DIRS egl"
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
EGL_DRIVERS_DIRS=""
+ GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
+ HAVE_ST_EGL="yes"
+
if test "$enable_static" != yes; then
# build egl_glx when libGL is built
if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
@@ -1470,26 +1473,6 @@ dnl
dnl Gallium state trackers configuration
dnl
-AC_ARG_ENABLE([gallium-egl],
- [AS_HELP_STRING([--enable-gallium-egl],
- [enable gallium EGL state tracker @<:@default=auto@:>@])],
- [enable_gallium_egl="$enableval"],
- [enable_gallium_egl=auto])
-if test "x$enable_gallium_egl" = xauto; then
- case "$mesa_driver" in
- dri|no)
- enable_gallium_egl=$enable_egl
- ;;
- *)
- enable_gallium_egl=$enable_openvg
- ;;
- esac
-fi
-case "x$enable_egl$enable_gallium_egl" in
-xnoyes)
- AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
-esac
-
AC_ARG_WITH([state-trackers],
[AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
[comma delimited state_trackers list, e.g.
@@ -1522,11 +1505,6 @@ yes)
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
st_egl="yes"
fi
-
- if test "$enable_gallium_egl" = yes; then
- GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
- HAVE_ST_EGL="yes"
- fi
fi
;;
*)
@@ -1577,7 +1555,7 @@ yes)
if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
fi
- if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
+ if test "x$HAVE_ST_EGL" != xyes; then
AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
fi
;;
From 440d71db7853fa81821b36a99e360fb72dbdccab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 05:38:58 +0200
Subject: [PATCH 146/406] configure.ac: remove --with-state-trackers
There is an obvious redundancy:
--with-driver=dri VS --with-state-trackers=dri
--with-driver=xlib VS --with-state-trackers=glx
--enable-openvg VS --with-state-trackers=vega
--enable-egl VS --with-state-trackers=egl
This patch adds two new options for the remaining state trackers:
--enable-xorg
--enable-d3d1x
Reviewed-by: Alex Deucher
---
configure.ac | 217 ++++++++++++++++++---------------------------------
1 file changed, 75 insertions(+), 142 deletions(-)
diff --git a/configure.ac b/configure.ac
index 90171fae97d..5d045f0bf5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -507,7 +507,7 @@ if test "x$enable_selinux" = "xyes"; then
DEFINES="$DEFINES -DMESA_SELINUX"
fi
-dnl Determine which APIs to support
+dnl Options for APIs
AC_ARG_ENABLE([opengl],
[AS_HELP_STRING([--disable-opengl],
[disable support for standard OpenGL API @<:@default=no@:>@])],
@@ -528,27 +528,40 @@ AC_ARG_ENABLE([gles-overlay],
[DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
[enable_gles1="$enableval"; enable_gles2="$enableval"],
[])
-
AC_ARG_ENABLE([openvg],
[AS_HELP_STRING([--enable-openvg],
[enable support for OpenVG API @<:@default=no@:>@])],
[enable_openvg="$enableval"],
[enable_openvg=no])
+AC_ARG_ENABLE([xorg],
+ [AS_HELP_STRING([--enable-xorg],
+ [enable support for X.Org DDX API @<:@default=no@:>@])],
+ [enable_xorg="$enableval"],
+ [enable_xorg=no])
+AC_ARG_ENABLE([d3d1x],
+ [AS_HELP_STRING([--enable-d3d1x],
+ [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
+ [enable_d3d1x="$enableval"],
+ [enable_d3d1x=no])
+AC_ARG_ENABLE([egl],
+ [AS_HELP_STRING([--disable-egl],
+ [disable EGL library @<:@default=enabled@:>@])],
+ [enable_egl="$enableval"],
+ [enable_egl=yes])
-dnl smooth the transition; should be removed eventually
-if test "x$enable_openvg" = xno; then
- case "x$with_state_trackers" in
- x*vega*)
- AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
- enable_openvg=yes
- ;;
- esac
-fi
+# Option for Gallium
+AC_ARG_ENABLE([gallium],
+ [AS_HELP_STRING([--disable-gallium],
+ [build gallium @<:@default=enabled@:>@])],
+ [enable_gallium="$enableval"],
+ [enable_gallium=yes])
if test "x$enable_opengl" = xno -a \
"x$enable_gles1" = xno -a \
"x$enable_gles2" = xno -a \
- "x$enable_openvg" = xno; then
+ "x$enable_openvg" = xno -a \
+ "x$enable_xorg" = xno -a \
+ "x$enable_d3d1x" = xno; then
AC_MSG_ERROR([at least one API should be enabled])
fi
@@ -657,11 +670,6 @@ if test "x$enable_gles2" = xyes; then
CORE_DIRS="$CORE_DIRS mapi/es2api"
fi
-# build vgapi if OpenVG is enabled
-if test "x$enable_openvg" = xyes; then
- CORE_DIRS="$CORE_DIRS mapi/vgapi"
-fi
-
# build glsl and mesa if OpenGL or OpenGL ES is enabled
case "x$enable_opengl$enable_gles1$enable_gles2" in
x*yes*)
@@ -674,11 +682,14 @@ xlib)
DRIVER_DIRS="x11"
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
+ GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
;;
dri)
SRC_DIRS="$SRC_DIRS glx"
DRIVER_DIRS="dri"
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
+ GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
+ HAVE_ST_DRI="yes"
;;
osmesa)
DRIVER_DIRS="osmesa"
@@ -1184,24 +1195,19 @@ AC_SUBST([OSMESA_PC_LIB_PRIV])
dnl
dnl EGL configuration
dnl
-AC_ARG_ENABLE([egl],
- [AS_HELP_STRING([--disable-egl],
- [disable EGL library @<:@default=enabled@:>@])],
- [enable_egl="$enableval"],
- [enable_egl=yes])
+EGL_CLIENT_APIS=""
+
if test "x$enable_egl" = xno; then
if test "x$mesa_driver" = xno; then
AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
fi
- if test "x$enable_openvg" = xyes; then
- AC_MSG_ERROR([cannot enable OpenVG without EGL])
- fi
fi
if test "x$enable_egl" = xyes; then
SRC_DIRS="$SRC_DIRS egl"
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
EGL_DRIVERS_DIRS=""
- GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
+ GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
+ GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
HAVE_ST_EGL="yes"
if test "$enable_static" != yes; then
@@ -1235,6 +1241,49 @@ fi
AC_SUBST([EGL_LIB_DEPS])
AC_SUBST([EGL_DRIVERS_DIRS])
+dnl
+dnl X.Org DDX configuration
+dnl
+if test "x$enable_xorg" = xyes; then
+ PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
+ PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
+ PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
+ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
+ HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
+ HAVE_XEXTPROTO_71="no")
+ GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
+ HAVE_ST_XORG=yes
+fi
+
+dnl
+dnl OpenVG configuration
+dnl
+VG_LIB_DEPS=""
+
+if test "x$enable_openvg" = xyes; then
+ if test "x$enable_egl" = xno; then
+ AC_MSG_ERROR([cannot enable OpenVG without EGL])
+ fi
+ if test "x$enable_gallium" = xno; then
+ AC_MSG_ERROR([cannot enable OpenVG without Gallium])
+ fi
+
+ EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
+ VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
+ CORE_DIRS="$CORE_DIRS mapi/vgapi"
+ GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
+ HAVE_ST_VEGA=yes
+fi
+
+dnl
+dnl D3D1X configuration
+dnl
+
+if test "x$enable_d3d1x" = xyes; then
+ GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
+ HAVE_ST_D3D1X=yes
+fi
+
dnl
dnl GLU configuration
dnl
@@ -1451,14 +1500,6 @@ AC_SUBST([PROGRAM_DIRS])
dnl
dnl Gallium configuration
dnl
-AC_ARG_ENABLE([gallium],
- [AS_HELP_STRING([--disable-gallium],
- [build gallium @<:@default=enabled@:>@])],
- [enable_gallium="$enableval"],
- [enable_gallium=yes])
-if test "x$enable_gallium" = xno -a "x$enable_openvg" = xyes; then
- AC_MSG_ERROR([cannot enable OpenVG without Gallium])
-fi
if test "x$enable_gallium" = xyes; then
SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
@@ -1469,125 +1510,17 @@ AC_SUBST([LLVM_LIBS])
AC_SUBST([LLVM_LDFLAGS])
AC_SUBST([LLVM_VERSION])
-dnl
-dnl Gallium state trackers configuration
-dnl
-AC_ARG_WITH([state-trackers],
- [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
- [comma delimited state_trackers list, e.g.
- "egl,glx" @<:@default=auto@:>@])],
- [with_state_trackers="$withval"],
- [with_state_trackers=yes])
-
-case "$with_state_trackers" in
-no)
- GALLIUM_STATE_TRACKERS_DIRS=""
- ;;
-yes)
- # look at what else is built
- case "$mesa_driver" in
- xlib)
- GALLIUM_STATE_TRACKERS_DIRS=glx
- ;;
- dri)
- GALLIUM_STATE_TRACKERS_DIRS="dri"
- HAVE_ST_DRI="yes"
- # Have only tested st/xorg on 1.6.0 servers
- PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
- HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
- HAVE_ST_XORG="no")
- ;;
- esac
-
- if test "x$enable_egl" = xyes; then
- if test "$enable_openvg" = yes; then
- GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
- st_egl="yes"
- fi
- fi
- ;;
-*)
- # verify the requested state tracker exist
- state_trackers=""
- _state_trackers=`IFS=', '; echo $with_state_trackers`
- for tracker in $_state_trackers; do
- case "$tracker" in
- dri)
- if test "x$mesa_driver" != xdri; then
- AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
- fi
- HAVE_ST_DRI="yes"
- ;;
- egl)
- if test "x$enable_egl" != xyes; then
- AC_MSG_ERROR([cannot build egl state tracker without EGL library])
- fi
- HAVE_ST_EGL="yes"
- ;;
- xorg)
- PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
- PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
- PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
- HAVE_ST_XORG="yes"
- ;;
- vega)
- if test "x$enable_openvg" != xyes; then
- AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
- fi
- have_st_vega="yes"
- ;;
- esac
-
- if test -n "$tracker"; then
- test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
- AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
- if test -n "$state_trackers"; then
- state_trackers="$state_trackers $tracker"
- else
- state_trackers="$tracker"
- fi
- fi
- done
- GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
-
- # append --enable-openvg/--enable-gallium-egl to --with-state-trackers
- if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
- AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
- fi
- if test "x$HAVE_ST_EGL" != xyes; then
- AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
- fi
- ;;
-esac
-
-
-EGL_CLIENT_APIS=""
-VG_LIB_DEPS=""
case "x$enable_opengl$enable_gles1$enable_gles2" in
x*yes*)
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
;;
esac
-if test "x$enable_openvg" = xyes; then
- EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
- VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
-fi
AC_SUBST([VG_LIB_DEPS])
AC_SUBST([EGL_CLIENT_APIS])
-if test "x$HAVE_ST_EGL" = xyes; then
- GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
-fi
-
-if test "x$HAVE_ST_XORG" = xyes; then
- PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
- HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
- HAVE_XEXTPROTO_71="no")
-fi
-
AC_ARG_WITH([egl-platforms],
[AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
[comma delimited native platforms libEGL supports, e.g.
From 58b6a19ea4a48abe6307cca74b4d24752a0aeb57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 07:46:59 +0200
Subject: [PATCH 147/406] configure.ac: add option --with-gallium-drivers=DIRS
This removes all the --enable-gallium-$driver options and --disable-gallium.
Gallium can be disabled by --with-gallium-drivers= (without parameters).
Default is:
--with-gallium-drivers=r300,swrast
Reviewed-by: Alex Deucher
---
configure.ac | 165 ++++++++++++++++++---------------------------------
1 file changed, 57 insertions(+), 108 deletions(-)
diff --git a/configure.ac b/configure.ac
index 5d045f0bf5d..804b8a7e33c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -549,12 +549,16 @@ AC_ARG_ENABLE([egl],
[enable_egl="$enableval"],
[enable_egl=yes])
-# Option for Gallium
-AC_ARG_ENABLE([gallium],
- [AS_HELP_STRING([--disable-gallium],
- [build gallium @<:@default=enabled@:>@])],
- [enable_gallium="$enableval"],
- [enable_gallium=yes])
+# Option for Gallium drivers
+GALLIUM_DRIVERS_DEFAULT="r300,swrast"
+
+AC_ARG_WITH([gallium-drivers],
+ [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
+ [comma delimited Gallium drivers list, e.g.
+ "i915,i965,nouveau,r300,r600,svga,swrast"
+ @<:@default=r300,swrast@:>@])],
+ [with_gallium_drivers="$withval"],
+ [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
if test "x$enable_opengl" = xno -a \
"x$enable_gles1" = xno -a \
@@ -1264,7 +1268,7 @@ if test "x$enable_openvg" = xyes; then
if test "x$enable_egl" = xno; then
AC_MSG_ERROR([cannot enable OpenVG without EGL])
fi
- if test "x$enable_gallium" = xno; then
+ if test "x$with_gallium_drivers" = x; then
AC_MSG_ERROR([cannot enable OpenVG without Gallium])
fi
@@ -1280,6 +1284,10 @@ dnl D3D1X configuration
dnl
if test "x$enable_d3d1x" = xyes; then
+ if test "x$with_gallium_drivers" = x; then
+ AC_MSG_ERROR([cannot enable D3D1X without Gallium])
+ fi
+
GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
HAVE_ST_D3D1X=yes
fi
@@ -1500,7 +1508,7 @@ AC_SUBST([PROGRAM_DIRS])
dnl
dnl Gallium configuration
dnl
-if test "x$enable_gallium" = xyes; then
+if test "x$with_gallium_drivers" != x; then
SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
fi
@@ -1615,6 +1623,9 @@ AC_ARG_ENABLE([gallium-llvm],
[build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
[enable_gallium_llvm="$enableval"],
[enable_gallium_llvm=auto])
+if test "x$with_gallium_drivers" = x; then
+ enable_gallium_llvm=no
+fi
if test "x$enable_gallium_llvm" = xauto; then
case "$host_cpu" in
i*86|x86_64) enable_gallium_llvm=yes;;
@@ -1660,108 +1671,46 @@ gallium_require_llvm() {
fi
}
-
-dnl
-dnl Gallium SVGA configuration
-dnl
-AC_ARG_ENABLE([gallium-svga],
- [AS_HELP_STRING([--enable-gallium-svga],
- [build gallium SVGA @<:@default=disabled@:>@])],
- [enable_gallium_svga="$enableval"],
- [enable_gallium_svga=auto])
-if test "x$enable_gallium_svga" = xyes; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
- gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
-elif test "x$enable_gallium_svga" = xauto; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
-fi
-
-dnl
-dnl Gallium i915 configuration
-dnl
-AC_ARG_ENABLE([gallium-i915],
- [AS_HELP_STRING([--enable-gallium-i915],
- [build gallium i915 @<:@default=disabled@:>@])],
- [enable_gallium_i915="$enableval"],
- [enable_gallium_i915=auto])
-if test "x$enable_gallium_i915" = xyes; then
+dnl Gallium drivers
+if test "x$with_gallium_drivers" != x; then
+ # This is for compile-testing
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
- gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
-elif test "x$enable_gallium_i915" = xauto; then
- GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
-fi
-dnl
-dnl Gallium i965 configuration
-dnl
-AC_ARG_ENABLE([gallium-i965],
- [AS_HELP_STRING([--enable-gallium-i965],
- [build gallium i965 @<:@default=disabled@:>@])],
- [enable_gallium_i965="$enableval"],
- [enable_gallium_i965=auto])
-if test "x$enable_gallium_i965" = xyes; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
- gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
-elif test "x$enable_gallium_i965" = xauto; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
-fi
-
-dnl
-dnl Gallium Radeon r300g configuration
-dnl
-AC_ARG_ENABLE([gallium-r300],
- [AS_HELP_STRING([--disable-gallium-r300],
- [build R300 driver @<:@default=enabled@:>@])],
- [enable_gallium_r300="$enableval"],
- [enable_gallium_r300=yes])
-
-if test "x$enable_gallium_r300" = xyes && test "x$mesa_driver" = xdri; then
- gallium_require_llvm "Gallium R300"
-
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
- gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
-fi
-
-dnl
-dnl Gallium Radeon r600g configuration
-dnl
-AC_ARG_ENABLE([gallium-r600],
- [AS_HELP_STRING([--enable-gallium-r600],
- [build gallium r600 @<:@default=disabled@:>@])],
- [enable_gallium_r600="$enableval"],
- [enable_gallium_r600=auto])
-if test "x$enable_gallium_r600" = xyes; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
- gallium_check_st "r600/drm" "dri-r600"
-fi
-
-dnl
-dnl Gallium Nouveau configuration
-dnl
-AC_ARG_ENABLE([gallium-nouveau],
- [AS_HELP_STRING([--enable-gallium-nouveau],
- [build gallium nouveau @<:@default=disabled@:>@])],
- [enable_gallium_nouveau="$enableval"],
- [enable_gallium_nouveau=no])
-if test "x$enable_gallium_nouveau" = xyes; then
- GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
- gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
-fi
-
-dnl
-dnl Gallium swrast configuration
-dnl
-AC_ARG_ENABLE([gallium-swrast],
- [AS_HELP_STRING([--enable-gallium-swrast],
- [build gallium swrast @<:@default=auto@:>@])],
- [enable_gallium_swrast="$enableval"],
- [enable_gallium_swrast=auto])
-if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
- if test "x$HAVE_ST_DRI" = xyes; then
- GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
- fi
+ gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
+ for driver in $gallium_drivers; do
+ case "x$driver" in
+ xsvga)
+ gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
+ ;;
+ xi915)
+ gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
+ ;;
+ xi965)
+ gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
+ ;;
+ xr300)
+ gallium_require_llvm "Gallium R300"
+ gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
+ ;;
+ xr600)
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
+ gallium_check_st "r600/drm" "dri-r600"
+ ;;
+ xnouveau)
+ GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
+ gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
+ ;;
+ xswrast)
+ if test "x$HAVE_ST_DRI" = xyes; then
+ GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown Gallium driver: $driver])
+ ;;
+ esac
+ done
fi
dnl prepend CORE_DIRS to SRC_DIRS
From 0c7c5b68766a0d1d4da870fab0bcfd79fed1ed56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Tue, 14 Jun 2011 08:31:11 +0200
Subject: [PATCH 148/406] configure.ac: build r600g by default
Reviewed-by: Alex Deucher
---
configure.ac | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 804b8a7e33c..b2a0f66c68b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -550,13 +550,13 @@ AC_ARG_ENABLE([egl],
[enable_egl=yes])
# Option for Gallium drivers
-GALLIUM_DRIVERS_DEFAULT="r300,swrast"
+GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
AC_ARG_WITH([gallium-drivers],
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
[comma delimited Gallium drivers list, e.g.
"i915,i965,nouveau,r300,r600,svga,swrast"
- @<:@default=r300,swrast@:>@])],
+ @<:@default=r300,r600,swrast@:>@])],
[with_gallium_drivers="$withval"],
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
From 9ba2907f2ed893da3da1345647e34a597dd6ed07 Mon Sep 17 00:00:00 2001
From: Cyril Brulebois
Date: Wed, 15 Jun 2011 15:50:02 +0200
Subject: [PATCH 149/406] configure.ac: Avoid running llvm-config when it
hadn't been checked for.
If --disable-gallium is passed, llvm-config isn't checked for, so mark
it explicitly as absent, through LLVM_CONFIG=no.
Passing --disable-gallium would result in:
| ../configure: line 9739: --version: command not found
| ../configure: line 9740: --cppflags: command not found
| ../configure: line 9741: --libs: command not found
| ../configure: line 9743: --ldflags: command not found
With this commit, one gets that instead:
| configure: error: LLVM is required to build Gallium R300 on x86 and x86_64
Signed-off-by: Cyril Brulebois
---
configure.ac | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configure.ac b/configure.ac
index b2a0f66c68b..871b16e1ec7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1511,6 +1511,8 @@ dnl
if test "x$with_gallium_drivers" != x; then
SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
+else
+ LLVM_CONFIG=no
fi
AC_SUBST([LLVM_CFLAGS])
From 1251e1df0f5d4bc81c80c4c2d61c0a5f9b8b759a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sat, 18 Jun 2011 20:33:55 +0200
Subject: [PATCH 150/406] configure.ac: add back --enable-gallium-egl
---
configure.ac | 31 +++++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 871b16e1ec7..70da9ee15f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -548,6 +548,13 @@ AC_ARG_ENABLE([egl],
[disable EGL library @<:@default=enabled@:>@])],
[enable_egl="$enableval"],
[enable_egl=yes])
+AC_ARG_ENABLE([gallium_egl],
+ [AS_HELP_STRING([--enable-gallium-egl],
+ [enable optional EGL state tracker (not required
+ for EGL support in Gallium with OpenGL and OpenGL ES)
+ @<:@default=disable@:>@])],
+ [enable_gallium_egl="$enableval"],
+ [enable_gallium_egl=no])
# Option for Gallium drivers
GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
@@ -1210,9 +1217,6 @@ if test "x$enable_egl" = xyes; then
SRC_DIRS="$SRC_DIRS egl"
EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
EGL_DRIVERS_DIRS=""
- GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
- GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
- HAVE_ST_EGL="yes"
if test "$enable_static" != yes; then
# build egl_glx when libGL is built
@@ -1245,6 +1249,22 @@ fi
AC_SUBST([EGL_LIB_DEPS])
AC_SUBST([EGL_DRIVERS_DIRS])
+dnl
+dnl EGL Gallium configuration
+dnl
+if test "x$enable_gallium_egl" = xyes; then
+ if test "x$with_gallium_drivers" = x; then
+ AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
+ fi
+ if test "x$enable_egl" = xno; then
+ AC_MSG_ERROR([cannot enable egl_gallium without EGL])
+ fi
+
+ GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
+ GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
+ HAVE_ST_EGL="yes"
+fi
+
dnl
dnl X.Org DDX configuration
dnl
@@ -1271,6 +1291,9 @@ if test "x$enable_openvg" = xyes; then
if test "x$with_gallium_drivers" = x; then
AC_MSG_ERROR([cannot enable OpenVG without Gallium])
fi
+ if test "x$enable_gallium_egl" = xno; then
+ AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
+ fi
EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
@@ -1787,7 +1810,7 @@ if test "$enable_egl" = yes; then
egl_drivers="$egl_drivers builtin:egl_$d"
done
- if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
+ if test "x$HAVE_ST_EGL" = xyes; then
echo " EGL drivers: ${egl_drivers} egl_gallium"
echo " EGL Gallium STs:$EGL_CLIENT_APIS"
else
From 9bcce02f47f721bfb8917fd5639756fb3456aab5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 19 Jun 2011 23:28:33 +0200
Subject: [PATCH 151/406] r600g: remove some magic numbers
---
src/gallium/drivers/r600/r600_state.c | 12 ++++++++++--
src/gallium/drivers/r600/r600d.h | 3 +++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index d927e4a945e..4ce17403ba2 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -1290,14 +1290,22 @@ void r600_init_config(struct r600_pipe_context *rctx)
if (family >= CHIP_RV770) {
r600_pipe_state_add_reg(rstate, R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, 0x00004000, 0xFFFFFFFF, NULL);
- r600_pipe_state_add_reg(rstate, R_009508_TA_CNTL_AUX, 0x07000002, 0xFFFFFFFF, NULL);
+ r600_pipe_state_add_reg(rstate, R_009508_TA_CNTL_AUX,
+ S_009508_DISABLE_CUBE_ANISO(1) |
+ S_009508_SYNC_GRADIENT(1) |
+ S_009508_SYNC_WALKER(1) |
+ S_009508_SYNC_ALIGNER(1), 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_009830_DB_DEBUG, 0x00000000, 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_009838_DB_WATERMARKS, 0x00420204, 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_0286C8_SPI_THREAD_GROUPING, 0x00000000, 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_028A4C_PA_SC_MODE_CNTL, 0x00514002, 0xFFFFFFFF, NULL);
} else {
r600_pipe_state_add_reg(rstate, R_008D8C_SQ_DYN_GPR_CNTL_PS_FLUSH_REQ, 0x00000000, 0xFFFFFFFF, NULL);
- r600_pipe_state_add_reg(rstate, R_009508_TA_CNTL_AUX, 0x07000003, 0xFFFFFFFF, NULL);
+ r600_pipe_state_add_reg(rstate, R_009508_TA_CNTL_AUX,
+ S_009508_DISABLE_CUBE_ANISO(1) |
+ S_009508_SYNC_GRADIENT(1) |
+ S_009508_SYNC_WALKER(1) |
+ S_009508_SYNC_ALIGNER(1), 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_009830_DB_DEBUG, 0x82000000, 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_009838_DB_WATERMARKS, 0x01020204, 0xFFFFFFFF, NULL);
r600_pipe_state_add_reg(rstate, R_0286C8_SPI_THREAD_GROUPING, 0x00000001, 0xFFFFFFFF, NULL);
diff --git a/src/gallium/drivers/r600/r600d.h b/src/gallium/drivers/r600/r600d.h
index 6373572b65f..f6eec24cc05 100644
--- a/src/gallium/drivers/r600/r600d.h
+++ b/src/gallium/drivers/r600/r600d.h
@@ -2556,6 +2556,9 @@
#define S_009508_DISABLE_CUBE_WRAP(x) (((x) & 0x1) << 0)
#define G_009508_DISABLE_CUBE_WRAP(x) (((x) >> 0) & 0x1)
#define C_009508_DISABLE_CUBE_WRAP 0xFFFFFFFE
+#define S_009508_DISABLE_CUBE_ANISO(x) (((x) & 0x1) << 1)
+#define G_009508_DISABLE_CUBE_ANISO(x) (((x) >> 1) & 0x1)
+#define C_009508_DISABLE_CUBE_ANISO (~(1 << 1))
#define S_009508_SYNC_GRADIENT(x) (((x) & 0x1) << 24)
#define G_009508_SYNC_GRADIENT(x) (((x) >> 24) & 0x1)
#define C_009508_SYNC_GRADIENT 0xFEFFFFFF
From badf0335ef70223204fbae3e8fdef718cdb3ad19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?=
Date: Sun, 19 Jun 2011 23:41:02 +0200
Subject: [PATCH 152/406] r600g: implement seamless_cube_map on r600-r700
st/mesa guarantees that all bound sampler states have the same value
in seamless_cube_map.
---
src/gallium/drivers/r600/r600_pipe.c | 2 +-
src/gallium/drivers/r600/r600_pipe.h | 6 ++++
src/gallium/drivers/r600/r600_state.c | 45 +++++++++++++++++++++++----
3 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 16fe6c54a15..a0d145d7178 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -376,6 +376,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
case PIPE_CAP_SM3:
+ case PIPE_CAP_SEAMLESS_CUBE_MAP:
return 1;
/* Supported except the original R600. */
@@ -385,7 +386,6 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
return family == CHIP_R600 ? 0 : 1;
/* Supported on Evergreen. */
- case PIPE_CAP_SEAMLESS_CUBE_MAP:
case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
return family >= CHIP_CEDAR ? 1 : 0;
diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h
index 84a45bec05d..9941bbf0e3c 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -50,6 +50,7 @@ enum r600_pipe_state_id {
R600_PIPE_STATE_BLEND = 0,
R600_PIPE_STATE_BLEND_COLOR,
R600_PIPE_STATE_CONFIG,
+ R600_PIPE_STATE_SEAMLESS_CUBEMAP,
R600_PIPE_STATE_CLIP,
R600_PIPE_STATE_SCISSOR,
R600_PIPE_STATE_VIEWPORT,
@@ -126,6 +127,11 @@ struct r600_pipe_shader {
struct r600_vertex_element vertex_elements;
};
+struct r600_pipe_sampler_state {
+ struct r600_pipe_state rstate;
+ boolean seamless_cube_map;
+};
+
/* needed for blitter save */
#define NUM_TEX_UNITS 16
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 4ce17403ba2..91da7c55f4b 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -369,14 +369,17 @@ static void *r600_create_rs_state(struct pipe_context *ctx,
static void *r600_create_sampler_state(struct pipe_context *ctx,
const struct pipe_sampler_state *state)
{
- struct r600_pipe_state *rstate = CALLOC_STRUCT(r600_pipe_state);
+ struct r600_pipe_sampler_state *ss = CALLOC_STRUCT(r600_pipe_sampler_state);
+ struct r600_pipe_state *rstate;
union util_color uc;
unsigned aniso_flag_offset = state->max_anisotropy > 1 ? 4 : 0;
- if (rstate == NULL) {
+ if (ss == NULL) {
return NULL;
}
+ ss->seamless_cube_map = state->seamless_cube_map;
+ rstate = &ss->rstate;
rstate->id = R600_PIPE_STATE_SAMPLER;
util_pack_color(state->border_color, PIPE_FORMAT_B8G8R8A8_UNORM, &uc);
r600_pipe_state_add_reg_noblock(rstate, R_03C000_SQ_TEX_SAMPLER_WORD0_0,
@@ -559,27 +562,57 @@ static void r600_set_ps_sampler_view(struct pipe_context *ctx, unsigned count,
rctx->ps_samplers.n_views = count;
}
+static void r600_set_seamless_cubemap(struct r600_pipe_context *rctx, boolean enable)
+{
+ struct r600_pipe_state *rstate = CALLOC_STRUCT(r600_pipe_state);
+ if (rstate == NULL)
+ return;
+
+ rstate->id = R600_PIPE_STATE_SEAMLESS_CUBEMAP;
+ r600_pipe_state_add_reg(rstate, R_009508_TA_CNTL_AUX,
+ (enable ? 0 : S_009508_DISABLE_CUBE_WRAP(1)),
+ 1, NULL);
+
+ free(rctx->states[R600_PIPE_STATE_SEAMLESS_CUBEMAP]);
+ rctx->states[R600_PIPE_STATE_SEAMLESS_CUBEMAP] = rstate;
+ r600_context_pipe_state_set(&rctx->ctx, rstate);
+}
+
static void r600_bind_ps_sampler(struct pipe_context *ctx, unsigned count, void **states)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
- struct r600_pipe_state **rstates = (struct r600_pipe_state **)states;
+ struct r600_pipe_sampler_state **sstates = (struct r600_pipe_sampler_state **)states;
+ int seamless = -1;
memcpy(rctx->ps_samplers.samplers, states, sizeof(void*) * count);
rctx->ps_samplers.n_samplers = count;
for (int i = 0; i < count; i++) {
- r600_context_pipe_state_set_ps_sampler(&rctx->ctx, rstates[i], i);
+ r600_context_pipe_state_set_ps_sampler(&rctx->ctx, &sstates[i]->rstate, i);
+
+ if (sstates[i])
+ seamless = sstates[i]->seamless_cube_map;
}
+
+ if (seamless != -1)
+ r600_set_seamless_cubemap(rctx, seamless);
}
static void r600_bind_vs_sampler(struct pipe_context *ctx, unsigned count, void **states)
{
struct r600_pipe_context *rctx = (struct r600_pipe_context *)ctx;
- struct r600_pipe_state **rstates = (struct r600_pipe_state **)states;
+ struct r600_pipe_sampler_state **sstates = (struct r600_pipe_sampler_state **)states;
+ int seamless = -1;
for (int i = 0; i < count; i++) {
- r600_context_pipe_state_set_vs_sampler(&rctx->ctx, rstates[i], i);
+ r600_context_pipe_state_set_vs_sampler(&rctx->ctx, &sstates[i]->rstate, i);
+
+ if (sstates[i])
+ seamless = sstates[i]->seamless_cube_map;
}
+
+ if (seamless != -1)
+ r600_set_seamless_cubemap(rctx, seamless);
}
static void r600_set_clip_state(struct pipe_context *ctx,
From 54d1b718b897742bf424f61f911e4ca8bbffa689 Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Mon, 16 May 2011 21:52:05 +0200
Subject: [PATCH 153/406] st/xorg: fix crash triggered by rendercheck -t blend
-f a8r8g8b8 -o Clear
---
src/gallium/state_trackers/xorg/xorg_composite.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index d4dc84a122b..b5dacd20bb5 100644
--- a/src/gallium/state_trackers/xorg/xorg_composite.c
+++ b/src/gallium/state_trackers/xorg/xorg_composite.c
@@ -237,7 +237,7 @@ picture_format_fixups(struct exa_pixmap_priv *pSrc, PicturePtr pSrcPicture, bool
boolean swizzle = FALSE;
unsigned ret = 0;
- if (pSrc->picture_format == pSrcPicture->format) {
+ if (pSrc && pSrc->picture_format == pSrcPicture->format) {
if (pSrc->picture_format == PICT_a8) {
if (mask)
return FS_MASK_LUMINANCE;
@@ -252,7 +252,7 @@ picture_format_fixups(struct exa_pixmap_priv *pSrc, PicturePtr pSrcPicture, bool
return 0;
}
- if (pSrc->picture_format != PICT_a8r8g8b8) {
+ if (pSrc && pSrc->picture_format != PICT_a8r8g8b8) {
assert(!"can not handle formats");
return 0;
}
From fe20edf959c4ec565ef29f2556e03ce36e0c259f Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Mon, 16 May 2011 21:52:47 +0200
Subject: [PATCH 154/406] st/xorg: fix crash triggered by rendercheck -t
composite -f a8r8g8b8 -o Src, Saturate
samplers[0] may remain uninititialized if src picture/pixmap is null
---
src/gallium/state_trackers/xorg/xorg_composite.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/state_trackers/xorg/xorg_composite.c b/src/gallium/state_trackers/xorg/xorg_composite.c
index b5dacd20bb5..f696b72e1e3 100644
--- a/src/gallium/state_trackers/xorg/xorg_composite.c
+++ b/src/gallium/state_trackers/xorg/xorg_composite.c
@@ -355,7 +355,7 @@ bind_samplers(struct exa_context *exa, int op,
struct exa_pixmap_priv *pMask,
struct exa_pixmap_priv *pDst)
{
- struct pipe_sampler_state *samplers[PIPE_MAX_SAMPLERS];
+ struct pipe_sampler_state *samplers[PIPE_MAX_SAMPLERS] = {0};
struct pipe_sampler_state src_sampler, mask_sampler;
struct pipe_sampler_view view_templ;
struct pipe_sampler_view *src_view;
From 2f6a9687cf83aea10225f4ec91206c500bc3df89 Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Mon, 9 May 2011 00:35:10 +0200
Subject: [PATCH 155/406] gallium/nouveau: remove unused nouveau_screen_bo_user
---
src/gallium/drivers/nouveau/nouveau_screen.c | 14 --------------
src/gallium/drivers/nouveau/nouveau_screen.h | 2 --
2 files changed, 16 deletions(-)
diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c
index 401155bba6e..223e7682ccd 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -81,20 +81,6 @@ nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment,
return bo;
}
-struct nouveau_bo *
-nouveau_screen_bo_user(struct pipe_screen *pscreen, void *ptr, unsigned bytes)
-{
- struct nouveau_device *dev = nouveau_screen(pscreen)->device;
- struct nouveau_bo *bo = NULL;
- int ret;
-
- ret = nouveau_bo_user(dev, ptr, bytes, &bo);
- if (ret)
- return NULL;
-
- return bo;
-}
-
void *
nouveau_screen_bo_map(struct pipe_screen *pscreen,
struct nouveau_bo *bo,
diff --git a/src/gallium/drivers/nouveau/nouveau_screen.h b/src/gallium/drivers/nouveau/nouveau_screen.h
index 186ada39677..d910809a0ec 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.h
+++ b/src/gallium/drivers/nouveau/nouveau_screen.h
@@ -47,8 +47,6 @@ nouveau_screen(struct pipe_screen *pscreen)
struct nouveau_bo *
nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment,
unsigned usage, unsigned bind, unsigned size);
-struct nouveau_bo *
-nouveau_screen_bo_user(struct pipe_screen *pscreen, void *ptr, unsigned bytes);
void *
nouveau_screen_bo_map(struct pipe_screen *pscreen,
struct nouveau_bo *pb,
From 21c0556b61708878ce25879c994bba2f914115a6 Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Sun, 5 Jun 2011 21:04:49 +0200
Subject: [PATCH 156/406] st/xorg: add GALLIUM_AUXILIARIES to target
dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without it changes to GALLIUM_AUXILIARIES don't induce target rebuild
Signed-off-by: Marek Olšák
---
src/gallium/targets/Makefile.xorg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gallium/targets/Makefile.xorg b/src/gallium/targets/Makefile.xorg
index 47040bb14c8..6fad7109f29 100644
--- a/src/gallium/targets/Makefile.xorg
+++ b/src/gallium/targets/Makefile.xorg
@@ -41,7 +41,7 @@ endif
default: depend $(TOP)/$(LIB_DIR)/gallium $(LIBNAME) $(LIBNAME_STAGING)
-$(LIBNAME): $(OBJECTS) Makefile ../Makefile.xorg $(LIBS) $(DRIVER_PIPES)
+$(LIBNAME): $(OBJECTS) Makefile ../Makefile.xorg $(LIBS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES)
$(MKLIB) -linker '$(CC)' -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS)
depend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES)
From a97b40a886944a6aeb214e52028ff0e430b71dca Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Sun, 5 Jun 2011 21:05:24 +0200
Subject: [PATCH 157/406] st/xorg: initialize drm_mode.type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
it's uninitialized, but used by kernel (drm_mode_setcrtc -> drm_mode_set_crtcinfo)
Signed-off-by: Marek Olšák
---
src/gallium/state_trackers/xorg/xorg_crtc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c
index 0499ed1ea0b..22e61cf7081 100644
--- a/src/gallium/state_trackers/xorg/xorg_crtc.c
+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c
@@ -122,6 +122,7 @@ crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
drm_mode.hskew = mode->HSkew;
drm_mode.vscan = mode->VScan;
drm_mode.vrefresh = mode->VRefresh;
+ drm_mode.type = 0;
if (!mode->name)
xf86SetModeDefaultName(mode);
strncpy(drm_mode.name, mode->name, DRM_DISPLAY_MODE_LEN - 1);
From c772d4e6f34f6f55a730fb17aaee7a3b0554db3e Mon Sep 17 00:00:00 2001
From: Marcin Slusarz
Date: Mon, 16 May 2011 21:50:29 +0200
Subject: [PATCH 158/406] xorg/nouveau: rename to nouveau2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Marek Olšák
---
src/gallium/targets/xorg-nouveau/Makefile | 2 +-
src/gallium/targets/xorg-nouveau/nouveau_xorg.c | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/gallium/targets/xorg-nouveau/Makefile b/src/gallium/targets/xorg-nouveau/Makefile
index 5a2cdb1b0ef..16ac954d18a 100644
--- a/src/gallium/targets/xorg-nouveau/Makefile
+++ b/src/gallium/targets/xorg-nouveau/Makefile
@@ -1,7 +1,7 @@
TOP = ../../../..
include $(TOP)/configs/current
-LIBNAME = modesetting_drv.so
+LIBNAME = nouveau2_drv.so
C_SOURCES = \
nouveau_target.c \
diff --git a/src/gallium/targets/xorg-nouveau/nouveau_xorg.c b/src/gallium/targets/xorg-nouveau/nouveau_xorg.c
index f0d64925c73..a25254aba85 100644
--- a/src/gallium/targets/xorg-nouveau/nouveau_xorg.c
+++ b/src/gallium/targets/xorg-nouveau/nouveau_xorg.c
@@ -54,7 +54,7 @@ static PciChipsets nouveau_xorg_pci_devices[] = {
};
static XF86ModuleVersionInfo nouveau_xorg_version = {
- "modesetting",
+ "nouveau2",
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
@@ -70,9 +70,9 @@ static XF86ModuleVersionInfo nouveau_xorg_version = {
* Xorg driver exported structures
*/
-_X_EXPORT DriverRec modesetting = {
+_X_EXPORT DriverRec nouveau2 = {
1,
- "modesetting",
+ "nouveau2",
nouveau_xorg_identify,
NULL,
xorg_tracker_available_options,
@@ -85,7 +85,7 @@ _X_EXPORT DriverRec modesetting = {
static MODULESETUPPROTO(nouveau_xorg_setup);
-_X_EXPORT XF86ModuleData modesettingModuleData = {
+_X_EXPORT XF86ModuleData nouveau2ModuleData = {
&nouveau_xorg_version,
nouveau_xorg_setup,
NULL
@@ -104,7 +104,7 @@ nouveau_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
*/
if (!setupDone) {
setupDone = 1;
- xf86AddDriver(&modesetting, module, HaveDriverFuncs);
+ xf86AddDriver(&nouveau2, module, HaveDriverFuncs);
/*
* The return value must be non-NULL on success even though there
@@ -121,7 +121,7 @@ nouveau_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
static void
nouveau_xorg_identify(int flags)
{
- xf86PrintChipsets("modesetting", "Driver for Modesetting Kernel Drivers",
+ xf86PrintChipsets("nouveau2", "Driver for Modesetting Kernel Drivers",
nouveau_xorg_chipsets);
}
@@ -137,7 +137,7 @@ nouveau_xorg_pci_probe(DriverPtr driver,
if (scrn != NULL) {
scrn->driverVersion = 1;
scrn->driverName = "nouveau";
- scrn->name = "modesetting";
+ scrn->name = "nouveau2";
scrn->Probe = NULL;
entity = xf86GetEntityInfo(entity_num);
From 66c71d150aed5fbecd49cb028332fdcc2c1feb70 Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Mon, 20 Jun 2011 08:05:04 +0900
Subject: [PATCH 159/406] configure.ac: remove deprecated EGL options
---
configure.ac | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/configure.ac b/configure.ac
index 70da9ee15f1..c9dd8a70c58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -523,11 +523,6 @@ AC_ARG_ENABLE([gles2],
[enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
[enable_gles2="$enableval"],
[enable_gles2=no])
-AC_ARG_ENABLE([gles-overlay],
- [AS_HELP_STRING([--enable-gles-overlay],
- [DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
- [enable_gles1="$enableval"; enable_gles2="$enableval"],
- [])
AC_ARG_ENABLE([openvg],
[AS_HELP_STRING([--enable-openvg],
[enable support for OpenVG API @<:@default=no@:>@])],
@@ -1560,10 +1555,6 @@ AC_ARG_WITH([egl-platforms],
"x11,drm" @<:@default=auto@:>@])],
[with_egl_platforms="$withval"],
[with_egl_platforms=yes])
-AC_ARG_WITH([egl-displays],
- [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
- [DEPRECATED. Use --with-egl-platforms instead])],
- [with_egl_platforms="$withval"])
EGL_PLATFORMS=""
WAYLAND_EGL_LIB_DEPS=""
From 8eea050f5aed6ad8aeb64105c0e2581f0fd0b10a Mon Sep 17 00:00:00 2001
From: Chia-I Wu
Date: Mon, 20 Jun 2011 11:14:56 +0900
Subject: [PATCH 160/406] docs: update EGL for changed configure options
---
docs/egl.html | 45 +++++++++++++++++++++------------------------
docs/opengles.html | 19 +------------------
docs/openvg.html | 10 +++++-----
3 files changed, 27 insertions(+), 47 deletions(-)
diff --git a/docs/egl.html b/docs/egl.html
index fb15086679f..5b750070ca1 100644
--- a/docs/egl.html
+++ b/docs/egl.html
@@ -29,12 +29,14 @@ directly dispatched to the drivers.
the driver for your hardware. For example
- $ ./configure --enable-gles2 --enable-openvg --enable-gallium-nouveau
+ $ ./configure --enable-gles1 --enable-gles2 \
+ --with-dri-drivers=... \
+ --with-gallium-drivers=...
-The main library and OpenGL is enabled by default. The first option above
-enables OpenGL ES 2.x . The second option enables
-OpenVG .
+The main library and OpenGL is enabled by default. The first two options
+above enables OpenGL ES 1.x and 2.x . The last two
+options enables the listed classic and and Gallium drivers respectively.
@@ -42,8 +44,8 @@ enables OpenGL ES 2.x . The second option enables
In the given example, it will build and install libEGL,
-libGL, libGLESv1_CM, libGLESv2,
-libOpenVG, and one or more EGL drivers.
+libGL, libGLESv1_CM, libGLESv2, and one
+or more EGL drivers.
Configure Options
@@ -65,6 +67,12 @@ drivers will be installed to ${libdir}/egl.
+--enable-gallium-egl
+
+Enable the optional egl_gallium driver.
+
+
+
--with-egl-platforms
List the platforms (window systems) to support. Its argument is a comma
@@ -88,15 +96,17 @@ internal library that supports multiple APIs.
---enable-openvg
+--enable-shared-glapi
-OpenVG must be explicitly enabled by this option.
+By default, libGL has its own copy of libglapi.
+This options makes libGL use the shared libglapi. This
+is required if applications mix OpenGL and OpenGL ES.
---enable-gallium-egl
+--enable-openvg
-Explicitly enable or disable egl_gallium.
+OpenVG must be explicitly enabled by this option.
@@ -220,8 +230,7 @@ distribution.
Generally, egl_dri2 is preferred over egl_gallium
when the system already has DRI drivers. As egl_gallium is loaded
before egl_dri2 when both are available, egl_gallium
-may either be disabled with --disable-gallium-egl or packaged
-separately.
+is disabled by default.
Developers
@@ -307,17 +316,5 @@ not be called with the sample display at the same time. If a driver has access
to an EGLDisplay without going through the EGL APIs, the driver
should as well lock the display before using it.
-TODOs
-
-
-Pass the conformance tests
-Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported. But
-which one of libGL.so, libGLESv1_CM.so, and
-libGLESv2.so should an application link to? Bad things may happen
-when, say, an application is linked to libGLESv2.so and
-libcairo, which is linked to libGL.so instead.
-
-
-