C++ API Reference
MHWRender Namespace Reference

Contains classes, functions and enums related to rendering. More...

Classes

class  MAttributeParameterMapping
 Class for defining relationship between Maya attributes and fragment parameters. More...
 
class  MAttributeParameterMappingList
 A list of MAttributeParameterMapping objects. More...
 
class  MBlendState
 Container class for an acquired GPU blend state. More...
 
class  MBlendStateDesc
 Descriptor for a complete blend state. More...
 
class  MCameraOverride
 Camera override description. More...
 
class  MClearOperation
 Class which defines the operation of clearing render target channels. More...
 
class  MComponentDataIndexing
 Class for storing index mapping when vertices are shared. More...
 
class  MComponentDataIndexingList
 A list of MIndexBufferDescriptor objects. More...
 
class  MDepthNormalizationDescription
 Information required to perform normalization of values stored in the depth buffer of an MImage with respect to clipping plane range. More...
 
class  MDepthStencilState
 Container class for an acquired complete GPU depth stencil state. More...
 
class  MDepthStencilStateDesc
 Descriptor for a complete depth-stencil state. More...
 
class  MDrawContext
 Class to allow access to hardware draw context information. More...
 
class  MDrawRegistry
 Access the registry associating node types with custom implementations. More...
 
class  MFragmentManager
 Provides facilities for managing fragments for use with Viewport 2.0. More...
 
class  MFrameContext
 This class contains some global information for the current render frame. More...
 
class  MGeometry
 Class for working with geometric structures used to draw objects. More...
 
class  MGeometryExtractor
 Class for extracting renderable geometry. More...
 
class  MGeometryIndexMapping
 A mapping of geometry index. More...
 
class  MGeometryRequirements
 Geometry requirements. More...
 
class  MGeometryUtilities
 Utilities for Viewport 2.0. More...
 
class  MHUDRender
 Class which defines rendering the 2D heads-up-display. More...
 
class  MIndexBuffer
 Index buffer for use with MGeometry. More...
 
class  MIndexBufferDescriptor
 MIndexBufferDescriptor describes an indexing scheme. More...
 
class  MIndexBufferDescriptorList
 A list of MIndexBufferDescriptor objects. More...
 
class  MIntersection
 Describes the intersection of a selection hit. More...
 
class  MLightParameterInformation
 A class for providing lighting information that may be used with Viewport 2.0. More...
 
class  MPassContext
 Class to allow access to pass context information. More...
 
class  MPresentTarget
 Class which defines the operation of presenting a target for final output. More...
 
class  MPxComponentConverter
 Base class for user defined component converter. More...
 
class  MPxDrawOverride
 Base class for user defined drawing of nodes. More...
 
class  MPxGeometryOverride
 Base for user-defined classes to prepare geometry for drawing. More...
 
class  MPxImagePlaneOverride
 Base class for user defined image plane draw overrides. More...
 
class  MPxIndexBufferMutator
 Base class for user defined index buffer mutators. More...
 
class  MPxPrimitiveGenerator
 Base class for user defined primitive generators. More...
 
class  MPxShaderOverride
 Base class for user defined shading effect draw overrides. More...
 
class  MPxShadingNodeOverride
 Base class for user defined shading node overrides. More...
 
class  MPxSubSceneOverride
 Base class for Viewport 2.0 drawing of DAG nodes which represent sub-scenes. More...
 
class  MPxSurfaceShadingNodeOverride
 Base class for user defined surface shading node overrides. More...
 
class  MPxVertexBufferGenerator
 Base class for user defined vertex buffer generators. More...
 
class  MPxVertexBufferMutator
 Base class for user defined vertex buffer generators. More...
 
class  MQuadRender
 Class which defines a 2d geometry quad render. More...
 
class  MRasterizerState
 Container class for an acquired complete GPU rasterizer state. More...
 
class  MRasterizerStateDesc
 Descriptor for a complete rasterizer state. More...
 
