graphicsdeviceinterface/bitgdi/tbit/TClip.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/bitgdi/tbit/TClip.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,182 @@
+// Copyright (c) 2003-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:
+//
+
+#ifndef __TCLIP_H__
+#define __TCLIP_H__
+
+#include "TGraphicsHarness.h"
+
+#define testtext _L("Test text")
+#define largetesttext _L("W")
+
+class CTClipStep;
+
+class CTClip : public CTGraphicsBase
+	{
+public:
+	enum TGraphicsOps
+		{
+	EFirstGop,
+		EPlot,
+		EDrawLine,
+		EDottedLine,
+		EDashedLine,
+		EWideLine,
+		EDrawArc,
+		EDottedArc,
+		EDrawRect,
+		EVerticalHatchRect,
+		EForwardDiagonalHatchRect,
+		EHorizontalHatchRect,
+		ERearwardDiagonalHatchRect,
+		ESquareCrossHatchRect,
+		EDiamondCrossHatchRect,
+		EVerticalHatchEllipse,
+		EForwardDiagonalHatchEllipse,
+		EHorizontalHatchEllipse,
+		ERearwardDiagonalHatchEllipse,
+		ESquareCrossHatchEllipse,
+		EDiamondCrossHatchEllipse,
+		EDottedRect,
+		ECopyRect,
+		EDrawEllipse,
+		EDottedEllipse,
+		EDrawRoundRect,
+		EDottedRoundRect,
+		EDrawPie,
+		EDottedPie,
+		EDrawPolygon,
+		EDrawText,
+		EBoxText,
+		EDrawTextVertical,
+		ELargeText,
+		ELargeBoxText,
+		ELargeTextVertical,
+		EPaintRect,
+		EBitBltContext,
+		EBitBltBitmap,
+		EBitBltMasked,
+		EDrawBitmap,
+		EBitmapLarge,
+		EBitmapSmall,
+		EBitBltMaskedBinary,
+		EBitBltMaskedBinary64K,
+		EBitBltMaskedBinary16MU,
+		EBitBltMaskedAlpha,
+		EBitBltMaskedAlpha64K,
+		EBitBltMaskedAlpha16MU,
+		EBitBltMaskedAlpha16MA,
+		EBitBltMaskedBinary16MA,
+	EGraphicsOps,
+	ETerminator
+		};
+	enum TTestConsts
+		{
+		ERegions=10
+		};
+	enum TColors
+		{
+		EForeground=0,
+		EBackground=0xff
+		};
+public:
+	CTClip(CTestStep* aStep,
+			TInt aTestAppNo,
+			CFbsScreenDevice* aDev,
+			CFbsBitGc* aCon,
+			CFbsBitmap* aBmp,
+			CFbsFont* aFont,
+			CFbsFont* aLargeFont);
+	~CTClip();
+	void TestRectRgn();
+	void TestHoriRgn();
+	void TestVertRgn();
+	void TestSimpleRgn();
+	void TestComplexRgn();
+	void ScanArea(TInt,TInt,TInt,TInt);
+	void CheckInside(const TRect&,const TRect&);
+	void Clear();
+protected:
+//from 	CTGraphicsStep
+	virtual void RunTestCaseL(TInt aCurTestCase);
+	void ConstructL();
+private:
+	void DrawToScreen(TRegion& aClipReg,TRect aRect);
+	void DrawToScreen(const TRect& aClipRect,TRect aRect);
+	void DoDraw(TRect aRect,TBool aClipped);
+	void Message(const TDesC& aMessage);
+	TBool SetUpTest(TInt &aTestMode);
+	inline CTClipStep* Step();
+private:
+	TInt iTestAppNo;
+	CFbsScreenDevice* iDev;
+	CFbsBitGc* iCon;
+	TRect iClientRect;
+	TInt iGopNum;
+	TRect* iClipList;
+	TInt iTestSection;
+	CFbsBitmap* iBitmap;
+	CFbsBitmap* iBitmap64K;
+	CFbsBitmap* iBitmap16MU;
+	CFbsBitmap* iBitmap16MA;
+	CFbsBitmap* iBitmapMask;
+	CFbsBitmap* iBitmapAlpha;
+	CFbsFont* iFont;
+	CFbsFont* iLargeFont;
+	TSize iBmpSize;
+	};
+
+GLREF_C	void CreateTestEnvironment(CFbsScreenDevice*& aDev, CFbsBitGc*& aGc, 
+								   CFbsFont*& aFont, CFbsFont*& aLargeFont);
+GLREF_C	void DestroyTestEnvironment(CFbsScreenDevice* aDev, CFbsBitGc* aGc, 
+								   CFbsFont* aFont, CFbsFont* aLargeFont);
+
+
+class CTClipStep : public CTGraphicsStep
+	{
+public:
+	CTClipStep();
+	~CTClipStep();
+	inline TBool IgnoreDiffs();
+protected:	
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	virtual void TestSetupL();
+	virtual void TestClose();
+private:
+	TInt CreateScreenDevice(TDisplayMode aMode);
+	void CreateTestEnvironment();
+	void DestroyTestEnvironment();
+protected:
+	TInt iTestAppNo;
+private:
+	CFbsScreenDevice* iDev;
+	CFbsBitGc* iGc;
+	CFbsFont* iFont;
+	CFbsFont* iLargeFont;
+	CFbsBitmap* iBmp;
+	TBool iIgnoreDiffs;
+	};
+
+class CTClip2Step : public CTClipStep
+	{
+public:
+	CTClip2Step();
+	};
+
+_LIT(KTClipStep,"TClip");
+_LIT(KTClip2Step,"TClip2");
+
+#endif//__TCLIP_H_