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.

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.