graphicsdeviceinterface/gdi/tgdi/TGlyphSel.h
author Gareth Stockwell <gareth.stockwell@accenture.com>
Fri, 05 Nov 2010 17:31:20 +0000
branchbug235_bringup_0
changeset 215 097e92a68d68
parent 0 5d03bc08d59c
permissions -rw-r--r--
Added GLES 1.x spinning cube-rendering code to eglbringuptest The coordinate, color and index data are uploaded to server-side buffers by the CGLES1Cube::KhrSetup function. CGLES1Cube::KhrPaint just sets the view matrix and issues a draw command. Which demo to display can be selected by passing its name on the command line, e.g. eglbringuptest vgline eglbringuptest gles1cube If no name is provided, the application defaults to vgline.

// 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 __TGLYPHSEL_H_
#define __TGLYPHSEL_H_


#include "TGraphicsContext.h"
#include "TGraphicsHarness.h"


class TStopWatch
	{
public:
	inline void Start();
	inline TUint Stop();
private:
	TTime iTime;
	};

void TStopWatch::Start()
	{
	iTime.UniversalTime();
	}

TUint TStopWatch::Stop()
	{
	TTime t;
	t.UniversalTime();
	TInt64 i = ((t.MicroSecondsFrom(iTime).Int64()) + 500)/1000;
	return I64LOW(i);
	}

//	Forward declaration
struct TTestInput_PositionParam6;
class CTGlyphSelection : public CTGraphicsBase
/**
 This is a unit test class. Its responsibilites are to define and
 execute test cases that exercise CFont::GetCharacterPosition() 
 functionality.
@internalComponent
@test
*/
	{
public:

	// House keeping methods for test setup and shutdown.
	CTGlyphSelection(CTestStep* aStep);
	~CTGlyphSelection();
protected:
//from 	CTGraphicsStep
	virtual void RunTestCaseL(TInt aCurTestCase);
	virtual void ConstructL();
	
	void CreateTestGraphicsContextL();
	void TestPerformance();

	// Test case methods testing specific functionality.
	void TestCtrlCharsIgnored();
	void TestApiBoundaries();
	void TestLatinChars();
	void TestGlyphs(CFont* aFont, CFont::TPositionParam& aParam,
		const TPtrC16& aText, const TPtrC16& aExpectedGlyphs);
	
	//TestIndicChars() is main function to perform testing for all Indic languages and calls all the indic language functions.
	 
	void TestIndicCharsL();
	void TestHindiChars(CFbsFont* aFont);
	void TestKannadaChars(CFbsFont* aFont);
	void TestMarathiChars(CFbsFont* aFont);
	void TestGujaratiChars(CFbsFont* aFont);
	void TestBengaliChars(CFbsFont* aFont);
	void TestTamilChars(CFbsFont* aFont);
	void TestTeluguChars(CFbsFont* aFont);
	void TestIndicPunctuation(CFbsFont* aFont);
	void TestIndicPunctuationGlyphs(CFbsFont* aFont, CFont::TPositionParam& aParam,
		const TPtrC16& aText, const TPtrC16& aExpectedGlyphs);
	
	//Gurumukhi and Malayalam support
	void ExecuteIndicGurmukhiMalayalamTests();
	void DoEachGurmukhiMalayalamCase( const TTestInput_PositionParam6* aArray, const CFbsFont& aFont );
	void TestGurmukhiDigit( const CFbsFont& aFont );
	void TestGurmukhiAndLatin( const CFbsFont& aFont );
	void TestGurmukhiModifierAfterConsonantViramaZWJ( const CFbsFont& aFont );
	void TestGurmukhiWithConsonantInitial( const CFbsFont& aFont );
	void TestGurmukhiWithVowelInitial( const CFbsFont& aFont );
	void TestMalayalamDigit( const CFbsFont& aFont );
	void TestMalayalamAndLatin( const CFbsFont& aFont );
	void TestMalayalamModifierAfterConsonantViramaZWJ( const CFbsFont& aFont );
	void TestMalayalamWithConsonantInitial( const CFbsFont& aFont );
	void TestMalayalamWithVowelInitial( const CFbsFont& aFont );
	
	void TestVietnameseChars();
	void TestSoftHyphen();
	void TestSurrogates();
	void TestNonBmpCharsL();
	void TestNonBmpCharsInGB18030(CFbsFont* aFont);
	void TestCombiningLatinChars();
	void TestTextDirection();
	void TestAllUnicodeChars();
	void TestLigaturesWithDiacritics();
	void TestIsolatedCombiningLatinChars();
	void TestContextInShapeInfo();

	// Test cases methods testing Thai functionality.
	void ExecuteThaiTests();
	void TestThai_SimpleChars();
	void TestThai_ValidGlyphClusters();
	void TestThai_InvalidGlyphClusters();
	void TestThai_INC118424();
	
	void TestMeasureText();

	void TestCodepoint(TUint aCodepoint, CFont* aFont);
	
	void GenerateGurmukhiMalayalamData( const TDesC& filename, const TTestInput_PositionParam6* aArray, const CFbsFont& aFont );

public:
	// Context data needed for the test cases in this class.
	CTestFont* iTestFont;
	CTestGraphicsDevice* iTestGraphicsDevice;
	CTestGraphicsContext* iTestGraphicsContext;
private:
    RFs iFs;
	};

class CTGlyphSelectionStep : public CTGraphicsStep
	{
public:
	CTGlyphSelectionStep();
protected:	
	//from CTGraphicsStep
	virtual CTGraphicsBase* CreateTestL();
	void TestSetupL();
	};

_LIT(KTGlyphSelectionStep,"TGlyphSelection");


#endif //__TGLYPHSEL_H_