X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fglide%2Ffxdrv.h;h=dc19a912da532d7715237e33d415b09baef41d65;hb=d98e1f3761860ad453a9acb446efeee6af97f00a;hp=ff5601f21b4a6160d70d05dfcf92f0f6eadfaf19;hpb=71c7c1feb6ed3453d1f3238ffefa8f7827ad2c8a;p=mesa.git diff --git a/src/mesa/drivers/glide/fxdrv.h b/src/mesa/drivers/glide/fxdrv.h index ff5601f21b4..dc19a912da5 100644 --- a/src/mesa/drivers/glide/fxdrv.h +++ b/src/mesa/drivers/glide/fxdrv.h @@ -60,6 +60,8 @@ #include "math/m_vector.h" +#define COPY_FLOAT(dst, src) (dst) = (src) + /* Define some shorter names for these things. */ #define XCOORD GR_VERTEX_X_OFFSET @@ -104,7 +106,8 @@ #define SETUP_PTEX 0x20 #define SETUP_PSIZ 0x40 #define SETUP_SPEC 0x80 -#define MAX_SETUP 0x100 +#define SETUP_FOGC 0x100 +#define MAX_SETUP 0x200 #define FX_NUM_TMU 2 @@ -293,6 +296,8 @@ typedef struct tfxTexInfo_t GLboolean fixedPalette; GLboolean validated; + + GLboolean padded; } tfxTexInfo; @@ -322,7 +327,8 @@ typedef struct GrAlphaBlendFnc_t blendDstFuncRGB; GrAlphaBlendFnc_t blendSrcFuncAlpha; GrAlphaBlendFnc_t blendDstFuncAlpha; - GrAlphaBlendOp_t blendEq; + GrAlphaBlendOp_t blendEqRGB; + GrAlphaBlendOp_t blendEqAlpha; /* Depth test */ @@ -443,12 +449,12 @@ struct tfxMesaContext tfxUnitsState unitsState; tfxUnitsState restoreUnitsState; /* saved during multipass */ - + GLboolean multipass; /* true when drawing intermediate pass */ GLuint new_state; GLuint new_gl_state; - /* Texture Memory Manager Data + /* Texture Memory Manager Data */ GLuint texBindNumber; GLint tmuSrc; @@ -479,7 +485,7 @@ struct tfxMesaContext GLenum render_primitive; GLenum raster_primitive; - /* Current rasterization functions + /* Current rasterization functions */ fx_point_func draw_point; fx_line_func draw_line; @@ -552,7 +558,7 @@ extern void fxAllocVB(GLcontext * ctx); extern void fxFreeVB(GLcontext * ctx); extern void fxPrintSetupFlags(char *msg, GLuint flags ); extern void fxCheckTexSizes( GLcontext *ctx ); -extern void fxBuildVertices( GLcontext *ctx, GLuint start, GLuint count, +extern void fxBuildVertices( GLcontext *ctx, GLuint start, GLuint end, GLuint newinputs ); extern void fxChooseVertexState( GLcontext *ctx ); @@ -575,10 +581,6 @@ extern void fxPrintTextureData(tfxTexInfo * ti); extern const struct gl_texture_format * fxDDChooseTextureFormat( GLcontext *ctx, GLint internalFormat, GLenum srcFormat, GLenum srcType ); -extern GLboolean fxDDIsCompressedFormat (GLcontext *ctx, GLenum internalFormat); -extern GLuint fxDDCompressedTextureSize (GLcontext *ctx, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format); extern void fxDDTexImage2D(GLcontext * ctx, GLenum target, GLint level, GLint internalFormat, GLint width, GLint height, GLint border, GLenum format, GLenum type, @@ -614,6 +616,13 @@ extern void fxDDTexImage1D(GLcontext * ctx, GLenum target, GLint level, const struct gl_pixelstore_attrib *packing, struct gl_texture_object *texObj, struct gl_texture_image *texImage); +extern void fxDDTexSubImage1D(GLcontext * ctx, GLenum target, GLint level, + GLint xoffset, GLint width, + GLenum format, GLenum type, + const GLvoid * pixels, + const struct gl_pixelstore_attrib *packing, + struct gl_texture_object *texObj, + struct gl_texture_image *texImage); extern GLboolean fxDDTestProxyTexImage (GLcontext *ctx, GLenum target, GLint level, GLint internalFormat, GLenum format, GLenum type, @@ -635,9 +644,9 @@ extern void fxDDBlendFuncSeparate(GLcontext *, GLenum, GLenum, GLenum, GLenum); extern void fxDDBlendEquationSeparate(GLcontext *, GLenum, GLenum); extern void fxDDDepthMask(GLcontext *, GLboolean); extern void fxDDDepthFunc(GLcontext *, GLenum); -extern void fxDDStencilFunc (GLcontext *ctx, GLenum func, GLint ref, GLuint mask); -extern void fxDDStencilMask (GLcontext *ctx, GLuint mask); -extern void fxDDStencilOp (GLcontext *ctx, GLenum sfail, GLenum zfail, GLenum zpass); +extern void fxDDStencilFuncSeparate (GLcontext *ctx, GLenum face, GLenum func, GLint ref, GLuint mask); +extern void fxDDStencilMaskSeparate (GLcontext *ctx, GLenum face, GLuint mask); +extern void fxDDStencilOpSeparate (GLcontext *ctx, GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); extern void fxDDInitExtensions(GLcontext * ctx); @@ -667,18 +676,18 @@ extern void fxDDColorMask(GLcontext * ctx, GLboolean r, GLboolean g, GLboolean b, GLboolean a); extern void fxDDWriteDepthSpan(GLcontext * ctx, GLuint n, GLint x, GLint y, - const GLdepth depth[], const GLubyte mask[]); + const GLuint depth[], const GLubyte mask[]); extern void fxDDReadDepthSpan(GLcontext * ctx, GLuint n, GLint x, GLint y, - GLdepth depth[]); + GLuint depth[]); extern void fxDDWriteDepthPixels(GLcontext * ctx, GLuint n, const GLint x[], const GLint y[], - const GLdepth depth[], const GLubyte mask[]); + const GLuint depth[], const GLubyte mask[]); extern void fxDDReadDepthPixels(GLcontext * ctx, GLuint n, const GLint x[], const GLint y[], - GLdepth depth[]); + GLuint depth[]); extern void fxDDShadeModel(GLcontext * ctx, GLenum mode); @@ -707,6 +716,8 @@ void fxSetupColorMask (GLcontext * ctx); void fxSetupBlend (GLcontext *ctx); void fxSetupDepthTest (GLcontext *ctx); void fxSetupTexture (GLcontext *ctx); +void fxSetupStencil (GLcontext *ctx); +void fxSetupStencilFace (GLcontext *ctx, GLint face); /* Flags for software fallback cases */ #define FX_FALLBACK_TEXTURE_MAP 0x0001 @@ -723,7 +734,32 @@ void fxSetupTexture (GLcontext *ctx); extern GLuint fx_check_IsInHardware(GLcontext *ctx); +/*** + *** CNORM: clamp float to [0,1] and map to float in [0,255] + ***/ +#if defined(USE_IEEE) && !defined(DEBUG) +#define IEEE_0996 0x3f7f0000 /* 0.996 or so */ +#define CNORM(N, F) \ + do { \ + fi_type __tmp; \ + __tmp.f = (F); \ + if (__tmp.i < 0) \ + N = 0; \ + else if (__tmp.i >= IEEE_0996) \ + N = 255.0f; \ + else { \ + N = (F) * 255.0f; \ + } \ + } while (0) +#else +#define CNORM(n, f) \ + n = (CLAMP((f), 0.0F, 1.0F) * 255.0F) +#endif + /* run-time debugging */ +#ifndef FX_DEBUG +#define FX_DEBUG 0 +#endif #if FX_DEBUG extern int TDFX_DEBUG; #else @@ -732,6 +768,6 @@ extern int TDFX_DEBUG; /* dirty hacks */ #define FX_RESCALE_BIG_TEXURES_HACK 1 -#define FX_COMPRESS_S3TC_AS_FXT1_HACK 0 +#define FX_COMPRESS_S3TC_AS_FXT1_HACK 1 #endif