uigraphics/NVGRenderStage/src/nvgrenderstagefactory.h
author William Roberts <williamr@symbian.org>
Wed, 21 Apr 2010 16:01:50 +0100
changeset 47 bb62470f88ca
permissions -rw-r--r--
Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     7
//
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    10
//
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    11
// Contributors:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    12
//
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    13
// Description:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    14
//
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    15
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    16
#ifndef NVGRENDERSTAGEFACTORY_H
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    17
#define NVGRENDERSTAGEFACTORY_H
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    18
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    19
/**
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    20
@file
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    21
@test
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    22
@internalComponent - Internal Symbian test code
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    23
*/
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    24
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    25
#include <graphics/wsplugin.h>
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    26
#include <graphics/wsrenderstagefactory.h>
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    27
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    28
class CWsRenderStage;
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    29
class MWsGraphicDrawerEnvironment;
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    30
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    31
/** This is an implementation of MWsRenderStageFactory, in the form of a CWsPlugin.
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    32
The window server will use this to create standard render stages for each screen,
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    33
if the ini file specifies them.
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    34
*/
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    35
class CNvgRenderStageFactory : public CWsPlugin, public MWsRenderStageFactory
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    36
	{
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    37
public:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    38
	enum { EImplUid = 0x1028653B };
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    39
	
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    40
public:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    41
	static CNvgRenderStageFactory* CreateL();
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    42
	~CNvgRenderStageFactory();
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    43
	void ConstructL(MWsGraphicDrawerEnvironment& aEnv,const TDesC8& aData);
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    44
	const TDesC& PluginName() const;
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    45
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    46
	// implementation of MWsObjectProvider
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    47
	TAny* ResolveObjectInterface(TUint aTypeId);
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    48
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    49
	// implementation of MWsRenderStageFactory
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    50
	virtual CWsRenderStage* CreateFinalRenderStageL(MWsScreen* aScreen, MWsScreenRedraw* aScreenRedraw, TInt aScreenNumber);
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    51
	virtual CWsRenderStage* CreateRenderStageL(MWsScreen* aScreen, MWsScreenRedraw* aScreenRedraw, CWsRenderStage* aNextStage);
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    52
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    53
private:
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    54
	CNvgRenderStageFactory();
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    55
	};
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    56
bb62470f88ca Add NVGRenderStage code, and reapply associated changes to epoc.ini and wsini.ini
William Roberts <williamr@symbian.org>
parents:
diff changeset
    57
#endif // NVGRENDERSTAGEFACTORY_H