Canvas Control

void cdCanvasClear(cdCanvas* canvas); [in C]

canvas:Clear() [in Lua]

Cleans the active canvas using the current background color. This action is interpreted very differently by each driver. Many drivers simply draw a rectangle with the current background color. It is NOT necessary to call cdClear when the canvas has just been created, as at this moment it is already clean. Most file-based drivers do not implement this function.

void cdCanvasFlush(cdCanvas* canvas); [in C]
canvas:Flush() [in Lua]

Has a different meaning for each driver. It is useful to send information to buffered devices and to move to a new page or layer. In all cases, the current canvas attributes are preserved.

cdState* cdCanvasSaveState(cdCanvas* canvas); [in C]
canvas:SaveState() -> (state: cdState) [in Lua]

Saves the state of attributes of the active canvas. It does not save cdPlay callbacks, polygon creation states (begin/vertex/vertex/...), the palette, complex clipping regions and driver internal attributes.

void cdCanvasRestoreState(cdCanvas* canvas, cdState* state); [in C]
canvas:RestoreState(state: cdState) [in Lua]

Restores the attribute state of the active canvas. It can be used between canvases of different contexts. It can be used several times for the same state.

void cdReleaseState(cdState* state); [in C]

cd.ReleaseState(state: cdState) [in Lua]

Releases the memory allocated by the cdSaveState function. If this function is not called in Lua, the garbage collector will call it.

void cdCanvasSetAttribute(cdCanvas* canvas, const char* name, char* data); [in C]
canvas:SetAttribute(name, data: string) [in Lua]

Modifies a custom attribute directly in the driver of the active canvas. If the driver does not have this attribute, the call is ignored. All drivers have the USERDATA attribute (since 5.9).

void cdCanvasSetfAttribute(cdCanvas* canvas, const char* name, const char* format, ...); [in C]
[There is no equivalent in Lua]

Same as cdSetAttribute, used for the case in which the parameter data is a string composed by several parameters. It can be  used with parameters equivalent to those of the printf function from the standard C library.

char* cdCanvasGetAttribute(cdCanvas* canvas, const char* name); [in C]
canvas:SetAttribute(name: string) -> (data: string) [in Lua]

Returns a custom attribute from the driver of the active canvas. If the driver does not have this attribute, it returns NULL.