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...
 

Functions

 OPENMAYA_ENUM (DisplayStatus, kActive, kLive, kDormant, kInvisible, kHilite, kTemplate, kActiveTemplate, kActiveComponent, kLead, kIntermediateObject, kActiveAffected, kNoStatus)
 This enum defines the possible drawing modes for individual objects.
 
 OPENMAYA_ENUM (MTextureType, kImage1D=0, kImage1DArray, kImage2D, kImage2DArray, kCubeMap, kVolumeTexture, kDepthTexture, kNumberOfTextureTypes)
 Texture types.
 
 OPENMAYA_ENUM (MEnvironmentMapType, kEnvNone=0, kEnvSphere, kEnvHemiSphere, kEnvLatLong, kEnvCrossVert, kEnvCrossHoriz, kEnvCubemap, kNumberOfEnvMapTypes)
 Environment mapping types for textures. More...
 
 OPENMAYA_ENUM (DrawAPI, kNone=0, kOpenGL=1<< 0, kDirectX11=1<< 1, kOpenGLCoreProfile=1<< 2, kAllDevices=kOpenGL|kDirectX11|kOpenGLCoreProfile)
 Draw API identifiers.
 
MHWRender::DrawAPI operator| (MHWRender::DrawAPI a, MHWRender::DrawAPI b)
 Type-safe bitwise 'or' operator for GPU device type flags. More...
 
 OPENMAYA_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, kA8B8G8R8, 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...
 

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.

Function Documentation

MHWRender::OPENMAYA_ENUM ( MEnvironmentMapType  ,
kEnvNone  = 0,
kEnvSphere  ,
kEnvHemiSphere  ,
kEnvLatLong  ,
kEnvCrossVert  ,
kEnvCrossHoriz  ,
kEnvCubemap  ,
kNumberOfEnvMapTypes   
)

Environment mapping types for textures.

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

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
MHWRender::OPENMAYA_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  ,
kA8B8G8R8  ,
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.

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