diff options
| author | Chia-I Wu <olvaffe@gmail.com> | 2009-09-08 10:05:36 +0800 | 
|---|---|---|
| committer | Chia-I Wu <olvaffe@gmail.com> | 2009-09-12 20:55:56 +0800 | 
| commit | 940b525a5acb1926cbd8b39594ecda3e614a3c2f (patch) | |
| tree | e2de99ebc2d3a1af6a25088e4ea2af05880cf17b /src | |
| parent | 93c3911ca836187a99f28de3301b7957299dd75e (diff) | |
mesa/main: New feature FEATURE_rastpos.
It is separated from FEATURE_drawpix and made to follow the feature
convensions.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/main/api_exec.c | 56 | ||||
| -rw-r--r-- | src/mesa/main/context.c | 4 | ||||
| -rw-r--r-- | src/mesa/main/mfeatures.h | 2 | ||||
| -rw-r--r-- | src/mesa/main/rastpos.c | 66 | ||||
| -rw-r--r-- | src/mesa/main/rastpos.h | 27 | 
5 files changed, 92 insertions, 63 deletions
| diff --git a/src/mesa/main/api_exec.c b/src/mesa/main/api_exec.c index 6b529db5ec..8de0691851 100644 --- a/src/mesa/main/api_exec.c +++ b/src/mesa/main/api_exec.c @@ -59,8 +59,8 @@  #endif  #if FEATURE_drawpix  #include "drawpix.h" -#include "rastpos.h"  #endif +#include "rastpos.h"  #include "enable.h"  #if FEATURE_evaluators  #include "eval.h" @@ -281,33 +281,8 @@ _mesa_init_exec_table(struct _glapi_table *exec)     SET_PolygonStipple(exec, _mesa_PolygonStipple);     _mesa_init_attrib_dispatch(exec); +   _mesa_init_rastpos_dispatch(exec); -#if FEATURE_drawpix -   SET_RasterPos2f(exec, _mesa_RasterPos2f); -   SET_RasterPos2fv(exec, _mesa_RasterPos2fv); -   SET_RasterPos2i(exec, _mesa_RasterPos2i); -   SET_RasterPos2iv(exec, _mesa_RasterPos2iv); -   SET_RasterPos2d(exec, _mesa_RasterPos2d); -   SET_RasterPos2dv(exec, _mesa_RasterPos2dv); -   SET_RasterPos2s(exec, _mesa_RasterPos2s); -   SET_RasterPos2sv(exec, _mesa_RasterPos2sv); -   SET_RasterPos3d(exec, _mesa_RasterPos3d); -   SET_RasterPos3dv(exec, _mesa_RasterPos3dv); -   SET_RasterPos3f(exec, _mesa_RasterPos3f); -   SET_RasterPos3fv(exec, _mesa_RasterPos3fv); -   SET_RasterPos3i(exec, _mesa_RasterPos3i); -   SET_RasterPos3iv(exec, _mesa_RasterPos3iv); -   SET_RasterPos3s(exec, _mesa_RasterPos3s); -   SET_RasterPos3sv(exec, _mesa_RasterPos3sv); -   SET_RasterPos4d(exec, _mesa_RasterPos4d); -   SET_RasterPos4dv(exec, _mesa_RasterPos4dv); -   SET_RasterPos4f(exec, _mesa_RasterPos4f); -   SET_RasterPos4fv(exec, _mesa_RasterPos4fv); -   SET_RasterPos4i(exec, _mesa_RasterPos4i); -   SET_RasterPos4iv(exec, _mesa_RasterPos4iv); -   SET_RasterPos4s(exec, _mesa_RasterPos4s); -   SET_RasterPos4sv(exec, _mesa_RasterPos4sv); -#endif     SET_ReadPixels(exec, _mesa_ReadPixels);     SET_Rotated(exec, _mesa_Rotated);     SET_Scaled(exec, _mesa_Scaled); @@ -485,32 +460,7 @@ _mesa_init_exec_table(struct _glapi_table *exec)  #endif     /* 197. GL_MESA_window_pos */ -#if FEATURE_drawpix -   SET_WindowPos2dMESA(exec, _mesa_WindowPos2dMESA); -   SET_WindowPos2dvMESA(exec, _mesa_WindowPos2dvMESA); -   SET_WindowPos2fMESA(exec, _mesa_WindowPos2fMESA); -   SET_WindowPos2fvMESA(exec, _mesa_WindowPos2fvMESA); -   SET_WindowPos2iMESA(exec, _mesa_WindowPos2iMESA); -   SET_WindowPos2ivMESA(exec, _mesa_WindowPos2ivMESA); -   SET_WindowPos2sMESA(exec, _mesa_WindowPos2sMESA); -   SET_WindowPos2svMESA(exec, _mesa_WindowPos2svMESA); -   SET_WindowPos3dMESA(exec, _mesa_WindowPos3dMESA); -   SET_WindowPos3dvMESA(exec, _mesa_WindowPos3dvMESA); -   SET_WindowPos3fMESA(exec, _mesa_WindowPos3fMESA); -   SET_WindowPos3fvMESA(exec, _mesa_WindowPos3fvMESA); -   SET_WindowPos3iMESA(exec, _mesa_WindowPos3iMESA); -   SET_WindowPos3ivMESA(exec, _mesa_WindowPos3ivMESA); -   SET_WindowPos3sMESA(exec, _mesa_WindowPos3sMESA); -   SET_WindowPos3svMESA(exec, _mesa_WindowPos3svMESA); -   SET_WindowPos4dMESA(exec, _mesa_WindowPos4dMESA); -   SET_WindowPos4dvMESA(exec, _mesa_WindowPos4dvMESA); -   SET_WindowPos4fMESA(exec, _mesa_WindowPos4fMESA); -   SET_WindowPos4fvMESA(exec, _mesa_WindowPos4fvMESA); -   SET_WindowPos4iMESA(exec, _mesa_WindowPos4iMESA); -   SET_WindowPos4ivMESA(exec, _mesa_WindowPos4ivMESA); -   SET_WindowPos4sMESA(exec, _mesa_WindowPos4sMESA); -   SET_WindowPos4svMESA(exec, _mesa_WindowPos4svMESA); -#endif +   /* part of _mesa_init_rastpos_dispatch(exec); */     /* 200. GL_IBM_multimode_draw_arrays */  #if _HAVE_FULL_GL diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index a546e37b5f..cd8fe0df8f 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -124,9 +124,7 @@  #if FEATURE_ARB_sync  #include "syncobj.h"  #endif -#if FEATURE_drawpix  #include "rastpos.h" -#endif  #include "scissor.h"  #include "shared.h"  #include "simple_list.h" @@ -708,9 +706,7 @@ init_attrib_groups(GLcontext *ctx)  #if FEATURE_ARB_sync     _mesa_init_sync( ctx );  #endif -#if FEATURE_drawpix     _mesa_init_rastpos( ctx ); -#endif     _mesa_init_scissor( ctx );     _mesa_init_shader_state( ctx );     _mesa_init_stencil( ctx ); diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h index b05cfab1bf..cfffc2bf85 100644 --- a/src/mesa/main/mfeatures.h +++ b/src/mesa/main/mfeatures.h @@ -83,12 +83,12 @@  #define FEATURE_histogram  _HAVE_FULL_GL  #define FEATURE_pixel_transfer  _HAVE_FULL_GL  #define FEATURE_point_size_array 0 +#define FEATURE_rastpos  _HAVE_FULL_GL  #define FEATURE_texgen  _HAVE_FULL_GL  #define FEATURE_texture_fxt1  _HAVE_FULL_GL  #define FEATURE_texture_s3tc  _HAVE_FULL_GL  #define FEATURE_userclip  _HAVE_FULL_GL  #define FEATURE_vertex_array_byte 0 -#define FEATURE_windowpos  _HAVE_FULL_GL  #define FEATURE_es2_glsl 0  #define FEATURE_ARB_occlusion_query  _HAVE_FULL_GL diff --git a/src/mesa/main/rastpos.c b/src/mesa/main/rastpos.c index 9f309d6ab8..77eb84103f 100644 --- a/src/mesa/main/rastpos.c +++ b/src/mesa/main/rastpos.c @@ -34,6 +34,10 @@  #include "macros.h"  #include "rastpos.h"  #include "state.h" +#include "glapi/dispatch.h" + + +#if FEATURE_rastpos  /** @@ -211,7 +215,7 @@ _mesa_RasterPos4sv(const GLshort *v)  /***           GL_ARB_window_pos / GL_MESA_window_pos               ***/  /**********************************************************************/ -#if FEATURE_drawpix +  /**   * All glWindowPosMESA and glWindowPosARB commands call this function to   * update the current raster position. @@ -436,7 +440,6 @@ _mesa_WindowPos4svMESA(const GLshort *v)     window_pos4f(v[0], v[1], v[2], v[3]);  } -#endif  #if 0 @@ -477,6 +480,65 @@ void glWindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )  #endif +void  +_mesa_init_rastpos_dispatch(struct _glapi_table *disp) +{ +   SET_RasterPos2f(disp, _mesa_RasterPos2f); +   SET_RasterPos2fv(disp, _mesa_RasterPos2fv); +   SET_RasterPos2i(disp, _mesa_RasterPos2i); +   SET_RasterPos2iv(disp, _mesa_RasterPos2iv); +   SET_RasterPos2d(disp, _mesa_RasterPos2d); +   SET_RasterPos2dv(disp, _mesa_RasterPos2dv); +   SET_RasterPos2s(disp, _mesa_RasterPos2s); +   SET_RasterPos2sv(disp, _mesa_RasterPos2sv); +   SET_RasterPos3d(disp, _mesa_RasterPos3d); +   SET_RasterPos3dv(disp, _mesa_RasterPos3dv); +   SET_RasterPos3f(disp, _mesa_RasterPos3f); +   SET_RasterPos3fv(disp, _mesa_RasterPos3fv); +   SET_RasterPos3i(disp, _mesa_RasterPos3i); +   SET_RasterPos3iv(disp, _mesa_RasterPos3iv); +   SET_RasterPos3s(disp, _mesa_RasterPos3s); +   SET_RasterPos3sv(disp, _mesa_RasterPos3sv); +   SET_RasterPos4d(disp, _mesa_RasterPos4d); +   SET_RasterPos4dv(disp, _mesa_RasterPos4dv); +   SET_RasterPos4f(disp, _mesa_RasterPos4f); +   SET_RasterPos4fv(disp, _mesa_RasterPos4fv); +   SET_RasterPos4i(disp, _mesa_RasterPos4i); +   SET_RasterPos4iv(disp, _mesa_RasterPos4iv); +   SET_RasterPos4s(disp, _mesa_RasterPos4s); +   SET_RasterPos4sv(disp, _mesa_RasterPos4sv); + +   /* 197. GL_MESA_window_pos */ +   SET_WindowPos2dMESA(disp, _mesa_WindowPos2dMESA); +   SET_WindowPos2dvMESA(disp, _mesa_WindowPos2dvMESA); +   SET_WindowPos2fMESA(disp, _mesa_WindowPos2fMESA); +   SET_WindowPos2fvMESA(disp, _mesa_WindowPos2fvMESA); +   SET_WindowPos2iMESA(disp, _mesa_WindowPos2iMESA); +   SET_WindowPos2ivMESA(disp, _mesa_WindowPos2ivMESA); +   SET_WindowPos2sMESA(disp, _mesa_WindowPos2sMESA); +   SET_WindowPos2svMESA(disp, _mesa_WindowPos2svMESA); +   SET_WindowPos3dMESA(disp, _mesa_WindowPos3dMESA); +   SET_WindowPos3dvMESA(disp, _mesa_WindowPos3dvMESA); +   SET_WindowPos3fMESA(disp, _mesa_WindowPos3fMESA); +   SET_WindowPos3fvMESA(disp, _mesa_WindowPos3fvMESA); +   SET_WindowPos3iMESA(disp, _mesa_WindowPos3iMESA); +   SET_WindowPos3ivMESA(disp, _mesa_WindowPos3ivMESA); +   SET_WindowPos3sMESA(disp, _mesa_WindowPos3sMESA); +   SET_WindowPos3svMESA(disp, _mesa_WindowPos3svMESA); +   SET_WindowPos4dMESA(disp, _mesa_WindowPos4dMESA); +   SET_WindowPos4dvMESA(disp, _mesa_WindowPos4dvMESA); +   SET_WindowPos4fMESA(disp, _mesa_WindowPos4fMESA); +   SET_WindowPos4fvMESA(disp, _mesa_WindowPos4fvMESA); +   SET_WindowPos4iMESA(disp, _mesa_WindowPos4iMESA); +   SET_WindowPos4ivMESA(disp, _mesa_WindowPos4ivMESA); +   SET_WindowPos4sMESA(disp, _mesa_WindowPos4sMESA); +   SET_WindowPos4svMESA(disp, _mesa_WindowPos4svMESA); +} + + +#endif /* FEATURE_rastpos */ + +  /**********************************************************************/  /** \name Initialization                                              */  /**********************************************************************/ diff --git a/src/mesa/main/rastpos.h b/src/mesa/main/rastpos.h index 363f86ad87..767d6f2677 100644 --- a/src/mesa/main/rastpos.h +++ b/src/mesa/main/rastpos.h @@ -32,9 +32,16 @@  #define RASTPOS_H -#include "glheader.h" +#include "main/mtypes.h" +#if FEATURE_rastpos + +#define _MESA_INIT_RASTPOS_FUNCTIONS(driver, impl) \ +   do {                                            \ +      (driver)->RasterPos = impl ## RasterPos;     \ +   } while (0) +  extern void GLAPIENTRY  _mesa_RasterPos2d(GLdouble x, GLdouble y); @@ -186,8 +193,22 @@ extern void GLAPIENTRY  _mesa_WindowPos4svMESA(const GLshort *v);  extern void  -_mesa_init_rastpos( GLcontext * ctx ); +_mesa_init_rastpos_dispatch(struct _glapi_table *disp); + +#else /* FEATURE_rastpos */ + +#define _MESA_INIT_RASTPOS_FUNCTIONS(driver, impl) do { } while (0) + +static INLINE void  +_mesa_init_rastpos_dispatch(struct _glapi_table *disp) +{ +} + +#endif /* FEATURE_rastpos */ + +extern void  +_mesa_init_rastpos(GLcontext *ctx);  /*@}*/ -#endif +#endif /* RASTPOS_H */ | 
