TRgb Class Reference

class TRgb

24-bit RGB colour value with 8 bits each for red, green and blue.

All Graphics drawing functions are specified in terms of a 32-bit TRgb colour containing the three colour values plus 8 bits for alpha channel. For hardware which does not support 24-bit colour, a mapping from TRgb to display colours is performed.

Generally, the convention for the alpha blending fact is 0 = transparent, 255 = opaque, unless otherwise stated. The exception to this are the TRgb constructor taking a single value, where the top byte of the passed in parameter is used for alpha information and the function Value() , which returns alpha information in the top byte. In both these cases, 0 means opaque, 255 means transparent.

The supported display modes are enumerated in the TDisplayMode type. In each display mode a unique index can represent each physical colours supported, and which can be mapped onto a full RGB value. The mappings are as follows:

16-colour displays use the EGA colour set: black, white, and then both light and dark versions of grey, red, green, blue, cyan, magenta and yellow

256-colour displays support 216 colours made up of 6x6x6 RGB values, each containing all possible multiples of 51 for R,G,B values. Additionally, all remaining 10 shades of pure red, green, blue and grey are represented, by adding all remaining multiples of 17. This use of 256 colours is sometimes known as the Netscape colour cube.

4096-colour displays effectively support RGB values with 4 bits per primary colour

64k-colour displays effectively support RGB values with 5 bits allocated to red, 6 to green and 5 to blue

16 million-colour displays support true colour with 8 bits allocated to each primary colour

TDisplayMode DynamicPalette

Public Member Functions
TRgb ()
TRgb ( TUint32 )
TRgb ( TUint32 , TInt )
TRgb ( TInt , TInt , TInt )
TRgb ( TInt , TInt , TInt , TInt )
TInt Alpha ()
TInt Blue ()
IMPORT_C TRgb Color16 ( TInt )
IMPORT_C TInt Color16 ()
IMPORT_C TRgb Color16M ( TInt )
IMPORT_C TInt Color16M ()
IMPORT_C TRgb Color16MA ( TUint )
IMPORT_C TUint Color16MA ()
IMPORT_C TRgb Color16MAP ( TUint )
IMPORT_C TUint Color16MAP ()
IMPORT_C TRgb Color16MU ( TInt )
IMPORT_C TInt Color16MU ()
IMPORT_C TRgb Color256 ( TInt )
IMPORT_C TInt Color256 ()
IMPORT_C TRgb Color4K ( TInt )
IMPORT_C TInt Color4K ()
IMPORT_C TRgb Color64K ( TInt )
IMPORT_C TInt Color64K ()
IMPORT_C TInt Difference (const TRgb &)
IMPORT_C void ExternalizeL ( RWriteStream &)
IMPORT_C TRgb Gray16 ( TInt )
IMPORT_C TInt Gray16 ()
IMPORT_C TRgb Gray2 ( TInt )
IMPORT_C TInt Gray2 ()
IMPORT_C TRgb Gray256 ( TInt )
IMPORT_C TInt Gray256 ()
IMPORT_C TRgb Gray4 ( TInt )
IMPORT_C TInt Gray4 ()
TInt Green ()
TUint32 Internal ()
IMPORT_C void InternalizeL ( RReadStream &)
TInt Red ()
IMPORT_C void SetAlpha ( TInt )
IMPORT_C void SetBlue ( TInt )
IMPORT_C void SetGreen ( TInt )
void SetInternal ( TUint32 )
IMPORT_C void SetRed ( TInt )
TUint32 Value ()
TInt _Color16M ()
TRgb _Color16M ( TInt )
TUint _Color16MA ()
TRgb _Color16MA ( TUint )
IMPORT_C TUint _Color16MAP ()
IMPORT_C TRgb _Color16MAP ( TUint )
TInt _Color16MU ()
TRgb _Color16MU ( TInt )
TInt _Color4K ()
TRgb _Color4K ( TInt )
TInt _Color64K ()
TRgb _Color64K ( TInt )
TInt _Gray16 ()
TRgb _Gray16 ( TInt )
TInt _Gray2 ()
TRgb _Gray2 ( TInt )
TInt _Gray256 ()
TRgb _Gray256 ( TInt )
TInt _Gray4 ()
TRgb _Gray4 ( TInt )
TBool operator!= (const TRgb &)
TRgb operator& (const TRgb &)
TRgb & operator&= (const TRgb &)
TBool operator== (const TRgb &)
TRgb operator^ (const TRgb &)
TRgb & operator^= (const TRgb &)
TRgb operator| (const TRgb &)
TRgb & operator|= (const TRgb &)
TRgb operator~ ()
Private Attributes
TUint32 iValue