class  MRenderer
 Main interface class to the Viewport 2.0 renderer. More...
 
class  MRenderItem
 A single renderable entity. More...
 
class  MRenderItemList
 A list of MRenderItem objects. More...
 
class  MRenderOperation
 Class which defines a rendering operation. More...
 
class  MRenderOperationList
 Base class for holding a list of MRenderOperations. More...
 
class  MRenderOverride
 Base class for defining a rendering override. More...
 
class  MRenderParameters
 Class which defines a set of render parameters. More...
 
class  MRenderScriptCallback
 Class which defines a callback that can be executed from a script fragment. More...
 
class  MRenderTarget
 An instance of a render target that may be used with Viewport 2.0. More...
 
struct  MRenderTargetAssignment
 Structure to hold the information required to set a texture parameter on a shader using a render target as input. More...
 
class  MRenderTargetDescription
 Class which provides a description of a hardware render target The name is the unique identifier for a render target. More...
 
class  MRenderTargetManager
 Provides access to MRenderTarget objects for use in Viewport 2.0. More...
 
class  MRenderUtilities
 Utilities for Viewport 2.0. More...
 
class  MSamplerState
 Container class for an acquired complete GPU sampler state. More...
 
class  MSamplerStateDesc
 Descriptor for a complete sampler state. More...
 
class  MSceneRender
 Class which defines a scene render. More...
 
class  MSelectionContext
 Class to allow control on Viewport 2.0 selection behavior. More...
 
class  MSelectionInfo
 Class to allow access to the selection state information. More...
 
struct  MShaderCompileMacro
 Structure to define a shader compiler macro. More...
 
class  MShaderInstance
 An instance of a shader that may be used with Viewport 2.0. More...
 
class  MShaderManager
 Provides access to MShaderInstance objects for use in Viewport 2.0. More...
 
class  MStateManager
 Class to allow efficient access to GPU state information. More...
 
class  MStencilOpDesc
 Descriptor for a depth-stencil operation. More...
 
class  MSubSceneContainer
 Container for render items generated by MPxSubSceneOverride. More...
 
class  MTargetBlendDesc
 Descriptor for a blend state for a single render target. More...
 
class  MTexture
 Class which includes texture data. More...
 
class  MTextureArguments
 Class which includes texture arguments. More...
 
struct  MTextureAssignment
 Structure to hold the information required to set a texture parameter on a shader using a texture as input. More...
 
class  MTextureDescription
 Texture description. More...
 
class  MTextureManager
 Class which manages texture. More...
 
class  MTextureUpdateRegion
 Structure to represent an update region for a texture. More...
 
class  MUIDrawManager
 Main interface for drawing basic UI drawables in Viewport 2.0 and Hardware Renderer 2.0. More...
 
class  MUserRenderOperation
 Class which defines a user defined rendering operation. More...
 
class  MVertexBuffer
 Vertex buffer for use with MGeometry. More...
 
class  MVertexBufferArray
 Array of Vertex buffers. More...
 
class  MVertexBufferDescriptor
 Describes properties of a vertex buffer. More...
 
class  MVertexBufferDescriptorList
 A list of MVertexBufferDescriptor objects. More...
 

Enumerations

enum  { kPolyGeom_Normal = 0, kPolyGeom_NotSharing = 1 << 0, kPolyGeom_BaseMesh = 1 << 1 }
 Indicates the geometry options for polygon. More...
 
enum  DisplayStatus {
  kActive, kLive, kDormant, kInvisible,
  kHilite, kTemplate, kActiveTemplate, kActiveComponent,
  kLead, kIntermediateObject, kActiveAffected, kNoStatus
}
 This enum defines the possible drawing modes for individual objects. More...
 
enum  MTextureType {
  kImage1D = 0, kImage1DArray, kImage2D, kImage2DArray,
  kCubeMap, kVolumeTexture, kDepthTexture, kNumberOfTextureTypes
}
 Texture types. More...
 
