Merge 1. Pull in cpp files in the performance enhanced Khronos RI OVG files which are newly added. I've ignored platform-specific cpp files for linux, macosx, and null operating systems because this local solution has its own platform glue (i.e. facility to target Bitmaps but no full windowing support). I've ignored sfEGLInterface.cpp because this is used as a bridge to go from EGL to Nokia's Platsim which offers an EGL service. That's not relevant to this implementation because this is ARM side code, not Intel side. I just left a comment to sfEGLInterface.cpp in case we need to pick up this later on. The current code compiles on winscw. Prior to this fix, the code works on winscw, and can launch the SVG tiger (tiger.exe). That takes about 20 seconds to render. I hope to always be able to show this icon on each commit, and the plan is for the render time to reduce with this series of submissions. On this commit, the tiger renders ok in 20 seconds.
// Copyright (c) 1996-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 __TPANIC_H__
#define __TPANIC_H__
#include <e32std.h>
#include <w32std.h>
#include "../tlib/testbase.h"
#include "AUTO.H"
#include "AUTODLL.H"
#include "TGraphicsHarness.h"
enum TPanicRedrawMode
{
EPanicRedrawModeBackedUpWindow, // Draw to a RBackedUpWindow; no BeginRedraw()/EndRedraw() needed
EPanicRedrawModeNormalRedraw, // Draw in a redraw
EPanicRedrawModeTransRedraw, // Draw to a window under a transparent window in a redraw
EPanicRedrawModeInvisRedraw, // Draw to an invisible window in a redraw
};
class CTPanic : public CTWsGraphicsBase
{
public:
struct TPanicParams
{
public:
TInt iScreen;
TPanicRedrawMode iRedrawMode;
TInt iSubTest;
};
enum TCancelCaptureType
{
ECancelCaptureKey,
ECancelCaptureKeyUpAndDowns,
ECancelCaptureLongKey
};
public:
CTPanic(CTestStep* aStep);
~CTPanic();
void ConstructL();
private:
void TestDeletedParentPanicsL();
void TestScreenDevicePanicsL();
void TestGraphicsPanicsL(TClientPanic aExitReason, TInt aIndex, CTPanic::TPanicParams* aPanicParams);
void TestGraphicsPanicsL();
void TestGraphicsPanicsL(TPanicRedrawMode aRedrawMode);
void TestMiscPanicsL();
void TestComputeModePanicsL();
void TestCaptureKeyPanicsL();
void TestEventPanicsL();
void TestTPtrPanicsL();
void TestOpcodePanicsL();
void TestMultiInitPanicL();
void TestSpritePanicsL();
void TestMoveToGroupPanicsL();
void TestHandleReUseL();
void TestDeleteScreenPanicL();
void TestWinHandleErrors();
void TestGetEventErrors();
void TestUnInitPanicL();
void TestAlphaBlendingPanicL();
void TestDoubleConstructionL();
void TestDoubleConstructionNoPanic();
void TestSpriteActivatePanicL();
#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NGA
void TestNonRedrawRedrawerL();
#endif
void TestMismatchedCaptureCancelPanicL();
void LogHeapInfo();
protected:
//from CTGraphicsStep
virtual void RunTestCaseL(TInt aCurTestCase);
private:
TSize iWinSize;
};
class CTPanicStep : public CTGraphicsStep
{
public:
CTPanicStep();
protected:
//from CTGraphicsStep
virtual CTGraphicsBase* CreateTestL();
};
_LIT(KTPanicStep,"TPanic");
class RUnInitalisedConnect : public RSessionBase
{
public:
TInt Connect(const TDesC &aName, const TVersion &aVersion);
TInt Send(const TInt aMsg);
};
#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NGA
class CNonRedrawWin : public CBase{
public:
~CNonRedrawWin();
static CNonRedrawWin* NewL(RWsSession &aSession, CWindowGc *aGc);
virtual void Redraw();
RWsSession &GetSession();
void Invalidate();
protected:
CNonRedrawWin(RWsSession &aSession, CWindowGc *aGc);
void ConstrucL();
class CRedrawer : public CActive{
public:
CRedrawer(CNonRedrawWin* aWd);
~CRedrawer();
private:
void HandleReDrawEvent();
void RunL();
void DoCancel();
void HandleRedrawEvent();
private:
CNonRedrawWin* iWd;
};
private:
RWsSession &iSession;
RWindowGroup iWdGrp;
RWindow iWd;
CWindowGc *iGc;
CRedrawer *iRedrawer;
};
#endif
#endif