Public Types | Public Member Functions

PixelRGB Class Reference

Represents a 24-bit RGB pixel, and can perform compositing operations on it. More...

List of all members.

Public Types

enum  { indexR = 0, indexG = 1, indexB = 2 }
 

The indexes of the different components in the byte layout of this type of colour.

More...

Public Member Functions

 PixelRGB () noexcept
 Creates a pixel without defining its colour.
 ~PixelRGB () noexcept
 PixelRGB (const uint32 argb) noexcept
 Creates a pixel from a 32-bit argb value.
forcedinline uint32 getARGB () const noexcept
forcedinline uint32 getUnpremultipliedARGB () const noexcept
forcedinline uint32 getRB () const noexcept
forcedinline uint32 getAG () const noexcept
forcedinline uint8 getAlpha () const noexcept
forcedinline uint8 getRed () const noexcept
forcedinline uint8 getGreen () const noexcept
forcedinline uint8 getBlue () const noexcept
forcedinline void blend (const PixelARGB &src) noexcept
 Blends another pixel onto this one.
forcedinline void blend (const PixelRGB &src) noexcept
forcedinline void blend (const PixelAlpha &src) noexcept
template<class Pixel >
forcedinline void blend (const Pixel &src, uint32 extraAlpha) noexcept
 Blends another pixel onto this one, applying an extra multiplier to its opacity.
template<class Pixel >
forcedinline void tween (const Pixel &src, const uint32 amount) noexcept
 Blends another pixel with this one, creating a colour that is somewhere between the two, as specified by the amount.
template<class Pixel >
forcedinline void set (const Pixel &src) noexcept
 Copies another pixel colour over this one.
forcedinline void setAlpha (const uint8) noexcept
 This method is included for compatibility with the PixelARGB class.
forcedinline void multiplyAlpha (int) noexcept
 Multiplies the colour's alpha value with another one.
void setARGB (const uint8, const uint8 r_, const uint8 g_, const uint8 b_) noexcept
 Sets the pixel's colour from individual components.
forcedinline void premultiply () noexcept
 Premultiplies the pixel's RGB values by its alpha.
forcedinline void unpremultiply () noexcept
 Unpremultiplies the pixel's RGB values.
forcedinline void desaturate () noexcept

Detailed Description

Represents a 24-bit RGB pixel, and can perform compositing operations on it.

This is used internally by the imaging classes.

See also:
PixelARGB

Member Enumeration Documentation

anonymous enum

The indexes of the different components in the byte layout of this type of colour.

Enumerator:
indexR 
indexG 
indexB 

Constructor & Destructor Documentation

PixelRGB::PixelRGB (  )

Creates a pixel without defining its colour.

PixelRGB::~PixelRGB (  )
PixelRGB::PixelRGB ( const uint32  argb )

Creates a pixel from a 32-bit argb value.

(The argb format is that used by PixelARGB)


Member Function Documentation

forcedinline uint32 PixelRGB::getARGB (  ) const
forcedinline uint32 PixelRGB::getUnpremultipliedARGB (  ) const
forcedinline uint32 PixelRGB::getRB (  ) const
forcedinline uint32 PixelRGB::getAG (  ) const
forcedinline uint8 PixelRGB::getAlpha (  ) const
forcedinline uint8 PixelRGB::getRed (  ) const
forcedinline uint8 PixelRGB::getGreen (  ) const
forcedinline uint8 PixelRGB::getBlue (  ) const
forcedinline void PixelRGB::blend ( const PixelARGB src )

Blends another pixel onto this one.

This takes into account the opacity of the pixel being overlaid, and blends it accordingly.

forcedinline void PixelRGB::blend ( const PixelRGB src )
forcedinline void PixelRGB::blend ( const PixelAlpha src )
template<class Pixel >
forcedinline void PixelRGB::blend ( const Pixel &  src,
uint32  extraAlpha 
)

Blends another pixel onto this one, applying an extra multiplier to its opacity.

The opacity of the pixel being overlaid is scaled by the extraAlpha factor before being used, so this can blend semi-transparently from a PixelRGB argument.

template<class Pixel >
forcedinline void PixelRGB::tween ( const Pixel &  src,
const uint32  amount 
)

Blends another pixel with this one, creating a colour that is somewhere between the two, as specified by the amount.

template<class Pixel >
forcedinline void PixelRGB::set ( const Pixel &  src )

Copies another pixel colour over this one.

This doesn't blend it - this colour is simply replaced by the other one. Because PixelRGB has no alpha channel, any alpha value in the source pixel is thrown away.

forcedinline void PixelRGB::setAlpha ( const   uint8 )

This method is included for compatibility with the PixelARGB class.

forcedinline void PixelRGB::multiplyAlpha ( int   )

Multiplies the colour's alpha value with another one.

void PixelRGB::setARGB ( const   uint8,
const uint8  r_,
const uint8  g_,
const uint8  b_ 
)

Sets the pixel's colour from individual components.

forcedinline void PixelRGB::premultiply (  )

Premultiplies the pixel's RGB values by its alpha.

forcedinline void PixelRGB::unpremultiply (  )

Unpremultiplies the pixel's RGB values.

forcedinline void PixelRGB::desaturate (  )

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines