class RSurfaceManagerDriver : public RBusLogicalChannel |
RSurface Manager driver. This is a simple user side interface class derived from RBusLogicalChannel with each surface manager function implemented with a call to DoControl
Public Member Functions | |
---|---|
TInt | AddSurfaceHint(const TSurfaceId &, const RSurfaceManager::THintPair &) |
TInt | CloseSurface(const TSurfaceId &) |
TInt | CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf &, TSurfaceId &) |
TInt | CreateSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf &, TSurfaceId &, const RChunk &) |
TInt | GetBufferOffset(const TSurfaceId &, TInt, TInt &) |
TInt | GetSurfaceHint(const TSurfaceId &, RSurfaceManager::THintPair &) |
TInt | GetSurfaceManagerAttrib(RSurfaceManager::TSurfaceManagerAttrib, TInt &) |
TInt | MapSurface(const TSurfaceId &, RChunk &) |
const TDesC & | Name() |
TInt | Open() |
TInt | OpenSurface(const TSurfaceId &) |
TInt | SetSurfaceHint(const TSurfaceId &, const RSurfaceManager::THintPair &) |
TInt | SurfaceInfo(const TSurfaceId &, RSurfaceManager::TInfoBuf &) |
TInt | SynchronizeCache(const TSurfaceId &, TInt, RSurfaceManager::TSyncOperation) |
TVersion | VersionRequired() |
Inherited Enumerations | |
---|---|
RHandleBase:TAttributes |
Inherited Attributes | |
---|---|
RHandleBase::iHandle |
TInt | AddSurfaceHint | ( | const TSurfaceId & | aSurface, |
const RSurfaceManager::THintPair & | aHint | |||
) | [inline] |
const TSurfaceId & aSurface | The surface identifier originally returned when the surface was created. |
const RSurfaceManager::THintPair & aHint | The value of the hint pair to add. |
TInt | CloseSurface | ( | const TSurfaceId & | aSurfaceId | ) | [inline] |
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
TInt | CreateSurface | ( | const RSurfaceManager::TSurfaceCreationAttributesBuf & | aReqs, |
TSurfaceId & | aSurfaceId | |||
) | [inline] |
Creates a surface and allocates the memory for the surface. It does not map the surface memory into this process. Sets the surface ID, aSurfaceId, to a globally unique identifier for the surface. The most significant byte of the 4th TUint in the TSurfaceId will be set to a value to identify the surface type. The surface will be open with a reference count of 1 in this process after a successful call to CreateSurface.
The creation attributes are validated as follows: The alignment is 1,2,4, 8,16,32,64 or TPageAlignment::EPageAligned. The offset to first buffer is correctly aligned. The width and height are both greater than zero. There is at least one buffer. The calculated chunk size isn't so big that it will exceed a signed int. The caching attribute is valid If the offset between the start of one buffer and the next is specified, it must be correctly aligned and at least as big as the buffer size calculated from the height and stride. A surface hint key of zero is allowed when creating a surface, it is ignored
If surface is CPU cached it will be aligned with minimum of the specified alignment 32(for alignment 1, 2, 4, 8, 16, 32) or 64.
If surface is not CPU cached it will be aligned based on creation attribute's alignment. For page alignment it will be rounded to page size.
const RSurfaceManager::TSurfaceCreationAttributesBuf & aReqs | Input parameter, specifies attributes of the surface required. |
TSurfaceId & aSurfaceId | Output parameter, the surface ID, set if the call succeeds. |
TInt | CreateSurface | ( | const RSurfaceManager::TSurfaceCreationAttributesBuf & | aReqs, |
TSurfaceId & | aSurfaceId, | |||
const RChunk & | aChunkHandle | |||
) | [inline] |
Creates a surface in the shared chunk memory specified by the user. Sets a new surface ID aSurfaceId to a globally unique identifier for the surface. The most significant byte of the 4th TUint in the TSurfaceId will be set to a value to identify the surface type. The surface will be open with a reference count of 1 in this process after a successful call to CreateSurface. The creation attributes are validated as follows: The alignment is 1,2,4, 8,16,32,64 or page alignment. The offset to first buffer is correctly aligned. The width and height are both greater than zero. There is at least one buffer. The chunk should be a valid shared chunk of the necessary size. If the offset between the start of one buffer and the next is specified, it must be correctly aligned and at least as big as the buffer size calculated from the height and stride. A surface hint key of zero is allowed when creating a surface, it is ignored
The offset can be 0 and that means the surface manager will calculate the offset The TSurfaceCreationAttributes members iContiguous and iCacheAttribute will not be used for already existing chunks Also, note that surface manager will not do any rounding for offset to first buffer and offset between buffer. Surface manager will expect exact aligned values for this buffer attributes, otherwise surface creation will fail.
const RSurfaceManager::TSurfaceCreationAttributesBuf & aReqs | Input parameter, specifies attributes of the surface required. |
TSurfaceId & aSurfaceId | Output parameter, the surface ID, set if the call succeeds. |
const RChunk & aChunkHandle | Handle of the existing shared chunk. |
TInt | GetBufferOffset | ( | const TSurfaceId & | aSurfaceId, |
TInt | aBuffer, | |||
TInt & | aOffset | |||
) | [inline] |
Get the offset of the specified buffer from the base address of the underlying chunk.
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
TInt aBuffer | The buffer for which the offset is requested. Indexed from 0. |
TInt & aOffset | Output parameter set to the offset within the chunk. |
TInt | GetSurfaceHint | ( | const TSurfaceId & | aSurfaceId, |
RSurfaceManager::THintPair & | aHint | |||
) | [inline] |
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
RSurfaceManager::THintPair & aHint | The hint value for the requested hint pair key. |
TInt | GetSurfaceManagerAttrib | ( | RSurfaceManager::TSurfaceManagerAttrib | aAttrib, |
TInt & | aValue | |||
) | [inline] |
RSurfaceManager::TSurfaceManagerAttrib aAttrib | |
TInt & aValue |
TInt | MapSurface | ( | const TSurfaceId & | aSurfaceId, |
RChunk & | aHandle | |||
) | [inline] |
Maps the surface into the current client process address space. The actual memory will remain mapped into the calling process for as long as the RChunk handle aHandle is open. The RChunk handle is owned by the calling thread, so will need to be duplicated if passed to other threads in the process.
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
RChunk & aHandle | Output parameter, handle to the implementation specific Shared Chunk. |
TInt | Open | ( | ) | [inline] |
TInt | OpenSurface | ( | const TSurfaceId & | aSurfaceId | ) | [inline] |
const TSurfaceId & aSurfaceId | The surface id originally returned when the surface was created. |
TInt | SetSurfaceHint | ( | const TSurfaceId & | aSurfaceId, |
const RSurfaceManager::THintPair & | aHint | |||
) | [inline] |
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
const RSurfaceManager::THintPair & aHint | The value of the hint pair to set. |
TInt | SurfaceInfo | ( | const TSurfaceId & | aSurfaceId, |
RSurfaceManager::TInfoBuf & | aInfo | |||
) | [inline] |
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
RSurfaceManager::TInfoBuf & aInfo | TInfoBuf to receive the information about the surface. |
TInt | SynchronizeCache | ( | const TSurfaceId & | aSurfaceId, |
TInt | aBuffer, | |||
RSurfaceManager::TSyncOperation | aOperation | |||
) | [inline] |
const TSurfaceId & aSurfaceId | The surface identifier originally returned when the surface was created. |
TInt aBuffer | The buffer number indexed from 0 within the surface whose memory region is to be flushed. |
RSurfaceManager::TSyncOperation aOperation | Specifies the sync operation as before non CPU hardware reads or before non CPU hardware writes or after non CPU hardware writes between physical memory of the surface and the cache contents. |
EControlCreateSurface | |
EControlOpenSurface | |
EControlCloseSurface | |
EControlAccessSurfaceData | |
EControlSurfaceInfo | |
EControlCreateSurfaceEx | |
EControlSynchronizeCache | |
EControlGetSurfaceHint | |
EControlSetSurfaceHint | |
EControlAddSurfaceHint | |
EControlGetBufferOffset | |
EControlGetSurfaceManagerAttrib |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.