windowing/windowserver/test/t_stress/inc/spritewin.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_stress/inc/spritewin.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,103 @@
+// Copyright (c) 2008-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:
+//
+
+/**
+ @file
+ @test
+ @internalComponent
+*/
+
+#ifndef SPRITEWIN_H
+#define SPRITEWIN_H
+
+#include <w32std.h>
+#include "compwin.h"
+
+
+_LIT8(KSpritedWindowType, "Sprited");
+
+class CSpritedWin : public CCompWin
+	{
+public:
+	static CSpritedWin* NewLC(RWsSession& aWs, RWindowGroup* aGroup, CCompWin* aParent, CWindowGc& aGc);
+	static void LoadConfiguration(const MTestStepConfigurationContext* aContext);
+	static TBool IsEnabled() { return iEnabled; }
+	~CSpritedWin();
+	
+	// from CCompWin
+	void Redraw(const TRect& aRect);
+	void DrawBitmap(CFbsBitGc* aGc, TRect& aClip, TPoint& aOrigin);
+	void ClearBitmapBackground(CFbsBitGc* aGc, TRect& aClip, TPoint& aOrigin);
+	void SetSize(const TSize & aSize);
+	void SetPos(const TPoint & aPos);
+	virtual const TDesC8& TypeName() { return KSpritedWindowType; }
+	void DumpDetails(RFile & aFile, TInt aDepth);
+	
+protected:
+	CSpritedWin(RWsSession& aWs, RWindowGroup* aGroup, CCompWin* aParent, CWindowGc& aGc);
+	void ConstructL();
+	
+	// from CCompWin
+	TBool QueryReadyForVerification();
+ 
+private:
+	static TBool iEnabled;
+	static TBool iTransparent;
+	static TBool iRandomizePenStyle;
+	static TBool iRandomizeBrushStyle;
+	static TBool iRandomizeDrawMode;
+	static TBool iTransparentForegroundWindow;
+	static TInt  iMaxRandomStepX;
+	static TInt  iMaxRandomStepY;
+	static TInt  iMaxRandomOffsetX;
+	static TInt  iMaxRandomOffsetY;
+
+	enum TValues
+	{
+	ENofSlides = 4,
+	ESpriteSzX  = 64,
+	ESpriteSzY  = 64,
+	ESpriteSzXHalf  = ESpriteSzX / 2,
+	ESpriteSzYHalf  = ESpriteSzY / 2,
+	EStepWidth		= ESpriteSzXHalf / (ENofSlides+1),
+	EStepHeight		= ESpriteSzYHalf / (ENofSlides+1),
+	ESlideDurMult	= 100000,	//duration multiplier (microseconds)
+	ESlideDurMaxTenthSec = 15,	//max random sprite frame duration
+	EFrameBorderSenseMs = 10000
+	};
+	
+	RWsSprite 				iSprite;
+	CFbsBitmap* 			iSpriteContent [ENofSlides];
+	CFbsBitmap* 			iSpriteMask [ENofSlides];
+	CFbsBitmapDevice*		iSpriteCntDevice [ENofSlides];
+	CFbsBitmapDevice*		iSpriteMskDevice [ENofSlides];
+	struct TSpriteMember 	iSpriteDef [ENofSlides];
+	TBool					iConstructed;
+	
+	TRgb					iBgColor;
+	CGraphicsContext::TPenStyle   iPenStyle;
+	CGraphicsContext::TBrushStyle iBrushStyle;
+	CGraphicsContext::TDrawMode   iDrawMode;	
+
+	TTimeIntervalMicroSeconds32
+							iSlideDuration; //duration for a single slide in microseconds
+	
+	TUint32 				iSpriteStartup; //time (in ticks) when sprite was activated
+	TInt 					iKernelTicksPeriod; //microseconds per tick
+	RBlankWindow*  			iForeWin; //transparent foreground window
+	};
+
+
+#endif // SPRITEWIN_H