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