CPalette Class Reference

#include <gdi.h>

Link against: gdi.lib

class CPalette : public CBase

Inherits from

  • CPalette

    Detailed Description

    Provides user-definable palette support to the GDI.

    A palette is a user-defined set of colours, which is a subset of the full range of 24-bit colours. This allows users the advantages of having a low bpp colour mode whilst being able to specify the colours available in that mode. To give an example, the EColor16 mode provides a palette of 16 colours as it provides a mapping between an integer index and a TRgb colour (see the table EGA Low-colour constants). Only a palette of 16 colour enables you to change the palette. Palettes are also used to allow 24-bit bitmaps to be stored in a more compressed form by finding the actual number of different colours used in the bitmap, creating a palette to allow the mapping of these colours to a smaller index space, and encoding the bitmaps pixels using indexes to this new index space.

    A palette has a size which is set at its creation and cannot be altered the number of entries in the palette. Each entry in a palette is a mapping between that entrys index and a TRgb value. Palette entries can be got and set at any time between the palettes creation and destruction. The GDIs palette support also provides functions to find the nearest palette colour to a requested TRgb colour.

    Member Attribute Documentation

    iArray

    TRgb *iArray[protected]

    iNumEntries

    TInt iNumEntries[protected]

    Constructor & Destructor Documentation

    CPalette ( )

    IMPORT_CCPalette()[protected]

    ~CPalette ( )

    IMPORT_C~CPalette()

    Destructor.

    Member Function Documentation

    Clear ( )

    IMPORT_C voidClear()

    Clears all the entries in the palette to TRgb(0).

    ConstructL ( TInt )

    voidConstructL(TIntaNumberOfEntries)[protected]

    Entries ( )

    TInt Entries()const [inline]

    Gets the number of entries in the palette

    Returns: The number of entries in the palette.

    GetDataPtr ( TInt, TInt, TPtr8 & )

    IMPORT_C voidGetDataPtr(TIntaFirstColor,
    TIntaNumColors,
    TPtr8 &aPtr
    )

    Returns a descriptor over the palette entries for the specifed colors. It is designed so that the descriptor can be passed to another thread and that thread copy the relevant entries.

    ParameterDescription
    aFirstColorThe first colour.
    aNumColorsNumber of colours.
    aPtrDescriptor.

    GetEntry ( TInt )

    IMPORT_C TRgbGetEntry(TIntaPaletteIndex)const

    Gets the RGB value of the palette entry at aPaletteIndex.

    ParameterDescription
    aPaletteIndexThe index of the palette entry to get.

    Returns: The RGB value of the palette entry

    NearestEntry ( const TRgb & )

    IMPORT_C TRgbNearestEntry(const TRgb &aColor)const

    Gets the colour in the palette which is closest to the specified colour.

    ParameterDescription
    aColorThe colour to find.

    Returns: The colour in the palette which is closest to the specified colour.

    NearestIndex ( const TRgb & )

    IMPORT_C TIntNearestIndex(const TRgb &aColor)const

    Gets the index of the colour in the palette which is closest to the specified colour.

    ParameterDescription
    aColorThe colour to find.

    Returns: The index of the colour in the palette which is closest to the specified colour.

    NewDefaultL ( TDisplayMode )

    IMPORT_C CPalette *NewDefaultL(TDisplayModeaDispMode)[static]

    Creates a new default palette for the specified display mode. The default palette for a particular display mode has one entry for each possible colour in that display mode (2 entries for EGray2, 16 entries for EColor16 etc.); the colour of each index p in the default palette is set to its default value according to its display mode (e.g. if the mode is EColor16 then palette[p]==TRgbColor16(p); if the mode is EGray4 then palette[p]==TRgb_Gray4(p)).

    ParameterDescription
    aDispModeThe display mode for which the palette is to be created.

    Returns: The newly created palette

    NewL ( TInt )

    IMPORT_C CPalette *NewL(TIntaNumberOfEntries)[static]

    Creates a new palette with the specified number of entries.

    ParameterDescription
    aNumberOfEntriesThe number of entries in the palette being created.

    Returns: The newly created palette.

    SetEntry ( TInt, const TRgb & )

    IMPORT_C voidSetEntry(TIntaPaletteIndex,
    const TRgb &aPaletteEntry
    )

    Sets the palette entry at aPaletteIndex to the RGB value aPaletteEntry.

    ParameterDescription
    aPaletteIndexThe index of the palette entry to be set.
    aPaletteEntryThe RGB value to set that entry to.