Constructor & Destructor Documentation

TRgb()

TRgb ( ) [inline]

Constructs a TRgb initialised to KRgbWhite.

TRgb(TUint32)

TRgb ( TUint32 aValue ) [inline]

Constructs a TRgb directly from a single 32-bit integer.

The integer is of the form 0xaabbggrr, where bb is the hex number for blue, gg is the hex number for green, rr is the hex number for red, and aa is the hex number for "transparency" alpha (0 means opaque, 255 means transparent).

This constructor is deprecated. The byte order of Red ,Green and Blue does not match other constructors and methods in this class, and the meaning of alpha is reversed compared to current convention.

For example, TRgb(0x00080402) using this constructor can be replaced with the 3 colour constructor TRgb(2,4,8). The equivalent explicit alpha constructors are TRgb(0x020408,0xff) and TRgb(2,4,8,255). The equivalent call to SetInternal is SetInternal(0xff020408).

This constructor is deprecated. Use other constructors or SetInternal() instead.

Parameters

TUint32 aValue Integer representing colour value. Takes form 0x00bbggrr.

TRgb(TUint32, TInt)

TRgb ( TUint32 aInternalValue,
TInt aAlpha
) [inline]

Constructs a TRgb from a 32-bit integer (which corresponds to a colour) and from an alpha value.

The first parameter is of the form 0x00rrggbb, where rr is the hex number for red, gg is the hex number for green, and bb is the hex number for blue.

The second parameter corresponds to an alpha channel (0 means transparent, 255 means opaque).

For example, TRgb(2,4,8,255) using the 3 colour+alpha constructor is equal to TRgb(0x00020408, 255) using this constructor.

This constructor, which implements alpha in the conventional way, replaces TRgb( TUint32 aValue ) which is deprecated.

Parameters

TUint32 aInternalValue Integer representing a colour value, which takes the form 0x00rrggbb.
TInt aAlpha Alpha component of the colour (0 - 255).

TRgb(TInt, TInt, TInt)

TRgb ( TInt aRed,
TInt aGreen,
TInt aBlue
) [inline]

Constructs a TRgb from its three component colours.

Each colour has a value between 0 and 255. The alpha component is always set to opaque (255)

Parameters

TInt aRed Red component of the colour (0 - 255).
TInt aGreen Green component of the colour (0 - 255).
TInt aBlue Blue component of the colour (0 - 255).

TRgb(TInt, TInt, TInt, TInt)

TRgb ( TInt aRed,
TInt aGreen,
TInt aBlue,
TInt aAlpha
) [inline]

Constructs a TRgb from its three colour components and alpha component.

Each component has a value between 0 and 255. The fourth parameter corresponds to an alpha channel (0 means transparent, 255 means opaque).

This constructor, which implements alpha in the conventional way, replaces TRgb( TUint32 aValue ) which is deprecated.

Parameters

TInt aRed Red component of the colour (0 - 255).
TInt aGreen Green component of the colour (0 - 255).
TInt aBlue Blue component of the colour (0 - 255).
TInt aAlpha Alpha component of the colour (0 - 255).

Member Functions Documentation

Alpha()

TInt Alpha ( ) const [inline]

