C++ API Reference
MHwTextureManager Class Reference

The MHwTextureManager provides an interface for loading and using hardware textures. More...

#include <MHwTextureManager.h>

Static Public Member Functions

static MStatus glBind (const MObject &fileTextureObject, MImageFileInfo::MHwTextureType &targetType, MImageFileInfo::MImageType imageType=MImageFileInfo::kImageTypeUnknown)
 Bind the contents of a file texture node to the currently active OpenGL texture unit. More...
 
static MStatus glBind (const MPlug &fileTextureConnection, MImageFileInfo::MHwTextureType &targetType, MImageFileInfo::MImageType imageType=MImageFileInfo::kImageTypeUnknown)
 Bind the contents of a specific file texture node attribute (e.g. More...
 
static MStatus registerTextureFile (const MString &fileName, MHwTextureFileHandle &hTexture)
 Register a named texture file. More...
 
static MStatus deregisterTextureFile (const MHwTextureFileHandle &hTexture)
 Deregisters the given handle to a texture entry in the manager. More...
 
static MStatus textureFile (const MHwTextureFileHandle &hTexture, MString &fileName)
 Return the file name associated with a given texture file handle. More...
 
static MStatus glBind (const MHwTextureFileHandle &hTexture, MImageFileInfo::MHwTextureType &targetType, MImageFileInfo::MImageType imageType=MImageFileInfo::kImageTypeUnknown)
 Bind the contents of a specific file to the currently active OpenGL texture unit. More...
 
static const char * className ()
 Returns the name of this class. More...
 

Detailed Description

The MHwTextureManager provides an interface for loading and using hardware textures.

Member Function Documentation

OPENMAYA_MAJOR_NAMESPACE_OPEN MStatus glBind ( const MObject fileTextureObject,
MImageFileInfo::MHwTextureType targetType,
MImageFileInfo::MImageType  imageType = MImageFileInfo::kImageTypeUnknown 
)
static

Bind the contents of a file texture node to the currently active OpenGL texture unit.

Parameters
[in]fileTextureObjectthe file texture node to bind
[in,out]targetTypethe target type of the texture (e.g. 2D, cube map, etc). If the initial value of this argument is anything other than kHwTextureUnknown, this parameter acts as an input to specify the type you require, and the call will fail if the texture can not be bound to this type. If the initial value of this argument is kHwTextureUnknown, this parameter acts as a return value to let you know what type of texture has been bound.
[in]imageTypethe type of information you are expecting in the texture (e.g. color, normal, etc). If specified, this argument may be used to tune mipmap generation.
Returns
  • MS::kFailure if the texture cannot be bound, or is incompatible with the specified parameters
  • MS::kSuccess otherwise
Examples:
cgFx/cgfxShaderNode.cpp, and hlslShader/hlslShader.cpp.
MStatus glBind ( const MPlug fileTextureConnection,
MImageFileInfo::MHwTextureType targetType,
MImageFileInfo::MImageType  imageType = MImageFileInfo::kImageTypeUnknown 
)
static

Bind the contents of a specific file texture node attribute (e.g.

color, alpha) to the currently active OpenGL texture unit. As part of this operation, the texture target will also be enabled (i.e. there is no need to call glEnable( targetType) before or after calling this method).

Parameters
[in]fileTextureConnectionthe file texture node to bind
[in,out]targetTypethe target type of the texture (e.g. 2D, cube map, etc). If the initial value of this argument is anything other than kHwTextureUnknown, this parameter acts as an input to specify the type you require, and the call will fail if the texture can not be bound to this type. If the initial value of this argument is kHwTextureUnknown, this parameter acts as a return value to let you know what type of texture has been bound.
[in]imageTypethe type of information you are expecting in the texture (e.g. color, normal, etc). If specified, this argument may be used to tune mipmap generation.
Returns
  • MS::kFailure if the texture cannot be bound, or is incompatible with the specified parameters
  • MS::kSuccess otherwise
MStatus registerTextureFile ( const MString fileName,
MHwTextureFileHandle &  hTexture 
)
static

Register a named texture file.

Returns a handle to a texture entry in the texture manager. The caller is responsible for calling the associated deregisterTextureFile to avoid leaking memory.

Parameters
[in]fileNamethe texture file to register
[out]hTexturethe output handle to a texture entry representing the given file.
Returns
  • MS::kFailure if the fileName was invalid.
  • MS::kSuccess otherwise.
MStatus deregisterTextureFile ( const MHwTextureFileHandle &  hTexture)
static

Deregisters the given handle to a texture entry in the manager.

If there are no other handles to this texture entry, the texture resource will be freed.

This method assumes that a context is already set. Failing to have a valid current context when invoking this method will cause a memory leak.

Parameters
[in]hTexturethe texture handle to release
Status Codes:
  • MS::kFailure if the texture handle was invalid.
  • MS::kSuccess otherwise
MStatus textureFile ( const MHwTextureFileHandle &  hTexture,
MString fileName 
)
static

Return the file name associated with a given texture file handle.

Parameters
[in]hTexturethe texture handle to query
[in]fileNamethe output file name
Returns
  • MS::kFailure if the texture handle was invalid.
  • MS::kSuccess otherwise
MStatus glBind ( const MHwTextureFileHandle &  hTexture,
MImageFileInfo::MHwTextureType targetType,
MImageFileInfo::MImageType  imageType = MImageFileInfo::kImageTypeUnknown 
)
static

Bind the contents of a specific file to the currently active OpenGL texture unit.

As part of this operation, the texture target will also be enabled (i.e. there is no need to call glEnable( targetType) before or after calling this method).

Parameters
[in]hTexturethe texture file handle to load
[in,out]targetTypethe target type of the texture (e.g. 2D, cube map, etc). If the initial value of this argument is anything other than kHwTextureUnknown, this parameter acts as an input to specify the type you require, and the call will fail if the texture can not be bound to this type. If the initial value of this argument is kHwTextureUnknown, this parameter acts as a return value to let you know what type of texture has been bound.
[in]imageTypethe type of information you are expecting in the texture (e.g. color, normal, etc). If specified, this argument may be used to tune mipmap generation.
Returns
  • MS::kFailure if the texture cannot be bound, or is incompatible with the specified parameters
  • MS::kSuccess otherwise
const char * className ( )
static

Returns the name of this class.

Returns
The name of this class.

The documentation for this class was generated from the following files: