| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- INTRODUCTION
-
- Mesa's native software rasterizer. This module provides the fallback
- paths for rasterization operations and states that aren't accelerated
- in hardware drivers, and as the full rasterization engine in software
- drivers.
-
- The swrast module 'stands alone', relying only on interfaces to core
- mesa and it's own driver interface. It knows nothing about the tnl or
- other modules, allowing it to be used for fallback paths in future tnl
- schemes without modification.
-
- As well as providing triangle/line/point rasterization functionality,
- the module provides implementations of the pixel operations
- (ReadPixels, etc), and texture operations (CopyTexSubImage) which may
- be plugged in to the core Mesa driver interface where accelerated
- versions of these operations are unavailable.
-
-
- STATE
-
- To create and destroy the module:
-
- GLboolean _swrast_CreateContext( GLcontext *ctx );
- void _swrast_DestroyContext( GLcontext *ctx );
-
- This module tracks state changes internally and maintains derived
- 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 _swrast_InvalidateState( GLcontext *ctx, GLuint new_state );
-
- There is no explicit call to put the swrast module to sleep.
-
-
- CUSTOMIZATION
-
- void (*choose_point)( GLcontext * );
- void (*choose_line)( GLcontext * );
- void (*choose_triangle)( GLcontext * );
-
- Drivers may add additional triangle/line/point functions to swrast by
- overriding these functions. It is necessary for the driver to be very
- careful that it doesn't return an inappropriate function, eg a
- rasterization function in feedback mode. See the X11 driver for
- examples.
-
- DRIVER INTERFACE
-
- The swrast device driver provides swrast primarily with span- and
- pixel- level interfaces to a framebuffer, with a few additional hooks
- for locking and setting the read buffer.
-
- See the definition of struct swrast_device_driver in swrast.h.
|