diff -r bf7481649c98 -r 2717213c588a windowing/windowserver/test/tauto/tcrpanim.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/test/tauto/tcrpanim.h Tue Jun 22 15:21:29 2010 +0300 @@ -0,0 +1,98 @@ +// 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: +// TCrpAnim.H Defines class CTCrpAnim +// +// + +/** + @file + @test + @internalComponent - Internal Symbian test code +*/ + +#ifndef __TCRPANIM_H__ +#define __TCRPANIM_H__ + +#include "AUTO.H" + +_LIT(KTCrpAnimStep,"TCrpAnim"); + +namespace //anonymous local scope + { + class CCrpAnim; + typedef CCrpAnim CAnonAnimWindow; + class CActiveWait; + typedef CActiveWait CAnonActiveWait; + } + +class CTCrpAnim : public CTWsGraphicsBase + { +public: + CTCrpAnim(CTestStep* aStep); + ~CTCrpAnim(); + void ConstructL(); +protected: + virtual void RunTestCaseL(TInt aCurTestCase); +private: + // TAnimFrameResult is a struct designed to track the various frame results + // as the animation progresses. Once the animation is complete, TAnimFrameResult + // provides an easy to read indication as to the animation's performance + struct TAnimFrameResult + { + TInt iFrameOK; + TInt iFramePartial; + TInt iFrameIdentical; + TInt iFrameEmpty; + TInt iFrameTearing; + TInt iFrameSkipped; + }; + void InvalidatePauseAndRedraw(const TRect &aRect,TTimeIntervalMicroSeconds32 aInterval); + void RedrawAndCheckWindows(TBool aBlankIt=EFalse); + void TestSpriteLoopL(TBool aAnimForeground,TBool aDrawForeground); + void CheckAnimProgressedL(CAnonAnimWindow* aAnimWin, TInt aAdditionalFrameCount, TBool aCaptureFrameResult = ETrue); + TInt DetermineApproxFrameNum(CFbsBitmap* aBitmap, TBool aCaptureFrameResult); + void ResetFrameCounters(); + TInt LogResults(); +// The tests + void TestSpriteInterruptsForegroundL(); + void TestSpriteRestartInterruptsForegroundL(); + void BasicCRPDemo(); + void TestOverlappingWindowsL(); + void TestClippingWindowsL(); + void DemoClippingWindowsL(); + void TestInvalidateL(); +private: + CAnonAnimWindow *iTestWin; + CAnonAnimWindow *iOverWin; + CAnonAnimWindow *iRedrawWin; + CAnonAnimWindow *iBaseWin; + TInt iPreviousFrameNum; // identifies the last successfully drawn frame number calculated + TInt iMinimumCalcRedLine; // the calculated minimum length of the red line in the animation + TAnimFrameResult iFrameStatus; // tracker for the performance of each animated frame + CActiveWait* iWaiter; // active object with configurable timer + CWsGraphicBitmapAnimation* iAnim; // ptr to server-side animation object + CFbsBitmap* iScreenBitmap; // bitmap holding screen snap-shot + HBufC8* iScanlineBuf; // buffer holding pixel data on a single vertical scan line + }; + +class CTCrpAnimStep : public CTGraphicsStep + { +public: + CTCrpAnimStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +#endif //__TCRPANIM_H__