diff options
author | Daniel Borca <dborca@users.sourceforge.net> | 2003-12-10 15:24:49 +0000 |
---|---|---|
committer | Daniel Borca <dborca@users.sourceforge.net> | 2003-12-10 15:24:49 +0000 |
commit | 28442852978e8ca0bcc5fda6393fc7b94fcf2bbf (patch) | |
tree | fb627fe1aea1faccf98d34316041aa925a56115a /src/mesa/drivers/glide/fxvb.c | |
parent | 43be8ee414369f2745de0cf936f9767ee31df991 (diff) |
got rid of __FUNCTION__ :(
Texus2 functions are dynamically linked now
made getRegistryOrEnvironmentString more portable
bugfix: unnecessary total SW fallback -- glColorMask
bugfix: when shared palette was not loaded correctly
point_attenuation_stage back in business (point size/atten)
fxTexGetInfo is not required for fxIsTexSupported
fxDDChooseTextureFormat optimized for RGB/RGBA textures
accelerated Quads with Triangle_Fans
more WGL extensions/functions (also updated export file)
DXTC/S3TC -> FXT1 wrapping hack
quick & dirty fix for Quake2
Diffstat (limited to 'src/mesa/drivers/glide/fxvb.c')
-rw-r--r-- | src/mesa/drivers/glide/fxvb.c | 66 |
1 files changed, 64 insertions, 2 deletions
diff --git a/src/mesa/drivers/glide/fxvb.c b/src/mesa/drivers/glide/fxvb.c index 03cefef0826..1b3eaea3caf 100644 --- a/src/mesa/drivers/glide/fxvb.c +++ b/src/mesa/drivers/glide/fxvb.c @@ -112,7 +112,7 @@ static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src ) GET_COLOR(VB->ColorPtr[1], src) ); #if 1 /* [dBorca] GL_EXT_separate_specular_color */ if (VB->SecondaryColorPtr[1]) { - COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst), + COPY_3FV( GET_COLOR(VB->SecondaryColorPtr[1], dst), GET_COLOR(VB->SecondaryColorPtr[1], src) ); } #endif @@ -143,6 +143,27 @@ static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src ) #define TAG(x) x##_wgpt0t1 #include "fxvbtmp.h" +#define IND (SETUP_XYZW|SETUP_RGBA|SETUP_PSIZ) +#define TAG(x) x##_wga +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_RGBA|SETUP_TMU0|SETUP_PSIZ) +#define TAG(x) x##_wgt0a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_RGBA|SETUP_TMU0|SETUP_TMU1|SETUP_PSIZ) +#define TAG(x) x##_wgt0t1a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_RGBA|SETUP_TMU0|SETUP_PTEX|SETUP_PSIZ) +#define TAG(x) x##_wgpt0a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_RGBA|SETUP_TMU0|SETUP_TMU1|\ + SETUP_PTEX|SETUP_PSIZ) +#define TAG(x) x##_wgpt0t1a +#include "fxvbtmp.h" + /* Snapping for voodoo-1 */ @@ -169,6 +190,29 @@ static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src ) #define TAG(x) x##_wsgpt0t1 #include "fxvbtmp.h" +#define IND (SETUP_XYZW|SETUP_SNAP|SETUP_RGBA|SETUP_PSIZ) +#define TAG(x) x##_wsga +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_SNAP|SETUP_RGBA|SETUP_TMU0|SETUP_PSIZ) +#define TAG(x) x##_wsgt0a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_SNAP|SETUP_RGBA|SETUP_TMU0|\ + SETUP_TMU1|SETUP_PSIZ) +#define TAG(x) x##_wsgt0t1a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_SNAP|SETUP_RGBA|SETUP_TMU0|\ + SETUP_PTEX|SETUP_PSIZ) +#define TAG(x) x##_wsgpt0a +#include "fxvbtmp.h" + +#define IND (SETUP_XYZW|SETUP_SNAP|SETUP_RGBA|SETUP_TMU0|\ + SETUP_TMU1|SETUP_PTEX|SETUP_PSIZ) +#define TAG(x) x##_wsgpt0t1a +#include "fxvbtmp.h" + /* Vertex repair (multipass rendering) */ @@ -201,12 +245,22 @@ static void init_setup_tab( void ) init_wgt0t1(); init_wgpt0(); init_wgpt0t1(); + init_wga(); + init_wgt0a(); + init_wgt0t1a(); + init_wgpt0a(); + init_wgpt0t1a(); init_wsg(); init_wsgt0(); init_wsgt0t1(); init_wsgpt0(); init_wsgpt0t1(); + init_wsga(); + init_wsgt0a(); + init_wsgt0t1a(); + init_wsgpt0a(); + init_wsgpt0t1a(); init_g(); init_t0(); @@ -273,6 +327,10 @@ void fxBuildVertices( GLcontext *ctx, GLuint start, GLuint count, } else { GLuint ind = 0; + /* [dBorca] masked by VERT_BIT_POS ?!? + if (newinputs & VERT_BIT_POINT_SIZE) + ind |= SETUP_PSIZ;*/ + if (newinputs & VERT_BIT_COLOR0) ind |= SETUP_RGBA; @@ -319,7 +377,11 @@ void fxChooseVertexState( GLcontext *ctx ) else if (ctx->Texture._EnabledUnits & 0x1) { ind |= SETUP_TMU0; } - + + if (ctx->_TriangleCaps & (DD_POINT_SIZE|DD_POINT_ATTEN)) { + ind |= SETUP_PSIZ; + } + fxMesa->SetupIndex = ind; if (ctx->_TriangleCaps & (DD_TRI_LIGHT_TWOSIDE|DD_TRI_UNFILLED)) { |