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

📄 tdfx_context.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
📖 第 1 页 / 共 3 页
字号:
struct tdfxSharedState {   GLboolean umaTexMemory;   GLuint totalTexMem[TDFX_NUM_TMU]; /* constant */   GLuint freeTexMem[TDFX_NUM_TMU]; /* changes as we go */   tdfxMemRange *tmPool;   tdfxMemRange *tmFree[TDFX_NUM_TMU];};/* ================================================================ * The vertex structures. *//* The size of this union is not of relevence: */typedef struct tdfx_vertex_t {   GLfloat x, y, z;			/* Coordinates in screen space */   GLfloat rhw;				/* Reciprocal homogeneous w */   GLubyte color[4];		/* Diffuse color */   GLfloat fog;   GLfloat tu0, tv0;		/* Texture 0 coordinates */   GLfloat tu1, tv1;		/* Texture 1 coordinates */   GLfloat tq0, tq1;		/* Texture 0/1 q coords */   unsigned char pspec[4];	/* B, G, R, A [0..255] */   float psize;		/* point size */   long pad[16 - 14];	/* ensure 64b structure */} tdfxVertex, *tdfxVertexPtr;/* ================================================================ * * We want to keep a mirror of the Glide function call parameters so we * can avoid updating our state too often. * * Each of these broad groups will typically have a new state flag * associated with it, and will be updated together.  The individual * Glide function calls each have a dirty flag and will only be called * when absolutely necessary. *//* for grTexSource() */struct tdfx_texsource {   FxU32 StartAddress;   FxU32 EvenOdd;   GrTexInfo *Info;};/* Texture object params */struct tdfx_texparams {   GrTextureClampMode_t sClamp;   GrTextureClampMode_t tClamp;   GrTextureFilterMode_t minFilt;   GrTextureFilterMode_t magFilt;   GrMipMapMode_t mmMode;   FxBool LODblend;   GLfloat LodBias;};/* for grTexDownloadTable() texture palettes */struct tdfx_texpalette {   GrTexTable_t Type;   void *Data;};/* for Voodoo3/Banshee's grColorCombine() and grAlphaCombine() */struct tdfx_combine {   GrCombineFunction_t Function;	/* Combine function */   GrCombineFactor_t Factor;		/* Combine scale factor */   GrCombineLocal_t Local;		/* Local combine source */   GrCombineOther_t Other;		/* Other combine source */   FxBool Invert;			/* Combine result inversion flag */};/* for Voodoo3's grTexCombine() */struct tdfx_texcombine {   GrCombineFunction_t FunctionRGB;   GrCombineFactor_t FactorRGB;   GrCombineFunction_t FunctionAlpha;   GrCombineFactor_t FactorAlpha;   FxBool InvertRGB;   FxBool InvertAlpha;};/* for Voodoo5's grColorCombineExt() */struct tdfx_combine_color_ext {   GrCCUColor_t SourceA;   GrCombineMode_t ModeA;   GrCCUColor_t SourceB;   GrCombineMode_t ModeB;   GrCCUColor_t SourceC;   FxBool InvertC;   GrCCUColor_t SourceD;   FxBool InvertD;   FxU32 Shift;   FxBool Invert;};/* for Voodoo5's grAlphaCombineExt() */struct tdfx_combine_alpha_ext {   GrACUColor_t SourceA;   GrCombineMode_t ModeA;   GrACUColor_t SourceB;   GrCombineMode_t ModeB;   GrACUColor_t SourceC;   FxBool InvertC;   GrACUColor_t SourceD;   FxBool InvertD;   FxU32 Shift;   FxBool Invert;};/* for Voodoo5's grTexColorCombineExt() */struct tdfx_color_texenv {   GrTCCUColor_t SourceA;   GrCombineMode_t ModeA;   GrTCCUColor_t SourceB;   GrCombineMode_t ModeB;   GrTCCUColor_t SourceC;   FxBool InvertC;   GrTCCUColor_t SourceD;   FxBool InvertD;   FxU32 Shift;   FxBool Invert;};/* for Voodoo5's grTexAlphaCombineExt() */struct tdfx_alpha_texenv {   GrTACUColor_t SourceA;   GrCombineMode_t ModeA;   GrTACUColor_t SourceB;   GrCombineMode_t ModeB;   GrTACUColor_t SourceC;   FxBool InvertC;   GrTCCUColor_t SourceD;   FxBool InvertD;   FxU32 Shift;   FxBool Invert;};/* Voodoo5's texture combine environment */struct tdfx_texcombine_ext {   struct tdfx_alpha_texenv Alpha;   struct tdfx_color_texenv Color;   GrColor_t EnvColor;};/* Used to track changes between Glide's state and Mesa's */struct tdfx_texstate {   GLuint Enabled[2];              /* values ala ctx->Texture.Unit[i]._ReallyEnabled */   GLenum EnvMode[TDFX_NUM_TMU];   /* index is Glide index, not OpenGL */   GLenum TexFormat[TDFX_NUM_TMU]; /* index is Glide index, not OpenGL */};struct tdfx_color {   GrColor_t ClearColor;		/* Buffer clear color value */   GrAlpha_t ClearAlpha;		/* Buffer clear alpha value */   FxBool ColorMask[4];			/* Per-channel write enable flags */   GrColor_t MonoColor;			/* Constant color value */   /* Alpha testing */   GrCmpFnc_t AlphaFunc;		/* Alpha test function */   GrAlpha_t AlphaRef;			/* Alpha ref value in range [0,255] */   /* Blending */   GrAlphaBlendFnc_t BlendSrcRGB;	/* Blend source RGB factor */   GrAlphaBlendFnc_t BlendDstRGB;	/* Blend destination RGB factor */   GrAlphaBlendOp_t BlendEqRGB;		/* Blend source RGB op */   GrAlphaBlendFnc_t BlendSrcA;		/* Blend source alpha factor */   GrAlphaBlendFnc_t BlendDstA;		/* Blend destination alpha factor */   GrAlphaBlendOp_t BlendEqA;		/* Blend source alpha op */   GrDitherMode_t Dither;		/* Dither enable */};struct tdfx_depth {   GrDepthBufferMode_t Mode;		/* Fixed-point Z or floating-point W */   FxI32 Bias;				/* Polygon offset factor */   GrCmpFnc_t Func;			/* Depth test function */   FxU32 Clear;				/* Buffer clear value */   FxBool Mask;				/* Write enable flag */};struct tdfx_stipple {   GrStippleMode_t Mode;		/* Stipple enable/disable */   FxU32 Pattern;			/* 8x4 Stipple Pattern */};struct tdfx_fog {   GrFogMode_t Mode;			/* Glide fog mode */   GrColor_t Color;			/* Fog color value */   GLenum TableMode;			/* GL fog mode currently in table */   GrFog_t *Table;			/* Fog value table */   FxFloat Density;			/* Density >= 0 */   FxFloat Near;			/* Start distance in eye coords */   FxFloat Far;				/* End distance in eye coords */};struct tdfx_stencil {   GrCmpFnc_t Function;			/* Stencil function */   GrStencil_t RefValue;		/* Stencil reference value */   GrStencil_t ValueMask;		/* Value mask */   GrStencil_t WriteMask;		/* Write mask */   GrStencil_t FailFunc;		/* Stencil fail function */   GrStencil_t ZFailFunc;		/* Stencil pass, depth fail function */   GrStencil_t ZPassFunc;		/* Stencil pass, depth pass function */   GrStencil_t Clear;			/* Buffer clear value */};struct tdfx_scissor {   FxU32 minX, minY;			/* Lower left corner */   FxU32 maxX, maxY;			/* Upper right corner */};struct tdfx_viewport {   GrCoordinateSpaceMode_t Mode;	/* Coordinate space */   FxI32 X, Y;				/* Position */   FxI32 Width, Height;			/* Size */   FxFloat Near, Far;			/* Depth buffer range */};struct tdfx_glide {   void *State;				/* Mirror of internal Glide state */   GrContext_t Context;			/* Glide context identifier */   FxI32 Board;				/* Current graphics subsystem */   GrColorFormat_t ColorFormat;		/* Framebuffer format */   GrOriginLocation_t Origin;		/* Location of screen space origin */   FxBool Initialized;			/* Glide initialization done? */   FxI32 SwapInterval;			/* SwapBuffers interval */   FxI32 MaxPendingSwaps;		/* Maximum outstanding SwapBuffers */   FxI32 TextureAlign;   /* Extensions */   FxBool HaveCombineExt;		/* COMBINE */   FxBool HaveCommandTransportExt;	/* COMMAND_TRANSPORT */   FxBool HaveFogCoordExt;		/* FOGCOORD */   FxBool HavePixelExt;			/* PIXEXT */   FxBool HaveTextureBufferExt;		/* TEXTUREBUFFER */   FxBool HaveTexFmtExt;		/* TEXFMT */   FxBool HaveTexUMAExt;		/* TEXUMA */   FxBool HaveMirrorExt;		/* MIRROR */   FxBool HaveTexus2;			/* Texus 2 - FXT1 */   /* Glide library function pointers */   void (*grDrawPoint)( const void *pt );   void (*grDrawLine)( const void *v1, const void *v2 );   void (*grDrawTriangle)( const void *a, const void *b, const void *c );   void (*grVertexLayout)(FxU32 param, FxI32 offset, FxU32 mode);   void (*grDrawVertexArray)(FxU32 mode, FxU32 Count, void *pointers);   void (*grDrawVertexArrayContiguous)(FxU32 mode, FxU32 Count,                                       void *pointers, FxU32 stride);   void (*grBufferClear)( GrColor_t color, GrAlpha_t alpha, FxU32 depth );   void (*grBufferSwap)( FxU32 swap_interval );   void (*grRenderBuffer)( GrBuffer_t buffer );   void (*grErrorSetCallback)( GrErrorCallbackFnc_t fnc );   void (*grFinish)(void);   void (*grFlush)(void);   GrContext_t (*grSstWinOpen)(FxU32                hWnd,                               GrScreenResolution_t screen_resolution,                               GrScreenRefresh_t    refresh_rate,                               GrColorFormat_t      color_format,                               GrOriginLocation_t   origin_location,                               int                  nColBuffers,                               int                  nAuxBuffers);   void (*grSstWinClose)( GrContext_t context );/* Not used */#if 0   void (*grSetNumPendingBuffers)(FxI32 NumPendingBuffers);#endif   void (*grSelectContext)( GrContext_t context );   void (*grSstOrigin)(GrOriginLocation_t  origin);   void (*grSstSelect)( int which_sst );   void (*grAlphaBlendFunction)(GrAlphaBlendFnc_t rgb_sf,                                GrAlphaBlendFnc_t rgb_df,                                GrAlphaBlendFnc_t alpha_sf,                                GrAlphaBlendFnc_t alpha_df);   void (*grAlphaCombine)(GrCombineFunction_t function,                          GrCombineFactor_t factor,                          GrCombineLocal_t local, GrCombineOther_t other,                          FxBool invert);   void (*grAlphaControlsITRGBLighting)( FxBool enable );   void (*grAlphaTestFunction)( GrCmpFnc_t function );   void (*grAlphaTestReferenceValue)( GrAlpha_t value );   void (*grChromakeyMode)( GrChromakeyMode_t mode );   void (*grChromakeyValue)( GrColor_t value );   void (*grClipWindow)( FxU32 minx, FxU32 miny, FxU32 maxx, FxU32 maxy );   void (*grColorCombine)( GrCombineFunction_t function,                           GrCombineFactor_t factor,                           GrCombineLocal_t local,                           GrCombineOther_t other,                           FxBool invert );   void (*grColorMask)( FxBool rgb, FxBool a );   void (*grCullMode)( GrCullMode_t mode );   void (*grConstantColorValue)( GrColor_t value );   void (*grDepthBiasLevel)( FxI32 level );   void (*grDepthBufferFunction)( GrCmpFnc_t function );   void (*grDepthBufferMode)( GrDepthBufferMode_t mode );   void (*grDepthMask)( FxBool mask );   void (*grDisableAllEffects)( void );   void (*grDitherMode)( GrDitherMode_t mode );   void (*grFogColorValue)( GrColor_t fogcolor );   void (*grFogMode)( GrFogMode_t mode );   void (*grFogTable)( const GrFog_t ft[] );   void (*grLoadGammaTable)( FxU32 nentries, FxU32 *red, FxU32 *green, FxU32 *blue);   void (*grSplash)(float x, float y, float width, float height, FxU32 frame);   FxU32 (*grGet)( FxU32 pname, FxU32 plength, FxI32 *params );   const char * (*grGetString)( FxU32 pname );   FxI32 (*grQueryResolutions)( const GrResolution *resTemplate,                                GrResolution *output );   FxBool (*grReset)( FxU32 what );   GrProc (*grGetProcAddress)( char *procName );   void (*grEnable)( GrEnableMode_t mode );   void (*grDisable)( GrEnableMode_t mode );   void (*grCoordinateSpace)( GrCoordinateSpaceMode_t mode );   void (*grDepthRange)( FxFloat n, FxFloat f );   void (*grStippleMode)( GrStippleMode_t mode );   void (*grStipplePattern)( GrStipplePattern_t mode );   void (*grViewport)( FxI32 x, FxI32 y, FxI32 width, FxI32 height );   FxU32 (*grTexCalcMemRequired)(GrLOD_t lodmin, GrLOD_t lodmax,                                GrAspectRatio_t aspect, GrTextureFormat_t fmt);   FxU32 (*grTexTextureMemRequired)( FxU32 evenOdd, GrTexInfo *info );   FxU32 (*grTexMinAddress)( GrChipID_t tmu );   FxU32 (*grTexMaxAddress)( GrChipID_t tmu );   void (*grTexNCCTable)( GrNCCTable_t table );   void (*grTexSource)( GrChipID_t tmu, FxU32 startAddress,                        FxU32 evenOdd, GrTexInfo *info );   void (*grTexClampMode)( GrChipID_t tmu,                           GrTextureClampMode_t s_clampmode,                           GrTextureClampMode_t t_clampmode );   void (*grTexCombine)( GrChipID_t tmu,                         GrCombineFunction_t rgb_function,                         GrCombineFactor_t rgb_factor,                          GrCombineFunction_t alpha_function,                         GrCombineFactor_t alpha_factor,                         FxBool rgb_invert,                         FxBool alpha_invert);   void (*grTexDetailControl)( GrChipID_t tmu, int lod_bias,

⌨️ 快捷键说明

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