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

📄 tdfx_context.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
📖 第 1 页 / 共 3 页
字号:
                               FxU8 detail_scale, float detail_max );   void (*grTexFilterMode)( GrChipID_t tmu,                            GrTextureFilterMode_t minfilter_mode,                            GrTextureFilterMode_t magfilter_mode );   void (*grTexLodBiasValue)(GrChipID_t tmu, float bias );   void (*grTexDownloadMipMap)( GrChipID_t tmu, FxU32 startAddress,                                FxU32 evenOdd, GrTexInfo *info );   void (*grTexDownloadMipMapLevel)( GrChipID_t        tmu,                                     FxU32             startAddress,                                     GrLOD_t           thisLod,                                     GrLOD_t           largeLod,                                     GrAspectRatio_t   aspectRatio,                                     GrTextureFormat_t format,                                     FxU32             evenOdd,                                     void              *data );   FxBool (*grTexDownloadMipMapLevelPartial)( GrChipID_t        tmu,                                              FxU32             startAddress,                                              GrLOD_t           thisLod,                                              GrLOD_t           largeLod,                                              GrAspectRatio_t   aspectRatio,                                              GrTextureFormat_t format,                                              FxU32             evenOdd,                                              void              *data,                                              int               start,                                              int               end );   void (*grTexDownloadTable)( GrTexTable_t type, void *data );   void (*grTexDownloadTablePartial)( GrTexTable_t type,                                       void *data, int start, int end );   void (*grTexMipMapMode)( GrChipID_t tmu, GrMipMapMode_t mode,                            FxBool lodBlend );   void (*grTexMultibase)( GrChipID_t tmu, FxBool enable );   void (*grTexMultibaseAddress)( GrChipID_t       tmu,                                  GrTexBaseRange_t range,                                  FxU32            startAddress,                                  FxU32            evenOdd,                                  GrTexInfo        *info );   FxBool (*grLfbLock)( GrLock_t type, GrBuffer_t buffer,                        GrLfbWriteMode_t writeMode,                        GrOriginLocation_t origin, FxBool pixelPipeline,                         GrLfbInfo_t *info );   FxBool (*grLfbUnlock)( GrLock_t type, GrBuffer_t buffer );   void (*grLfbConstantAlpha)( GrAlpha_t alpha );   void (*grLfbConstantDepth)( FxU32 depth );   void (*grLfbWriteColorSwizzle)(FxBool swizzleBytes, FxBool swapWords);   void (*grLfbWriteColorFormat)(GrColorFormat_t colorFormat);   FxBool (*grLfbWriteRegion)( GrBuffer_t dst_buffer,                                FxU32 dst_x, FxU32 dst_y,                                GrLfbSrcFmt_t src_format,                                FxU32 src_width, FxU32 src_height,                                FxBool pixelPipeline,                               FxI32 src_stride, void *src_data );   FxBool (*grLfbReadRegion)( GrBuffer_t src_buffer,                              FxU32 src_x, FxU32 src_y,                              FxU32 src_width, FxU32 src_height,                              FxU32 dst_stride, void *dst_data );   void (*grGlideInit)( void );   void (*grGlideShutdown)( void );   void (*grGlideGetState)( void *state );   void (*grGlideSetState)( const void *state );   void (*grGlideGetVertexLayout)( void *layout );   void (*grGlideSetVertexLayout)( const void *layout );   /* Glide utility functions */   void (*guFogGenerateExp)( GrFog_t *fogtable, float density );   void (*guFogGenerateExp2)( GrFog_t *fogtable, float density );   void (*guFogGenerateLinear)(GrFog_t *fogtable, float nearZ, float farZ );   /* DRI functions */   void (*grDRIOpen)( char *pFB, char *pRegs, int deviceID,                      int width, int height,                      int mem, int cpp, int stride,                      int fifoOffset, int fifoSize,                      int fbOffset, int backOffset, int depthOffset,                      int textureOffset, int textureSize,                      volatile int *fifoPtr, volatile int *fifoRead );   void (*grDRIPosition)( int x, int y, int w, int h,                          int numClip, drm_clip_rect_t *pClip );   void (*grDRILostContext)( void );   void (*grDRIImportFifo)( int fifoPtr, int fifoRead );   void (*grDRIInvalidateAll)( void );   void (*grDRIResetSAREA)( void );   void (*grDRIBufferSwap)( FxU32 swapInterval );   /* Glide extensions */   /* PIXEXT extension */   void (*grStencilFunc)( GrCmpFnc_t func, GrStencil_t ref, GrStencil_t mask );   void (*grStencilMask)( GrStencil_t mask );   void (*grStencilOp)( GrStencilOp_t fail, GrStencilOp_t zfail,                        GrStencilOp_t zpass );   void (*grBufferClearExt)( GrColor_t color, GrAlpha_t alpha,                             FxU32 depth, GrStencil_t stencil );   void (*grColorMaskExt)( FxBool r, FxBool g, FxBool b, FxBool a );   /* COMBINE extension */   void (*grColorCombineExt)( GrCCUColor_t a, GrCombineMode_t a_mode,                              GrCCUColor_t b, GrCombineMode_t b_mode,                              GrCCUColor_t c, FxBool c_invert,                              GrCCUColor_t d, FxBool d_invert,                              FxU32 shift, FxBool invert );   void (*grTexColorCombineExt)( FxU32 tmu,                                 GrTCCUColor_t a, GrCombineMode_t a_mode,                                 GrTCCUColor_t b, GrCombineMode_t b_mode,                                 GrTCCUColor_t c, FxBool c_invert,                                 GrTCCUColor_t d, FxBool d_invert,                                 FxU32 shift, FxBool invert );   void (*grAlphaCombineExt)( GrACUColor_t a, GrCombineMode_t a_mode,                              GrACUColor_t b, GrCombineMode_t b_mode,                              GrACUColor_t c, FxBool c_invert,                              GrACUColor_t d, FxBool d_invert,                              FxU32 shift, FxBool invert );   void (*grTexAlphaCombineExt)( FxU32 tmu,                                 GrTACUColor_t a, GrCombineMode_t a_mode,                                 GrTACUColor_t b, GrCombineMode_t b_mode,                                 GrTACUColor_t c, FxBool c_invert,                                 GrTACUColor_t d, FxBool d_invert,                                 FxU32 shift, FxBool invert );   void (*grAlphaBlendFunctionExt)( GrAlphaBlendFnc_t rgb_sf,                                    GrAlphaBlendFnc_t rgb_df,                                    GrAlphaBlendOp_t rgb_op,                                    GrAlphaBlendFnc_t alpha_sf,                                    GrAlphaBlendFnc_t alpha_df,                                    GrAlphaBlendOp_t alpha_op );   void (*grConstantColorValueExt)( FxU32 tmu, GrColor_t value );   /* Texus 2 */   void (*txImgQuantize)( void *xxx_unknown_arguments );   void (*txImgDequantizeFXT1)( void *txMip, void *pxMip );   void (*txErrorSetCallback)( void *fnc );};typedef void (*tdfx_tri_func)( tdfxContextPtr, tdfxVertex *, tdfxVertex *,			       tdfxVertex * );typedef void (*tdfx_line_func)( tdfxContextPtr, tdfxVertex *, tdfxVertex * );typedef void (*tdfx_point_func)( tdfxContextPtr, tdfxVertex * );struct tdfx_context {   /* Set once and never changed:    */   GLcontext *glCtx;			/* The core Mesa context */   GLuint new_gl_state;   GLuint new_state;   GLuint dirty;   /* Mirror of hardware state, Glide parameters    */   GLuint tmu_source[TDFX_NUM_TMU];   struct tdfx_texsource	TexSource[TDFX_NUM_TMU];   struct tdfx_texparams	TexParams[TDFX_NUM_TMU];   struct tdfx_texpalette	TexPalette;   /* Voodoo3 texture/color combine state */   struct tdfx_combine		ColorCombine;   struct tdfx_combine		AlphaCombine;   struct tdfx_texcombine	TexCombine[TDFX_NUM_TMU];   /* Voodoo5 texture/color combine state */   struct tdfx_combine_color_ext	ColorCombineExt;   struct tdfx_combine_alpha_ext	AlphaCombineExt;   struct tdfx_texcombine_ext		TexCombineExt[TDFX_NUM_TMU];   /* Tracks tex state difference between Glide and Mesa */   struct tdfx_texstate		TexState;   GrBuffer_t		DrawBuffer;	/* Current draw buffer */   GrBuffer_t		ReadBuffer;	/* Current read buffer */   struct tdfx_color	Color;   struct tdfx_depth	Depth;   struct tdfx_fog	Fog;   struct tdfx_stencil	Stencil;   struct tdfx_scissor	Scissor;   struct tdfx_viewport	Viewport;   struct tdfx_stipple	Stipple;   GrCullMode_t		CullMode;   struct tdfx_glide	Glide;   /* Fallback rasterization functions     */   tdfx_point_func draw_point;   tdfx_line_func draw_line;   tdfx_tri_func draw_triangle;   /* Variable-size Glide vertex formats    */   GLuint vertexFormat;		/* the current format */   void *layout[TDFX_NUM_LAYOUTS];   tdfxVertex *verts;      GLfloat hw_viewport[16];      GLuint SetupIndex;   GLuint SetupNewInputs;   GLuint RenderIndex;   GLuint Fallback;   GLenum render_primitive;	/* what GL thinks */   GLenum raster_primitive;	/* what the hardware thinks */   GLfloat sScale0, tScale0;   GLfloat sScale1, tScale1;   GLuint texBindNumber;   GLint tmuSrc;   int screen_width;   int screen_height;   GLboolean haveTwoTMUs;      /* True if we have 2 tmu's  */   GLboolean haveHwAlpha;   GLboolean haveHwStencil;   GLboolean haveHwStipple;   GLint maxPendingSwapBuffers;   char rendererString[100];   /* stuff added for DRI */   __DRIscreenPrivate *driScreen;   __DRIcontextPrivate *driContext;   /**    * DRI drawable bound to this context for drawing.    */   __DRIdrawablePrivate	*driDrawable;   /**    * DRI drawable bound to this context for reading.    */   __DRIdrawablePrivate	*driReadable;   drm_context_t hHWContext;   drm_hw_lock_t *driHwLock;   int driFd;   tdfxScreenPrivate *fxScreen;   TDFXSAREAPriv *sarea;   /*    * Changes during execution:    */   int width, height;   /* size of window */   int x_offset;        /* distance from window left to screen left */   int y_offset;        /* distance from window top to screen top */   int y_delta;         /* distance from window bottom to screen bottom */   int numClipRects;   drm_clip_rect_t *pClipRects;   GLboolean scissoredClipRects;  /* if true, pClipRects is private storage */   GuTexPalette glbPalette;         /* global texture palette */   tdfxStats stats;   /* Configuration cache    */   driOptionCache optionCache;};#define TDFX_CONTEXT(ctx)	((tdfxContextPtr)((ctx)->DriverCtx))extern GLbooleantdfxCreateContext( const __GLcontextModes *mesaVis,                   __DRIcontextPrivate *driContextPriv,                   void *sharedContextPrivate );extern voidtdfxDestroyContext( __DRIcontextPrivate *driContextPriv );extern GLbooleantdfxUnbindContext( __DRIcontextPrivate *driContextPriv );extern GLbooleantdfxMakeCurrent( __DRIcontextPrivate *driContextPriv,                 __DRIdrawablePrivate *driDrawPriv,                 __DRIdrawablePrivate *driReadPriv );extern GLbooleantdfxInitGlide( tdfxContextPtr tmesa );extern voidFX_grColorMaskv(GLcontext *ctx, const GLboolean rgba[4]);extern voidFX_grColorMaskv_NoLock(GLcontext *ctx, const GLboolean rgba[4]);/* Color packing utilities */#define TDFXPACKCOLOR332( r, g, b )					   \   (((b) & 0xe0) | (((g) & 0xe0) >> 3) | (((r) & 0xc0) >> 6))#define TDFXPACKCOLOR1555( r, g, b, a )					   \   ((((r) & 0xf8) << 7) | (((g) & 0xf8) << 2) | (((b) & 0xf8) >> 3) |	   \    ((a) ? 0x8000 : 0))#define TDFXPACKCOLOR565( r, g, b )					   \   ((((r) & 0xf8) << 8) | (((g) & 0xfc) << 3) | (((b) & 0xf8) >> 3))#define TDFXPACKCOLOR888( r, g, b )					   \   (((b) << 16) | ((g) << 8) | (r))#define TDFXPACKCOLOR8888( r, g, b, a )					   \   (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))#define TDFXPACKCOLOR4444( r, g, b, a )					   \   ((((a) & 0xf0) << 8) | (((b) & 0xf0) << 4) | ((g) & 0xf0) | ((r) >> 4))static INLINE GrColor_t tdfxPackColor( GLuint cpp,                                       GLubyte r, GLubyte g,                                       GLubyte b, GLubyte a ){   switch ( cpp ) {   case 2:      return TDFXPACKCOLOR565( r, g, b );   case 4:      return TDFXPACKCOLOR8888( r, g, b, a );   default:      return 0;  }}#define DO_DEBUG		1#if DO_DEBUGextern int TDFX_DEBUG;#else#define TDFX_DEBUG		0#endif#define DEBUG_ALWAYS_SYNC	0x01#define DEBUG_VERBOSE_API	0x02#define DEBUG_VERBOSE_DRI	0x04#define DEBUG_VERBOSE_FALL	0x08/* conf */#define FX_COMPRESS_S3TC_AS_FXT1_HACK 1#define FX_TC_NAPALM 0#endif /* __TDFX_CONTEXT_H__ */

⌨️ 快捷键说明

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