Kanzi Graphics Engine
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
kzc_color.h File Reference

Color structure and operations. More...

Data Structures

struct  KzcColorRGBA
 Structure of 4-component RGBA color. More...
 

Functions

KZ_INLINE void kzcColorRGBASet (struct KzcColorRGBA *color, kzFloat red, kzFloat green, kzFloat blue, kzFloat alpha)
 Sets a value for RGBA color. More...
 
KZ_INLINE void kzcColorRGBAScale (struct KzcColorRGBA *color, kzFloat scale)
 Scales color with given value. More...
 
KZ_INLINE void kzcColorRGBACopy (const struct KzcColorRGBA *sourceColor, struct KzcColorRGBA *destinationColor)
 Copies color to other. More...
 
KZ_INLINE void kzcColorRGBAAdd (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, struct KzcColorRGBA *destinationColor)
 Adds color A to color B component-wise. More...
 
KZ_INLINE void kzcColorRGBAAddScalar (const struct KzcColorRGBA *color, kzFloat scalar, struct KzcColorRGBA *destinationColor)
 Adds scalar to a color. More...
 
KZ_INLINE void kzcColorRGBASubtract (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, struct KzcColorRGBA *destinationColor)
 Subtracts color A from color B component-wise. More...
 
KZ_INLINE void kzcColorRGBASubstractScalar (const struct KzcColorRGBA *color, kzFloat scalar, struct KzcColorRGBA *destinationColor)
 Subtracts a scalar from a color. More...
 
KZ_INLINE void kzcColorRGBAMultiply (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, struct KzcColorRGBA *destinationColor)
 Multiplies color A by color B component-wise. More...
 
KZ_INLINE void kzcColorRGBAMultiplyScalar (const struct KzcColorRGBA *color, kzFloat scalar, struct KzcColorRGBA *destinationColor)
 Multiplies a color by a scalar. More...
 
KZ_INLINE void kzcColorRGBADivide (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, struct KzcColorRGBA *destinationColor)
 Divides color A by color B component-wise. More...
 
KZ_INLINE void kzcColorRGBADivideScalar (const struct KzcColorRGBA *color, kzFloat scalar, struct KzcColorRGBA *destinationColor)
 Divides a color by a scalar. More...
 
KZ_INLINE void kzcColorRGBAModulo (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, struct KzcColorRGBA *destinationColor)
 Finds modulo of division of color A by color B component-wise. More...
 
KZ_INLINE void kzcColorRGBAModuloScalar (const struct KzcColorRGBA *color, kzFloat scalar, struct KzcColorRGBA *destinationColor)
 Finds modulo of division of color by a scalar. More...
 
KZ_INLINE void kzcColorRGBAAbs (const struct KzcColorRGBA *color, struct KzcColorRGBA *out_color)
 Abs of a color. More...
 
KZ_INLINE void kzcColorRGBACeil (const struct KzcColorRGBA *color, struct KzcColorRGBA *out_color)
 Ceil of a color. More...
 
KZ_INLINE void kzcColorRGBAFloor (const struct KzcColorRGBA *color, struct KzcColorRGBA *out_color)
 Floor of a color. More...
 
KZ_INLINE void kzcColorRGBARound (const struct KzcColorRGBA *color, struct KzcColorRGBA *out_color)
 Round of a color. More...
 
KZ_INLINE void kzcColorRGBASqrt (const struct KzcColorRGBA *color, struct KzcColorRGBA *out_color)
 Square root of a color component-wise. More...
 
KZ_INLINE void kzcColorRGBAPow (const struct KzcColorRGBA *color, kzFloat exponent, struct KzcColorRGBA *out_color)
 Raises a color to power of 'exponent' component-wise. More...
 
KZ_INLINE struct KzcColorRGBA kzcColorRGBA (kzFloat r, kzFloat g, kzFloat b, kzFloat a)
 Returns new KzcColorRGBA according to r, g, b, a values. More...
 
KZ_INLINE struct KzcColorRGBA kzcColorRGBAMax (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB)
 Returns the component maximum of two colors. More...
 
KZ_INLINE struct KzcColorRGBA kzcColorRGBAMin (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB)
 Returns the component minimum of two colors. More...
 
KZ_INLINE struct KzcColorRGBA kzcColorRGBAStep (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB)
 Returns the component-wise step() of two colors. More...
 
kzBool kzcColorRGBAIsEqual (const struct KzcColorRGBA *color1, const struct KzcColorRGBA *color2)
 Compares if two colors are equal. More...
 
void kzcColorRGBAToHSL (const struct KzcColorRGBA *color, kzFloat *out_hue, kzFloat *out_saturation, kzFloat *out_lightness)
 Converts RGB color to HSL. More...
 
