⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fxdrv.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
📖 第 1 页 / 共 2 页
字号:
#define _FX_NEW_IS_IN_HARDWARE (_NEW_TEXTURE|		\			        _NEW_HINT|		\			        _NEW_STENCIL|		\			        _NEW_BUFFERS|		\			        _NEW_COLOR|		\			        _NEW_LIGHT)/* Covers the state referenced by fxDDChooseRenderState */#define _FX_NEW_RENDERSTATE (_FX_NEW_IS_IN_HARDWARE |   \			     _DD_NEW_FLATSHADE |	\			     _DD_NEW_TRI_LIGHT_TWOSIDE| \			     _DD_NEW_TRI_OFFSET |	\			     _DD_NEW_TRI_UNFILLED |	\			     _DD_NEW_TRI_SMOOTH |	\			     _DD_NEW_TRI_STIPPLE |	\			     _DD_NEW_LINE_SMOOTH |	\			     _DD_NEW_LINE_STIPPLE |	\			     _DD_NEW_LINE_WIDTH |	\			     _DD_NEW_POINT_SMOOTH |	\			     _DD_NEW_POINT_SIZE |	\			     _NEW_LINE)/* Covers the state referenced by fxDDChooseSetupFunction. */#define _FX_NEW_SETUP_FUNCTION (_NEW_LIGHT|	\			        _NEW_FOG|	\			        _NEW_TEXTURE|	\			        _NEW_COLOR)	\/* lookup table for scaling y bit colors up to 8 bits */extern GLuint FX_rgb_scale_4[16];extern GLuint FX_rgb_scale_5[32];extern GLuint FX_rgb_scale_6[64];typedef void (*fx_tri_func) (fxMesaContext, GrVertex *, GrVertex *, GrVertex *);typedef void (*fx_line_func) (fxMesaContext, GrVertex *, GrVertex *);typedef void (*fx_point_func) (fxMesaContext, GrVertex *);struct tfxMesaContext{   GrTexTable_t glbPalType;   GuTexPalette glbPalette;   GLcontext *glCtx;		/* the core Mesa context */   GLvisual *glVis;		/* describes the color buffer */   GLframebuffer *glBuffer;	/* the ancillary buffers */   GLint board;			/* the board used for this context */   GLint width, height;		/* size of color buffer */   GrBuffer_t currentFB;   GLboolean bgrOrder;   GrColor_t color;   GrColor_t clearC;   GrAlpha_t clearA;   GLuint constColor;   GrCullMode_t cullMode;   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    */   GLuint texBindNumber;   GLint tmuSrc;   GLuint lastUnitsMode;   GLuint freeTexMem[FX_NUM_TMU];   MemRange *tmPool;   MemRange *tmFree[FX_NUM_TMU];   GLenum fogTableMode;   GLfloat fogDensity;   GLfloat fogStart, fogEnd;   GrFog_t *fogTable;   GLint textureAlign;   GLint textureMaxLod;   /* Vertex building and storage:    */   GLuint tmu_source[FX_NUM_TMU];   GLuint SetupIndex;   GLuint stw_hint_state;	/* for grHints */   GrVertex *verts;   GLboolean snapVertices;      /* needed for older Voodoo hardware */   /* Rasterization:    */   GLuint render_index;   GLuint fallback;   GLenum render_primitive;   GLenum raster_primitive;   /* Current rasterization functions    */   fx_point_func draw_point;   fx_line_func draw_line;   fx_tri_func draw_tri;   /* Keep texture scales somewhere handy:    */   GLfloat s0scale;   GLfloat s1scale;   GLfloat t0scale;   GLfloat t1scale;   GLfloat inv_s0scale;   GLfloat inv_s1scale;   GLfloat inv_t0scale;   GLfloat inv_t1scale;   /* Glide stuff    */   tfxStats stats;   void *state;   /* Options */   GLboolean verbose;   GLboolean haveTwoTMUs;	/* True if we really have 2 tmu's  */   GLboolean haveHwAlpha;   GLboolean haveHwStencil;   GLboolean haveZBuffer;   GLboolean haveDoubleBuffer;   GLboolean haveGlobalPaletteTexture;   GLint swapInterval;   GLint maxPendingSwapBuffers;   GrContext_t glideContext;   int screen_width;   int screen_height;   int clipMinX;   int clipMaxX;   int clipMinY;   int clipMaxY;   int colDepth;   GLboolean fsaa;   /* Glide (per card) capabilities. These get mirrored    * from `glbHWConfig' when creating a new context...    */   GrSstType type;   FxBool HavePalExt;	/* PALETTE6666 */   FxBool HavePixExt;	/* PIXEXT */   FxBool HaveTexFmt;	/* TEXFMT */   FxBool HaveCmbExt;	/* COMBINE */   FxBool HaveMirExt;	/* TEXMIRROR */   FxBool HaveTexUma;	/* TEXUMA */   FxBool HaveTexus2;	/* Texus 2 - FXT1 */   struct tdfx_glide Glide;   char rendererString[64];};extern void fxSetupFXUnits(GLcontext *);extern void fxSetupDDPointers(GLcontext *);/* fxvb.c: */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 end,			     GLuint newinputs );extern void fxChooseVertexState( GLcontext *ctx );/* fxtrifuncs: */extern void fxDDInitTriFuncs(GLcontext *);extern void fxDDChooseRenderState(GLcontext * ctx);extern void fxUpdateDDSpanPointers(GLcontext *);extern void fxSetupDDSpanPointers(GLcontext *);extern void fxPrintTextureData(tfxTexInfo * ti);extern const struct gl_texture_format *fxDDChooseTextureFormat( GLcontext *ctx, GLint internalFormat,                         GLenum srcFormat, GLenum srcType );extern void fxDDTexImage2D(GLcontext * ctx, GLenum target, GLint level,			   GLint internalFormat, GLint width, GLint height,			   GLint border, GLenum format, GLenum type,			   const GLvoid * pixels,			   const struct gl_pixelstore_attrib *packing,			   struct gl_texture_object *texObj,			   struct gl_texture_image *texImage);extern void fxDDTexSubImage2D(GLcontext * ctx, GLenum target, GLint level,			      GLint xoffset, GLint yoffset,			      GLsizei width, GLsizei height,			      GLenum format, GLenum type,			      const GLvoid * pixels,			      const struct gl_pixelstore_attrib *packing,			      struct gl_texture_object *texObj,			      struct gl_texture_image *texImage);extern void fxDDCompressedTexImage2D(GLcontext *ctx, GLenum target,                                     GLint level, GLint internalFormat,                                     GLsizei width, GLsizei height, GLint border,                                     GLsizei imageSize, const GLvoid *data,                                     struct gl_texture_object *texObj,                                     struct gl_texture_image *texImage);extern void fxDDCompressedTexSubImage2D(GLcontext *ctx, GLenum target,                                        GLint level, GLint xoffset,                                        GLint yoffset, GLsizei width,                                        GLint height, GLenum format,                                        GLsizei imageSize, const GLvoid *data,                                        struct gl_texture_object *texObj,                                        struct gl_texture_image *texImage);extern void fxDDTexImage1D(GLcontext * ctx, GLenum target, GLint level,			   GLint internalFormat, GLint width,			   GLint border, GLenum format, GLenum type,			   const GLvoid * pixels,			   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,                                        GLint width, GLint height,                                        GLint depth, GLint border);extern void fxDDTexEnv(GLcontext *, GLenum, GLenum, const GLfloat *);extern void fxDDTexParam(GLcontext *, GLenum, struct gl_texture_object *,			 GLenum, const GLfloat *);extern void fxDDTexBind(GLcontext *, GLenum, struct gl_texture_object *);extern struct gl_texture_object *fxDDNewTextureObject( GLcontext *ctx, GLuint name, GLenum target );extern void fxDDTexDel(GLcontext *, struct gl_texture_object *);extern GLboolean fxDDIsTextureResident(GLcontext *, struct gl_texture_object *);extern void fxDDTexPalette(GLcontext *, struct gl_texture_object *);extern void fxDDTexUseGlbPalette(GLcontext *, GLboolean);extern void fxDDEnable(GLcontext *, GLenum, GLboolean);extern void fxDDAlphaFunc(GLcontext *, GLenum, GLfloat);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 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);extern void fxTMInit(fxMesaContext ctx);extern void fxTMClose(fxMesaContext ctx);extern void fxTMRestoreTextures_NoLock(fxMesaContext ctx);extern void fxTMMoveInTM(fxMesaContext, struct gl_texture_object *, GLint);extern void fxTMMoveOutTM(fxMesaContext, struct gl_texture_object *);#define fxTMMoveOutTM_NoLock fxTMMoveOutTMextern void fxTMFreeTexture(fxMesaContext, struct gl_texture_object *);extern void fxTMReloadMipMapLevel(fxMesaContext, struct gl_texture_object *,				  GLint);extern void fxTMReloadSubMipMapLevel(fxMesaContext,				     struct gl_texture_object *, GLint, GLint,				     GLint);extern int fxTMCheckStartAddr (fxMesaContext fxMesa, GLint tmu, tfxTexInfo *ti);extern void fxTexGetFormat(GLcontext *, GLenum, GrTextureFormat_t *, GLint *); /* [koolsmoky] */extern int fxTexGetInfo(int, int, GrLOD_t *, GrAspectRatio_t *,			float *, float *, int *, int *);extern void fxDDScissor(GLcontext * ctx,			GLint x, GLint y, GLsizei w, GLsizei h);extern void fxDDFogfv(GLcontext * ctx, GLenum pname, const GLfloat * params);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 GLuint depth[], const GLubyte mask[]);extern void fxDDReadDepthSpan(GLcontext * ctx, GLuint n, GLint x, GLint y,			      GLuint depth[]);extern void fxDDWriteDepthPixels(GLcontext * ctx, GLuint n,				 const GLint x[], const GLint y[],				 const GLuint depth[], const GLubyte mask[]);extern void fxDDReadDepthPixels(GLcontext * ctx, GLuint n,				const GLint x[], const GLint y[],				GLuint depth[]);extern void fxDDShadeModel(GLcontext * ctx, GLenum mode);extern void fxDDCullFace(GLcontext * ctx, GLenum mode);extern void fxDDFrontFace(GLcontext * ctx, GLenum mode);extern void fxPrintRenderState(const char *msg, GLuint state);extern void fxPrintHintState(const char *msg, GLuint state);extern int fxDDInitFxMesaContext(fxMesaContext fxMesa);extern void fxDDDestroyFxMesaContext(fxMesaContext fxMesa);extern void fxSetScissorValues(GLcontext * ctx);extern void fxTMMoveInTM_NoLock(fxMesaContext fxMesa,				struct gl_texture_object *tObj, GLint where);extern void fxCheckIsInHardware(GLcontext *ctx);/* fxsetup: * semi-private functions */void fxSetupCull (GLcontext * ctx);void fxSetupScissor (GLcontext * ctx);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#define FX_FALLBACK_DRAW_BUFFER		0x0002#define FX_FALLBACK_SPECULAR		0x0004#define FX_FALLBACK_STENCIL		0x0008#define FX_FALLBACK_RENDER_MODE		0x0010#define FX_FALLBACK_LOGICOP		0x0020#define FX_FALLBACK_TEXTURE_ENV		0x0040#define FX_FALLBACK_TEXTURE_BORDER	0x0080#define FX_FALLBACK_COLORMASK		0x0100#define FX_FALLBACK_BLEND		0x0200#define FX_FALLBACK_TEXTURE_MULTI	0x0400extern 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_DEBUGextern int TDFX_DEBUG;#else#define TDFX_DEBUG		0#endif/* dirty hacks */#define FX_RESCALE_BIG_TEXURES_HACK   1#define FX_COMPRESS_S3TC_AS_FXT1_HACK 1#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -