summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2009-09-08 10:15:06 +0800
committerChia-I Wu <olvaffe@gmail.com>2009-09-12 20:55:56 +0800
commit8df670164f9bd735a6212741c0178899d3462e0c (patch)
treebf5f5eeb65a9b8b6cd16b8ad562863b62f7b356e
parent940b525a5acb1926cbd8b39594ecda3e614a3c2f (diff)
mesa/main: Make FEATURE_drawpix follow feature conventions.
As shown in mfeatures.h, this allows users of drawpix.h to work without knowing if the feature is available.
-rw-r--r--src/mesa/main/api_exec.c10
-rw-r--r--src/mesa/main/drawpix.c20
-rw-r--r--src/mesa/main/drawpix.h30
3 files changed, 44 insertions, 16 deletions
diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c
index 8de0691851..5ddbf49759 100644
--- a/src/mesa/main/api_exec.c
+++ b/src/mesa/main/api_exec.c
@@ -57,9 +57,7 @@
#if FEATURE_dlist
#include "dlist.h"
#endif
-#if FEATURE_drawpix
#include "drawpix.h"
-#endif
#include "rastpos.h"
#include "enable.h"
#if FEATURE_evaluators
@@ -209,11 +207,9 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_DepthFunc(exec, _mesa_DepthFunc);
SET_DepthMask(exec, _mesa_DepthMask);
SET_DepthRange(exec, _mesa_DepthRange);
-#if FEATURE_drawpix
- SET_Bitmap(exec, _mesa_Bitmap);
- SET_CopyPixels(exec, _mesa_CopyPixels);
- SET_DrawPixels(exec, _mesa_DrawPixels);
-#endif
+
+ _mesa_init_drawpix_dispatch(exec);
+
#if FEATURE_feedback
SET_InitNames(exec, _mesa_InitNames);
SET_FeedbackBuffer(exec, _mesa_FeedbackBuffer);
diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c
index aef6585641..f7ce64fd7c 100644
--- a/src/mesa/main/drawpix.c
+++ b/src/mesa/main/drawpix.c
@@ -33,8 +33,11 @@
#include "image.h"
#include "readpix.h"
#include "state.h"
+#include "glapi/dispatch.h"
+#if FEATURE_drawpix
+
/**
* If a fragment program is enabled, check that it's valid.
@@ -47,8 +50,6 @@ valid_fragment_program(GLcontext *ctx)
}
-#if _HAVE_FULL_GL
-
/*
* Execute glDrawPixels
*/
@@ -225,9 +226,6 @@ end:
_mesa_set_vp_override(ctx, GL_FALSE);
}
-#endif /* _HAVE_FULL_GL */
-
-
void GLAPIENTRY
_mesa_Bitmap( GLsizei width, GLsizei height,
@@ -309,3 +307,15 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
ctx->Current.RasterPos[0] += xmove;
ctx->Current.RasterPos[1] += ymove;
}
+
+
+void
+_mesa_init_drawpix_dispatch(struct _glapi_table *disp)
+{
+ SET_Bitmap(disp, _mesa_Bitmap);
+ SET_CopyPixels(disp, _mesa_CopyPixels);
+ SET_DrawPixels(disp, _mesa_DrawPixels);
+}
+
+
+#endif /* FEATURE_drawpix */
diff --git a/src/mesa/main/drawpix.h b/src/mesa/main/drawpix.h
index 6177adad6d..01564b3ed7 100644
--- a/src/mesa/main/drawpix.h
+++ b/src/mesa/main/drawpix.h
@@ -22,13 +22,21 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
+#ifndef DRAWPIX_H
+#define DRAWPIX_H
-#ifndef DRAWPIXELS_H
-#define DRAWPIXELS_H
+#include "main/mtypes.h"
-#include "main/glheader.h"
+#if FEATURE_drawpix
+
+#define _MESA_INIT_DRAWPIX_FUNCTIONS(driver, impl) \
+ do { \
+ (driver)->DrawPixels = impl ## DrawPixels; \
+ (driver)->CopyPixels = impl ## CopyPixels; \
+ (driver)->Bitmap = impl ## Bitmap; \
+ } while (0)
extern void GLAPIENTRY
_mesa_DrawPixels( GLsizei width, GLsizei height,
@@ -45,5 +53,19 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap );
+extern void
+_mesa_init_drawpix_dispatch(struct _glapi_table *disp);
+
+#else /* FEATURE_drawpix */
+
+#define _MESA_INIT_DRAWPIX_FUNCTIONS(driver, impl) do { } while (0)
+
+static INLINE void
+_mesa_init_drawpix_dispatch(struct _glapi_table *disp)
+{
+}
+
+#endif /* FEATURE_drawpix */
+
-#endif
+#endif /* DRAWPIX_H */