summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2009-09-07 17:51:42 +0800
committerChia-I Wu <olvaffe@gmail.com>2009-09-12 20:55:55 +0800
commitbae850f9afbb0d9d7dc25a9cd5e8e2ed05167ddf (patch)
treea33ba2d49b1f009571ab696fc905852bae6c8467
parentec86469c55c3f531c00ead130a31071ad8aede48 (diff)
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.
-rw-r--r--src/mesa/main/accum.c14
-rw-r--r--src/mesa/main/accum.h36
-rw-r--r--src/mesa/main/api_exec.c9
-rw-r--r--src/mesa/main/context.c4
4 files changed, 43 insertions, 20 deletions
diff --git a/src/mesa/main/accum.c b/src/mesa/main/accum.c
index 2345695f3c..30e2f9664a 100644
--- a/src/mesa/main/accum.c
+++ b/src/mesa/main/accum.c
@@ -29,6 +29,10 @@
#include "macros.h"
#include "state.h"
#include "mtypes.h"
+#include "glapi/dispatch.h"
+
+
+#if FEATURE_accum
void GLAPIENTRY
@@ -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 )
diff --git a/src/mesa/main/accum.h b/src/mesa/main/accum.h
index ce92688a5b..ef5e44ea9e 100644
--- a/src/mesa/main/accum.h
+++ b/src/mesa/main/accum.h
@@ -38,25 +38,41 @@
#define ACCUM_H
-#include "mtypes.h"
+#include "main/mtypes.h"
-#if _HAVE_FULL_GL
+#if FEATURE_accum
+
+#define _MESA_INIT_ACCUM_FUNCTIONS(driver, impl) \
+ do { \
+ (driver)->Accum = impl ## Accum; \
+ } while (0)
extern void GLAPIENTRY
_mesa_Accum( GLenum op, GLfloat value );
-
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 )
+{
+}
-#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 */
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 6317639075..9ffac7905a 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -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);
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 1907c799df..df194c3edb 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -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