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.
This commit is contained in:
Chia-I Wu 2009-09-08 10:15:06 +08:00 committed by Brian Paul
parent d25080074f
commit 67a2a4e901
3 changed files with 47 additions and 34 deletions

View File

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

View File

@ -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,12 +50,10 @@ valid_fragment_program(GLcontext *ctx)
}
#if _HAVE_FULL_GL
/*
* Execute glDrawPixels
*/
void GLAPIENTRY
static void GLAPIENTRY
_mesa_DrawPixels( GLsizei width, GLsizei height,
GLenum format, GLenum type, const GLvoid *pixels )
{
@ -140,7 +141,7 @@ end:
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
GLenum type )
{
@ -225,11 +226,8 @@ end:
_mesa_set_vp_override(ctx, GL_FALSE);
}
#endif /* _HAVE_FULL_GL */
void GLAPIENTRY
static void GLAPIENTRY
_mesa_Bitmap( GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap )
@ -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 */

View File

@ -22,28 +22,35 @@
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef DRAWPIXELS_H
#define DRAWPIXELS_H
#ifndef DRAWPIX_H
#define DRAWPIX_H
#include "main/glheader.h"
#include "main/mtypes.h"
extern void GLAPIENTRY
_mesa_DrawPixels( GLsizei width, GLsizei height,
GLenum format, GLenum type, const GLvoid *pixels );
#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
_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 */
extern void GLAPIENTRY
_mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
GLenum type );
extern void GLAPIENTRY
_mesa_Bitmap( GLsizei width, GLsizei height,
GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove,
const GLubyte *bitmap );
#endif
#endif /* DRAWPIX_H */