graphicsresourceservices/graphicsresource/inc/sgimageadapter.h
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsresourceservices/graphicsresource/inc/sgimageadapter.h	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,163 @@
+// 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
+ @publishedPartner
+ @prototype
+*/
+
+#ifndef SGIMAGEADAPTER_H
+#define SGIMAGEADAPTER_H
+
+#include <graphics/sgresourceadapter.h>
+#include <graphics/sgimage.h>
+
+
+/**
+@publishedPartner
+@prototype
+@deprecated
+
+This interface must be implemented by all the user-side objects in the adaptation
+layer of the Graphics subsystem which are referenced by instances of RSgImage.
+The interface between the user-side and the kernel-side parts of the adaptation
+layer is outside the scope of the specification of the Graphics Resource API.
+
+@see RSgImage
+*/
+class MSgImageAdapter: public MSgDrawableAdapter
+	{
+public:
+	/**
+	@publishedPartner
+	@prototype
+	@deprecated
+
+	Retrieves the values of the attributes of the image represented by this adapter
+	object.
+
+	@param aInfo On input, the globally unique identifiers of the user-defined
+	       attributes to be retrieved from the image, if any. On return, the values
+	       of the attributes of the image and the values of the selected user-defined
+	       attributes.
+	@pre If aInfo.iUserAttributes is not null then it points to an array of
+	     aInfo.iUserAttributeCount elements with globally unique identifiers
+	     corresponding to user-defined attributes attached to the image.
+	@return KErrNone if successful.
+	@return KErrNotFound if any of the user-defined attributes to be retrieved from
+	        the image cannot be found.
+	@see RSgImage::GetInfo()
+	*/
+	virtual TInt GetInfo(TSgImageInfo& aInfo) const = 0;
+	/**
+	@publishedPartner
+	@prototype
+	@deprecated
+
+	Temporarily makes the pixel data of the image represented by this adapter object
+	accessible for reading by the CPU.
+
+	@param aDataAddress On return, the base address of the pixel data in the address
+	       space of the calling process.
+	@param aDataStride On return, the number of bytes between rows of the pixel data.
+	@pre The image is not mapped yet.
+	@pre The image was created with CPU access ESgCpuAccessReadOnly or
+	     ESgCpuAccessReadWrite.
+	@pre The image was created by the calling process.
+	@post The pixel data of the image is directly accessible in the address space
+	      of the calling process for reading only, until Unmap() is called.
+	@return KErrNone if successful.
+	@return KErrInUse if the image is already mapped or in exclusive use by the GPU.
+	@return KErrAccessDenied if the image was not created with CPU access
+	        ESgCpuAccessReadOnly or ESgCpuAccessReadWrite.
+	@return KErrPermissionDenied if the image was created by another process.
+	@return KErrNoMemory if there is not enough system memory.
+	@see RSgImage::MapReadOnly()
+	*/
+	virtual TInt MapReadOnly(const TAny*& aDataAddress, TInt& aDataStride) = 0;
+	/**
+	@publishedPartner
+	@prototype
+	@deprecated
+
+	Temporarily makes the pixel data of the image represented by this adapter object
+	accessible for writing by the CPU.
+
+	@param aDataAddress On return, the base address of the pixel data in the address
+	       space of the calling process.
+	@param aDataStride On return, the number of bytes between rows of the pixel data.
+	@pre The image is not mapped yet.
+	@pre The image was created with CPU access ESgCpuAccessWriteOnly or
+	     ESgCpuAccessReadWrite.
+	@pre The image was created by the calling process.
+	@post The pixel data of the image is directly accessible in the address space
+	      of the calling process for writing only, until Unmap() is called.
+	@return KErrNone if successful.
+	@return KErrInUse if the image is already mapped or in exclusive use by the GPU.
+	@return KErrAccessDenied if the image was not created with CPU access
+	        ESgCpuAccessWriteOnly or ESgCpuAccessReadWrite.
+	@return KErrPermissionDenied if the image was created by another process.
+	@return KErrNoMemory if there is not enough system memory.
+	@see RSgImage::MapWriteOnly()
+	*/
+	virtual TInt MapWriteOnly(TAny*& aDataAddress, TInt& aDataStride) = 0;
+	/**
+	@publishedPartner
+	@prototype
+	@deprecated
+
+	Temporarily makes the pixel data of the image represented by this adapter object
+	accessible for reading and writing by the CPU.
+
+	@param aDataAddress On return, the base address of the pixel data in the address
+	       space of the calling process.
+	@param aDataStride On return, the number of bytes between rows of the pixel data.
+	@pre The image is not mapped yet.
+	@pre The image was created with CPU access ESgCpuAccessReadWrite.
+	@pre The image was created by the calling process.
+	@post The pixel data of the image is directly accessible in the address space
+	      of the calling process for reading and writing, until Unmap() is called.
+	@return KErrNone if successful.
+	@return KErrInUse if the image is already mapped or in exclusive use by the GPU.
+	@return KErrAccessDenied if the image was not created with CPU access
+	        ESgCpuAccessReadWrite.
+	@return KErrPermissionDenied if the image was created by another process.
+	@return KErrNoMemory if there is not enough system memory.
+	@see RSgImage::MapReadWrite()
+	*/
+	virtual TInt MapReadWrite(TAny*& aDataAddress, TInt& aDataStride) = 0;
+	/**
+	@publishedPartner
+	@prototype
+	@deprecated
+
+	Makes the pixel data of the image represented by this adapter object no longer
+	accessible by the CPU.
+
+	@pre The image is mapped for CPU access by a previous call to MapReadOnly(),
+	     MapWriteOnly() or MapReadWrite().
+	@post The GPU is guaranteed to be able to get access to the image.
+	@post The address range in the calling process used for the mapping is no longer
+	      valid.
+	@return KErrNone if successful.
+	@return KErrGeneral if the image was not mapped for CPU access.
+	@see RSgImage::Unmap()
+	*/
+	virtual TInt Unmap() = 0;
+	};
+
+
+#endif // SGIMAGEADAPTER_H