enum  MEnvironmentMapType {
  kEnvNone = 0, kEnvSphere, kEnvHemiSphere, kEnvLatLong,
  kEnvCrossVert, kEnvCrossHoriz, kEnvCubemap, kNumberOfEnvMapTypes
}
 Environment mapping types for textures. More...
 
enum  DrawAPI {
  kNone = 0, kOpenGL = 1 << 0, kDirectX11 = 1 << 1, kOpenGLCoreProfile = 1 << 2,
  kAllDevices = kOpenGL | kDirectX11 | kOpenGLCoreProfile
}
 Draw API identifiers. More...
 
enum  MRasterFormat {
  kD24S8 = 0, kD24X8, kD32_FLOAT, kR24G8,
  kR24X8, kDXT1_UNORM, kDXT1_UNORM_SRGB, kDXT2_UNORM,
  kDXT2_UNORM_SRGB, kDXT2_UNORM_PREALPHA, kDXT3_UNORM, kDXT3_UNORM_SRGB,
  kDXT3_UNORM_PREALPHA, kDXT4_UNORM, kDXT4_SNORM, kDXT5_UNORM,
  kDXT5_SNORM, kBC6H_UF16, kBC6H_SF16, kBC7_UNORM,
  kBC7_UNORM_SRGB, kR9G9B9E5_FLOAT, kR1_UNORM, kA8,
  kR8_UNORM, kR8_SNORM, kR8_UINT, kR8_SINT,
  kL8, kR16_FLOAT, kR16_UNORM, kR16_SNORM,
  kR16_UINT, kR16_SINT, kL16, kR8G8_UNORM,
  kR8G8_SNORM, kR8G8_UINT, kR8G8_SINT, kB5G5R5A1,
  kB5G6R5, kR32_FLOAT, kR32_UINT, kR32_SINT,
  kR16G16_FLOAT, kR16G16_UNORM, kR16G16_SNORM, kR16G16_UINT,
  kR16G16_SINT, kR8G8B8A8_UNORM, kR8G8B8A8_SNORM, kR8G8B8A8_UINT,
  kR8G8B8A8_SINT, kR10G10B10A2_UNORM, kR10G10B10A2_UINT, kB8G8R8A8,
  kB8G8R8X8, kR8G8B8X8 , kR32G32_FLOAT, kR32G32_UINT,
  kR32G32_SINT, kR16G16B16A16_FLOAT, kR16G16B16A16_UNORM, kR16G16B16A16_SNORM,
  kR16G16B16A16_UINT, kR16G16B16A16_SINT, kR32G32B32_FLOAT, kR32G32B32_UINT,
  kR32G32B32_SINT, kR32G32B32A32_FLOAT, kR32G32B32A32_UINT, kR32G32B32A32_SINT,
  kNumberOfRasterFormats
}
 Pixel / raster formats. More...
 

Functions

MHWRender::DrawAPI operator| (MHWRender::DrawAPI a, MHWRender::DrawAPI b)
 Type-safe bitwise 'or' operator for GPU device type flags. More...
 

Detailed Description

Contains classes, functions and enums related to rendering.

See also the OpenMayaRender - API module for rendering module.

Enumeration Type Documentation

anonymous enum

Indicates the geometry options for polygon.

Enumerator
kPolyGeom_Normal 

Normal Indicates the polygon performs the default geometry.

kPolyGeom_NotSharing 

NotSharing Indicates if you don't want vertex sharing to be computed by the extractor.

Vertex buffer size will not be reduced if sharing can be performed.

kPolyGeom_BaseMesh 

BaseMesh Indicates if you want the base geometry in smoothCage mode.

The geometry in extractor is always the base geometry in normal mode.

This enum defines the possible drawing modes for individual objects.

Enumerator
kActive 

Object is active (selected).

Note that the last selected object will have status kLead instead of kActive. If only one object is selected the status will be kLead.

kLive 

Object is live (construction surface).

kDormant 

Object is domant.

kInvisible 

Object is invisible (not drawn).

kHilite 

Object is hilited (has selectable components).

