#include "api_exec.h"
#include "api_loopback.h"
#include "api_validate.h"
-#if FEATURE_ATI_fragment_shader
#include "atifragshader.h"
-#endif
#include "config.h"
#include "mfeatures.h"
#include "bufferobj.h"
#include "varray.h"
#include "arbprogram.h"
#include "nvprogram.h"
-#if FEATURE_EXT_transform_feedback
#include "transformfeedback.h"
-#endif
#include "math/m_matrix.h"
save_TexBumpParameterfvATI(pname, p);
}
-#if FEATURE_ATI_fragment_shader
static void GLAPIENTRY
save_BindFragmentShaderATI(GLuint id)
{
CALL_SetFragmentShaderConstantATI(ctx->Exec, (dst, value));
}
}
-#endif
static void GLAPIENTRY
save_Attr1fNV(GLenum attr, GLfloat x)
/* XXX more shader functions needed here */
-#if FEATURE_EXT_framebuffer_blit
static void GLAPIENTRY
save_BlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
mask, filter));
}
}
-#endif
/** GL_EXT_provoking_vertex */
CALL_DrawBuffersARB(ctx->Exec, (n[1].i, buffers));
}
break;
-#if FEATURE_EXT_framebuffer_blit
case OPCODE_BLIT_FRAMEBUFFER:
CALL_BlitFramebufferEXT(ctx->Exec, (n[1].i, n[2].i, n[3].i, n[4].i,
n[5].i, n[6].i, n[7].i, n[8].i,
n[9].i, n[10].e));
break;
-#endif
-
case OPCODE_USE_PROGRAM:
CALL_UseProgramObjectARB(ctx->Exec, (n[1].ui));
break;
CALL_TexBumpParameterfvATI(ctx->Exec, (pname, values));
}
break;
-#if FEATURE_ATI_fragment_shader
case OPCODE_BIND_FRAGMENT_SHADER_ATI:
CALL_BindFragmentShaderATI(ctx->Exec, (n[1].i));
break;
CALL_SetFragmentShaderConstantATI(ctx->Exec, (dst, values));
}
break;
-#endif
case OPCODE_ATTR_1F_NV:
CALL_VertexAttrib1fNV(ctx->Exec, (n[1].e, n[2].f));
break;
* struct.
*/
struct _glapi_table *
-_mesa_create_save_table(void)
+_mesa_create_save_table(const struct gl_context *ctx)
{
struct _glapi_table *table;
if (table == NULL)
return NULL;
- _mesa_loopback_init_api_table(table);
+ _mesa_loopback_init_api_table(ctx, table);
/* GL 1.0 */
SET_Accum(table, save_Accum);
SET_TexBumpParameterfvATI(table, save_TexBumpParameterfvATI);
/* 245. GL_ATI_fragment_shader */
-#if FEATURE_ATI_fragment_shader
SET_BindFragmentShaderATI(table, save_BindFragmentShaderATI);
SET_SetFragmentShaderConstantATI(table, save_SetFragmentShaderConstantATI);
-#endif
/* 282. GL_NV_fragment_program */
SET_ProgramNamedParameter4fNV(table, save_ProgramNamedParameter4fNV);
SET_DrawBuffersARB(table, save_DrawBuffersARB);
-#if FEATURE_EXT_framebuffer_blit
SET_BlitFramebufferEXT(table, save_BlitFramebufferEXT);
-#endif
/* GL_ARB_shader_objects */
- _mesa_init_shader_dispatch(table); /* Plug in glCreate/Delete/Get, etc */
+ _mesa_init_shader_dispatch(ctx, table); /* Plug in glCreate/Delete/Get, etc */
SET_UseProgramObjectARB(table, save_UseProgramObjectARB);
SET_Uniform1fARB(table, save_Uniform1fARB);
SET_Uniform2fARB(table, save_Uniform2fARB);
SET_ProgramLocalParameters4fvEXT(table, save_ProgramLocalParameters4fvEXT);
/* ARB 50. GL_ARB_map_buffer_range */
-#if FEATURE_ARB_map_buffer_range
SET_MapBufferRange(table, _mesa_MapBufferRange); /* no dlist save */
SET_FlushMappedBufferRange(table, _mesa_FlushMappedBufferRange); /* no dl */
-#endif
/* ARB 51. GL_ARB_texture_buffer_object */
SET_TexBufferARB(table, _mesa_TexBuffer); /* no dlist save */
SET_ProvokingVertexEXT(table, save_ProvokingVertexEXT);
/* 371. GL_APPLE_object_purgeable */
-#if FEATURE_APPLE_object_purgeable
SET_ObjectPurgeableAPPLE(table, _mesa_ObjectPurgeableAPPLE);
SET_ObjectUnpurgeableAPPLE(table, _mesa_ObjectUnpurgeableAPPLE);
SET_GetObjectParameterivAPPLE(table, _mesa_GetObjectParameterivAPPLE);
-#endif
/* GL_EXT_texture_integer */
SET_ClearColorIiEXT(table, save_ClearColorIi);
(void) save_Uniform4uiv;
#endif
-#if FEATURE_EXT_transform_feedback
/* These are not compiled into display lists: */
SET_BindBufferBaseEXT(table, _mesa_BindBufferBase);
SET_BindBufferOffsetEXT(table, _mesa_BindBufferOffsetEXT);
save_DrawTransformFeedbackStreamInstanced);
SET_BeginQueryIndexed(table, save_BeginQueryIndexed);
SET_EndQueryIndexed(table, save_EndQueryIndexed);
-#endif
/* GL_ARB_instanced_arrays */
SET_VertexAttribDivisorARB(table, save_VertexAttribDivisor);