SDK changes

SDK changes

At a glance:

The Maya Qt libraries, headers, and tools are now packaged in Qt.tar.gz

Qt libraries, headers, and tools are now packaged in Qt.tar.gz located at the root of the devkit directory.

See Building Qt examples for more details about building Qt plug-ins.

Back to top

MQtUtil::resourceGLContext() now returns QOpenGLContext

Because QGLContext is deprecated in Qt6, MQtUtil::resourceGLContext() now returns QOpenGLContext.

QGLContext *MQtUtil::resourceGLContext()

See the special section on Qt6 migration for more information.

Back to top

Maya is moving to .NET8

.NET 8 is now the default version of .NET used by Maya.

The openmayacs.dll and swigfiles.dll libraries packaged with Maya work uniquely with .NET 8.

See the special section on .NET 8 for more information.

Back to top

Three new methods have been added to MFnAttribute

The isEnforcingUniqueName(), setEnforcingUniqueName(), and pathName() methods have been added to MFnAttribute.

MString MFnAttribute::pathName (bool useLongName=true, bool useCompression=true, MStatus *ReturnStatus=NULL) const

MStatus MFnAttribute::setEnforcingUniqueName (bool state)

bool MFnAttribute::isEnforcingUniqueName (MStatus *ReturnStatus=NULL) const

These methods were added to give the developer the option to either make their nodes enforce unique attribute naming, or not enforce unique attribute naming.

Back to top

Two new methods have been added to MFnGeometryFilter

Two methods, getIndexMapper() and getEnvelopeWeights(), have been added to MFnGeometryFilter.

MStatus MFnGeometryFilter::getIndexMapper(unsigned int index, MIndexMapper& indexMapper) const

MStatus MFnWeightGeometryFilter::getEnvelopeWeights(unsigned int multiIndex, MFloatArray &weights) const

getIndexMapper() gets the deformer's indexMapper, which defines the subset on which the deformer operates.

getEnvelopeWeights() gets the weights the deformer uses at the specified plug index.

Back to top

Two new color management methods have been added

Two methods, MFragmentManager::getColorManagementFragmentInfo() and MShaderInstance::addColorManagementTextures(), have been added.

MStatus MHwRender::MFragmentManager::getColorManagementFragmentInfo([in] inputColorSpace, [out] fragmentName, [out] inputName, [out] outputName);

MStatus MHwRender::MShaderInstance::addColorManagementTextures();

MFragmentManager::getColorManagementFragmentInfo() returns the name and parameters of a shader fragment that converts a color from the requested inputColorSpace to the current working color space. The returned fragment name can be used to extend a shader via MShaderManager::addInputFragment() or MShaderManager::addInputFragmentForMultiParams().

MShaderInstance::addColorManagementTextures() adds all the color management textures that are needed to render this shader instance. You must call addColorManagementTextures() if your shader references a color managed fragment returned by MShaderInstance::getColorManagementFragmentInfo().

Back to top

addPostDuplicateNodeListCallback() has been added to MModelMessage

addPostDuplicateNodeListCallback() has been added to MModelMessage. This method lets you register a callback that fires on node duplication, and provides a list of the nodes that were duplicated.

MCallbackId MModelMessage::addPostDuplicateNodeListCallback(MMessage::MBasicListOfPairsFunction func, void * clientData = NULL, MStatus * ReturnStatus = NULL)

Back to top

extendSelectionFromComponents() has been added to MPxSurfaceShape

extendSelectionFromComponents() has been added to MPxSurfaceShape. It supports the workflow for shell selection and edge/face/vertex loop selection using double-click and shift-double-click, respectively, on a component.

bool MPxSurfaceShape::extendSelectionFromComponents(const MSelectionMask selMask, const int currIndex, const int prevIndex, MIntArray& mIntArray)

Back to top

MFnWeightGeometryFilter has been added to Python API 2.0

The MFnWeightGeometryFilter class that was previously only in Python API 1.0, has now been added to Python API 2.0.

Back to top

Updated examples

Back to top