Skip to content
modkitv0.2

color.h

#include <modkit/color.h>9 functions · 17 macros

Color operations + an extended named palette.

The mk_color struct (RGBA8) and the MK_RGBA/MK_RGB/MK_ABGR packing macros live in types.h. This header adds the operations games reach for lerp, HSV, hex, normalized vec4 conversion plus a fuller set of named colors (raylib-style). Header-only, like math/ease.h.

Functions

mk__u8function

uint8_t mk__u8(float f)

Perform the u8 operation.

ParameterTypeDescription
ffloatValue for f.

Returns The resulting value.

mk_color_alphafunction

mk_color mk_color_alpha(mk_color c, uint8_t a)

Replace the alpha channel.

ParameterTypeDescription
cmk_colorValue for c.
auint8_tValue for a.

Returns The resulting value.

mk_color_from_hexfunction

mk_color mk_color_from_hex(uint32_t rgba)

Unpack a 0xRRGGBBAA value into a color (matches MK_RGBA order).

ParameterTypeDescription
rgbauint32_tValue for RGBA.

Returns The resulting value.

mk_color_from_hsvfunction

mk_color mk_color_from_hsv(float h, float s, float v, uint8_t a)

HSV to RGB.

h in [0,360) degrees, s/v in [0,1].

ParameterTypeDescription
hfloatValue for h.
sfloatValue for s.
vfloatValue for v.
auint8_tValue for a.

Returns The resulting value.

mk_color_from_vec4function

mk_color mk_color_from_vec4(mk_vec4 v)

Normalized vec4 (0..1) to color.

ParameterTypeDescription
vmk_vec4Value for v.

Returns The resulting value.

mk_color_lerpfunction

mk_color mk_color_lerp(mk_color a, mk_color b, float t)

Linear interpolation between two colors (per channel, including alpha).

ParameterTypeDescription
amk_colorValue for a.
bmk_colorValue for b.
tfloatValue for t.

Returns The resulting value.

mk_color_scalefunction

mk_color mk_color_scale(mk_color c, float s)

Scale RGB by a factor (alpha untouched), clamped to [0,255].

ParameterTypeDescription
cmk_colorValue for c.
sfloatValue for s.

Returns The resulting value.

mk_color_to_hsvfunction

void mk_color_to_hsv(mk_color c, float *h, float *s, float *v)

RGB to HSV.

Outputs h in [0,360), s/v in [0,1] (any of h/s/v may be NULL).

ParameterTypeDescription
cmk_colorValue for c.
hfloat *Value for h.
sfloat *Value for s.
vfloat *Value for v.

mk_color_to_vec4function

mk_vec4 mk_color_to_vec4(mk_color c)

Color to normalized vec4 (0..1), e.g.

ParameterTypeDescription
cmk_colorValue for c.

Returns The resulting value.

Macros

MK_COLOR_BEIGEdefine

MK_COLOR_BEIGE

Constant for color beige.

MK_COLOR_BROWNdefine

MK_COLOR_BROWN

Constant for color brown.

MK_COLOR_CYANdefine

MK_COLOR_CYAN

Constant for color cyan.

MK_COLOR_DARKGRAYdefine

MK_COLOR_DARKGRAY

Constant for color darkgray.

MK_COLOR_GOLDdefine

MK_COLOR_GOLD

Constant for color gold.

MK_COLOR_GRAYdefine

MK_COLOR_GRAY

Constant for color gray.

MK_COLOR_LIGHTGRAYdefine

MK_COLOR_LIGHTGRAY

Constant for color lightgray.

MK_COLOR_LIMEdefine

MK_COLOR_LIME

Constant for color lime.

MK_COLOR_MAGENTAdefine

MK_COLOR_MAGENTA

Constant for color magenta.

MK_COLOR_MAROONdefine

MK_COLOR_MAROON

Constant for color maroon.

MK_COLOR_NAVYdefine

MK_COLOR_NAVY

Constant for color navy.

MK_COLOR_ORANGEdefine

MK_COLOR_ORANGE

Constant for color orange.

MK_COLOR_PINKdefine

MK_COLOR_PINK

Constant for color pink.

MK_COLOR_PURPLEdefine

MK_COLOR_PURPLE

Constant for color purple.

MK_COLOR_SKYBLUEdefine

MK_COLOR_SKYBLUE

Constant for color skyblue.

MK_COLOR_TRANSPARENTdefine

MK_COLOR_TRANSPARENT

Constant for color transparent.

MK_COLOR_YELLOWdefine

MK_COLOR_YELLOW

Constant for color yellow.