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().