diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tauto/TFADINGBITMAP.CPP --- a/windowing/windowserver/tauto/TFADINGBITMAP.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -// Copyright (c) 2006-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: -// The fix enables the fading effect with alpha-blending, which was not applied bofore. -// The test will load a bitmap and two different masks: on/off and alpha-blend. -// The bitmap will be masked with these masks and displayed before and after -// setting the fading effect. -// All different colour modes are being tested for both mask types. -// The test will check the colour of a specific pixel in the scene before and after the -// fading. The higher values in the After circle means that it has been highlighted. -// The result will be printed in wstest log file. -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "TFADINGBITMAP.H" - -//=================================================== -// CBaseWin Declaration -//=================================================== - -CBaseWin::CBaseWin(): CTWin() - { - } - -CBaseWin::~CBaseWin() - { - delete iTempBitmap; - delete iMaskGray256; - delete iMaskGray2; - delete iTempMask; - delete iBitmap; - } - -void CBaseWin::ConstructWinL(TPoint aPos, TSize aSize, TBool aVisible) - { - /*** Setting up the window ***/ - iSize = aSize; - SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc, aVisible); - Win()->SetBackgroundColor(TRgb(20, 80, 20)); // dark green background - BaseWin()->SetRequiredDisplayMode(EColor64K); - - /*** 24 bit bitmap ***/ - // the original 24b bitmap to mask - iTempBitmap = new (ELeave) CFbsBitmap(); - User::LeaveIfError(iTempBitmap->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles24b)); - iBitmap = new (ELeave) CFbsBitmap(); - - /*** on/off mask ***/ - iMaskGray2 = new (ELeave) CFbsBitmap(); - User::LeaveIfError(iMaskGray2->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles_mask2b)); - - /*** alpha-blend mask ***/ - // holds the 24bit copy of the alpha blend mask which will be - // copied into the proper Gray256 mask, iMaskGray256. - iTempMask = new (ELeave) CFbsBitmap(); - User::LeaveIfError(iTempMask->Load(_L("Z:\\WSTEST\\WSAUTOTEST.MBM"), EMbmWsautotestCircles_mask256)); - // alpha blend mask; copying its data from iTempMask - iMaskGray256 = new (ELeave) CFbsBitmap(); - User::LeaveIfError(iMaskGray256->Create(iTempBitmap->SizeInPixels(),EGray256)); - CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(iMaskGray256); - CleanupStack::PushL(dev); - CFbsBitGc *gc; - User::LeaveIfError(dev->CreateContext(gc)); - // performing the copying here - gc->BitBlt(TPoint(0,0), iTempMask); - // cleaning up - CleanupStack::Pop(); - delete gc; - gc = NULL; - delete dev; - dev = NULL; - } - -void CBaseWin::Draw() - { - iGc->Clear(); - - // Font intialization - CFont* myFont; - _LIT(KMyFontName,"Swiss"); - TFontSpec myFontSpec = TFontSpec(KMyFontName,16); // to get smallest Swiss font - TFontStyle style = TFontStyle (EPostureUpright, EStrokeWeightBold, EPrintPosNormal); - myFontSpec.iFontStyle = style; - User::LeaveIfError(TheClient->iScreen->GetNearestFontInPixels(myFont, myFontSpec)); - iGc->UseFont(myFont); - iGc->SetPenStyle(CGraphicsContext::ESolidPen); - iGc->SetPenColor(TRgb(255, 255, 255)); - - // drawing text - iGc->DrawText(_L("Fading = OFF"), TPoint(130,15)); - iGc->DrawText(_L("Fading = ON"), TPoint(275,15)); - iGc->DrawText(_L("Alpha blend"), TPoint(15,90)); - iGc->DrawText(_L("on/off mask"), TPoint(15,190)); - TBuf <30> displayMode(_L("Display Mode = ")); - displayMode.Append(iMode); - iGc->DrawText(displayMode, TPoint(385,100)); - - /*** drawing bitmap with its on/off mask and alpha-blending - before and after fading ***/ - iGc->BitBltMasked(TPoint(140,25), iBitmap, - TRect(0,0,100,100), iMaskGray256, EFalse); - // Save the pixel colour of a pixel on the outer ring of the circle - // before fading enabled. - TheClient->iScreen->GetPixel(iNonFadedPixel, TPoint(190,30)); - - iGc->SetFaded(ETrue); - iGc->BitBltMasked(TPoint(270,25), iBitmap, - TRect(0,0,100,100), iMaskGray256, EFalse); - // Save the pixel colour of a pixel on the outer ring of the circle - // after fading enabled. - TheClient->iScreen->GetPixel(iFadedPixel, TPoint(320,30)); - - iGc->SetFaded(EFalse); - - iGc->BitBltMasked(TPoint(140,125), iBitmap, - TRect(0,0,100,100), iMaskGray2, EFalse); - iGc->SetFaded(ETrue); - iGc->BitBltMasked(TPoint(270,125), iBitmap, - TRect(0,0,100,100), iMaskGray2, EFalse); - iGc->SetFaded(EFalse); - - iGc->DiscardFont(); - TheClient->iScreen->ReleaseFont(myFont); - } - - -//=================================================== -// CTFadingBitmap Definition -//=================================================== - -CTFadingBitmap::CTFadingBitmap(CTestStep* aStep): - CTWsGraphicsBase(aStep), iTestResult(ETrue) - { - } - -CTFadingBitmap::~CTFadingBitmap() - { - delete iBgWin; - } - -void CTFadingBitmap::TestFadingL() - { - // Modes to test - TDisplayMode modes[] = - { - EGray2, EGray4, EGray16, EGray256, - EColor16, EColor256, EColor4K, EColor64K, - EColor16M, EColor16MU, EColor16MA, EColor16MAP - }; - - TBuf <12> modesTxt []= - { - _L("EGray2"), _L("EGray4"), _L("EGray16"), _L("EGray256"), - _L("EColor16"), _L("EColor256"), _L("EColor4K"), _L("EColor64K"), - _L("EColor16M"), _L("EColor16MU"), _L("EColor16MA"), _L("EColor16MAP") - }; - - TBuf <100> testTxt; - for( int i = 0; i < 12; i++) - { - testTxt.Format(modesTxt[i]); - INFO_PRINTF1(testTxt); - // Here we copy the content of the temp bitmap, which holds the test bitmap, - // into the bitmap created with alternating color depths. - User::LeaveIfError(iBgWin->iBitmap->Create(iBgWin->iTempBitmap->SizeInPixels(), modes[i])); - CFbsBitmapDevice *dev = CFbsBitmapDevice::NewL(iBgWin->iBitmap); - CleanupStack::PushL(dev); - CFbsBitGc *gc; - User::LeaveIfError(dev->CreateContext(gc)); - // performing the copying here - gc->BitBlt(TPoint(0,0), iBgWin->iTempBitmap); - // setting the mode text to display it - iBgWin->iMode = modesTxt[i]; - // draws the bitmap on screen - iBgWin->DrawNow(); - TheClient->Flush(); - User::After(5000); - // cleaning up - CleanupStack::Pop(); - delete gc; - gc = NULL; - delete dev; - dev = NULL; - - // Here the colours of pixels before and after fading are printed in wstest log - testTxt.Format(_L("Nonfaded circle - color of the outside ring: R=%d G=%d B=%d"), iBgWin->iNonFadedPixel.Red(), iBgWin->iNonFadedPixel.Green(), iBgWin->iNonFadedPixel.Blue()); - INFO_PRINTF1(testTxt); - testTxt.Format(_L("Faded circle - color of the outside ring: R=%d G=%d B=%d"), iBgWin->iFadedPixel.Red(), iBgWin->iFadedPixel.Green(), iBgWin->iFadedPixel.Blue()); - INFO_PRINTF1(testTxt); - - // Checks if the colors are the same before and after the fading. - // The color will be the same only in EGray2 and EGray4 as there are no enough - // color variations to represent the fading and nonfading effects. - if(iTestResult && - iBgWin->iNonFadedPixel.Red() == iBgWin->iFadedPixel.Red() && - iBgWin->iNonFadedPixel.Green() == iBgWin->iFadedPixel.Green() && - iBgWin->iNonFadedPixel.Blue() == iBgWin->iFadedPixel.Blue() && - modes[i] != EGray2 && modes[i] != EGray4) - iTestResult = EFalse; - } - } - -void CTFadingBitmap::ConstructL() - { - // construct the base window of the test in the background - TSize scrSize = TSize(TheClient->iScreen->SizeInPixels()); - iBgWin = new (ELeave) CBaseWin(); - iBgWin->ConstructWinL(TPoint(0,0), scrSize, ETrue); - } - -void CTFadingBitmap::RunTestCaseL(TInt aCurTestCase) - { - ((CTFadingBitmapStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); - switch(aCurTestCase) - { - case 1: -/** -@SYMTestCaseID GRAPHICS-WSERV-0566 -*/ - ((CTFadingBitmapStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0566")); - TestFadingL(); - // Fails or passes the test - if(!iTestResult) - TEST(EFalse); - break; - default: - ((CTFadingBitmapStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); - ((CTFadingBitmapStep*)iStep)->CloseTMSGraphicsStep(); - TestComplete(); - } - ((CTFadingBitmapStep*)iStep)->RecordTestResultL(); - } - -__WS_CONSTRUCT_STEP__(FadingBitmap)