--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/inc/Graphics/wsdrawablesourceprovider.h Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,97 @@
+// Copyright (c) 2008-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:
+//
+
+/**
+ @publishedPartner
+ @prototype
+*/
+
+#ifndef __WSDRAWABLESOURCEPROVIDER_H__
+#define __WSDRAWABLESOURCEPROVIDER_H__
+
+#include <graphics/sgresource.h>
+#include <graphics/wsgraphicdrawerinterface.h>
+
+/**
+Window server evokes this interface from rendering stage plugin every time client
+requests resource drawing operations.
+
+@publishedPartner
+@prototype
+ */
+class MWsDrawableSourceProvider : public MWsObjectProvider
+ {
+public:
+ DECLARE_WS_TYPE_ID(KMWsDrawableSourceProvider)
+public:
+ /**
+ Create a source object for future drawing of the drawable resource with the specified ID.
+ @param aDrawableId The ID of the drawable resource.
+ @param aSource On output, a pointer to the new source object associated with the drawable resource,
+ which must be passed in calls to DrawResource() and CloseDrawableSource().
+ After the call to CloseDrawableSource() the source object is destroyed and this pointer becomes invalid.
+ The type of the source object is defined by the implementation of MWsDrawableSourceProvider.
+ @post If successful, a new source object is created and the associated drawable resource is ready to use.
+ @return KErrNone if successful, otherwise one of the system-wide error codes.
+ */
+ virtual TInt CreateDrawableSource(const TSgDrawableId& aDrawableId, TAny*& aSource) = 0;
+
+ /**
+ Destroy a source object associated with a drawable resource.
+ @param aSource A pointer to a source object created by a previous call to CreateDrawableSource().
+ @post Drawing of the associated drawable resource is no longer possible.
+ @return KErrNone if successful, otherwise one of the system-wide error codes.
+ */
+ virtual void CloseDrawableSource(TAny* aSource) = 0;
+
+ /**
+ Draw a graphics resource.
+ @param aSource A pointer to the source object associated with the drawable resource.
+ @param aPos Destination position for the top-left corner of the drawable resource.
+ @param aRotation Rotation to be applied to the drawable resource before it is drawn.
+ @pre A source object must have been created for the drawable resource by a previous call to CreateDrawableSource().
+ */
+ virtual void DrawResource(const TAny* aSource, const TPoint& aPos, CWindowGc::TGraphicsRotation aRotation = CWindowGc::EGraphicsRotationNone) = 0;
+
+ /**
+ Draw a graphics resource.
+ @param aSource A pointer to the source object associated with the drawable resource.
+ @param aRect Destination rectangle. The drawable resource could be scaled if its size doesn't match the destination rectangle.
+ @param aRotation Rotation to be applied to the drawable resource before it is drawn.
+ @pre A source object must have been created for the drawable resource by a previous call to CreateDrawableSource().
+ */
+ virtual void DrawResource(const TAny* aSource, const TRect& aRect, CWindowGc::TGraphicsRotation aRotation = CWindowGc::EGraphicsRotationNone) = 0;
+
+ /**
+ Draw a graphics resource.
+ @param aSource A pointer to the source object associated with the drawable resource.
+ @param aRectDest Destination rectangle. The drawable resource could be scaled if its size doesn't match the destination rectangle.
+ @param aRectSrc A rectangle defining the piece of the drawable resource to be drawn, in the co-ordinate system of the drawable resource.
+ @param aRotation Rotation to be applied to the drawable resource before it is drawn.
+ @pre A source object must have been created for the drawable resource by a previous call to CreateDrawableSource().
+ */
+ virtual void DrawResource(const TAny* aSource, const TRect& aRectDest, const TRect& aRectSrc, CWindowGc::TGraphicsRotation aRotation = CWindowGc::EGraphicsRotationNone) = 0;
+
+ /**
+ Draw a graphics resource.
+ @param aSource A pointer to the source object associated with the drawable resource.
+ @param aRect Destination rectangle. The drawable resource could be scaled if its size doesn't match the destination rectangle.
+ @param aParam Parameters specifying how to draw the drawable resource.
+ @pre A source object must have been created for the drawable resource by a previous call to CreateDrawableSource().
+ */
+ virtual void DrawResource(const TAny* aSource, const TRect& aRect, const TDesC8& aParam) = 0;
+ };
+
+#endif //__WSDRAWABLESOURCEPROVIDER_H__