diff -r 000000000000 -r 5d03bc08d59c graphicsdeviceinterface/directgdi/test/tdisplaymode_mapping.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicsdeviceinterface/directgdi/test/tdisplaymode_mapping.cpp Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,439 @@ +// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @test + @internalComponent - Internal Symbian test code +*/ + +#include "tdisplaymode_mapping.h" + +const TPtrC KPixelFormatNames[] = + { + _L("EUidPixelFormatUnknown"), //0 + _L("EUidPixelFormatXRGB_8888"), //1 + _L("EUidPixelFormatARGB_8888"), //2 + _L("EUidPixelFormatARGB_8888_PRE"), //3 + _L("EUidPixelFormatRGB_888"), //4 + _L("EUidPixelFormatA_8"), //5 + _L("EUidPixelFormatRGB_565"), //6 + _L("EUidPixelFormatXRGB_4444"), //7 + _L("EUidPixelFormatP_8"), //8 + _L("EUidPixelFormatP_4"), //9 + _L("EUidPixelFormatL_8"), //10 + _L("EUidPixelFormatL_4"), //11 + _L("EUidPixelFormatL_2"), //12 + _L("EUidPixelFormatL_1"), //13 + }; + +const TPtrC KShortPixelFormatNames[] = + { + _L("Unknown"), //0 + _L("XRGB_8888"), //1 + _L("ARGB_8888"), //2 + _L("ARGB_8888_PRE"), //3 + _L("RGB_888"), //4 + _L("A_8"), //5 + _L("RGB_565"), //6 + _L("XRGB_4444"), //7 + _L("P_8"), //8 + _L("P_4"), //9 + _L("L_8"), //10 + _L("L_4"), //11 + _L("L_2"), //12 + _L("L_1"), //13 + }; + +/** +Convert the string of pixel format to TDisplayMode +@param aPixelformatString The input string of pixel format +@return On return, it contains a display mode enum value + */ +TDisplayMode TDisplayModeMapping::ConvertPixelFormatStringToDisplayMode(const TPtrC aPixelformatString) + { + TUidPixelFormat format = ConvertPixelFormatStringToPixelFormat(aPixelformatString); + + return MapPixelFormatToDisplayMode(format); + } + +/** +Converts a pixel format string to TUidPixelFormat +@see ConvertPixelformatToShortPixelFormatString() +@param aPixelformatString The pixel format string to convert +@return Returns a pixel format enum value TUidPixelFormat + */ +TUidPixelFormat TDisplayModeMapping::ConvertPixelFormatStringToPixelFormat(const TPtrC aPixelformatString) + { + TUidPixelFormat format = EUidPixelFormatUnknown; + + if (aPixelformatString == KPixelFormatNames[1]) + { + format = EUidPixelFormatXRGB_8888; + } + else if (aPixelformatString == KPixelFormatNames[2]) + { + format = EUidPixelFormatARGB_8888; + } + else if (aPixelformatString == KPixelFormatNames[3]) + { + format = EUidPixelFormatARGB_8888_PRE; + } + else if (aPixelformatString == KPixelFormatNames[4]) + { + format = EUidPixelFormatRGB_888; + } + else if (aPixelformatString == KPixelFormatNames[5]) + { + format = EUidPixelFormatA_8; + } + else if (aPixelformatString == KPixelFormatNames[6]) + { + format = EUidPixelFormatRGB_565; + } + else if (aPixelformatString == KPixelFormatNames[7]) + { + format = EUidPixelFormatXRGB_4444; + } + else if (aPixelformatString == KPixelFormatNames[8]) + { + format = EUidPixelFormatP_8; + } + else if (aPixelformatString == KPixelFormatNames[9]) + { + format = EUidPixelFormatP_4; + } + else if (aPixelformatString == KPixelFormatNames[10]) + { + format = EUidPixelFormatL_8; + } + else if (aPixelformatString == KPixelFormatNames[11]) + { + format = EUidPixelFormatL_4; + } + else if (aPixelformatString == KPixelFormatNames[12]) + { + format = EUidPixelFormatL_2; + } + else if (aPixelformatString == KPixelFormatNames[13]) + { + format = EUidPixelFormatL_1; + } + + return format; + } + +/* +Convert the pixel format enum to a string +@param aFormat The pixel format enum +@return On return, it contains the pixel format string + */ +TPtrC TDisplayModeMapping::ConvertPixelFormatToPixelFormatString(const TUidPixelFormat aFormat) + { + TPtrC pixelFormatString(KPixelFormatNames[0]); + + if (aFormat == EUidPixelFormatXRGB_8888) + { + pixelFormatString.Set(KPixelFormatNames[1]); + } + else if (aFormat == EUidPixelFormatARGB_8888) + { + pixelFormatString.Set(KPixelFormatNames[2]); + } + else if (aFormat == EUidPixelFormatARGB_8888_PRE) + { + pixelFormatString.Set(KPixelFormatNames[3]); + } + else if (aFormat == EUidPixelFormatRGB_888) + { + pixelFormatString.Set(KPixelFormatNames[4]); + } + else if (aFormat == EUidPixelFormatA_8) + { + pixelFormatString.Set(KPixelFormatNames[5]); + } + else if (aFormat == EUidPixelFormatRGB_565) + { + pixelFormatString.Set(KPixelFormatNames[6]); + } + else if (aFormat == EUidPixelFormatXRGB_4444) + { + pixelFormatString.Set(KPixelFormatNames[7]); + } + else if (aFormat == EUidPixelFormatP_8) + { + pixelFormatString.Set(KPixelFormatNames[8]); + } + else if (aFormat == EUidPixelFormatP_4) + { + pixelFormatString.Set(KPixelFormatNames[9]); + } + else if (aFormat == EUidPixelFormatL_8) + { + pixelFormatString.Set(KPixelFormatNames[10]); + } + else if (aFormat == EUidPixelFormatL_4) + { + pixelFormatString.Set(KPixelFormatNames[11]); + } + else if (aFormat == EUidPixelFormatL_2) + { + pixelFormatString.Set(KPixelFormatNames[12]); + } + else if (aFormat == EUidPixelFormatL_1) + { + pixelFormatString.Set(KPixelFormatNames[13]); + } + + return pixelFormatString; + } + +/* +Convert the pixel format enum to a shorter string than is achieved with ConvertPixelformatToPixelFormatString(). +The EUidPixelFormat portion of the pixel format string is not added to the string. +@see ConvertPixelformatToPixelFormatString() +@param aFormat The pixel format enum +@return On return, it contains the pixel format string + */ +TPtrC TDisplayModeMapping::ConvertPixelFormatToShortPixelFormatString(const TUidPixelFormat aFormat) + { + TPtrC pixelFormatString(KShortPixelFormatNames[0]); + + if (aFormat == EUidPixelFormatXRGB_8888) + { + pixelFormatString.Set(KShortPixelFormatNames[1]); + } + else if (aFormat == EUidPixelFormatARGB_8888) + { + pixelFormatString.Set(KShortPixelFormatNames[2]); + } + else if (aFormat == EUidPixelFormatARGB_8888_PRE) + { + pixelFormatString.Set(KShortPixelFormatNames[3]); + } + else if (aFormat == EUidPixelFormatRGB_888) + { + pixelFormatString.Set(KShortPixelFormatNames[4]); + } + else if (aFormat == EUidPixelFormatA_8) + { + pixelFormatString.Set(KShortPixelFormatNames[5]); + } + else if (aFormat == EUidPixelFormatRGB_565) + { + pixelFormatString.Set(KShortPixelFormatNames[6]); + } + else if (aFormat == EUidPixelFormatXRGB_4444) + { + pixelFormatString.Set(KShortPixelFormatNames[7]); + } + else if (aFormat == EUidPixelFormatP_8) + { + pixelFormatString.Set(KShortPixelFormatNames[8]); + } + else if (aFormat == EUidPixelFormatP_4) + { + pixelFormatString.Set(KShortPixelFormatNames[9]); + } + else if (aFormat == EUidPixelFormatL_8) + { + pixelFormatString.Set(KShortPixelFormatNames[10]); + } + else if (aFormat == EUidPixelFormatL_4) + { + pixelFormatString.Set(KShortPixelFormatNames[11]); + } + else if (aFormat == EUidPixelFormatL_2) + { + pixelFormatString.Set(KShortPixelFormatNames[12]); + } + else if (aFormat == EUidPixelFormatL_1) + { + pixelFormatString.Set(KShortPixelFormatNames[13]); + } + + return pixelFormatString; + } + +/* +Maps a pixel format enum to a display mode enum +@param aFormat The pixel format enum +@return Returns the display mode enum + */ +TDisplayMode TDisplayModeMapping::MapPixelFormatToDisplayMode(const TUidPixelFormat aFormat) + { + TDisplayMode mode; + + switch(aFormat) + { + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EUidPixelFormatXRGB_8888: + mode = EColor16MU; + break; + + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EUidPixelFormatARGB_8888: + mode = EColor16MA; + break; + + /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ + case EUidPixelFormatARGB_8888_PRE: + mode = EColor16MAP; + break; + + /** True colour display mode (24 bpp) */ + case EUidPixelFormatRGB_888: + mode = EColor16M; + break; + + case EUidPixelFormatXRGB_4444: + mode = EColor4K; + break; + + /** 64,000 colour display mode (16 bpp) */ + case EUidPixelFormatRGB_565: + mode = EColor64K; + break; + + /** 256 grayscales display mode (8 bpp) */ + case EUidPixelFormatA_8: + mode = EGray256; + break; + + /** 256 grayscales (8 bpp) */ + case EUidPixelFormatL_8: + mode = EGray256; + break; + + /** Eight grayscales (4 bpp) */ + case EUidPixelFormatL_4: + mode = EGray16; + break; + + /** Four grayscales display mode (2 bpp) */ + case EUidPixelFormatL_2: + mode = EGray4; + break; + + /** Two grayscales (black and white) display mode (1 bpp) */ + case EUidPixelFormatL_1: + mode = EGray2; + break; + + /** 256 colour display mode (8 bpp) */ + case EUidPixelFormatP_8: + mode = EColor256; + break; + + /** Low colour EGA 16 colour display mode (4 bpp) */ + case EUidPixelFormatP_4: + mode = EColor16; + break; + + /** Monochrome display mode (1 bpp) */ + case EUidPixelFormatP_1: + mode = EGray2; + break; + + // Unknown display mode + default: + case EUidPixelFormatUnknown: + mode = ENone; + break; + } + + return mode; + } + +/* +Map display mode enum to pixel formation enum +@param aDisplayMode The display mode enum +@return On return, it contains the pixel format enum + */ +TUidPixelFormat TDisplayModeMapping::MapDisplayModeToPixelFormat(const TDisplayMode aDisplayMode) + { + TUidPixelFormat format; + + switch(aDisplayMode) + { + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EColor16MU: + format = EUidPixelFormatXRGB_8888; + break; + + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EColor16MA: + format = EUidPixelFormatARGB_8888; + break; + + /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ + case EColor16MAP: + format = EUidPixelFormatARGB_8888_PRE; + break; + + /** True colour display mode (24 bpp) */ + case EColor16M: + format = EUidPixelFormatRGB_888; + break; + + case EColor4K: + format = EUidPixelFormatXRGB_4444; + break; + + /** 64,000 colour display mode (16 bpp) */ + case EColor64K: + format = EUidPixelFormatRGB_565; + break; + + /** 256 grayscale display mode (8 bpp) */ + case EGray256: + format = EUidPixelFormatL_8; + break; + + /** Sixteen grayscales display mode (4 bpp) */ + case EGray16: + format = EUidPixelFormatL_4; + break; + + /** Four grayscales display mode (2 bpp) */ + case EGray4: + format = EUidPixelFormatL_2; + break; + + /** Monochrome display mode (1 bpp) */ + case EGray2: + format = EUidPixelFormatL_1; + break; + + /** 256 Color paletised (8 bpp) */ + case EColor256: + format = EUidPixelFormatP_8; + break; + + /** Sixteen Colour paletised (4 bpp)*/ + case EColor16: + format = EUidPixelFormatP_4; + break; + + // Unknown display mode + default: + case ENone: + format = EUidPixelFormatUnknown; + break; + } + + return format; + } +