| TGX 1.1.3 A tiny 2D/3D graphics library optimized for 32 bits microcontrollers.

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
tgx::RGBf Struct Reference

Color in R,G,B float format. More...

`#include <Color.h>`

## Public Member Functions
| RGBf ()=default
| Default constructor. More...
constexpr | RGBf (float r, float g, float b)
| Constructor from raw r,g,b values in [0.0f, 1.0f].
constexpr | RGBf (const fVec3 &v)
| Constructor from a fVec3 with components (x=R, y=G, z=B) in [0.0f, 1.0f].
constexpr | RGBf (const fVec4 &v)
| Constructor from a fVec4 with components (x=R, y=G, z=B, w=ignored) in [0.0f, 1.0f].
constexpr | RGBf (uint16_t val)
| Constructor from a uint16_t (seen as RGB565).
constexpr | RGBf (uint32_t val)
| Constructor from a uint32_t (seen as RGB32, the A component is ignored).
constexpr | RGBf (uint64_t val)
| Constructor from a uint64_t (seen as RGB64, the A component is ignored).
constexpr | RGBf (const RGBf &)=default
| Default Copy constructor.
constexpr | RGBf (const RGB565 &c)
| Constructor from a RGB565 color.
constexpr | RGBf (const RGB24 &c)
| Constructor from a RGB24 color.
constexpr | RGBf (const RGB32 &c)
| Constructor from a RGB32 color. More...
constexpr | RGBf (const RGB64 &c)
| Constructor from a RGB64 color. More...
| RGBf (const HSV &c)
| Constructor from a HSV color.
| operator fVec3 () const
| Cast into an fVec3 in [0.0f, 1.0f].
RGBf & | operator= (const RGBf &)=default
| Default assignment operator.
RGBf & | operator= (const RGB565 &c)
| Assignment operator from a RGB565 color.
RGBf & | operator= (const RGB24 &c)
| Assignment operator from a RGB24 color.
RGBf & | operator= (const RGB32 &c)
| Assignment operator from a RGB32 color. More...
RGBf & | operator= (const RGB64 &c)
| Assignment operator from a RGB64 color. More...
RGBf & | operator= (const HSV &c)
| Assignment operator from a HSV color.
RGBf & | operator= (const fVec3 &v)
| Assignment operator from a fVec3 with components (x=R, y=G, z=B) in [0.0f, 1.0f].
RGBf & | operator= (const fVec4 &v)
| Assignment operator from a fVec4 with components (x=R, y=G, z=B, w=ignored) in [0.0f, 1.0f].
TGX_INLINE void | operator+= (const RGBf &c)
| Add another color, component by component.
TGX_INLINE void | operator-= (const RGBf &c)
| Substract another color, component by component.
TGX_INLINE void | operator*= (const RGBf &c)
| Multiply each channel by the same channel on c.
TGX_INLINE RGBf | operator* (const RGBf &c) const
| Return the color obtained by multipliying the channels of both colors together.
TGX_INLINE void | operator*= (float a)
| Multiply each channel by a constant.
TGX_INLINE RGBf | operator* (float a) const
| Return the color where all components are multiplied by a.
constexpr bool | operator== (const RGBf &c) const
| Equality comparator.
constexpr bool | operator!= (const RGBf &c) const
| Inequality comparator.
TGX_INLINE void | clamp ()
| Clamp all color channel to [0.0f,1.0f].
TGX_INLINE void | blend256 (const RGBf &fg_col, uint32_t alpha)
| alpha-blend `fg_col` over this one with a given opacity in the integer range 0 (fully transparent) to 256 (fully opaque). More...
TGX_INLINE void | blend (const RGBf &fg_col, float alpha)
| alpha-blend `fg_col` over this one with a given opacity in the range 0.0f (fully transparent) to 1.0f (fully opaque). More...
TGX_INLINE void | mult256 (int mr, int mg, int mb)
| multiply each color component by a given factor m/256 with m in [0,256].
TGX_INLINE void | mult256 (int mr, int mg, int mb, int ma)
| multiply each color component by a given factor m/256 with m in [0,256]. More...
TGX_INLINE void | premultiply ()
| Dummy function for compatibility with color types having an alpha channel. More...
TGX_INLINE float | opacity () const
| Dummy function for compatibility with color types having an alpha channel. More...
TGX_INLINE void | setOpacity (float op)
| Dummy function for compatibility with color types having an alpha channel. More...

## Public Attributes
float | R
| Red channel.
float | G
| Green channel.
float | B
| Blue channel.

## Detailed Description

Color in R,G,B float format.

Occupies 4*3 = 12 bytes in memory, aligned as float.

- There is no alpha channel.
- Useful for high precision computation. This color format is used internally by the 3D rasterizer for all color interpolation/shading.

## Constructor & Destructor Documentation

## ◆ RGBf() [1/3]

tgx::RGBf::RGBf | ( |  | ) |
| default

Default constructor.

Color is undefined.

## ◆ RGBf() [2/3]

constexpr tgx::RGBf::RGBf | ( | const RGB32 & | c | ) |
| inline constexpr

Constructor from a RGB32 color.

The A component of c is ignored.

## ◆ RGBf() [3/3]

constexpr tgx::RGBf::RGBf | ( | const RGB64 & | c | ) |
| inline constexpr

Constructor from a RGB64 color.

The A component of c is ignored.

## Member Function Documentation

## ◆ operator=() [1/2]

RGBf & tgx::RGBf::operator= | ( | const RGB32 & | c | ) |
| inline

Assignment operator from a RGB32 color.

The component A is ignored.

## ◆ operator=() [2/2]

RGBf & tgx::RGBf::operator= | ( | const RGB64 & | c | ) |
| inline

Assignment operator from a RGB64 color.

The component A is ignored.

## ◆ blend256()

TGX_INLINE void tgx::RGBf::blend256 | ( | const RGBf & | fg_col,
|  | uint32_t | alpha
| ) |  |
| inline

alpha-blend `fg_col` over this one with a given opacity in the integer range 0 (fully transparent) to 256 (fully opaque).

Parameters

  fg_col | The foreground color.
  alpha | The opacity/alpha multiplier in [0,256].

## ◆ blend()

TGX_INLINE void tgx::RGBf::blend | ( | const RGBf & | fg_col,
|  | float | alpha
| ) |  |
| inline

alpha-blend `fg_col` over this one with a given opacity in the range 0.0f (fully transparent) to 1.0f (fully opaque).

Parameters

  fg_col | The foreground color.
  alpha | The opacity/alpha multiplier in [0.0f, 1.0f].

## ◆ mult256()

TGX_INLINE void tgx::RGBf::mult256 | ( | int | mr,
|  | int | mg,
|  | int | mb,
|  | int | ma
| ) |  |
| inline

multiply each color component by a given factor m/256 with m in [0,256].

Parameter ma is ignored since there is not alpha channel.

## ◆ premultiply()

TGX_INLINE void tgx::RGBf::premultiply | ( |  | ) |
| inline

Dummy function for compatibility with color types having an alpha channel.

Does nothing since the color is always fully opaque.

## ◆ opacity()

TGX_INLINE float tgx::RGBf::opacity | ( |  | ) | const
| inline

Dummy function for compatibility with color types having an alpha channel.

Return 1.0f (fully opaque)

## ◆ setOpacity()

TGX_INLINE void tgx::RGBf::setOpacity | ( | float | op | ) |
| inline

Dummy function for compatibility with color types having an alpha channel.

Does nothing since the color is always fully opaque.

The documentation for this struct was generated from the following file:

- src/Color.h