Dlist Functions

Summary
Dlist Functions
Functions
d2_executedlistExecute an already prepared display list.
d2_adddlistAdd an already prepared display list to the current render buffer.

Functions

d2_executedlist

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).

Note

This has no influence on the render buffer mechanism.  The driver will manage cooperation of render buffers and Dlists.

Note

In case d2_opendevice was called with d2_df_no_dlist address must be accessible by the CPU.

parameters

handledevice pointer (see: d2_opendevice)
addressAddress of the Dlist (must be accessible by the GPU)
flagsreserved (set to 0)

returns

errorcode (D2_OK if successful) see Errorcodes for details

d2_adddlist

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).

Note

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.

Note

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.

parameters

handledevice pointer (see: d2_opendevice)
addressAddress 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)
sizesize of Dlist
flagsd2_al_copy, d2_al_no_copy

returns

errorcode (D2_OK if successful) see Errorcodes for details

flags

d2_al_defaultdefault behavior d2_al_copy.
d2_al_copycontent will be copied.
d2_al_no_copycall to the Dlist will be added.

see also

d2_dumprenderbuffer, d2_getrenderbuffersize, d2_relocateframe

d2_s32 d2_executedlist(d2_device *handle,
const void *address,
d2_u32 flags)
Execute an already prepared display list.
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.
d2_s32 d2_dumprenderbuffer(d2_device *handle,
d2_renderbuffer *buffer,
void **rdata,
d2_s32 *rsize)
Copy the content of a renderbuffer into user memory.
Renderbuffers (similar in concept to OpenGL display lists) are the main interface between driver and hardware.
d2_device * d2_opendevice(d2_u32 flags)
Create a new device handle.
List of all dave driver errorcodes.
d2_s32 d2_selectrendermode(d2_device *handle,
d2_u32 mode)
Select a rendering mode.
d1_device * d2_level1interface(const d2_device *handle)
Get the lowlevel device handle currently used by the d2_device.
d2_u32 d2_getrenderbuffersize(d2_device *handle,
d2_renderbuffer *rb)
Query the number of allocated display list entries.
extern d2_s32 d2_relocateframe(d2_device *handle,
const void *ptr)
Change framebuffer for render commands already issued.
Close