Gets the alpha component.

Blue()

TInt Blue ( ) const [inline]

Gets the blue component.

Color16(TInt)

IMPORT_C TRgb Color16 ( TInt aColor16 ) [static]

Gets TRgb from 4 bit colour index.

The function takes a 4 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor16 4 bit index into a colour palette

Color16()

IMPORT_C TInt Color16 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color16M(TInt)

IMPORT_C TRgb Color16M ( TInt aColor16M ) [static]

Gets TRgb from 16M colour index.

The function takes a 24 bit index into a colour palette and returns the TRgb whose red, green and blue values represent it exactly.

Parameters

TInt aColor16M 24 bit index into a colour palette

Color16M()

IMPORT_C TInt Color16M ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color16MA(TUint)

IMPORT_C TRgb Color16MA ( TUint aARGB ) [static]

Gets TRgb from 16MA colour index. The function takes a 32 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green, blue and alpha values represent it exactly.

Parameters

TUint aARGB The color - A, R, G, B bytes. / BGRA - little endian format /

Color16MA()

IMPORT_C TUint Color16MA ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color16MAP(TUint)

IMPORT_C TRgb Color16MAP ( TUint aARGB ) [static]

Gets TRgb from 16MAP colour index. The function takes a 32 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green, and blue vales are divided by the alpha value.

Parameters

TUint aARGB The pre-multiplied (EColor16MAP) color value.

Color16MAP()

IMPORT_C TUint Color16MAP ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode. pre-multiplies the alpha channels with the color channel.

Color16MU(TInt)

IMPORT_C TRgb Color16MU ( TInt a0RGB ) [static]

Gets TRgb from 16MU colour index. The function takes a 24 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green and blue values represent it exactly.

Parameters

TInt a0RGB The color - 0, R, G, B bytes. / BGR0 - little endian format /

Color16MU()

IMPORT_C TInt Color16MU ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color256(TInt)

IMPORT_C TRgb Color256 ( TInt aColor256 ) [static]

Gets TRgb from 8 bit colour index.

The function takes an 8 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor256 8 bit index into a colour palette.

Color256()

IMPORT_C TInt Color256 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color4K(TInt)

IMPORT_C TRgb Color4K ( TInt aColor4K ) [static]

Gets TRgb from 4K colour index.

The function takes a 12 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor4K 12 bit index into a colour palette

Color4K()

IMPORT_C TInt Color4K ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Color64K(TInt)

IMPORT_C TRgb Color64K ( TInt aColor64K ) [static]

Gets TRgb from 64K colour index.

The function takes a 16 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor64K 16 bit index into a colour palette

Color64K()

IMPORT_C TInt Color64K ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Difference(const TRgb &)

IMPORT_C TInt Difference ( const TRgb & aColor ) const

Gets the difference between two TRgbs.

This difference is defined as the sum of the absolute values of the difference in the red, green and blue components.

Parameters

const TRgb & aColor The TRgb to be compared.

ExternalizeL(RWriteStream &)

IMPORT_C void ExternalizeL ( RWriteStream & aStream ) const

Externalises a TRgb object to a stream.

The presence of this function means that the standard templated stream operator<<() is available to externalise objects of this class.

Parameters

RWriteStream & aStream Stream to which the object is externalised.

Gray16(TInt)

IMPORT_C TRgb Gray16 ( TInt aGray16 ) [static]

Gets TRgb from 16 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray16 Grayscale value to be converted.

Gray16()

IMPORT_C TInt Gray16 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Gray2(TInt)

IMPORT_C TRgb Gray2 ( TInt aGray2 ) [static]

Gets TRgb from 2 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray2 Grayscale value to be converted.

Gray2()

IMPORT_C TInt Gray2 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Gray256(TInt)

IMPORT_C TRgb Gray256 ( TInt aGray256 ) [static]

Gets TRgb from 256 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray256 Grayscale value to be converted.

