From 8df670164f9bd735a6212741c0178899d3462e0c Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 8 Sep 2009 10:15:06 +0800 Subject: 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. --- src/mesa/main/api_exec.c | 10 +++------- src/mesa/main/drawpix.c | 20 +++++++++++++++----- src/mesa/main/drawpix.h | 30 ++++++++++++++++++++++++++---- 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 */ -- cgit v1.2.3