struct KzcColorRGBA kzcColorRGBAFromHSL (kzFloat hue, kzFloat saturation, kzFloat lightness)
 Converts HSL to RGBA color. More...
 
struct KzcColorRGBA kzcColorRGBABlend (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, kzFloat blendValue)
 Blends 2 colors, blend percentage clamped to [0, 1]. More...
 
struct KzcColorRGBA kzcColorRGBAInterpolate (const struct KzcColorRGBA *colorA, const struct KzcColorRGBA *colorB, kzFloat interpolationValue)
 Interpolates 2 colors, gives an interpolated color. More...
 
void kzcColorRGBASetComponent (struct KzcColorRGBA *color, kzUint component, kzFloat value)
 Sets an individual component by index. More...
 

Variables

struct KzcColorRGBA KZC_COLOR_BLACK_TRANSPARENT
 Constant invisible zero color. More...
 
struct KzcColorRGBA KZC_COLOR_BLACK
 Constant zero color with full alpha. More...
 
struct KzcColorRGBA KZC_COLOR_DARK_GRAY
 Dark gray color. More...
 
struct KzcColorRGBA KZC_COLOR_GRAY
 Gray color. More...
 
struct KzcColorRGBA KZC_COLOR_WHITE
 White color. More...
 
struct KzcColorRGBA KZC_COLOR_RED
 Red color. More...
 
struct KzcColorRGBA KZC_COLOR_GREEN
 Green color. More...
 
struct KzcColorRGBA KZC_COLOR_BLUE
 Blue color. More...
 
struct KzcColorRGBA KZC_COLOR_YELLOW
 Yellow color. More...
 
struct KzcColorRGBA KZC_COLOR_ORANGE
 Orange color. More...
 
struct KzcColorRGBA KZC_COLOR_LIME
 Lime color. More...
 
struct KzcColorRGBA KZC_COLOR_TEAL
 Teal color. More...
 
struct KzcColorRGBA KZC_COLOR_PURPLE
 Purple color. More...
 
struct KzcColorRGBA KZC_COLOR_PINK
 Pink color. More...
 
struct KzcColorRGBA KZC_COLOR_CYAN
 Cyan color. More...
 

Detailed Description

Color structure and operations.

Copyright 2008-2019 by Rightware. All rights reserved.

Function Documentation

KZ_INLINE void kzcColorRGBASet ( struct KzcColorRGBA color,
kzFloat  red,
kzFloat  green,
kzFloat  blue,
kzFloat  alpha 
)

Sets a value for RGBA color.

KZ_INLINE void kzcColorRGBAScale ( struct KzcColorRGBA color,
kzFloat  scale 
)

Scales color with given value.

KZ_INLINE void kzcColorRGBACopy ( const struct KzcColorRGBA sourceColor,
struct KzcColorRGBA destinationColor 
)

Copies color to other.

KZ_INLINE void kzcColorRGBAAdd ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
struct KzcColorRGBA destinationColor 
)

Adds color A to color B component-wise.

KZ_INLINE void kzcColorRGBAAddScalar ( const struct KzcColorRGBA color,
kzFloat  scalar,
struct KzcColorRGBA destinationColor 
)

Adds scalar to a color.

KZ_INLINE void kzcColorRGBASubtract ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
struct KzcColorRGBA destinationColor 
)

Subtracts color A from color B component-wise.

KZ_INLINE void kzcColorRGBASubstractScalar ( const struct KzcColorRGBA color,
kzFloat  scalar,
struct KzcColorRGBA destinationColor 
)

Subtracts a scalar from a color.

KZ_INLINE void kzcColorRGBAMultiply ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
struct KzcColorRGBA destinationColor 
)

Multiplies color A by color B component-wise.

KZ_INLINE void kzcColorRGBAMultiplyScalar ( const struct KzcColorRGBA color,
kzFloat  scalar,
struct KzcColorRGBA destinationColor 
)

Multiplies a color by a scalar.

KZ_INLINE void kzcColorRGBADivide ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
struct KzcColorRGBA destinationColor 
)

Divides color A by color B component-wise.

KZ_INLINE void kzcColorRGBADivideScalar ( const struct KzcColorRGBA color,
kzFloat  scalar,
struct KzcColorRGBA destinationColor 
)

Divides a color by a scalar.

KZ_INLINE void kzcColorRGBAModulo ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
struct KzcColorRGBA destinationColor 
)

Finds modulo of division of color A by color B component-wise.

