diff -r 000000000000 -r 5d03bc08d59c graphicsdeviceinterface/bitgdi/tbit/TPARAM.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphicsdeviceinterface/bitgdi/tbit/TPARAM.CPP Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,296 @@ +// Copyright (c) 1997-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: +// + +#include +#include +#include "TBMP.H" +#include "tparam.h" +#include + + +CTParam::CTParam(CTestStep* aStep): + CTGraphicsBase(aStep), + iDevice(NULL), + iContext(NULL) + { + INFO_PRINTF1(_L("Large parameter testing")); + } + +void CTParam::RunTestCaseL(TInt aCurTestCase) + { + ((CTParamStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); + switch(aCurTestCase) + { + case 1: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EGray256")); + DoTestL(EGray256); + break; + } + case 2: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor256")); + DoTestL(EColor256); + break; + } + case 3: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor4K")); + DoTestL(EColor4K); + break; + } + case 4: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor64K")); + DoTestL(EColor64K); + break; + } + case 5: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor16M")); + DoTestL(EColor16M); + break; + } + case 6: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor16MU")); + DoTestL(EColor16MU); + break; + } + case 7: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor16MA")); + DoTestL(EColor16MA); + break; + } + case 8: + { + ((CTParamStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0084")); + INFO_PRINTF1(_L("Test display mode EColor16MAP")); + DoTestL(EColor16MAP); + break; + } + case 9: + { + ((CTParamStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); + ((CTParamStep*)iStep)->CloseTMSGraphicsStep(); + TestComplete(); + break; + } + } + ((CTParamStep*)iStep)->RecordTestResultL(); + } + +/** + @SYMTestCaseID GRAPHICS-BITGDI-0084 + + @SYMDEF + + @SYMTestCaseDesc tests the display modes + + @SYMTestPriority High + + @SYMTestStatus Implemented + + @SYMTestActions tests various graphic drawing and text drawing functions to all current screen modes + + @SYMTestExpectedResults Test should perform graphics operations succesfully. +*/ +void CTParam::DoTestL(TDisplayMode aDispMode) + { + TRAPD(err,iDevice = CFbsScreenDevice::NewL(_L("scdv"),aDispMode)); + if (err == KErrNotSupported) + return; + iDevice->ChangeScreenDevice(NULL); + iDevice->SetAutoUpdate(ETrue); + User::LeaveIfError(iDevice->CreateContext(iContext)); + + iDevice->SetScalingFactor(TPoint(15, 7), 3, 2, 1, 1); + iContext->Activate(iDevice); + + CFbsFont* font = NULL; + User::LeaveIfError(iDevice->GetNearestFontToDesignHeightInTwips(font,TFontSpec())); + iContext->UseFont(font); + iDevice->ReleaseFont(font); + + TInt ret = iBitmap.Load(_L("z:\\system\\data\\tbmp.mbm"),EMbmTbmpTbmp,EFalse); + User::LeaveIfError(ret); + + DoAnotherTestL(); + + iBitmap.Reset(); + delete iContext; + delete iDevice; + } + +void CTParam::DoAnotherTestL() + { + INFO_PRINTF1(_L("Parameters : check large parameters do not take too long")); + TRect vlarge(-1000000000,-1000000000,1000000000,1000000000); + TRect screen; + iDevice->GetDrawRect(screen); + + INFO_PRINTF1(_L("Origin")); + iContext->SetOrigin(vlarge.iTl); + iContext->DrawRect(screen); + iContext->SetOrigin(); + iContext->Clear(screen); + iContext->SetOrigin(vlarge.iBr); + iContext->DrawRect(screen); + iContext->SetOrigin(); + iContext->Clear(screen); + + iContext->SetBrushStyle(CGraphicsContext::EDiamondCrossHatchBrush); + iContext->SetBrushColor(KRgbBlack); + INFO_PRINTF1(_L("BrushOrigin")); + iContext->SetBrushOrigin(vlarge.iTl); + iContext->DrawRect(screen); + iContext->SetBrushOrigin(TPoint(0,0)); + iContext->SetBrushColor(KRgbWhite); + iContext->Clear(screen); + iContext->SetBrushOrigin(vlarge.iBr); + iContext->SetBrushColor(KRgbBlack); + iContext->DrawRect(screen); + iContext->SetBrushOrigin(TPoint(0,0)); + iContext->SetBrushColor(KRgbWhite); + iContext->Clear(screen); + + iContext->SetBrushStyle(CGraphicsContext::ESolidBrush); + INFO_PRINTF1(_L("Plot")); + iContext->Plot(vlarge.iBr); + iContext->Clear(screen); + + INFO_PRINTF1(_L("DrawLine - Solid pen")); + TInt count=1; + for(;count<10000;count*=10) + { + iContext->SetPenSize(TSize(count,count)); + INFO_PRINTF1(_L("Very large line 1")); + iContext->DrawLine(vlarge.iBr,vlarge.iTl); + INFO_PRINTF1(_L("Very large line 2")); + iContext->DrawLine(TPoint(-1000000000,screen.iTl.iY),TPoint(1000000000,1000000000)); + INFO_PRINTF1(_L("Very large line 3")); + iContext->DrawLine(TPoint(screen.iTl.iX,-1000000000),TPoint(1000000000,1000000000)); + INFO_PRINTF1(_L("Very large line 4")); + iContext->DrawLine(TPoint(-1000000000,-1000000000),screen.iTl); + INFO_PRINTF1(_L("Very large line 5")); + iContext->DrawLine(screen.iBr,TPoint(1000000000,1000000000)); + iContext->Clear(screen); + } + + iContext->SetPenStyle(CGraphicsContext::EDottedPen); + INFO_PRINTF1(_L("Line - Dotted pen")); + for(count=1;count<10000;count*=10) + { + iContext->SetPenSize(TSize(count,count)); + INFO_PRINTF1(_L("Very large line 1")); + iContext->DrawLine(vlarge.iBr,vlarge.iTl); + INFO_PRINTF1(_L("Very large line 2")); + iContext->DrawLine(TPoint(-1000000000,screen.iTl.iY),TPoint(1000000000,1000000000)); + INFO_PRINTF1(_L("Very large line 3")); + iContext->DrawLine(TPoint(screen.iTl.iX,-1000000000),TPoint(1000000000,1000000000)); + INFO_PRINTF1(_L("Very large line 4")); + iContext->DrawLine(TPoint(-1000000000,-1000000000),screen.iTl); + INFO_PRINTF1(_L("Very large line 5")); + iContext->DrawLine(screen.iBr,TPoint(1000000000,1000000000)); + iContext->Clear(screen); + } + + iContext->SetPenStyle(CGraphicsContext::ESolidPen); + iContext->SetBrushStyle(CGraphicsContext::ESolidBrush); + iContext->SetBrushColor(KRgbBlack); + iContext->SetPenSize(TSize(1,1)); + INFO_PRINTF1(_L("Arc")); + iContext->DrawArc(vlarge,vlarge.iBr,vlarge.iBr); + iContext->Clear(screen); + + INFO_PRINTF1(_L("Ellipse")); + iContext->DrawEllipse(vlarge); + iContext->Clear(screen); + + INFO_PRINTF1(_L("Pie")); + iContext->DrawPie(vlarge,vlarge.iBr,vlarge.iBr); + iContext->Clear(screen); + + INFO_PRINTF1(_L("RoundRect")); + iContext->DrawRoundRect(vlarge,TSize(100000000,100000000)); + iContext->Clear(screen); + + INFO_PRINTF1(_L("Rect")); + iContext->DrawRect(vlarge); + iContext->Clear(screen); + + INFO_PRINTF1(_L("CopyRect")); + iContext->CopyRect(TPoint(100000000,100000000),vlarge); + iContext->Clear(screen); + + INFO_PRINTF1(_L("BitBlt")); + iContext->BitBlt(TPoint(0,0),*iContext,vlarge); + iContext->Clear(screen); + iContext->BitBlt(TPoint(0,0),&iBitmap,vlarge); + iContext->Clear(screen); + + INFO_PRINTF1(_L("BitBltMasked")); + iContext->BitBltMasked(TPoint(0,0),&iBitmap,vlarge,&iBitmap,EFalse); + iContext->Clear(screen); + + iContext->SetBrushColor(KRgbBlack); + iContext->SetBrushStyle(CGraphicsContext::ESolidBrush); + INFO_PRINTF1(_L("Polygon")); + CArrayFixFlat* poly=new CArrayFixFlat(4); + poly->AppendL(vlarge.iTl); + TPoint temp(vlarge.iBr.iX,vlarge.iTl.iY); + poly->AppendL(temp); + poly->AppendL(vlarge.iBr); + temp.SetXY(vlarge.iTl.iX,vlarge.iBr.iY); + poly->AppendL(temp); + iContext->DrawPolygon(poly); + iContext->Clear(screen); + delete poly; + + INFO_PRINTF1(_L("DrawBitmap")); + iContext->DrawBitmap(vlarge,&iBitmap); + iContext->Clear(screen); + + INFO_PRINTF1(_L("Text")); + TBuf<16> text(_L("Test text.")); + iContext->DrawText(text,vlarge.iTl); + iContext->DrawText(_L("Test text."),vlarge.iBr); + iContext->SetCharJustification(100000000,1); + iContext->SetWordJustification(100000000,1); + iContext->DrawText(_L("Test text."),TPoint(0,0)); + iContext->Clear(screen); + } + +//-------------- +__CONSTRUCT_STEP__(Param) + +void CTParamStep::TestSetupL() + { + FbsStartup(); + User::LeaveIfError(RFbsSession::Connect()); + } + +void CTParamStep::TestClose() + { + RFbsSession::Disconnect(); + }