mesa/main: Make FEATURE_accum follow feature conventions.

As shown in mfeatures.h, this allows users of accum.h to work without
knowing if the feature is available.
This commit is contained in:
Chia-I Wu
2009-09-07 17:51:42 +08:00
committed by Brian Paul
parent e82b02c7e8
commit a833ff0f53
4 changed files with 47 additions and 25 deletions

View File

@@ -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 )

View File

@@ -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
extern void
_mesa_init_accum_dispatch(struct _glapi_table *disp);
#else /* FEATURE_accum */
#define _MESA_INIT_ACCUM_FUNCTIONS(driver, impl) do { } while (0)
static INLINE void
_mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
{
/* this is used in _mesa_PopAttrib */
ASSERT_NO_FEATURE();
}
static INLINE void
_mesa_init_accum_dispatch(struct _glapi_table *disp)
{
}
#endif /* FEATURE_accum */
extern void
_mesa_init_accum( GLcontext *ctx );
#else
/** No-op */
#define _mesa_init_accum( c ) ((void)0)
#endif
#endif
#endif /* ACCUM_H */

View File

@@ -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);

View File

@@ -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