Dlist Functions | |
Functions | |
d2_executedlist | Execute an already prepared display list. |
d2_adddlist | Add an already prepared display list to the current render buffer. |
d2_s32 d2_executedlist( d2_device * handle, const void * address, d2_u32 flags )
Execute an already prepared display list. A display list (Dlist) can be created e.g. by d2_dumprenderbuffer.
Basically the address will be sent to D/AVE and will be executed immediately. So the dlist address must be accessible by the GPU and it is in the application’s responsibility to prepare the Dlist correctly.
d2_executedlist must not be called while D/AVE is busy rendering (see: Render Buffers).
This has no influence on the render buffer mechanism. The driver will manage cooperation of render buffers and Dlists.
In case d2_opendevice was called with d2_df_no_dlist address must be accessible by the CPU.
handle | device pointer (see: d2_opendevice) |
address | Address of the Dlist (must be accessible by the GPU) |
flags | reserved (set to 0) |
errorcode (D2_OK if successful) see Errorcodes for details
d2_s32 d2_adddlist( d2_device * handle, void * address, d2_s32 size, d2_u32 flags )
Add an already prepared display list to the current render buffer. A display list (Dlist) can be created e.g. by d2_dumprenderbuffer.
Depending on the flags, the Dlist will be added to the current render buffer by copying its content or by adding ‘call’ operations to the current render buffer.
If a ‘postprocess’ rendermode is active the layers are merged before the Dlist is added (see: d2_selectrendermode).
If d2_al_no_copy is selected, the GPU must be able to select the specified address, in case if d2_al_copy the CPU must be able to access the Dlist.
For the mode d2_al_no_copy the low level driver must support the handling of lists of Dlist start addresses (see: d2_level1interface and low level device <D1 Display list handling at ../../../driver_l1/files/doc/d1_dlistindirect-txt.html>).
If this handling is not supported then no Dlists can be added in this mode.
handle | device pointer (see: d2_opendevice) |
address | Address of the Dlist (in case of d2_al_no_copy must be accessible by the GPU in case of d2_al_no_copy must be accessible by CPU) |
size | size of Dlist |
flags | d2_al_copy, d2_al_no_copy |
errorcode (D2_OK if successful) see Errorcodes for details
d2_al_default | default behavior d2_al_copy. |
d2_al_copy | content will be copied. |
d2_al_no_copy | call to the Dlist will be added. |
d2_dumprenderbuffer, d2_getrenderbuffersize, d2_relocateframe
Execute an already prepared display list.
d2_s32 d2_executedlist( d2_device * handle, const void * address, d2_u32 flags )
Add an already prepared display list to the current render buffer.
d2_s32 d2_adddlist( d2_device * handle, void * address, d2_s32 size, d2_u32 flags )
Copy the content of a renderbuffer into user memory.
d2_s32 d2_dumprenderbuffer( d2_device * handle, d2_renderbuffer * buffer, void ** rdata, d2_s32 * rsize )
Create a new device handle.
d2_device * d2_opendevice( d2_u32 flags )
Select a rendering mode.
d2_s32 d2_selectrendermode( d2_device * handle, d2_u32 mode )
Get the lowlevel device handle currently used by the d2_device.
d1_device * d2_level1interface( const d2_device * handle )
Query the number of allocated display list entries.
d2_u32 d2_getrenderbuffersize( d2_device * handle, d2_renderbuffer * rb )
Change framebuffer for render commands already issued.
extern d2_s32 d2_relocateframe( d2_device * handle, const void * ptr )