KZ_INLINE void kzcColorRGBAModuloScalar ( const struct KzcColorRGBA color,
kzFloat  scalar,
struct KzcColorRGBA destinationColor 
)

Finds modulo of division of color by a scalar.

KZ_INLINE void kzcColorRGBAAbs ( const struct KzcColorRGBA color,
struct KzcColorRGBA out_color 
)

Abs of a color.

KZ_INLINE void kzcColorRGBACeil ( const struct KzcColorRGBA color,
struct KzcColorRGBA out_color 
)

Ceil of a color.

KZ_INLINE void kzcColorRGBAFloor ( const struct KzcColorRGBA color,
struct KzcColorRGBA out_color 
)

Floor of a color.

KZ_INLINE void kzcColorRGBARound ( const struct KzcColorRGBA color,
struct KzcColorRGBA out_color 
)

Round of a color.

KZ_INLINE void kzcColorRGBASqrt ( const struct KzcColorRGBA color,
struct KzcColorRGBA out_color 
)

Square root of a color component-wise.

KZ_INLINE void kzcColorRGBAPow ( const struct KzcColorRGBA color,
kzFloat  exponent,
struct KzcColorRGBA out_color 
)

Raises a color to power of 'exponent' component-wise.

KZ_INLINE struct KzcColorRGBA kzcColorRGBA ( kzFloat  r,
kzFloat  g,
kzFloat  b,
kzFloat  a 
)

Returns new KzcColorRGBA according to r, g, b, a values.

KZ_INLINE struct KzcColorRGBA kzcColorRGBAMax ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB 
)

Returns the component maximum of two colors.

KZ_INLINE struct KzcColorRGBA kzcColorRGBAMin ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB 
)

Returns the component minimum of two colors.

KZ_INLINE struct KzcColorRGBA kzcColorRGBAStep ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB 
)

Returns the component-wise step() of two colors.

kzBool kzcColorRGBAIsEqual ( const struct KzcColorRGBA color1,
const struct KzcColorRGBA color2 
)

Compares if two colors are equal.

void kzcColorRGBAToHSL ( const struct KzcColorRGBA color,
kzFloat out_hue,
kzFloat out_saturation,
kzFloat out_lightness 
)

Converts RGB color to HSL.

struct KzcColorRGBA kzcColorRGBAFromHSL ( kzFloat  hue,
kzFloat  saturation,
kzFloat  lightness 
)

Converts HSL to RGBA color.

Alpha will be 1.0f.

struct KzcColorRGBA kzcColorRGBABlend ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
kzFloat  blendValue 
)

Blends 2 colors, blend percentage clamped to [0, 1].

struct KzcColorRGBA kzcColorRGBAInterpolate ( const struct KzcColorRGBA colorA,
const struct KzcColorRGBA colorB,
kzFloat  interpolationValue 
)

Interpolates 2 colors, gives an interpolated color.

This function approaches colorB from colorA by stepping the individual components by interpolationValue. For example: colorA (1.0, 0.5, 0.0, 1.0), colorB (0.0, 1.0, 0.0, 1.0) with interpolationValue of 0.1 gives: result = (1.0 - 0.1, 0.5 + 0.1, 0.0 + 0.0, 1.0 + 0.0) = (0.9, 0.6, 0.0, 0.0).

void kzcColorRGBASetComponent ( struct KzcColorRGBA color,
kzUint  component,
kzFloat  value 
)

Sets an individual component by index.

Clamps the value to 0-1 range.

Variable Documentation

struct KzcColorRGBA KZC_COLOR_BLACK_TRANSPARENT

Constant invisible zero color.

struct KzcColorRGBA KZC_COLOR_BLACK

Constant zero color with full alpha.

struct KzcColorRGBA KZC_COLOR_DARK_GRAY

Dark gray color.

struct KzcColorRGBA KZC_COLOR_GRAY

Gray color.

struct KzcColorRGBA KZC_COLOR_WHITE

White color.

struct KzcColorRGBA KZC_COLOR_RED

Red color.

struct KzcColorRGBA KZC_COLOR_GREEN

Green color.

struct KzcColorRGBA KZC_COLOR_BLUE

Blue color.

struct KzcColorRGBA KZC_COLOR_YELLOW

Yellow color.

struct KzcColorRGBA KZC_COLOR_ORANGE

Orange color.

struct KzcColorRGBA KZC_COLOR_LIME

Lime color.

struct KzcColorRGBA KZC_COLOR_TEAL

Teal color.

struct KzcColorRGBA KZC_COLOR_PURPLE

Purple color.

struct KzcColorRGBA KZC_COLOR_PINK

Pink color.

struct KzcColorRGBA KZC_COLOR_CYAN

Cyan color.