libcaca basic functions(3caca)

NAME
libcaca basic functions -

  Functions
caca_display_t * caca_create_display (cucul_canvas_t *)
Attach a caca graphical context to a cucul canvas.
int caca_free_display (caca_display_t *)
Detach a caca graphical context from a cucul backend context.
int caca_refresh_display (caca_display_t *)
Flush pending changes and redraw the screen.
int caca_set_display_time (caca_display_t *, unsigned int)
Set the refresh delay.
unsigned int caca_get_display_time (caca_display_t *)
Get the display's average rendering time.
unsigned int caca_get_display_width (caca_display_t *)
Get the display width.
unsigned int caca_get_display_height (caca_display_t *)
Get the display height.
int caca_set_display_title (caca_display_t *, char const *)
Set the display title.

Detailed Description

These functions provide the basic libcaca routines for driver initialisation, system information retrieval and configuration.

Function Documentation

  caca_display_t* caca_create_display (cucul_canvas_t * cv)

Create a graphical context using device-dependent features (ncurses for terminals, an X11 window, a DOS command window...) that attaches to a libcucul canvas. Everything that gets drawn in the libcucul canvas can then be displayed by the libcaca driver.

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

•   ENOMEM Not enough memory.

•   ENODEV Graphical device could not be initialised.

Parameters:
    cv The cucul cavas.

Returns:
    The caca graphical context or NULL if an error occurred.

  int caca_free_display (caca_display_t * dp)

Detach a graphical context from its cucul backend and destroy it. The libcucul canvas continues to exist and other graphical contexts can be attached to it afterwards.

This function never fails.

Parameters:
    dp The libcaca graphical context.

Returns:
    This function always returns 0.

  int caca_refresh_display (caca_display_t * dp)

Flush all graphical operations and print them to the display device. Nothing will show on the screen until this function is called.

If caca_set_display_time() was called with a non-zero value, caca_refresh_display() will use that value to achieve constant framerate: if two consecutive calls to caca_refresh_display() are within a time range shorter than the value set with caca_set_display_time(), the second call will be delayed before performing the screen refresh.

This function never fails.

Parameters:
    dp The libcaca display context.

Returns:
    This function always returns 0.

  int caca_set_display_time (caca_display_t * dp, unsigned int usec)

Set the refresh delay in microseconds. The refresh delay is used by caca_refresh_display() to achieve constant framerate. See the caca_refresh_display() documentation for more details.

If the argument is zero, constant framerate is disabled. This is the default behaviour.

This function never fails.

Parameters:
    dp The libcaca display context.
    usec The refresh delay in microseconds.

Returns:
    This function always returns 0.

  unsigned int caca_get_display_time (caca_display_t * dp)

Get the average rendering time, which is the average measured time between two caca_refresh_display() calls, in microseconds. If constant framerate was activated by calling caca_set_display_time(), the average rendering time will be close to the requested delay even if the real rendering time was shorter.

This function never fails.

Parameters:
    dp The libcaca display context.

Returns:
    The render time in microseconds.

  unsigned int caca_get_display_width (caca_display_t * dp)

If libcaca runs in a window, get the usable window width. This value can be used for aspect ratio calculation. If libcaca does not run in a window or if there is no way to know the font size, most drivers will assume a 6x10 font is being used. Note that the units are not necessarily pixels.

This function never fails.

Parameters:
    dp The libcaca display context.

Returns:
    The display width.

  unsigned int caca_get_display_height (caca_display_t * dp)

If libcaca runs in a window, get the usable window height. This value can be used for aspect ratio calculation. If libcaca does not run in a window or if there is no way to know the font size, assume a 6x10 font is being used. Note that the units are not necessarily pixels.

This function never fails.

Parameters:
    dp The libcaca display context.

Returns:
    The display height.

  int caca_set_display_title (caca_display_t * dp, char const * title)

If libcaca runs in a window, try to change its title. This works with the ncurses, S-Lang, OpenGL, X11 and Win32 drivers.

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

•   ENOSYS Display driver does not support setting the window title.

Parameters:
    dp The libcaca display context.
    title The desired display title.

Returns:
    0 upon success, -1 if an error occurred.