very brief overview of swrast
This commit is contained in:
parent
fffc27015b
commit
62eb2e5909
|
@ -0,0 +1,55 @@
|
||||||
|
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.
|
Loading…
Reference in New Issue