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

📄 trident_state.c

📁 mesa-6.5-minigui源码
💻 C
📖 第 1 页 / 共 2 页
字号:
      }   #if 0      tmesa->dirty |= (TRIDENT_UPLOAD_CONTEXT |   		       TRIDENT_UPLOAD_MISC |   		       TRIDENT_UPLOAD_CLIPRECTS);#endif   }   UNLOCK_HARDWARE(tmesa);   if ( mask )      _swrast_Clear( ctx, mask, all, cx, cy, cw, ch );}static void tridentDDShadeModel( GLcontext *ctx, GLenum mode ){   tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);   GLuint s = tmesa->commandD;#define TRIDENT_FLAT_SHADE 			0x000000E0#define TRIDENT_FLAT_SHADE_VERTEX_C		0x00000060#define TRIDENT_FLAT_SHADE_GOURAUD		0x00000080   s &= ~TRIDENT_FLAT_SHADE;   switch ( mode ) {   case GL_FLAT:      s |= TRIDENT_FLAT_SHADE_VERTEX_C;      break;   case GL_SMOOTH:      s |= TRIDENT_FLAT_SHADE_GOURAUD;      break;   default:      return;   }   if ( tmesa->commandD != s ) {      tmesa->commandD = s;      tmesa->dirty |= TRIDENT_UPLOAD_COMMAND_D;   }}static voidtridentCalcViewport( GLcontext *ctx ){   tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);   const GLfloat *v = ctx->Viewport._WindowMap.m;   GLfloat *m = tmesa->hw_viewport;   /* See also trident_translate_vertex.    */   m[MAT_SX] =   v[MAT_SX];   m[MAT_TX] =   v[MAT_TX] + tmesa->drawX + SUBPIXEL_X;   m[MAT_SY] = - v[MAT_SY];   m[MAT_TY] = - v[MAT_TY] + tmesa->driDrawable->h + tmesa->drawY + SUBPIXEL_Y;#if 0   m[MAT_SZ] =   v[MAT_SZ] * tmesa->depth_scale;   m[MAT_TZ] =   v[MAT_TZ] * tmesa->depth_scale;#else   m[MAT_SZ] =   v[MAT_SZ];   m[MAT_TZ] =   v[MAT_TZ];#endif   tmesa->SetupNewInputs = ~0;}static void tridentDDViewport( GLcontext *ctx,			  GLint x, GLint y,			  GLsizei width, GLsizei height ){   tridentCalcViewport( ctx );}static void tridentDDDepthRange( GLcontext *ctx,			    GLclampd nearval, GLclampd farval ){   tridentCalcViewport( ctx );}static voidtridentSetCliprects( tridentContextPtr tmesa, GLenum mode ){   __DRIdrawablePrivate *dPriv = tmesa->driDrawable;   switch ( mode ) {   case GL_FRONT_LEFT:      if (dPriv->numClipRects == 0) {	 static drm_clip_rect_t zeroareacliprect = {0,0,0,0};	 tmesa->numClipRects = 1;	 tmesa->pClipRects = &zeroareacliprect;      } else {	 tmesa->numClipRects = dPriv->numClipRects;	 tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pClipRects;      }      tmesa->drawX = dPriv->x;      tmesa->drawY = dPriv->y;      break;   case GL_BACK_LEFT:      if ( dPriv->numBackClipRects == 0 ) {	  if (dPriv->numClipRects == 0) {	     static drm_clip_rect_t zeroareacliprect = {0,0,0,0};	     tmesa->numClipRects = 1;	     tmesa->pClipRects = &zeroareacliprect;	  } else {	     tmesa->numClipRects = dPriv->numClipRects;	     tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pClipRects;	     tmesa->drawX = dPriv->x;	     tmesa->drawY = dPriv->y;	  }      }      else {	 tmesa->numClipRects = dPriv->numBackClipRects;	 tmesa->pClipRects = (drm_clip_rect_t *)dPriv->pBackClipRects;	 tmesa->drawX = dPriv->backX;	 tmesa->drawY = dPriv->backY;      }      break;   default:      return;   }#if 0   tmesa->dirty |= TRIDENT_UPLOAD_CLIPRECTS;#endif}#if 0static GLboolean tridentDDSetDrawBuffer( GLcontext *ctx, GLenum mode ){   tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);   int found = GL_TRUE;   if ( tmesa->DrawBuffer != mode ) {      tmesa->DrawBuffer = mode;            switch ( mode ) {      case GL_FRONT_LEFT:	 tridentFallback( tmesa, TRIDENT_FALLBACK_DRAW_BUFFER, GL_FALSE );	 tmesa->drawOffset = tmesa->tridentScreen->frontOffset;	 tmesa->drawPitch  = tmesa->tridentScreen->frontPitch;	 tridentSetCliprects( tmesa, GL_FRONT_LEFT );	 break;      case GL_BACK_LEFT:	 tridentFallback( tmesa, TRIDENT_FALLBACK_DRAW_BUFFER, GL_FALSE );	 tmesa->drawOffset = tmesa->tridentScreen->backOffset;	 tmesa->drawPitch  = tmesa->tridentScreen->backPitch;	 tridentSetCliprects( tmesa, GL_BACK_LEFT );	 break;      default:	 tridentFallback( tmesa, TRIDENT_FALLBACK_DRAW_BUFFER, GL_TRUE );	 found = GL_FALSE;	 break;      }#if 0      tmesa->setup.dst_off_pitch = (((tmesa->drawPitch/8) << 22) |				    (tmesa->drawOffset >> 3));      tmesa->dirty |= MACH64_UPLOAD_DST_OFF_PITCH | MACH64_UPLOAD_CONTEXT;#endif         }   return found;}static void tridentDDClearColor( GLcontext *ctx,				const GLchan color[4] ){   tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);   tmesa->ClearColor = tridentPackColor( tmesa->tridentScreen->cpp,					color[0], color[1], 					color[2], color[3] );}#endifstatic voidtridentDDUpdateState( GLcontext *ctx, GLuint new_state ){   _swrast_InvalidateState( ctx, new_state );   _swsetup_InvalidateState( ctx, new_state );   _ac_InvalidateState( ctx, new_state );   _tnl_InvalidateState( ctx, new_state );   TRIDENT_CONTEXT(ctx)->new_gl_state |= new_state;}/* Initialize the context's hardware state. */void tridentDDInitState( tridentContextPtr tmesa ){   tmesa->new_state = 0;   switch ( tmesa->glCtx->Visual.depthBits ) {   case 16:      tmesa->depth_scale = 1.0 / (GLfloat)0xffff;      break;   case 24:      tmesa->depth_scale = 1.0 / (GLfloat)0xffffff;      break;   }}void tridentDDUpdateHWState( GLcontext *ctx ){   tridentContextPtr tmesa = TRIDENT_CONTEXT(ctx);   int new_state = tmesa->new_state;   if ( new_state )   {      tmesa->new_state = 0;#if 0      /* Update the various parts of the context's state.       */      if ( new_state & GAMMA_NEW_ALPHA )	 tridentUpdateAlphaMode( ctx );      if ( new_state & GAMMA_NEW_DEPTH )	 tridentUpdateZMode( ctx );      if ( new_state & GAMMA_NEW_FOG )	 gammaUpdateFogAttrib( ctx );      if ( new_state & GAMMA_NEW_CLIP )	 gammaUpdateClipping( ctx );      if ( new_state & GAMMA_NEW_POLYGON )	 gammaUpdatePolygon( ctx );      if ( new_state & GAMMA_NEW_CULL )	 gammaUpdateCull( ctx );      if ( new_state & GAMMA_NEW_MASKS )	 gammaUpdateMasks( ctx );      if ( new_state & GAMMA_NEW_STIPPLE )	 gammaUpdateStipple( ctx );#endif   }   /* HACK ! */#if 0   gammaEmitHwState( tmesa );#endif}/* Initialize the driver's state functions. */void tridentDDInitStateFuncs( GLcontext *ctx ){   ctx->Driver.UpdateState		= tridentDDUpdateState;   ctx->Driver.Clear			= tridentDDClear;   ctx->Driver.DepthRange		= tridentDDDepthRange;   ctx->Driver.ShadeModel		= tridentDDShadeModel;   ctx->Driver.Viewport			= tridentDDViewport;   /* Pixel path fallbacks.    */   ctx->Driver.Accum = _swrast_Accum;   ctx->Driver.Bitmap = _swrast_Bitmap;   ctx->Driver.CopyPixels = _swrast_CopyPixels;   ctx->Driver.DrawPixels = _swrast_DrawPixels;   ctx->Driver.ReadPixels = _swrast_ReadPixels;   ctx->Driver.ResizeBuffers = _mesa_resize_framebuffer;   /* Swrast hooks for imaging extensions:    */   ctx->Driver.CopyColorTable = _swrast_CopyColorTable;   ctx->Driver.CopyColorSubTable = _swrast_CopyColorSubTable;   ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D;   ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D;}

⌨️ 快捷键说明

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