--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/tcrpanim.h Tue Feb 02 01:47:50 2010 +0200
@@ -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__