Diligent Engine API Reference: Diligent::MapHelper< DataType, KeepStrongReferences > Class Template Reference

Diligent Engine API Reference

Public Member Functions | List of all members
Diligent::MapHelper< DataType, KeepStrongReferences > Class Template Reference

Facilitates resource mapping. More...

## Public Member Functions
| MapHelper ()
| Initializes the class member with null values.
| MapHelper (IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
| Initializes the object and maps the provided resource. See Map() for details.
| MapHelper (MapHelper &&Helper)
| Move constructor: takes over resource ownership from Helper.
MapHelper & | operator= (MapHelper &&Helper)
| Move-assignement operator: takes over resource ownership from Helper.
void | Map (IDeviceContext *pContext, IBuffer *pBuffer, MAP_TYPE MapType, Uint32 MapFlags)
| Maps the provided resource. More...
void | Unmap ()
| Unamps the resource and resets the object state to default.
| operator DataType * ()
| Converts mapped data pointer to DataType*.
| operator const DataType * () const
| Converts mapped data pointer to const DataType*.
DataType * | operator-> ()
| Operator ->
const DataType * | operator-> () const
| Operator const ->
| ~MapHelper ()
| Unamps the resource.

## Detailed Description

### template<typename DataType, bool KeepStrongReferences = false>
class Diligent::MapHelper< DataType, KeepStrongReferences >

Facilitates resource mapping.

Template Parameters

  DataType | - type of the mapped data.

This class is designed to automate resource mapping/unmapping process. The class automatically unmaps the resource when the class instance gets out of scope.
Usage example:

    {
        MapHelper<float> UniformData( pDeviceContext, pUniformBuff, MAP_WRITE, MAP_FLAG_DISCARD );
        UniformData[0] = UniformData[1] = UniformData[2] = UniformData[3] = 1;
    }

## Member Function Documentation

## ◆ Map()

template<typename DataType , bool KeepStrongReferences = false>

void Diligent::MapHelper< DataType, KeepStrongReferences >::Map | ( | IDeviceContext * | pContext,
|  | IBuffer * | pBuffer,
|  | MAP_TYPE | MapType,
|  | Uint32 | MapFlags
| ) |  |
| inline

Maps the provided resource.

Parameters

  pContext | - Pointer to the device context to perform mapping with.
  pBuffer | - Pointer to the buffer interface to map.
  MapType | - Type of the map operation, see Diligent::MAP_TYPE for details.
  MapFlags | - Additional map flags, see Diligent::MAP_FLAGS.