ChafaCanvas

ChafaCanvas — A canvas that renders to text

Functions

Types and Values

typedef ChafaCanvas

Description

A ChafaCanvas is a canvas that can render its contents as text strings.

To create a new ChafaCanvas, use chafa_canvas_new(). If you want to specify any parameters, like the geometry, color space and so on, you must create a ChafaCanvasConfig first.

You can draw an image to the canvas using chafa_canvas_set_contents_rgba8() and create an ANSI text representation of the canvas' current contents using chafa_canvas_build_ansi().

Functions

chafa_canvas_new ()

ChafaCanvas *
chafa_canvas_new (const ChafaCanvasConfig *config);

Creates a new canvas with the specified configuration. The canvas makes a private copy of the configuration, so it will not be affected by subsequent changes.

Parameters

config

Configuration to use or NULL for hardcoded defaults

 

Returns

The new canvas


chafa_canvas_new_similar ()

ChafaCanvas *
chafa_canvas_new_similar (ChafaCanvas *orig);

Creates a new canvas configured similarly to orig .

Parameters

orig

Canvas to copy configuration from

 

Returns

The new canvas


chafa_canvas_ref ()

void
chafa_canvas_ref (ChafaCanvas *canvas);

Adds a reference to canvas .

Parameters

canvas

Canvas to add a reference to

 

chafa_canvas_unref ()

void
chafa_canvas_unref (ChafaCanvas *canvas);

Removes a reference from canvas . When remaining references drops to zero, the canvas is freed and can no longer be used.

Parameters

canvas

Canvas to remove a reference from

 

chafa_canvas_peek_config ()

const ChafaCanvasConfig *
chafa_canvas_peek_config (ChafaCanvas *canvas);

Returns a pointer to the configuration belonging to canvas . This can be inspected using the ChafaCanvasConfig getter functions, but not changed.

Parameters

canvas

Canvas whose configuration to inspect

 

Returns

A pointer to the canvas' immutable configuration


chafa_canvas_set_contents_rgba8 ()

void
chafa_canvas_set_contents_rgba8 (ChafaCanvas *canvas,
                                 const guint8 *src_pixels,
                                 gint src_width,
                                 gint src_height,
                                 gint src_rowstride);

Replaces pixel data of canvas with a copy of that found at src_pixels . The source data must be in packed 8-bits-per-channel RGBA format. The alpha value is expressed as opacity (0xff is opaque) and is not premultiplied.

Parameters

canvas

Canvas whose pixel data to replace

 

src_pixels

Pointer to the start of source pixel memory

 

src_width

Width in pixels of source pixel data

 

src_height

Height in pixels of source pixel data

 

src_rowstride

Number of bytes between the start of each pixel row

 

chafa_canvas_build_ansi ()

GString *
chafa_canvas_build_ansi (ChafaCanvas *canvas);

Builds a UTF-8 string of ANSI sequences and symbols representing the canvas' current contents. This can e.g. be printed to a terminal. The exact choice of escape sequences and symbols, dimensions, etc. is determined by the configuration assigned to canvas on its creation.

All output lines except for the last one will end in a newline.

Parameters

canvas

The canvas to generate an ANSI character representation of

 

Returns

A UTF-8 string of ANSI sequences and symbols

Types and Values

ChafaCanvas

typedef struct ChafaCanvas ChafaCanvas;