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) 1995-2010 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 __TFBS_H__
#define __TFBS_H__
#include <fbs.h>
#include <gdi.h>
#include <test/fontinjector.h>
#include <test/TGraphicsHarness.h>
_LIT(KTempFilename,"c:\\temp.mbm");
_LIT(KTestBitmapOnZ,"z:\\system\\data\\tfbs.mbm");
_LIT(KTestBitmapOnC,"c:\\tfbs.mbm");
_LIT(KFail1Filename,"c:\\testfailed_bitmap1.mbm");
_LIT(KFail2Filename,"c:\\testfailed_bitmap2.mbm");
// Mostly to test bitmap compression
_LIT(KRomNotCompressed,"z:\\system\\data\\rom.mbm");
_LIT(KRomCompressed,"z:\\system\\data\\romcomp.mbm");
_LIT(KFileNotCompressed,"z:\\system\\data\\file.mbm");
_LIT(KFileCompressed,"z:\\system\\data\\filecomp.mbm");
// Panic Category for FBServ panics
_LIT(KFbsPanicCategory, "FBSERV");
enum TTfbs
{
ETfbs,
ETblank
};
class CFbsFontEx : public CFbsFont
{
public:
CFbsFontEx(): CFbsFont() { iHandle=0; iAddressPointer=NULL; }
void Reset() { CFbsFont::Reset(); }
void SetHandle() { iHandle = 1; }
TInt Duplicate(TInt aHandle) { return(CFbsFont::Duplicate(aHandle)); }
CBitmapFont* Address() const { return CFbsFont::Address(); }
TInt FontHandle() const {return iHandle;}
};
/**
Test utility class whose sole aim is to provide public access to CBitmapFont* from CFbsFont.
*/
class CTFbsFont : public CFbsFont
{
public:
static CBitmapFont* FontAddress(CFbsFont* aFont) { return static_cast<CTFbsFont*>(aFont)->Address(); }
};
class CFbsBitmapEx : public CFbsBitmap
{
public:
CBitwiseBitmap* BitmapAddress() { if (!iHandle) return NULL; return iAddressPointer; }
void LockHeap() const { CFbsBitmap::LockHeap(); }
void UnlockHeap() const { CFbsBitmap::UnlockHeap(); }
TInt BitmapHandle() const {return iHandle;}
};
#ifdef __WINS__
template<class C> class XTCallCounter : public MShellcode
{
public:
XTCallCounter(CTGraphicsBase& aTestBase);
private:
// From MShellcode
void ExecuteShellcode(TInt aFromFunction);
private:
CTGraphicsBase& iTestBase;
public:
XVtableInjector<C> iInjector;
TInt iVFCallsOutsideFBServ;
};
#endif
class CTFbs : public CTGraphicsBase
{
public:
CTFbs(CTestStep* aStep);
~CTFbs();
protected:
//from CTGraphicsStep
virtual void RunTestCaseL(TInt aCurTestCase);
void ConstructL();
void TestConstruction();
void TestConnection();
void TestFlushCallBack();
static TInt FlushCallBack(TAny* aPtr);
void TestInvalidFiles();
void TestGetFont();
void TestFontStore();
void TestFontNameAlias();
void TestAddFontFile();
void TestBufferedFont();
void TestMultipleFont();
void TestCreateBitmap();
void TestLoadBitmap();
void TestQueryBitmap();
void TestRomBitmapL();
void TestMultiThread();
void TestHeapCompression();
void ExpandCleanupStackL();
void DeleteScanLineBuffer();
void AllocScanLineBuf();
void TestAllFontsLoaded();
void TestDefaultLanguageForMetrics();
void TestDuplicateFontFileEntries();
//COMMENTED OUT FOR NOW BECAUSE DEF084095 FIX MAKES THIS TEST REDUNDANT
//void TestShapeHeaderMemoryLeakAtClientDeath();
void TestBitmapHandleImmutable();
void TestBitmapBeginEnd();
void TestSingletonServer();
void TestNoVFCallsToGlobalObjects();
void TestFontSessionCacheLookupL();
void TestInvalidHandlesInIpcCallsL();
private:
CFbsFontEx* SelectFont();
CFbsFontEx* SelectOpenTypeFont();
void DoResizeBitmap(TDisplayMode aDispMode);
void CheckResourceCount();
void CheckFontNameAlias(const TDesC& aFontAlias, const TDesC& aFontName, TInt& aSize);
TInt LoadOpenFontLibraries();
TBool CheckTypefacesSupport(const TTypefaceSupport& aInfo1, const TTypefaceSupport& aInfo2);
void LoadFontsL(const TDesC& aFontsDir);
void SecondThreadPanicInvalidHandleInIpcCallL();
void CreateSecondThreadAndCheckPanicL(void (CTFbs::*aMethodL)(), TInt aPanicCode, const TDesC& aPanicCategory, const TDesC &aThreadName);
static TInt MethodDelegatorThreadFunction(TAny* aDelegator);
private:
TInt iHandle;
RFbsSession* iFbs;
CFbsTypefaceStore* iTs;
RHeap* iHeap;
CFontStore *iFs;
TInt iResourceCount;
TInt iAllocs;
TFileName iTestBitmapName;
TBool iFlushCallbackReceived;
#ifdef __WINS__
XTCallCounter<CFont> iFontCallCounter;
XTCallCounter<COpenFont> iOpenFontCallCounter;
#endif
};
class CTFbsStep : public CTGraphicsStep
{
public:
CTFbsStep();
protected:
//from CTGraphicsStep
virtual CTGraphicsBase* CreateTestL();
};
_LIT(KTFbsStep,"TFbs");
#endif