graphicstest/uibench/src/tdirectgditestbase.h
author Faisal Memon <faisal.memon@nokia.com>
Fri, 14 May 2010 17:03:25 +0100
branchNewGraphicsArchitecture
changeset 67 9c70c0a878c0
parent 0 5d03bc08d59c
permissions -rw-r--r--
Merge 3. Improve performance by switching to less aggressive settings for RI_NUM_TESSELLATED_SEGMENTS and RI_MAX_SAMPLES. Ignored the WIN32 specific API decoration defines when doing the merge. Note the code is now optimised in riPath.cpp to change from RI_NUM_TESSELLATED_SEGMENTS to _QUAD, _CUBIC, _ARC settings which are each now set to 8. SVG Tiger now renders in 5 seconds (15 seconds quicker). The quality of the OVG icons is slightly reduced but still very useable.

// 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:
//

/**
 @file
 @test
 @internalComponent - Internal Symbian test code 
*/

#ifndef __TDIRECTGDITESTBASE_H__
#define __TDIRECTGDITESTBASE_H__

#include "te_graphicsperformanceSuiteStepBase.h"

#include <pixelformats.h>
#include <graphics/directgdicontext.h>
#include <graphics/directgdiimagetarget.h>
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
#include <graphics/sgimage.h>
#endif
_LIT(KFontTypeface, "DejaVu Sans Condensed");
const TInt KFontSize = 14;

/****************************************************************************
* The reason to have a new step base is that it is very much possible
* that the all individual test steps have project related common variables 
* and members 
* and this is the place to define these common variable and members.
* 
****************************************************************************/
class CTDirectGdiTestBase : public CTe_graphicsperformanceSuiteStepBase
	{
public:	
	CTDirectGdiTestBase();
	virtual ~CTDirectGdiTestBase();	
	
	virtual CFbsBitmap* GetTargetAsBitmapL();
		
protected:	
	// From CTe_graphicsperformanceSuiteStepBase
	virtual enum TVerdict doTestStepL() { return ETestSuiteError; }
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
	virtual TVerdict doTestStepPreambleL(); 	
	virtual TVerdict doTestStepPostambleL();
#endif	
	TInt SetTargetPixelFormatL(TDisplayMode aDisplayMode);
	
	
private:	
	void InitializeDirectGdiL();
	void UninitializeDirectGdi();

protected:
	CDirectGdiContext* iContext;
	CDirectGdiDriver* iDGdiDriver;
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
	RSgImage iSgImageTarget;
	TSgImageInfo	iImageInfo;	// image info for RSgImage
#endif
	RDirectGdiImageTarget* iDGdiImageTarget;
	CDirectGdiFont* iFont;
	CDirectGdiFont* iLargeFont;
	CFbsTypefaceStore* iTs;
	
	RArray<TUidPixelFormat> iTargetPixelFormatArray; // target pixel format(s) for testing
	RArray<TUidPixelFormat> iSourcePixelFormatArray; // source pixel format(s) for testing
	};
	
#endif