Gray256()

IMPORT_C TInt Gray256 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Gray4(TInt)

IMPORT_C TRgb Gray4 ( TInt aGray4 ) [static]

Gets TRgb from 4 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray4 Grayscale value to be converted.

Gray4()

IMPORT_C TInt Gray4 ( ) const

Gets the index of the closest TRgb value to this, based on the matching display mode.

Green()

TInt Green ( ) const [inline]

Gets the green component.

Internal()

TUint32 Internal ( ) const [inline]

Gets the 32-bit value of the TRgb as an integer.

InternalizeL(RReadStream &)

IMPORT_C void InternalizeL ( RReadStream & aStream )

Internalises a TRgb object from a stream.

The presence of this function means that the standard templated stream operator>>() is available to internalise objects of this class.

operator>>()

Parameters

RReadStream & aStream Stream from which the object is internalised.

Red()

TInt Red ( ) const [inline]

Gets the red component.

SetAlpha(TInt)

IMPORT_C void SetAlpha ( TInt aAlpha )

Sets the alpha component.

Parameters

TInt aAlpha Alpha component (0 - 255).

SetBlue(TInt)

IMPORT_C void SetBlue ( TInt aBlue )

Sets the blue component.

Parameters

TInt aBlue Blue component (0 - 255).

SetGreen(TInt)

IMPORT_C void SetGreen ( TInt aGreen )

Sets the green component.

Parameters

TInt aGreen Green component (0 - 255).

SetInternal(TUint32)

void SetInternal ( TUint32 aInternal ) [inline]

Sets the 32-bit value of the TRgb as a 32-bit integer.

Parameters

TUint32 aInternal Colour internal representation. Has the form 0xaarrggbb.

SetRed(TInt)

IMPORT_C void SetRed ( TInt aRed )

Sets the red component.

Parameters

TInt aRed Red component (0 - 255).

Value()

TUint32 Value ( ) const [inline]

Gets the 32-bit value of the TRgb as an integer. This function is deprecated. Use Internal() instead. Note: the order of Red, Green and Blue components returned by this method is reversed compared to all other methods. The alpha value is also reversed in meaning compared to current convention, such that 0 represents opaque and 0xff represents transparent.

_Color16M()

TInt _Color16M ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Color16M(TInt)

TRgb _Color16M ( TInt aColor16M ) [static, inline]

Gets TRgb from 16M colour index.

The function takes a 24 bit index into a colour palette and returns the TRgb whose red, green and blue values represent it exactly.

Parameters

TInt aColor16M 24 bit index into a colour palette

_Color16MA()

TUint _Color16MA ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Color16MA(TUint)

TRgb _Color16MA ( TUint aARGB ) [static, inline]

Gets TRgb from 16MA colour index. The function takes a 32 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green, blue and alpha values represent it exactly.

Parameters

TUint aARGB The color - A, R, G, B bytes. / BGR0 - little endian format /

_Color16MAP()

IMPORT_C TUint _Color16MAP ( ) const

