Reference

cucul_attributes(3caca)

NAME

libcucul attribute conversions -

Functions

__extern uint8_t cucul_attr_to_ansi (uint32_t)
Get DOS ANSI information from attribute. __extern uint8_t cucul_attr_to_ansi_fg (uint32_t)
Get ANSI foreground information from attribute. __extern uint8_t cucul_attr_to_ansi_bg (uint32_t)
Get ANSI background information from attribute. __extern uint16_t cucul_attr_to_rgb12_fg (uint32_t)
Get 12-bit RGB foreground information from attribute. __extern uint16_t cucul_attr_to_rgb12_bg (uint32_t)
Get 12-bit RGB background information from attribute. __extern void cucul_attr_to_argb64 (uint32_t, uint8_t[8])
Get 64-bit ARGB information from attribute.

Detailed Description

These functions perform conversions between attribute values.

Function Documentation

__extern uint8_t cucul_attr_to_ansi (uint32_t attr)

Get the ANSI colour pair for a given attribute. The returned value is an 8-bit value whose higher 4 bits are the background colour and lower 4 bits are the foreground colour.

If the attribute has ARGB colours, the nearest colour is used. Special attributes such as CUCUL_DEFAULT and CUCUL_TRANSPARENT are not handled and are both replaced with CUCUL_LIGHTGRAY for the foreground colour and CUCUL_BLACK for the background colour.

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.

Returns:

The corresponding DOS ANSI value.

References CUCUL_BLACK, and CUCUL_LIGHTGRAY.

__extern uint8_t cucul_attr_to_ansi_fg (uint32_t attr)

Get the ANSI foreground colour value for a given attribute. The returned value is either one of the CUCUL_RED, CUCUL_BLACK etc. predefined colours, or the special value CUCUL_DEFAULT meaning the media's default foreground value, or the special value CUCUL_TRANSPARENT.

If the attribute has ARGB colours, the nearest colour is returned.

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.

Returns:

The corresponding ANSI foreground value.

__extern uint8_t cucul_attr_to_ansi_bg (uint32_t attr)

Get the ANSI background colour value for a given attribute. The returned value is either one of the CUCUL_RED, CUCUL_BLACK etc. predefined colours, or the special value CUCUL_DEFAULT meaning the media's default background value, or the special value CUCUL_TRANSPARENT.

If the attribute has ARGB colours, the nearest colour is returned.

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.

Returns:

The corresponding ANSI background value.

__extern uint16_t cucul_attr_to_rgb12_fg (uint32_t attr)

Get the 12-bit foreground colour value for a given attribute. The returned value is a native-endian encoded integer with each red, green and blue values encoded on 8 bits in the following order:

•

8-11 most significant bits: red

•

4-7 most significant bits: green

•

least significant bits: blue

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.

Returns:

The corresponding 12-bit RGB foreground value.

References CUCUL_DEFAULT, CUCUL_LIGHTGRAY, and CUCUL_TRANSPARENT.

__extern uint16_t cucul_attr_to_rgb12_bg (uint32_t attr)

Get the 12-bit background colour value for a given attribute. The returned value is a native-endian encoded integer with each red, green and blue values encoded on 8 bits in the following order:

•

8-11 most significant bits: red

•

4-7 most significant bits: green

•

least significant bits: blue

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.

Returns:

The corresponding 12-bit RGB background value.

References CUCUL_BLACK, CUCUL_DEFAULT, and CUCUL_TRANSPARENT.

__extern void cucul_attr_to_argb64 (uint32_t attr, uint8_t argb[8])

Get the 64-bit colour and alpha values for a given attribute. The values are written as 8-bit integers in the argb array in the following order:

•

argb[0]: background alpha value

•

argb[1]: background red value

•

argb[2]: background green value

•

argb[3]: background blue value

•

argb[4]: foreground alpha value

•

argb[5]: foreground red value

•

argb[6]: foreground green value

•

argb[7]: foreground blue value

This function never fails. If the attribute value is outside the expected 32-bit range, higher order bits are simply ignored.

Parameters:

attr The requested attribute value.
argb An array of 8-bit integers.

References CUCUL_BLACK, CUCUL_DEFAULT, CUCUL_LIGHTGRAY, and CUCUL_TRANSPARENT.

Referenced by cucul_render_canvas().