diff -r 000000000000 -r 5d03bc08d59c graphicstest/uibench/src/tdisplaymode_mapping.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicstest/uibench/src/tdisplaymode_mapping.cpp Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,386 @@ +// 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"), + _L("EUidPixelFormatXRGB_8888"), + _L("EUidPixelFormatARGB_8888"), + _L("EUidPixelFormatARGB_8888_PRE"), + _L("EUidPixelFormatRGB_888"), + _L("EUidPixelFormatRGB_565"), + _L("EUidPixelFormatP_8"), + _L("EUidPixelFormatA_8"), + _L("EUidPixelFormatP_2"), + _L("EUidPixelFormatP_1"), + }; + +/** +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); + } + +/** +Convert the string of pixel format to TUidPixelFormat +@param aPixelformatString The input string of pixel format +@return On return, it contains a pixel format enum value + */ +TUidPixelFormat TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(const TPtrC aPixelformatString) + { + TUidPixelFormat format = EUidPixelFormatUnknown; + + if (aPixelformatString == KPixelFormatNames[1]) + { + format = EUidPixelFormatXRGB_8888; + } + if (aPixelformatString == KPixelFormatNames[2]) + { + format = EUidPixelFormatARGB_8888; + } + if (aPixelformatString == KPixelFormatNames[3]) + { + format = EUidPixelFormatARGB_8888_PRE; + } + if (aPixelformatString == KPixelFormatNames[4]) + { + format = EUidPixelFormatRGB_888; + } + if (aPixelformatString == KPixelFormatNames[5]) + { + format = EUidPixelFormatRGB_565; + } + if (aPixelformatString == KPixelFormatNames[6]) + { + format = EUidPixelFormatP_8; + } + if (aPixelformatString == KPixelFormatNames[7]) + { + format = EUidPixelFormatA_8; + } + if (aPixelformatString == KPixelFormatNames[8]) + { + format = EUidPixelFormatP_2; + } + if (aPixelformatString == KPixelFormatNames[9]) + { + format = EUidPixelFormatP_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]); + } + if (aFormat == EUidPixelFormatARGB_8888) + { + pixelFormatString.Set(KPixelFormatNames[2]); + } + if (aFormat == EUidPixelFormatARGB_8888_PRE) + { + pixelFormatString.Set(KPixelFormatNames[3]); + } + if (aFormat == EUidPixelFormatRGB_888) + { + pixelFormatString.Set(KPixelFormatNames[4]); + } + if (aFormat == EUidPixelFormatRGB_565) + { + pixelFormatString.Set(KPixelFormatNames[5]); + } + if (aFormat == EUidPixelFormatP_8) + { + pixelFormatString.Set(KPixelFormatNames[6]); + } + if (aFormat == EUidPixelFormatA_8) + { + pixelFormatString.Set(KPixelFormatNames[7]); + } + if (aFormat == EUidPixelFormatP_2) + { + pixelFormatString.Set(KPixelFormatNames[8]); + } + if (aFormat == EUidPixelFormatP_1) + { + pixelFormatString.Set(KPixelFormatNames[9]); + } + + return pixelFormatString; + } + +/* +Map pixel format enum to display mode enum +@param aFormat The pixel format enum +@return On return, it contains 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: + //case EUidPixelFormatBGRX_8888: + //case EUidPixelFormatXBGR_8888: + mode = EColor16MU; + break; + + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EUidPixelFormatARGB_8888: + //case EUidPixelFormatBGRA_8888: + //case EUidPixelFormatABGR_8888: + mode = EColor16MA; + break; + + /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ + case EUidPixelFormatARGB_8888_PRE: + //case EUidPixelFormatABGR_8888_PRE: + //case EUidPixelFormatBGRA_8888_PRE: + mode = EColor16MAP; + break; + + /** True colour display mode (24 bpp) */ + //case EUidPixelFormatBGR_888: + case EUidPixelFormatRGB_888: + mode = EColor16M; + break; + + /** 64,000 colour display mode (16 bpp) */ + case EUidPixelFormatRGB_565: + //case EUidPixelFormatBGR_565: + //case EUidPixelFormatARGB_1555: + //case EUidPixelFormatXRGB_1555: + //case EUidPixelFormatARGB_4444: + //case EUidPixelFormatARGB_8332: + //case EUidPixelFormatBGRX_5551: + //case EUidPixelFormatBGRA_5551: + //case EUidPixelFormatBGRA_4444: + //case EUidPixelFormatBGRX_4444: + //case EUidPixelFormatAP_88: + //case EUidPixelFormatXRGB_4444: + //case EUidPixelFormatXBGR_4444: + mode = EColor64K; + break; + + /** 256 colour display mode (8 bpp) */ + //case EUidPixelFormatRGB_332: + //case EUidPixelFormatBGR_332: + case EUidPixelFormatP_8: + mode = EColor256; + break; + + /** 256 grayscales display mode (8 bpp) */ + case EUidPixelFormatA_8: + mode = EGray256; + break; + + /** Low colour EGA 16 colour display mode (4 bpp) */ + //case EUidPixelFormatP_4: + // mode = EColor16; + // mode = EGray16 ??? + // break; + + /** Four grayscales display mode (2 bpp) */ + case EUidPixelFormatP_2: + mode = EGray4; + break; + + /** Monochrome display mode (1 bpp) */ + case EUidPixelFormatP_1: + //case EUidPixelFormatBW_1: + mode = EGray2; + break; + + // Unknown display mode + default: + case EUidPixelFormatUnknown: + //case EUidPixelFormatYUV_444Interleaved: + //case EUidPixelFormatYUV_444Planar: + //case EUidPixelFormatYUV_420Interleaved: + //case EUidPixelFormatYUV_420Planar: + //case EUidPixelFormatYUV_420PlanarReversed: + //case EUidPixelFormatYUV_420SemiPlanar: + //case EUidPixelFormatYUV_422Interleaved: + //case EUidPixelFormatYUV_422Planar: + //case EUidPixelFormatYUV_422Reversed: + //case EUidPixelFormatYUV_422SemiPlanar: + //case EUidPixelFormatYUV_422InterleavedReversed: + //case EUidPixelFormatYYUV_422Interleaved: + //case EUidPixelFormatARGB_2101010: + //case EUidPixelFormatABGR_2101010: + 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: + //case EUidPixelFormatBGRX_8888: + //case EUidPixelFormatXBGR_8888: + format = EUidPixelFormatXRGB_8888; + break; + + /** Display mode with alpha (24bpp colour plus 8bpp alpha) */ + case EColor16MA: + //case EUidPixelFormatBGRA_8888: + //case EUidPixelFormatABGR_8888: + format = EUidPixelFormatARGB_8888; + break; + + /** Pre-multiplied Alpha display mode (24bpp color multiplied with the alpha channel value, plus 8bpp alpha) */ + case EColor16MAP: + //case EUidPixelFormatABGR_8888_PRE: + //case EUidPixelFormatBGRA_8888_PRE: + format = EUidPixelFormatARGB_8888_PRE; + break; + + /** True colour display mode (24 bpp) */ + //case EUidPixelFormatBGR_888: + case EColor16M: + format = EUidPixelFormatRGB_888; + break; + + /** 64,000 colour display mode (16 bpp) */ + case EColor64K: + //case EUidPixelFormatBGR_565: + //case EUidPixelFormatARGB_1555: + //case EUidPixelFormatXRGB_1555: + //case EUidPixelFormatARGB_4444: + //case EUidPixelFormatARGB_8332: + //case EUidPixelFormatBGRX_5551: + //case EUidPixelFormatBGRA_5551: + //case EUidPixelFormatBGRA_4444: + //case EUidPixelFormatBGRX_4444: + //case EUidPixelFormatAP_88: + //case EUidPixelFormatXRGB_4444: + //case EUidPixelFormatXBGR_4444: + format = EUidPixelFormatRGB_565; + break; + + /** 256 colour display mode (8 bpp) */ + //case EUidPixelFormatRGB_332: + //case EUidPixelFormatBGR_332: + case EColor256: + format = EUidPixelFormatP_8; + break; + + /** 256 grayscales display mode (8 bpp) */ + case EGray256: + format = EUidPixelFormatA_8; + break; + + /** Low colour EGA 16 colour display mode (4 bpp) */ + //case EUidPixelFormatP_4: + // mode = EColor16; + // mode = EGray16 ??? + // break; + + /** Four grayscales display mode (2 bpp) */ + case EGray4: + format = EUidPixelFormatP_2; + break; + + /** Monochrome display mode (1 bpp) */ + case EGray2: + //case EUidPixelFormatBW_1: + format = EUidPixelFormatP_1; + break; + + // Unknown display mode + default: + case ENone: + //case EUidPixelFormatYUV_444Interleaved: + //case EUidPixelFormatYUV_444Planar: + //case EUidPixelFormatYUV_420Interleaved: + //case EUidPixelFormatYUV_420Planar: + //case EUidPixelFormatYUV_420PlanarReversed: + //case EUidPixelFormatYUV_420SemiPlanar: + //case EUidPixelFormatYUV_422Interleaved: + //case EUidPixelFormatYUV_422Planar: + //case EUidPixelFormatYUV_422Reversed: + //case EUidPixelFormatYUV_422SemiPlanar: + //case EUidPixelFormatYUV_422InterleavedReversed: + //case EUidPixelFormatYYUV_422Interleaved: + //case EUidPixelFormatARGB_2101010: + //case EUidPixelFormatABGR_2101010: + format = EUidPixelFormatUnknown; + break; + } + + return format; + } + +/** + Converts pixel format strings to pixel format enums. + @param aPixelFormatInput The pixel format string for testing + @param aPixelFormatArray An array of TUidPixelFormats as output. + */ +void TDisplayModeMapping::ConvertPixelFormats(TPtrC aPixelFormatInput, RArray& aPixelFormatArray) + { + TPtrC tempBuf = aPixelFormatInput; + TInt position = tempBuf.Find(_L(",")); + + while(KErrNotFound != position) + { + aPixelFormatArray.Append(TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(tempBuf.Left(position))); + tempBuf.Set(tempBuf.Mid(position + 2)); + position = tempBuf.Find(_L(",")); + } + + if (position == KErrNotFound) + { + aPixelFormatArray.Append(TDisplayModeMapping::ConvertPixelformatStringToPixelFormat(tempBuf)); + } + } +