diff -r 000000000000 -r 5d03bc08d59c graphicsresourceservices/graphicsresource/inc/sgimageadapter.h --- /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 +#include + + +/** +@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