MRenderTargetDescription Class Reference

#include <MRenderTargetManager.h>

Class Description

Public Member Functions

 MRenderTargetDescription ()
 Default constructor, initalizes description with zero height and width and other simple default values.
 
 MRenderTargetDescription (const MString &name, unsigned int width, unsigned int height, unsigned int multiSampleCount, MHWRender::MRasterFormat rasterFormat, unsigned int arraySliceCount, bool isCubeMap)
 Constructor for a render target description. More...
 
virtual ~MRenderTargetDescription ()
 Default destructor.
 
const MStringname () const
 Query the name identifier for the target description. More...
 
unsigned int width () const
 Query the width of a 2D render target slice. More...
 
unsigned int height () const
 Query the height of a 2D render target slice. More...
 
unsigned int multiSampleCount () const
 Query the multi-sample count defined by the description. More...
 
MHWRender::MRasterFormat rasterFormat () const
 Query the raster format defined by the description. More...
 
unsigned int arraySliceCount () const
 Query the number of array slices defined by the description. More...
 
bool isCubeMap () const
 Query whether this is a cube map target. More...
 
bool allowsUnorderedAccess () const
 Query whether unordered access is supported. More...
 
void setName (const MString &name)
 Set name of the target. More...
 
void setWidth (unsigned int val)
 Set width of the target. More...
 
void setHeight (unsigned int val)
 Set height of the target. More...
 
void setMultiSampleCount (unsigned int val)
 Set multisample count of the target. More...
 
void setRasterFormat (MHWRender::MRasterFormat val)
 Set the raster format of the target. More...
 
void setArraySliceCount (unsigned int val)
 Set array slice count of the target. More...
 
void setIsCubeMap (bool val)
 Set cube map flag for the target. More...
 
void setAllowsUnorderedAccess (bool val)
 Set the flag for unordered data access for the target. More...
 
bool compatibleWithDescription (const MRenderTargetDescription &desc)
 Determine if another target with a given description is 'compatible' with a target using this description. More...
 

Constructor & Destructor Documentation

MRenderTargetDescription ( const MString name,
unsigned int  width,
unsigned int  height,
unsigned int  multiSampleCount,
MHWRender::MRasterFormat  rasterFormat,
unsigned int  arraySliceCount,
bool  isCubeMap 
)

Constructor for a render target description.

The basic description of a 2 dimensional (2D) target is the width, height, the sample count, and the raster format.

  • Cube maps, and generalized arrays of targets can be specified by providing an array (slice) count which is greater than zero. A "slice" is logically equivalent to a 2D render target.
  • If multiple slices are specified, then an additional flag is required to distinguish between a general array of 2D targets and a one which forms a cube map.
Parameters
[in]nameName of the target description
[in]widthWidth in pixels
[in]heightHeight in pixels
[in]multiSampleCountNumber of samples for a multisampled anti-aliased (MSAA) target. A value of 1 indicates no multisampling.
[in]rasterFormatRaster / pixel format of the target.
[in]arraySliceCountThe number of array slices. A value of 1 means a single 2D target.
[in]isCubeMapA true value indicates that the target is a cube map. In this case the arraySliceCount is set to be 6 in the constructor. The argument is ignored if the number of array slices is not equal to 6.

Member Function Documentation

const MString & name ( ) const

Query the name identifier for the target description.

Returns
Identifier name
+ Examples:
unsigned int width ( ) const
unsigned int height ( ) const
unsigned int multiSampleCount ( ) const

Query the multi-sample count defined by the description.

Returns
Sample value
MRasterFormat rasterFormat ( ) const

Query the raster format defined by the description.

Returns
The raster format.
+ Examples:
unsigned int arraySliceCount ( ) const

Query the number of array slices defined by the description.

Returns
The slice count
+ Examples:
bool isCubeMap ( ) const

Query whether this is a cube map target.

Returns
True if the target describes a cubemap.
bool allowsUnorderedAccess ( ) const

Query whether unordered access is supported.

Refer to the MRenderTargetDescription::setAllowsUnorderedAccess() method for more details about the meaning of "unordered access".

Returns
True if supported
+ Examples:
void setName ( const MString name)

Set name of the target.

Parameters
[in]nameName to set.
+ Examples:
void setWidth ( unsigned int  val)

Set width of the target.

Parameters
[in]valWidth to set.
void setHeight ( unsigned int  val)

Set height of the target.

Parameters
[in]valHeight to set.
void setMultiSampleCount ( unsigned int  val)

Set multisample count of the target.

Parameters
[in]valSample count to set.
void setRasterFormat ( MHWRender::MRasterFormat  val)

Set the raster format of the target.

Parameters
[in]valFormat to set.
void setArraySliceCount ( unsigned int  val)

Set array slice count of the target.

Parameters
[in]valSlice count to set.
void setIsCubeMap ( bool  val)

Set cube map flag for the target.

Parameters
[in]valCube map flag to set.
void setAllowsUnorderedAccess ( bool  val)

Set the flag for unordered data access for the target.

This indicates that read and write access to the target's data from multiple threads is supported. For example, this allows pixel and compute shaders running in parallel to have the same unordered access targets bound.

Parameters
[in]valValue to set
+ Examples:
bool compatibleWithDescription ( const MRenderTargetDescription desc)

Determine if another target with a given description is 'compatible' with a target using this description.

Compatibility implies that the targets can be used together when specifying multiple render targets.

The general minimum requirements are that the dimensions and multisampling properties are identical. Neither target can be a depth target.

Parameters
[in]descDescription to compare with
Returns
false if incompatible.

The documentation for this class was generated from the following files:
  • MRenderTargetManager.h
  • MRenderTargetManager.cpp