Beispiel #1
0
static void mgaRunPipeline( GLcontext *ctx )
{
   mgaContextPtr mmesa = MGA_CONTEXT(ctx);

   if (mmesa->new_state) {
      mgaDDUpdateHwState( ctx );
   }

   if (!mmesa->Fallback && mmesa->new_gl_state) {
      if (mmesa->new_gl_state & _MGA_NEW_RASTERSETUP)
	 mgaChooseVertexState( ctx );
      
      if (mmesa->new_gl_state & _MGA_NEW_RENDERSTATE)
	 mgaChooseRenderState( ctx );
      
      mmesa->new_gl_state = 0;

      /* Circularity: mgaDDUpdateHwState can affect mmesa->Fallback,
       * but mgaChooseVertexState can affect mmesa->new_state.  Hence
       * the second check.  (Fix this...)
       */
      if (mmesa->new_state) {
	 mgaDDUpdateHwState( ctx );
      }
   }

   _tnl_run_pipeline( ctx );
}
Beispiel #2
0
static void mgaDDValidateState( GLcontext *ctx )
{
   mgaContextPtr mmesa = MGA_CONTEXT( ctx );

   FLUSH_BATCH( mmesa );

   if (mmesa->NewGLState & _NEW_TEXTURE) {
      mgaUpdateTextureState(ctx);
   }

   if (!mmesa->Fallback) {
      if (mmesa->NewGLState & _MGA_NEW_RASTERSETUP) {
         mgaChooseVertexState( ctx );
      }

      if (mmesa->NewGLState & _MGA_NEW_RENDERSTATE) {
         mgaChooseRenderState( ctx );
      }
   }

   mmesa->NewGLState = 0;
}