kTemplate 

Object is templated (Not renderable).

kActiveTemplate 

Object is active and templated.

kActiveComponent 

Object has active components.

kLead 

Last selected object.

kIntermediateObject 

Construction object (not drawn).

kActiveAffected 

Affected by active object(s).

kNoStatus 

Object does not have a valid display status.

Texture types.

Enumerator
kImage1D 

1D image

kImage1DArray 

Array of 1D images.

kImage2D 

2D image

kImage2DArray 

Array of 2D images.

kCubeMap 

Cube map.

kVolumeTexture 

Volume texture.

kDepthTexture 

Depth texture.

kNumberOfTextureTypes 

Not to be used to describe a raster. This is the number of texture types.

Environment mapping types for textures.

Describes the algorithm for how the data in the texture should be looked up.

Enumerator
kEnvNone 

Direct mapping.

kEnvSphere 

Sphere style environment mapping.

kEnvHemiSphere 

Hemi-sphere style environment mapping.

kEnvLatLong 

Latitude/longitude style environment map.

kEnvCrossVert 

Vertical cross style environment map.

kEnvCrossHoriz 

Horizontal cross style environment map.

kEnvCubemap 

6 faces cube map style environment map

kNumberOfEnvMapTypes 

Not to be used to describe a raster. This is the number of environment map types.

enum DrawAPI

Draw API identifiers.

Enumerator
kNone 

Uninitialized device.

kOpenGL 

OpenGL.

kDirectX11 

Direct X 11.

kOpenGLCoreProfile 

Core Profile OpenGL.

kAllDevices 

All : OpenGL and Direct X 11.

Pixel / raster formats.

The following short form notation is used for channel specification:

  • R = red channel
  • G = green channel
  • B = blue channel
  • A = alpha channel
  • E = exponent channel
  • L = luminence channel
  • X = channel is not used
  • DXT1, DXT2, DXT3, DXT4, and DXT5 are S3 compression formats
  • BC6H, BC7 are extended compression formats only for DirectX 11
  • Numbers after the channel gives the bit depth
  • Channel order is data storage order.

The following short form notation is used for data format specification:

  • UNORM means unsigned values which have been normalized to the 0 to 1 range.
  • SNORM means signed values which have been normalized to the -1 to 1 range.
  • UINT means unsigned integer values
  • SINT means signed integer values
  • FLOAT means floating point
  • If normalization is not explicitly specified then the values are unnormalized
Enumerator
kD24S8 

Depth: 24-bit, Stencil 8-bit.

kD24X8 

Depth: 24-bit.

kD32_FLOAT 

Depth 32-bit.

kR24G8 

Red 24-bit, Green 8-bit.

kR24X8 

Red 24-bit.

kDXT1_UNORM 

DXT1 : unsigned.

kDXT1_UNORM_SRGB 

DXT1 : unsigned, sRGB format.

kDXT2_UNORM 

DXT2 : unsigned.

kDXT2_UNORM_SRGB 

DXT2 : sRGB format.

kDXT2_UNORM_PREALPHA 

DXT2, pre-multiplied alpha.

kDXT3_UNORM 

DXT3 : unsigned.

kDXT3_UNORM_SRGB 

DXT3 : unsigned, sRGB format.

kDXT3_UNORM_PREALPHA 

DXT3, pre-multiplied alpha.

kDXT4_UNORM 

DXT4 : unsigned.

kDXT4_SNORM 

DXT4 : signed.

kDXT5_UNORM 

DXT5 : unsigned.

kDXT5_SNORM 

DXT5 : signed.

kBC6H_UF16 

BC6H : no sign bit, 16-bit floating point.

kBC6H_SF16 

BC6H : with sign bit, 16-bit floating point.

kBC7_UNORM 

BC7 : unsigned.

kBC7_UNORM_SRGB 

BC7 : unsigned, sRGB format.

kR9G9B9E5_FLOAT 

HDR format : 9 bits for each of RGB, no alpha, 5 bit shared exponent.

