As shown in mfeatures.h, this allows users of accum.h to work without knowing if the feature is available.tags/mesa_7_7_rc1
| @@ -29,6 +29,10 @@ | |||
| #include "macros.h" | |||
| #include "state.h" | |||
| #include "mtypes.h" | |||
| #include "glapi/dispatch.h" | |||
| #if FEATURE_accum | |||
| void GLAPIENTRY | |||
| @@ -51,7 +55,7 @@ _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) | |||
| } | |||
| void GLAPIENTRY | |||
| static void GLAPIENTRY | |||
| _mesa_Accum( GLenum op, GLfloat value ) | |||
| { | |||
| GET_CURRENT_CONTEXT(ctx); | |||
| @@ -99,6 +103,16 @@ _mesa_Accum( GLenum op, GLfloat value ) | |||
| } | |||
| void | |||
| _mesa_init_accum_dispatch(struct _glapi_table *disp) | |||
| { | |||
| SET_Accum(disp, _mesa_Accum); | |||
| SET_ClearAccum(disp, _mesa_ClearAccum); | |||
| } | |||
| #endif /* FEATURE_accum */ | |||
| void | |||
| _mesa_init_accum( GLcontext *ctx ) | |||
| @@ -38,25 +38,40 @@ | |||
| #define ACCUM_H | |||
| #include "mtypes.h" | |||
| #include "main/mtypes.h" | |||
| #if _HAVE_FULL_GL | |||
| extern void GLAPIENTRY | |||
| _mesa_Accum( GLenum op, GLfloat value ); | |||
| #if FEATURE_accum | |||
| #define _MESA_INIT_ACCUM_FUNCTIONS(driver, impl) \ | |||
| do { \ | |||
| (driver)->Accum = impl ## Accum; \ | |||
| } while (0) | |||
| extern void GLAPIENTRY | |||
| _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); | |||
| extern void | |||
| _mesa_init_accum( GLcontext *ctx ); | |||
| extern void | |||
| _mesa_init_accum_dispatch(struct _glapi_table *disp); | |||
| #else /* FEATURE_accum */ | |||
| #else | |||
| #define _MESA_INIT_ACCUM_FUNCTIONS(driver, impl) do { } while (0) | |||
| /** No-op */ | |||
| #define _mesa_init_accum( c ) ((void)0) | |||
| static INLINE void | |||
| _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) | |||
| { | |||
| /* this is used in _mesa_PopAttrib */ | |||
| ASSERT_NO_FEATURE(); | |||
| } | |||
| #endif | |||
| static INLINE void | |||
| _mesa_init_accum_dispatch(struct _glapi_table *disp) | |||
| { | |||
| } | |||
| #endif /* FEATURE_accum */ | |||
| extern void | |||
| _mesa_init_accum( GLcontext *ctx ); | |||
| #endif | |||
| #endif /* ACCUM_H */ | |||
| @@ -30,9 +30,7 @@ | |||
| #include "mfeatures.h" | |||
| #if FEATURE_accum | |||
| #include "accum.h" | |||
| #endif | |||
| #include "api_loopback.h" | |||
| #include "api_exec.h" | |||
| #if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program | |||
| @@ -193,10 +191,9 @@ _mesa_init_exec_table(struct _glapi_table *exec) | |||
| SET_TexParameteri(exec, _mesa_TexParameteri); | |||
| SET_Translatef(exec, _mesa_Translatef); | |||
| SET_Viewport(exec, _mesa_Viewport); | |||
| #if FEATURE_accum | |||
| SET_Accum(exec, _mesa_Accum); | |||
| SET_ClearAccum(exec, _mesa_ClearAccum); | |||
| #endif | |||
| _mesa_init_accum_dispatch(exec); | |||
| #if FEATURE_dlist | |||
| SET_CallList(exec, _mesa_CallList); | |||
| SET_CallLists(exec, _mesa_CallLists); | |||
| @@ -79,9 +79,7 @@ | |||
| #include "glheader.h" | |||
| #include "mfeatures.h" | |||
| #include "imports.h" | |||
| #if FEATURE_accum | |||
| #include "accum.h" | |||
| #endif | |||
| #include "api_exec.h" | |||
| #include "arrayobj.h" | |||
| #if FEATURE_attrib_stack | |||
| @@ -676,9 +674,7 @@ init_attrib_groups(GLcontext *ctx) | |||
| _mesa_init_extensions( ctx ); | |||
| /* Attribute Groups */ | |||
| #if FEATURE_accum | |||
| _mesa_init_accum( ctx ); | |||
| #endif | |||
| #if FEATURE_attrib_stack | |||
| _mesa_init_attrib( ctx ); | |||
| #endif | |||