Detailed Description

Function Documentation

__extern int caca_disable_dirty_rect (caca_canvas_t *cv)

Disable dirty rectangle handling for all libcaca graphic calls. This is handy when the calling application needs to do slow operations within a known area. Just call caca_add_dirty_rect() afterwards.

This function is recursive. Dirty rectangles are only reenabled when caca_enable_dirty_rect() is called as many times.

This function never fails.

Parameters:

cv A libcaca canvas.

Returns:

This function always returns 0.

__extern int caca_enable_dirty_rect (caca_canvas_t *cv)

This function can only be called after caca_disable_dirty_rect() was called.

If an error occurs, -1 is returned and errno is set accordingly:

•

EINVAL Dirty rectangles were not disabled.

Parameters:

cv A libcaca canvas.

Returns:

0 in case of success, -1 if an error occurred.

__extern int caca_get_dirty_rect_count (caca_canvas_t *cv)

Get the number of dirty rectangles in a canvas. Dirty rectangles are areas that contain cells that have changed since the last reset.

The dirty rectangles are used internally by display drivers to optimise rendering by avoiding to redraw the whole screen. Once the display driver has rendered the canvas, it resets the dirty rectangle list.

Get the canvas's given dirty rectangle coordinates. The index must be within the dirty rectangle count. See caca_get_dirty_rect_count() for how to compute this count.

If an error occurs, no coordinates are written in the pointer arguments, -1 is returned and errno is set accordingly:

•

EINVAL Specified rectangle index is out of bounds.

Parameters:

cv A libcaca canvas.
r The requested rectangle index.
x A pointer to an integer where the leftmost edge of the dirty rectangle will be stored.
y A pointer to an integer where the topmost edge of the dirty rectangle will be stored.
width A pointer to an integer where the width of the dirty rectangle will be stored.
height A pointer to an integer where the height of the dirty rectangle will be stored.

Add an invalidating zone to the canvas's dirty rectangle list. For more information about the dirty rectangles, see caca_get_dirty_rect().

This function may be useful to force refresh of a given zone of the canvas even if the dirty rectangle tracking indicates that it is unchanged. This may happen if the canvas contents were somewhat directly modified.

If an error occurs, -1 is returned and errno is set accordingly:

•

EINVAL Specified rectangle coordinates are out of bounds.

Parameters:

cv A libcaca canvas.
x The leftmost edge of the additional dirty rectangle.
y The topmost edge of the additional dirty rectangle.
width The width of the additional dirty rectangle.
height The height of the additional dirty rectangle.