diff -r 000000000000 -r 5d03bc08d59c graphicsdeviceinterface/screendriver/tsrc/Tlld.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicsdeviceinterface/screendriver/tsrc/Tlld.h Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,708 @@ +// Copyright (c) 2003-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: +// + +#ifndef __TLLD_H_ +#define __TLLD_H_ + +#include +#include +#include "TGraphicsHarness.h" + +#define KRgbFadedBlack TRgb(0x808080) +const TInt KNumDispModes = 13; +const TInt KNumDrawModes = 6; +const TInt KNumTestRects = 10; +const TInt KNumTestColors = 12; +const TInt KNumTestBackgrounds = 6; +const TInt KNumShadowModes = 4; +const TInt KCheckBinaryPixelBufferSize = 64; +const TInt KNumBlendingColors = 3; +const TInt KNumColorsToBlend = 4; + +//this is to allow EColor16MAP to be tested with extra colours +const TUint32 KMaxNon16Colours = 9; + +//this is to allow EColor16MAP to be tested with extra background colours +const TUint32 KMaxNon16BackColours = 3; + +const TDisplayMode TestDisplayMode[KNumDispModes] = + { + EGray2, + EGray4, + EGray16, + EGray256, + EColor16, + EColor256, + EColor4K, + EColor64K, + EColor16M, + ERgb, + EColor16MU, + EColor16MAP, + EColor16MA, + }; + +const TPtrC DisplayModeNames[KNumDispModes] = + { + _L("EGray2"), + _L("EGray4"), + _L("EGray16"), + _L("EGray256"), + _L("EColor16"), + _L("EColor256"), + _L("EColor4K"), + _L("EColor64K"), + _L("EColor16M"), + _L("ERgb"), + _L("EColor16MU"), + _L("EColor16MAP"), + _L("EColor16MA"), + }; + +const TDisplayMode TestDisplayMode1[] = + { + EGray2, + EGray4, + EGray16, + EGray256, + EColor16, + EColor256, + EColor4K, + EColor64K, + EColor16M, + EColor16MU, + EColor16MAP, + EColor16MA, + }; + +const TPtrC DisplayModeNames1[] = + { + _L("EGray2"), + _L("EGray4"), + _L("EGray16"), + _L("EGray256"), + _L("EColor16"), + _L("EColor256"), + _L("EColor4K"), + _L("EColor64K"), + _L("EColor16M"), + _L("EColor16MU"), + _L("EColor16MAP"), + _L("EColor16MA"), + }; + +const CGraphicsContext::TDrawMode TestDrawMode[KNumDrawModes] = + { + CGraphicsContext::EDrawModePEN, + CGraphicsContext::EDrawModeAND, + CGraphicsContext::EDrawModeXOR, + CGraphicsContext::EDrawModeOR, + CGraphicsContext::EDrawModeNOTSCREEN, + CGraphicsContext::EDrawModeNOTPEN + }; + +const TRect TestRect[KNumTestRects] = + { + TRect(0,0,31,31), + TRect(1,1,2,2), + TRect(1,1,2,31), + TRect(2,1,31,2), + TRect(1,1,2,31), + TRect(1,1,30,31), + TRect(1,1,33,33), + TRect(31,0,65,1), + TRect(0,0,30,34), //needs a height >32 + TRect(1,1,7,7) // for DEF123772 + }; + +const TRgb TestColor[KNumTestColors] = + { + KRgbBlack, + KRgbDarkGray, + KRgbGray, + KRgbWhite, + KRgbRed, + KRgbCyan, + TRgb(230,180,70), + TRgb(150,240,30), + TRgb(20,250,160), + TRgb((TUint32)0xff2665A3), + TRgb((TUint32)0x002766A4), + TRgb((TUint32)0x57339A4E), + }; + +const TRgb TestBackground[KNumTestBackgrounds] = + { + KRgbWhite, + KRgbBlack, + TRgb(20,250,160), + TRgb(0xff27D99f), + TRgb(0x00E73121), + TRgb(0x771FE3B7), + }; + +const TUint8 ditherlutab[16][4]= + {{ 0x0, 0x0, 0x0, 0x0, }, + { 0x5, 0x0, 0x0, 0x0, }, + { 0x5, 0x0, 0x0, 0x5, }, + { 0x5, 0x0, 0x0, 0x5, }, + { 0x5, 0x0, 0x5, 0x5, }, + { 0x5, 0x5, 0x5, 0x5, }, + { 0xa, 0x5, 0x5, 0x5, }, + { 0xa, 0x5, 0x5, 0xa, }, + { 0xa, 0x5, 0x5, 0xa, }, + { 0xa, 0x5, 0xa, 0xa, }, + { 0xa, 0xa, 0xa, 0xa, }, + { 0xf, 0xa, 0xa, 0xa, }, + { 0xf, 0xa, 0xa, 0xf, }, + { 0xf, 0xa, 0xa, 0xf, }, + { 0xf, 0xa, 0xf, 0xf, }, + { 0xf, 0xf, 0xf, 0xf }}; + +/** +This array has three colours, It would be used to blend the four colours using WriteRgbOutlineAndShadow (). +Four colours which needs blending are +O - Outline colour, first entry of this table +S - Shadow colour, second entry in this table +F - Foreground colour i.e. third entry and, +B - Background colur, It will be set inside the test function. +*/ +const TRgb TestOSFBColorsForBlending[KNumBlendingColors][KNumColorsToBlend] = + { + { KRgbBlack, TRgb(220,150,164,138), KRgbMagenta, KRgbWhite}, + { KRgbDarkMagenta, KRgbBlue, KRgbDarkYellow, TRgb(20,250,160, 128)}, + { TRgb(230,180,70,10), KRgbGreen, TRgb(20,250,160,168), KRgbBlack} + }; + +/** +This lookup table is used for outline and shadow fonts. Four entries of this table represents +% of Outline, Shadow, Fill and Background color to be used to get the final color to be +displayed on screen. + +While doing the blending of four colors it would use the following formula, + +blendedXXXColor = (XXXOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] + + XXXShadowColor * FourColorBlendLookup[index][KShadowColorIndex] + + XXXFillColor * FourColorBlendLookup[index][KFillColorIndex] + + backgroundColor.XXX() * FourColorBlendLookup[index][KBackgroundColorIndex]) >> 8; +where XXX can be Red, Green or Blue +and index is the 8-bit value which will be provided by the rasterizer to decide which +entry of lookup table should be used. Right shift by eight will divide the calculated value in % with +256 to get the actual colour. + +This table is provided by Monotype and MUST NOT be changed. +*/ +const TInt FourColorBlendLookup[256][4] = { + { 0, 0, 0, 255 }, + { 0, 0, 17, 238 }, + { 0, 0, 34, 221 }, + { 0, 0, 51, 204 }, + { 0, 0, 68, 187 }, + { 0, 0, 85, 170 }, + { 0, 0, 102, 153 }, + { 0, 0, 119, 136 }, + { 0, 0, 136, 119 }, + { 0, 0, 153, 102 }, + { 0, 0, 170, 85 }, + { 0, 0, 187, 68 }, + { 0, 0, 204, 51 }, + { 0, 0, 221, 34 }, + { 0, 0, 238, 17 }, + { 0, 0, 255, 0 }, + { 0, 17, 0, 238 }, + { 0, 34, 0, 221 }, + { 0, 51, 0, 204 }, + { 0, 68, 0, 187 }, + { 0, 85, 0, 170 }, + { 0, 102, 0, 153 }, + { 0, 119, 0, 136 }, + { 0, 136, 0, 119 }, + { 0, 153, 0, 102 }, + { 0, 170, 0, 85 }, + { 0, 187, 0, 68 }, + { 0, 204, 0, 51 }, + { 0, 221, 0, 34 }, + { 0, 238, 0, 17 }, + { 0, 255, 0, 0 }, + { 17, 0, 0, 238 }, + { 34, 0, 0, 221 }, + { 51, 0, 0, 204 }, + { 68, 0, 0, 187 }, + { 85, 0, 0, 170 }, + { 102, 0, 0, 153 }, + { 119, 0, 0, 136 }, + { 136, 0, 0, 119 }, + { 153, 0, 0, 102 }, + { 170, 0, 0, 85 }, + { 187, 0, 0, 68 }, + { 204, 0, 0, 51 }, + { 221, 0, 0, 34 }, + { 238, 0, 0, 17 }, + { 255, 0, 0, 0 }, + { 0, 17, 238, 0 }, + { 0, 34, 221, 0 }, + { 0, 51, 204, 0 }, + { 0, 68, 187, 0 }, + { 0, 85, 170, 0 }, + { 0, 102, 153, 0 }, + { 0, 119, 136, 0 }, + { 0, 136, 119, 0 }, + { 0, 153, 102, 0 }, + { 0, 170, 85 ,0 }, + { 0, 187, 68 ,0 }, + { 0, 204, 51, 0 }, + { 0, 221, 34, 0 }, + { 0, 238, 17, 0 }, + { 238, 17, 0, 0 }, + { 221, 34, 0, 0 }, + { 204, 51, 0, 0 }, + { 187, 68, 0, 0 }, + { 170, 85, 0, 0 }, + { 153, 102, 0, 0 }, + { 136, 119, 0, 0 }, + { 119, 136, 0, 0 }, + { 102, 153, 0, 0 }, + { 85, 170, 0, 0 }, + { 68, 187, 0, 0 }, + { 51, 204, 0, 0 }, + { 34, 221, 0, 0 }, + { 17, 238, 0, 0 }, + { 238, 0, 17, 0 }, + { 221, 0, 34, 0 }, + { 204, 0, 51, 0 }, + { 187, 0, 68, 0 }, + { 170, 0, 85, 0 }, + { 153, 0, 102, 0 }, + { 136, 0, 119, 0 }, + { 119, 0, 136, 0 }, + { 102, 0, 153, 0 }, + { 85, 0, 170, 0 } , + { 68, 0, 187, 0 }, + { 51, 0, 204, 0 }, + { 34, 0, 221, 0 }, + { 17, 0, 238, 0 }, + { 210, 23, 0, 22 }, + { 179, 60, 0, 16 }, + { 145, 94, 0, 16 }, + { 119, 119, 0, 17 }, + { 94, 145, 0, 16 }, + { 60, 179, 0, 16 }, + { 23, 210, 0, 22 }, + { 176, 40, 0, 39 }, + { 142, 74, 0, 39 }, + { 113, 96, 0, 46 }, + { 91, 125, 0, 39 }, + { 62, 147, 0, 46 }, + { 40, 176, 0, 39 }, + { 179, 17, 0, 59 }, + { 147, 45, 0, 63 }, + { 17, 179, 0, 59 }, + { 145, 17, 0, 93 }, + { 125, 40, 0, 90 }, + { 108, 74, 0, 73 }, + { 74, 108, 0, 73 }, + { 85, 85, 0, 85 }, + { 40, 142, 0, 73 }, + { 119, 17, 0, 119 }, + { 96, 45, 0, 114 }, + { 74, 74, 0, 107 }, + { 45, 113, 0, 97 }, + { 17, 145, 0, 93 }, + { 94, 17, 0, 144 }, + { 74, 40, 0, 141 }, + { 45, 62, 0, 148 }, + { 40, 91, 0, 124 }, + { 17, 119, 0, 119 }, + { 17, 94, 0, 144 }, + { 60, 17, 0, 178 }, + { 40, 40, 0, 175 }, + { 17, 60, 0, 178 }, + { 23, 23, 0, 209 }, + { 0, 210, 23, 22 }, + { 0, 179, 60, 16 }, + { 0, 145, 94, 16 }, + { 0, 119, 119, 17 }, + { 0, 94 ,145, 16 }, + { 0, 60 ,179, 16 }, + { 0, 23, 210, 22 }, + { 0, 176, 40, 39 }, + { 0, 142, 74, 39 }, + { 0, 113, 96, 46 }, + { 0, 91, 125, 39 }, + { 0, 62, 147, 46 }, + { 0, 40, 176, 39 }, + { 0, 179, 17, 59 }, + { 0, 147, 45, 63 }, + { 0, 17, 179, 59 }, + { 0, 145, 17, 93 }, + { 0, 125, 40, 90 }, + { 0, 108, 74, 73 }, + { 0, 74, 108, 73 }, + { 0, 85, 85, 85 }, + { 0, 40, 142, 73 }, + { 0, 119, 17, 119 }, + { 0, 96, 45, 114 }, + { 0, 74, 74, 107 }, + { 0, 45, 113, 97 }, + { 0, 17, 145, 93 }, + { 0, 94, 17, 144 }, + { 0, 74, 40, 141 }, + { 0, 45, 62, 148 }, + { 0, 40, 91, 124 }, + { 0, 17, 119, 119 }, + { 0, 17, 94, 144 }, + { 0, 60, 17, 178 }, + { 0, 40, 40, 175 }, + { 0, 17, 60, 178 }, + { 0, 23, 23, 209 }, + { 23, 0, 210, 22 }, + { 60, 0, 179, 16 }, + { 94, 0, 145, 16 }, + { 119, 0, 119, 17 }, + { 145, 0, 94, 16 }, + { 179, 0, 60, 16 }, + { 210, 0, 23, 22 }, + { 40, 0, 176, 39 }, + { 74, 0, 142, 39 }, + { 96, 0, 113, 46 }, + { 125, 0, 91, 39 }, + { 147, 0, 62, 46 }, + { 176, 0, 40, 39 }, + { 17, 0, 179, 59 }, + { 45, 0, 147, 63 }, + { 179, 0, 17, 59 }, + { 17, 0, 145, 93 }, + { 40, 0, 125, 90 }, + { 74, 0, 108, 73 }, + { 108, 0, 74, 73 }, + { 85, 0, 85, 85 }, + { 142, 0, 40, 73 }, + { 17, 0, 119, 119 }, + { 45, 0, 96, 114 }, + { 74, 0, 74, 107 }, + { 113, 0, 45, 97 }, + { 145, 0, 17, 93 }, + { 17, 0, 94, 144 }, + { 40, 0, 74, 141 }, + { 62, 0, 45, 148 }, + { 91, 0, 40, 124 }, + { 119, 0, 17, 119 }, + { 94, 0, 17, 144 }, + { 17, 0, 60, 178 }, + { 40, 0, 40, 175 }, + { 60, 0, 17, 178 }, + { 23, 0, 23, 209 }, + { 209, 23, 23, 0 }, + { 178, 17, 60, 0 }, + { 144, 17, 94, 0 }, + { 119, 17, 119, 0 }, + { 93, 17, 145, 0 }, + { 59, 17, 179, 0 }, + { 22, 23, 210, 0 }, + { 175, 40, 40, 0 }, + { 141, 40, 74, 0 }, + { 114, 45, 96, 0 }, + { 90, 40, 125, 0 }, + { 63, 45, 147, 0 }, + { 39, 40, 176, 0 }, + { 178, 60, 17, 0 }, + { 148, 62, 45, 0 }, + { 16, 60, 179, 0 }, + { 144, 94, 17, 0 }, + { 124, 91, 40, 0 }, + { 107, 74, 74, 0 }, + { 73, 74, 108, 0 }, + { 85, 85, 85, 0 }, + { 39, 74, 142, 0 }, + { 119, 119, 17, 0 }, + { 97, 113, 45, 0 }, + { 73, 108, 74, 0 }, + { 46, 96, 113, 0 }, + { 16, 94, 145, 0 }, + { 93, 145, 17, 0 }, + { 73, 142, 40, 0 }, + { 46, 147, 62, 0 }, + { 39, 125, 91, 0 }, + { 17, 119, 119, 0 }, + { 16, 145, 94, 0 }, + { 59, 179, 17, 0 }, + { 39, 176, 40, 0 }, + { 16, 179, 60, 0 }, + { 22, 210, 23, 0 }, + { 32, 32 ,32, 159 }, + { 32, 32 ,74, 117 }, + { 32, 32 ,116, 75 }, + { 32, 32 ,158, 33 }, + { 74, 32, 32, 117 }, + { 74, 32, 74, 75 }, + { 74, 32, 116, 33 }, + { 116, 32, 32, 75 }, + { 116, 32, 74, 33 }, + { 158, 32, 32, 33 }, + { 32, 74, 32, 117 }, + { 32, 74, 74, 75 }, + { 32, 74, 116, 33 }, + { 74, 74, 32, 75 }, + { 74, 74, 74, 33 }, + { 116, 74, 32, 33 }, + { 32, 116, 32, 75 }, + { 32, 116, 74, 33 }, + { 74, 116, 32, 33 }, + { 32, 158, 32, 33 }, + }; + +class TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) = 0; + virtual TRgb Color(TInt aIndex) = 0; + }; + +class TNullColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb /*aColor*/) { return 0; } + virtual TRgb Color(TInt /*aIndex*/) { return KRgbBlack; } + }; + +class TGray2ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Gray2(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Gray2(aIndex); } + }; + +class TGray4ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Gray4(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Gray4(aIndex); } + }; + +class TGray16ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Gray16(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Gray16(aIndex); } + }; + +class TGray256ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Gray256(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Gray256(aIndex); } + }; + +class TColor16ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color16(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color16(aIndex); } + }; + +class TColor256ColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color256(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color256(aIndex); } + }; + +class TColor4KColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color4K(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color4K(aIndex); } + }; + +class TColor64KColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color64K(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color64K(aIndex); } + }; + +class TColor16MColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color16M(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color16M(aIndex); } + }; + +class TColor16MUColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color16MU(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color16MU(aIndex); } + }; + +class TColor16MAColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color16MA(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color16MA(aIndex); } + }; + +class TColor16MAPColorConvertor : public TColorConvertor + { +public: + virtual TInt Index(TRgb aColor) { return aColor.Color16MAP(); } + virtual TRgb Color(TInt aIndex) { return TRgb::Color16MAP(aIndex); } + }; + +class CTLowLevel : public CTGraphicsBase + { +enum TPostShadowMode + { + ENoPostShadow, + EPostShadow, + EPostFade, + EPostShadowFade, + }; +public: + CTLowLevel(CTestStep* aStep); + ~CTLowLevel(); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); + void TestScreenDrawL(TDisplayMode aDisplayMode); +private: + void Reset(); + void Report(); + void TestBitmapDraw(TDisplayMode aDisplayMode,const TSize& aSize); + void Test(); + void TestParams(); + void TestReadLine(); + void TestWriteRgb(); + void TestWriteLine(); + void TestWriteBinary(); + void TestWriteRGBAlpha(); + void TestWriteAlphaLineEx(); + void TestWriteAlphaLineNoShadowEx(); + void TestWriteMaskLineNoShadowEx(); + void ClosePanicDialogs(); + void TestFastBlendBitmapMasked(const TInt aRetry = 0); + void TestShadow(); + void TestWriteRgbOutlineAndShadow(); + inline TInt ByteSize(); + inline TBool Check(TBool aValue); + void CheckBuffer(TUint8* aWriteBuffer,TDisplayMode aWriteDispMode,TUint8* aReadBuffer,TDisplayMode aReadDispMode,TInt aPixelLength); + void CheckBinary(const TRect& aRect,TUint32* aBuffer,TRgb aForeColor,TRgb aBackColor,CGraphicsContext::TDrawMode aDrawMode,TInt aShadowMode,TBool aWrapDataWords,TBool aUp); + void CheckRgb(const TPoint& aPoint,TRgb aColor,TRgb aBackgroundColor,CGraphicsContext::TDrawMode aDrawMode,TInt aShadowMode); + void CheckRgb(const TRect& aRect,TRgb aColor,TRgb aBackgroundColor,CGraphicsContext::TDrawMode aDrawMode,TInt aShadowMode); + void CheckShadowRgb(const TRect& aRect,TRgb aColor,TInt aShadowMode); + void CheckScanline(TInt aX,TInt aY,TInt aLength,TRgb aFore1,TRgb aFore2,TRgb aBack1,TRgb aBack2,CGraphicsContext::TDrawMode aDrawMode); + void CheckLine(TUint8* aWriteBuffer,TUint8* aReadBuffer,TUint8* aBackBuffer,TInt aPixelLength,CGraphicsContext::TDrawMode aDrawMode,TDisplayMode aDispMode); + void CheckPixel(TUint8* aWriteBuffer,TDisplayMode aWriteDispMode,TUint8* aReadBuffer,TDisplayMode aReadDispMode,TInt aPixelLength,TDisplayMode aCompareDispMode); + void CheckBackground(const TRect& aRect,TRgb aBackgroundColor); + TBool CheckBlendedOutlineAndShadow(TRgb aOutlinePenColor, TRgb aShadowColor, TRgb aFillColor, TRgb aBackgroundColor, TInt aLookupIndex, TInt aLength, TUint8* aReadBuffer); + void Clear(TRgb aColor); + void CheckMatch(TUint32 aFirst, TUint32 aSecond); + TRgb ExtractRgbValue(TInt aX,TUint8* aBuffer,TDisplayMode aDispMode); + TUint32 ExtractBinaryValue(TInt aX,TUint32* aBuffer,TDisplayMode aDispMode); + void FillArray(TRgb aColor,TRgb aArray[4]); + void FillBuffer(TUint8* aBuffer, TInt aByteSize, TDisplayMode aDispMode, TBool aNoAlpha16MU = EFalse); + TInt LongWidth(TInt aWidth,TDisplayMode aDispMode); + void Normalize(TRgb& aColor); + void Normalize(TRgb& aColor, TDisplayMode aDispMode); + void Normalize(TRgb& aColor,TRgb aDitherColors[4]); + TRgb RgbValue(TRgb aFore,TRgb aBack,CGraphicsContext::TDrawMode aDrawMode); + TUint32 BinaryValue(TRgb aFore,TRgb aBack,CGraphicsContext::TDrawMode aDrawMode); + void Shadow(TRgb& aColor,TInt aShadowMode); + void Shadow(TUint8* aBuffer,TInt aByteLength,TInt aShadowMode); + TUint8 FadeGray(TInt aGray256); + TRgb FadeRgb(TRgb aColor, TBool aFastFade = EFalse); + TColorConvertor& ColorConvertor(TDisplayMode aDisplayMode); + void Blend(TUint8* aBuffer,TUint8* aBufferDest,TDisplayMode aDispMode); + void PostBlendShadow(TUint32 &aPmaColor); + void TestUserDisplayModeMapping(); + void PrepareDestPixel(TDisplayMode aDevDisplayMode, TRgb& aRgb, TInt aDstAlpha); + void CheckMappedRgb(TDisplayMode aDevDisplayMode, TDisplayMode aUserDisplayMode, TRgb aRgb); + void CheckNormalizedRgb(TRgb aReadRgb, TRgb aCheckRgb, TDisplayMode aDevDisplayMode, TDisplayMode aUserDisplayMode, TBool aWriteRgbAlphaLine); + void WriteBinaryValue(TUint32 aX, TAny* const aPtr, TDisplayMode aMode, TUint32 aValue) const; + void MaskedBlendBuffer(TAny* aSrc, TDisplayMode aSrcMode, TAny* aDst, + TDisplayMode aDstMode, TUint32* aMsk, TInt aWidth, TBool aInvert); + TUint32 BytesForPixels(TUint32 aPixels, TDisplayMode aMode); + TBool CompareBlendMaskResults(TAny* aActual, TAny* aExpected, + TUint32 aWidth, TDisplayMode aMode, TBool aBlended, TDisplayMode aSrcMode = ENone); +protected: + CFbsDrawDevice* iDrawDevice; + TUint8* iBits; + TUint32* iBuf; + TDisplayMode iDispMode; + TDisplayMode iUserDispMode; + TInt iOrientation; + TSize iSize; + TInt iLongWidth; + TInt iTestNo; + TInt iIteration; + TInt iReportIteration; + TInt iTotalReportIterations; + TNullColorConvertor iNullConvertor; + TGray2ColorConvertor iGray2Convertor; + TGray4ColorConvertor iGray4Convertor; + TGray16ColorConvertor iGray16Convertor; + TGray256ColorConvertor iGray256Convertor; + TColor16ColorConvertor iColor16Convertor; + TColor256ColorConvertor iColor256Convertor; + TColor4KColorConvertor iColor4KConvertor; + TColor64KColorConvertor iColor64KConvertor; + TColor16MColorConvertor iColor16MConvertor; + TColor16MUColorConvertor iColor16MUConvertor; + TColor16MAColorConvertor iColor16MAConvertor; + TColor16MAPColorConvertor iColor16MAPConvertor; + TColorConvertor* iColorConvertor[15]; + TInt iOrientationEnd; + TInt iCurScreenDeviceModeIndex; + TBool iFuzzyMatch; + TBool iBlendTestColors; + TPostShadowMode iPostBlendShadow; + TBool i16MAUserDispMode; + TBool iUseFastFade; //used to check whether fast fading method is required or not + // while calling FadeRgb from CTLowLevel::Shadow(TRgb& aColor,TInt aShadowMode) + TBool iLastFailTestNo; + };//end of - class TestLowLevel + +class CTLowLevel1 : public CTLowLevel + { +public: + CTLowLevel1(CTestStep* aStep); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); + }; + +class CTLowLevelStep : public CTGraphicsStep + { +public: + CTLowLevelStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +_LIT(KTLowLevelStep,"TLowLevel"); + +class CTLowLevel1Step : public CTGraphicsStep + { +public: + CTLowLevel1Step(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +_LIT(KTLowLevel1Step,"TLowLevel1"); + +#endif//__TLLD_H_