Converts the TRgb to EColor16MAP (with color channels pre-multiplied with the alpha channel.

_Color16MAP(TUint)

IMPORT_C TRgb _Color16MAP ( TUint aARGB ) [static]

Gets TRgb from 16MAP colour index. The function takes a 32 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green, and blue vales are divided by the alpha value.

Parameters

TUint aARGB The pre-multiplied (EColor16MAP) color value.

_Color16MU()

TInt _Color16MU ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Color16MU(TInt)

TRgb _Color16MU ( TInt a0RGB ) [static, inline]

Gets TRgb from 16MU colour index. The function takes a 24 bit colour value with eight bits for each component, blue in the low byte, and returns the TRgb whose red, green and blue values represent it exactly.

Parameters

TInt a0RGB The color - 0, R, G, B bytes. / BGR0 - little endian format /

_Color4K()

TInt _Color4K ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Color4K(TInt)

TRgb _Color4K ( TInt aColor4K ) [static, inline]

Gets TRgb from 4K colour index.

The function takes a 12 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor4K 12 bit index into a colour palette

_Color64K()

TInt _Color64K ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Color64K(TInt)

TRgb _Color64K ( TInt aColor64K ) [static, inline]

Gets TRgb from 64K colour index.

The function takes a 16 bit index into a colour palette and returns a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aColor64K 16 bit index into a colour palette

_Gray16()

TInt _Gray16 ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Gray16(TInt)

TRgb _Gray16 ( TInt aGray16 ) [static, inline]

Gets TRgb from 16 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray16 Grayscale value to be converted.

_Gray2()

TInt _Gray2 ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Gray2(TInt)

TRgb _Gray2 ( TInt aGray2 ) [static, inline]

Gets TRgb from 2 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray2 Grayscale value to be converted.

_Gray256()

TInt _Gray256 ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Gray256(TInt)

TRgb _Gray256 ( TInt aGray256 ) [static, inline]

Gets TRgb from 256 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray256 Grayscale value to be converted.

_Gray4()

TInt _Gray4 ( ) const [inline]

Gets the index of the closest TRgb value to this, based on the matching display mode.

_Gray4(TInt)

TRgb _Gray4 ( TInt aGray4 ) [static, inline]

Gets TRgb from 4 level grayscale.

The function takes a grayscale argument and return a TRgb whose red, green and blue values are set to an appropriate level.

Parameters

TInt aGray4 Grayscale value to be converted.

operator!=(const TRgb &)

TBool operator!= ( const TRgb & aColor ) const [inline]

Compares this colour with the specified colour for inequality.

Two colours are unequal if one at least one of their red, green and blue components are unequal.

Parameters

const TRgb & aColor Colour to be compared.

operator&(const TRgb &)

TRgb operator& ( const TRgb & aColor ) [inline]

Bitwise logical AND operator.

Parameters

const TRgb & aColor Colour to be compared.

operator&=(const TRgb &)

TRgb & operator&= ( const TRgb & aColor ) [inline]

Logical AND assignment operator.

The operator ANDs the first operand with the second and then assigns the result back to the first operand.

Note:

This operates in the TRgb domain. Graphics defines logical operations for drawing primitives which operate in the device colour domain.

Parameters

const TRgb & aColor Colour to be compared.

operator==(const TRgb &)

TBool operator== ( const TRgb & aColor ) const [inline]

Compares this colour with the specified colour for equality.

For two colours to be equal, their red, green and blue components must all be equal.

Parameters

const TRgb & aColor Colour to be compared.

operator^(const TRgb &)

TRgb operator^ ( const TRgb & aColor ) [inline]

Bitwise EXCLUSIVE OR operator

Parameters

const TRgb & aColor Colour to be compared.

operator^=(const TRgb &)

TRgb & operator^= ( const TRgb & aColor ) [inline]

Logical EXCLUSIVE OR assignment operator.

The operator Exclusive ORs the first operand with the second and then assigns the result back to the first operand.

Note:

This operates in the TRgb domain. Graphics defines logical operations for drawing primitives which operate in the device colour domain.

Parameters

const TRgb & aColor Colour to be compared.

operator|(const TRgb &)

TRgb operator| ( const TRgb & aColor ) [inline]

Bitwise logical OR operator.

Parameters

const TRgb & aColor Colour to be compared.

operator|=(const TRgb &)

TRgb & operator|= ( const TRgb & aColor ) [inline]

Logical OR assignment operator.

The operator ORs the first operand with the second and then assigns the result back to the first operand.

Note:

This operates in the TRgb domain. Graphics defines logical operations for drawing primitives which operate in the device colour domain.

Parameters

const TRgb & aColor Colour to be compared.

operator~()

TRgb operator~ ( ) const [inline]

Bitwise logical inversion operator.

Member Data Documentation

TUint32 iValue

TUint32 iValue [private]