kR1_UNORM 

Red: 1-bit.

kA8 

Alpha: 8-bit.

kR8_UNORM 

Red: 8-bit.

kR8_SNORM 

Red: 8-bit signed.

kR8_UINT 

Red: 8-bit unsigned integer.

kR8_SINT 

Red: 8-bit signed integer.

kL8 

Luminence: 8-bit.

kR16_FLOAT 

Red: 16-bit float.

kR16_UNORM 

Red: 16-bit unsigned.

kR16_SNORM 

Red: 16-bit signed.

kR16_UINT 

Red: 16-bit unsigned integer.

kR16_SINT 

Red: 16-bit signed integer.

kL16 

Luminence, 16-bit.

kR8G8_UNORM 

Red: 8-bit, Green : 8-bit, unsigned.

kR8G8_SNORM 

Red: 8-bit, Green : 8-bit, signed.

kR8G8_UINT 

Red: 8-bit, Green : 8-bit, unsigned integer.

kR8G8_SINT 

Red: 8-bit, Green : 8-bit, signed integer.

kB5G5R5A1 

RGB : 5-bits each, Alpha : 1-bit.

kB5G6R5 

RGB : 5-bits each, Alpha : 1-bit.

kR32_FLOAT 

Red : 32-bit float.

kR32_UINT 

Red : 32-bit unsigned integer.

kR32_SINT 

Red : 32-bit signed integer.

kR16G16_FLOAT 

Red and green : 16-bit float each.

kR16G16_UNORM 

Red and green : 16-bit unsigned.

kR16G16_SNORM 

Red and green : 16-bit signed.

kR16G16_UINT 

Red and green : 16-bit unsigned.

kR16G16_SINT 

Red and green : 16-bit signed.

kR8G8B8A8_UNORM 

RGBA : 8-bits unsigned each.

kR8G8B8A8_SNORM 

RGBA : 8-bits signed each.

kR8G8B8A8_UINT 

RGBA : 8-bits unsigned integer each.

kR8G8B8A8_SINT 

RGBA : 8-bits signed integer each.

kR10G10B10A2_UNORM 

2 bit alpha, 10 bits for each of RGB

kR10G10B10A2_UINT 

2 bit alpha, 10 bits for each of RGB, unsigned integer

kB8G8R8A8 

BGRA : 8-bits each.

kB8G8R8X8 

BGR : 8-bits each.

No alpha

kR8G8B8X8 

RGB : 8-bits each.

kR32G32_FLOAT 

RG : 32-bits float each.

kR32G32_UINT 

RG : 32-bits unsigned each.

kR32G32_SINT 

RG : 32-bits signed each.

kR16G16B16A16_FLOAT 

RGBA : 16-bits float each.

kR16G16B16A16_UNORM 

RGBA : 16-bits unsigned each.

kR16G16B16A16_SNORM 

RGBA : 16-bits signed each.

kR16G16B16A16_UINT 

RGBA : 16-bits unsigned integer each.

kR16G16B16A16_SINT 

RGBA : 16-bits unsigned integer each.

kR32G32B32_FLOAT 

RGB : 32-bits float each.

kR32G32B32_UINT 

RGB : 32-bits unsigned integer each.

kR32G32B32_SINT 

RGB : 32-bits signed integer each.

kR32G32B32A32_FLOAT 

RGBA : 32-bits float each.

kR32G32B32A32_UINT 

RGBA : 32-bits unsigned integer each.

kR32G32B32A32_SINT 

RGBA : 32-bits signed integer each.

kNumberOfRasterFormats 

Not to be used to describe a raster.

This is the number of rasters formats

Function Documentation

MHWRender::DrawAPI MHWRender::operator| ( MHWRender::DrawAPI  a,
MHWRender::DrawAPI  b 
)
inline

Type-safe bitwise 'or' operator for GPU device type flags.

Parameters
[in]aFirst device flag
[in]bSecond device flag
Returns
Bitwise 'or' of input flags