vbo: pass the stream from DrawTransformFeedbackStream to drivers
[mesa.git] / src / mesa / tnl / NOTES
index c39b43485eb4922126ef9cb5038d73d973776e78..43c469201adc7ec2335a6c564acc77d74e2e855a 100644 (file)
@@ -8,25 +8,23 @@ This module provides an implementation of the routines required by the
 combinations of compile and execute modes.
 
 Most current drivers use the tnl module exclusively to provide this
-functionality, though there is an experimental alternate
-implementation provided by the tnl_dd/t_dd_imm_* files which can
-handle a small subset of GL states in execute mode only.
+functionality.
 
 
 STATE
 
 To create and destroy the module:
 
-       GLboolean _tnl_CreateContext( GLcontext *ctx );
-       void _tnl_DestroyContext( GLcontext *ctx );
+       GLboolean _tnl_CreateContext( struct gl_context *ctx );
+       void _tnl_DestroyContext( struct gl_context *ctx );
 
 The module is not active by default, and must be installed by calling
 _tnl_Wakeup().  This function installs internal tnl functions into all
 the vtxfmt dispatch hooks, thus taking over the task of transformation
 and lighting entirely:
 
-        void _tnl_wakeup_exec( GLcontext *ctx );
-       void _tnl_wakeup_save_exec( GLcontext *ctx );
+        void _tnl_wakeup_exec( struct gl_context *ctx );
+       void _tnl_wakeup_save_exec( struct gl_context *ctx );
 
    
 This module tracks state changes internally and maintains derived
@@ -34,7 +32,7 @@ values based on the current state.  For this to work, the driver
 ensure the following funciton is called whenever the state changes and
 the swsetup module is 'awake':
 
-       void _tnl_InvalidateState( GLcontext *ctx, GLuint new_state );
+       void _tnl_InvalidateState( struct gl_context *ctx, GLuint new_state );
 
 There is no explicit call to put the tnl module to sleep.  Simply
 install other function pointers into all the vtxfmt dispatch slots,
@@ -50,21 +48,21 @@ rasterization hardware (or software).
 The default pipeline is specified in t_pipeline.c, and is usually a
 starting point for driver pipelines.  Some drivers will remove a stage
 where hardware provides support for the implemented operation (for
-instance fog where per-pixel hardware fog is available, as in the dri
-tdfx driver), or add stages to shortcircuit latter operations (for
+instance fog where per-pixel hardware fog is available),
+or add stages to shortcircuit latter operations (for
 example taking advantage of hardware support for strips and other
 higher-level primitives (for example the radeon driver).
 
 In addition, the following functions provide further tweaks:
 
 extern void
-_tnl_need_projected_coords( GLcontext *ctx, GLboolean flag );
+_tnl_need_projected_coords( struct gl_context *ctx, GLboolean flag );
 
        - Direct the default vertex transformation stage to
           produce/not produce projected clip coordinates.
          
 extern void
-_tnl_need_dlist_loopback( GLcontext *ctx, GLboolean flag );
+_tnl_need_dlist_loopback( struct gl_context *ctx, GLboolean flag );
       
         - Direct the display list component of the tnl module to
           replay display lists as 'glVertex' type calls, rather than
@@ -76,7 +74,7 @@ _tnl_need_dlist_loopback( GLcontext *ctx, GLboolean flag );
 
 
 extern void
-_tnl_need_dlist_norm_lengths( GLcontext *ctx, GLboolean flag );
+_tnl_need_dlist_norm_lengths( struct gl_context *ctx, GLboolean flag );
 
        - Direct the display list component to enable/disable caching
           1/length values for display list normals.  Doing so is
@@ -88,7 +86,7 @@ DRIVER INTERFACE
 
 The module itself offers a minimal driver interface:
 
-        void (*RunPipeline)( GLcontext *ctx );
+        void (*RunPipeline)( struct gl_context *ctx );
 
 Normally this is set to _tnl_RunPipeline(), however the driver can use
 this hook to wrap checks or other code around this call.