mesa/main: Make FEATURE_pixel_transfer follow feature conventions.

As shown in mfeatures.h, this allows users of pixel.h to work without
knowing if the feature is available.
This commit is contained in:
Chia-I Wu
2009-09-07 16:59:27 +08:00
committed by Brian Paul
parent 17099f5e19
commit dbb8fb8de9
4 changed files with 55 additions and 60 deletions

View File

@@ -93,9 +93,7 @@
#include "macros.h"
#include "matrix.h"
#include "multisample.h"
#if FEATURE_pixel_transfer
#include "pixel.h"
#endif
#include "pixelstore.h"
#include "points.h"
#include "polygon.h"
@@ -284,17 +282,9 @@ _mesa_init_exec_table(struct _glapi_table *exec)
SET_MapGrid2f(exec, _mesa_MapGrid2f);
#endif
SET_MultMatrixd(exec, _mesa_MultMatrixd);
#if FEATURE_pixel_transfer
SET_GetPixelMapfv(exec, _mesa_GetPixelMapfv);
SET_GetPixelMapuiv(exec, _mesa_GetPixelMapuiv);
SET_GetPixelMapusv(exec, _mesa_GetPixelMapusv);
SET_PixelMapfv(exec, _mesa_PixelMapfv);
SET_PixelMapuiv(exec, _mesa_PixelMapuiv);
SET_PixelMapusv(exec, _mesa_PixelMapusv);
SET_PixelTransferf(exec, _mesa_PixelTransferf);
SET_PixelTransferi(exec, _mesa_PixelTransferi);
SET_PixelZoom(exec, _mesa_PixelZoom);
#endif
_mesa_init_pixel_dispatch(exec);
SET_PixelStoref(exec, _mesa_PixelStoref);
SET_PointSize(exec, _mesa_PointSize);
SET_PolygonMode(exec, _mesa_PolygonMode);

View File

@@ -36,13 +36,17 @@
#include "macros.h"
#include "pixel.h"
#include "mtypes.h"
#include "glapi/dispatch.h"
#if FEATURE_pixel_transfer
/**********************************************************************/
/***** glPixelZoom *****/
/**********************************************************************/
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor )
{
GET_CURRENT_CONTEXT(ctx);
@@ -163,7 +167,7 @@ validate_pbo_access(GLcontext *ctx, struct gl_pixelstore_attrib *pack,
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
{
GET_CURRENT_CONTEXT(ctx);
@@ -205,7 +209,7 @@ _mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
{
GLfloat fvalues[MAX_PIXEL_MAP_TABLE];
@@ -261,7 +265,7 @@ _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
{
GLfloat fvalues[MAX_PIXEL_MAP_TABLE];
@@ -317,7 +321,7 @@ _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_GetPixelMapfv( GLenum map, GLfloat *values )
{
GET_CURRENT_CONTEXT(ctx);
@@ -362,7 +366,7 @@ _mesa_GetPixelMapfv( GLenum map, GLfloat *values )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_GetPixelMapuiv( GLenum map, GLuint *values )
{
GET_CURRENT_CONTEXT(ctx);
@@ -406,7 +410,7 @@ _mesa_GetPixelMapuiv( GLenum map, GLuint *values )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_GetPixelMapusv( GLenum map, GLushort *values )
{
GET_CURRENT_CONTEXT(ctx);
@@ -468,7 +472,7 @@ _mesa_GetPixelMapusv( GLenum map, GLushort *values )
* Implements glPixelTransfer[fi] whether called immediately or from a
* display list.
*/
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelTransferf( GLenum pname, GLfloat param )
{
GET_CURRENT_CONTEXT(ctx);
@@ -662,7 +666,7 @@ _mesa_PixelTransferf( GLenum pname, GLfloat param )
}
void GLAPIENTRY
static void GLAPIENTRY
_mesa_PixelTransferi( GLenum pname, GLint param )
{
_mesa_PixelTransferf( pname, (GLfloat) param );
@@ -756,6 +760,24 @@ void _mesa_update_pixel( GLcontext *ctx, GLuint new_state )
}
void
_mesa_init_pixel_dispatch(struct _glapi_table *disp)
{
SET_GetPixelMapfv(disp, _mesa_GetPixelMapfv);
SET_GetPixelMapuiv(disp, _mesa_GetPixelMapuiv);
SET_GetPixelMapusv(disp, _mesa_GetPixelMapusv);
SET_PixelMapfv(disp, _mesa_PixelMapfv);
SET_PixelMapuiv(disp, _mesa_PixelMapuiv);
SET_PixelMapusv(disp, _mesa_PixelMapusv);
SET_PixelTransferf(disp, _mesa_PixelTransferf);
SET_PixelTransferi(disp, _mesa_PixelTransferi);
SET_PixelZoom(disp, _mesa_PixelZoom);
}
#endif /* FEATURE_pixel_transfer */
/**********************************************************************/
/***** Initialization *****/
/**********************************************************************/

View File

@@ -33,48 +33,35 @@
#define PIXEL_H
#include "mtypes.h"
#include "main/mtypes.h"
/** \name API functions */
/*@{*/
extern void GLAPIENTRY
_mesa_GetPixelMapfv( GLenum map, GLfloat *values );
extern void GLAPIENTRY
_mesa_GetPixelMapuiv( GLenum map, GLuint *values );
extern void GLAPIENTRY
_mesa_GetPixelMapusv( GLenum map, GLushort *values );
extern void GLAPIENTRY
_mesa_PixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values );
extern void GLAPIENTRY
_mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values );
extern void GLAPIENTRY
_mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values );
extern void GLAPIENTRY
_mesa_PixelTransferf( GLenum pname, GLfloat param );
extern void GLAPIENTRY
_mesa_PixelTransferi( GLenum pname, GLint param );
extern void GLAPIENTRY
_mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor );
/*@}*/
#if FEATURE_pixel_transfer
extern void
_mesa_update_pixel( GLcontext *ctx, GLuint newstate );
extern void
_mesa_init_pixel_dispatch( struct _glapi_table * disp );
#else /* FEATURE_pixel_transfer */
static INLINE void
_mesa_update_pixel(GLcontext *ctx, GLuint newstate)
{
}
static INLINE void
_mesa_init_pixel_dispatch(struct _glapi_table *disp)
{
}
#endif /* FEATURE_pixel_transfer */
extern void
_mesa_init_pixel( GLcontext * ctx );
/*@}*/
#endif
#endif /* PIXEL_H */

View File

@@ -40,9 +40,7 @@
#include "framebuffer.h"
#include "light.h"
#include "matrix.h"
#if FEATURE_pixel_transfer
#include "pixel.h"
#endif
#include "shader/program.h"
#include "shader/prog_parameter.h"
#include "state.h"
@@ -585,10 +583,8 @@ _mesa_update_state_locked( GLcontext *ctx )
if (new_state & (_NEW_STENCIL | _NEW_BUFFERS))
_mesa_update_stencil( ctx );
#if FEATURE_pixel_transfer
if (new_state & _MESA_NEW_TRANSFER_STATE)
_mesa_update_pixel( ctx, new_state );
#endif
if (new_state & _DD_NEW_SEPARATE_SPECULAR)
update_separate_specular( ctx );