import MRenderItem  # type: ignore
from _typeshed import Incomplete
from typing import Any, ClassVar, overload

ourdict: dict
py2dict: dict
key: str
val: str

class MColorManagementUtilities:
    @staticmethod
    def getColorTransformData(*args, **kwargs): ...
    @staticmethod
    def getColorTransformCacheIdForInputSpace(inputSpaceName) -> transformId: ...  # type: ignore
    @staticmethod
    def getColorTransformCacheIdForOutputTransform() -> transformId: ...  # type: ignore
    @staticmethod
    def isColorManagementEnabled() -> Boolean: ...  # type: ignore
    @staticmethod
    def isColorManagementAvailable() -> Boolean: ...  # type: ignore

class MComponentDataIndexing:
    kFaceVertex: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def indices(self) -> MUintArray: ...  # type: ignore
    def componentType(self) -> MComponentType: ...  # type: ignore
    def setComponentType(self, MComponentType) -> self: ...  # type: ignore

class MComponentDataIndexingList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MComponentDataIndexing) -> bool: ...
    def remove(self, index) -> bool: ...
    def clear(self) -> self: ...  # type: ignore

class MFrameContext:
    kWorldMtx: ClassVar[int] = ...
    kWorldTransposeMtx: ClassVar[int] = ...
    kWorldInverseMtx: ClassVar[int] = ...
    kWorldTranspInverseMtx: ClassVar[int] = ...
    kViewMtx: ClassVar[int] = ...
    kViewTransposeMtx: ClassVar[int] = ...
    kViewInverseMtx: ClassVar[int] = ...
    kViewTranspInverseMtx: ClassVar[int] = ...
    kProjectionMtx: ClassVar[int] = ...
    kProjectionTranposeMtx: ClassVar[int] = ...
    kProjectionInverseMtx: ClassVar[int] = ...
    kProjectionTranspInverseMtx: ClassVar[int] = ...
    kViewProjMtx: ClassVar[int] = ...
    kViewProjTranposeMtx: ClassVar[int] = ...
    kViewProjInverseMtx: ClassVar[int] = ...
    kViewProjTranspInverseMtx: ClassVar[int] = ...
    kWorldViewMtx: ClassVar[int] = ...
    kWorldViewTransposeMtx: ClassVar[int] = ...
    kWorldViewInverseMtx: ClassVar[int] = ...
    kWorldViewTranspInverseMtx: ClassVar[int] = ...
    kWorldViewProjMtx: ClassVar[int] = ...
    kWorldViewProjTransposeMtx: ClassVar[int] = ...
    kWorldViewProjInverseMtx: ClassVar[int] = ...
    kWorldViewProjTranspInverseMtx: ClassVar[int] = ...
    kViewPosition: ClassVar[int] = ...
    kViewDirection: ClassVar[int] = ...
    kViewUp: ClassVar[int] = ...
    kViewRight: ClassVar[int] = ...
    kViewportPixelSize: ClassVar[int] = ...
    kViewNearClipValue: ClassVar[int] = ...
    kViewFarClipValue: ClassVar[int] = ...
    kViewUnnormlizedNearClipValue: ClassVar[int] = ...
    kViewUnnormalizedFarClipValue: ClassVar[int] = ...
    kGouraudShaded: ClassVar[int] = ...
    kWireFrame: ClassVar[int] = ...
    kBoundingBox: ClassVar[int] = ...
    kTextured: ClassVar[int] = ...
    kDefaultMaterial: ClassVar[int] = ...
    kXrayJoint: ClassVar[int] = ...
    kXray: ClassVar[int] = ...
    kTwoSidedLighting: ClassVar[int] = ...
    kFlatShaded: ClassVar[int] = ...
    kShadeActiveOnly: ClassVar[int] = ...
    kXrayActiveComponents: ClassVar[int] = ...
    kBackfaceCulling: ClassVar[int] = ...
    kSmoothWireframe: ClassVar[int] = ...
    kSelectionHighlighting: ClassVar[int] = ...
    kNoLighting: ClassVar[int] = ...
    kAmbientLight: ClassVar[int] = ...
    kLightDefault: ClassVar[int] = ...
    kSelectedLights: ClassVar[int] = ...
    kSceneLights: ClassVar[int] = ...
    kCustomLights: ClassVar[int] = ...
    kAmbientOcclusion: ClassVar[int] = ...
    kMotionBlur: ClassVar[int] = ...
    kGammaCorrection: ClassVar[int] = ...
    kViewColorTransformEnabled: ClassVar[int] = ...
    kDepthOfField: ClassVar[int] = ...
    kAntiAliasing: ClassVar[int] = ...
    kUnsorted: ClassVar[int] = ...
    kObjectSorting: ClassVar[int] = ...
    kWeightedAverage: ClassVar[int] = ...
    kDepthPeeling: ClassVar[int] = ...
    kWireframeOnShadedFull: ClassVar[int] = ...
    kWireFrameOnShadedReduced: ClassVar[int] = ...
    kWireFrameOnShadedNone: ClassVar[int] = ...
    k3dViewport: ClassVar[int] = ...
    k2dViewport: ClassVar[int] = ...
    kImage: ClassVar[int] = ...
    kFogLinear: ClassVar[int] = ...
    kFogExp: ClassVar[int] = ...
    kFogExp2: ClassVar[int] = ...
    kExcludeNone: ClassVar[int] = ...
    kExcludeNurbsCurves: ClassVar[int] = ...
    kExcludeNurbsSurfaces: ClassVar[int] = ...
    kExcludeMeshes: ClassVar[int] = ...
    kExcludePlanes: ClassVar[int] = ...
    kExcludeLights: ClassVar[int] = ...
    kExcludeCameras: ClassVar[int] = ...
    kExcludeJoints: ClassVar[int] = ...
    kExcludeIkHandles: ClassVar[int] = ...
    kExcludeDeformers: ClassVar[int] = ...
    kExcludeDynamics: ClassVar[int] = ...
    kExcludeParticleInstancers: ClassVar[int] = ...
    kExcludeLocators: ClassVar[int] = ...
    kExcludeDimensions: ClassVar[int] = ...
    kExcludeSelectHandles: ClassVar[int] = ...
    kExcludePivots: ClassVar[int] = ...
    kExcludeTextures: ClassVar[int] = ...
    kExcludeGrid: ClassVar[int] = ...
    kExcludeCVs: ClassVar[int] = ...
    kExcludeHulls: ClassVar[int] = ...
    kExcludeStrokes: ClassVar[int] = ...
    kExcludeSubdivSurfaces: ClassVar[int] = ...
    kExcludeFluids: ClassVar[int] = ...
    kExcludeFollicles: ClassVar[int] = ...
    kExcludeHairSystems: ClassVar[int] = ...
    kExcludeImagePlane: ClassVar[int] = ...
    kExcludeNCloths: ClassVar[int] = ...
    kExcludeNRigids: ClassVar[int] = ...
    kExcludeDynamicConstraints: ClassVar[int] = ...
    kExcludeManipulators: ClassVar[int] = ...
    kExcludeNParticles: ClassVar[int] = ...
    kExcludeMotionTrails: ClassVar[int] = ...
    kExcludeHoldOuts: ClassVar[int] = ...
    kExcludePluginShapes: ClassVar[int] = ...
    kExcludeHUD: ClassVar[int] = ...
    kExcludeClipGhosts: ClassVar[int] = ...
    kExcludeGreasePencils: ClassVar[int] = ...
    kExcludeControllers: ClassVar[int] = ...
    kExcludeAll: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def semanticToMatrixType(string) -> int: ...
    def getMatrix(self, int) -> MMatrix: ...  # type: ignore
    @staticmethod
    def semanticToTupleType(string) -> int: ...
    def getTuple(self, int) -> MDoubleArray: ...  # type: ignore
    def getViewportDimensions(self, *args, **kwargs): ...
    def getGlobalLineWidth(self) -> float: ...
    def getCurrentCameraPath(self) -> MDagPath: ...  # type: ignore
    def getCurrentColorRenderTarget(self) -> MRenderTarget: ...
    def getCurrentDepthRenderTarget(self) -> MRenderTarget: ...
    def objectTypeExclusions(self) -> long: ...  # type: ignore
    def classificationExclusions(self, *args, **kwargs): ...
    def getDisplayStyle(self) -> int: ...
    def getLightingMode(self) -> int: ...
    def getLightLimit(self) -> int: ...
    def getPostEffectEnabled(self, int) -> bool: ...
    def getTransparencyAlgorithm(self) -> int: ...
    @staticmethod
    def inUserInteraction() -> bool: ...
    @staticmethod
    def userChangingViewContext() -> bool: ...
    @staticmethod
    def wireOnShadedMode() -> int: ...
    @staticmethod
    def shadeTemplates() -> bool: ...
    def renderingDestination(self, *args, **kwargs): ...
    def getEnvironmentParameters(self, *args, **kwargs): ...
    def getDOFParameters(self, *args, **kwargs): ...
    def getBackgroundParameters(self, *args, **kwargs): ...
    def getHwFogParameters(self, *args, **kwargs): ...
    def getRenderOverrideInformation(self, *args, **kwargs): ...

class MLightParameterInformation:
    kInvalid: ClassVar[int] = ...
    kBoolean: ClassVar[int] = ...
    kInteger: ClassVar[int] = ...
    kFloat: ClassVar[int] = ...
    kFloat2: ClassVar[int] = ...
    kFloat3: ClassVar[int] = ...
    kFloat4: ClassVar[int] = ...
    kFloat4x4Row: ClassVar[int] = ...
    kFloat4x4Col: ClassVar[int] = ...
    kTexture2: ClassVar[int] = ...
    kSampler: ClassVar[int] = ...
    kTextureCube: ClassVar[int] = ...
    kNoSemantic: ClassVar[int] = ...
    kLightEnabled: ClassVar[int] = ...
    kWorldPosition: ClassVar[int] = ...
    kWorldDirection: ClassVar[int] = ...
    kIntensity: ClassVar[int] = ...
    kColor: ClassVar[int] = ...
    kEmitsDiffuse: ClassVar[int] = ...
    kEmitsSpecular: ClassVar[int] = ...
    kDecayRate: ClassVar[int] = ...
    kDropoff: ClassVar[int] = ...
    kCosConeAngle: ClassVar[int] = ...
    kStartShadowParameters: ClassVar[int] = ...
    kIrradianceIn: ClassVar[int] = ...
    kShadowMap: ClassVar[int] = ...
    kShadowSamp: ClassVar[int] = ...
    kShadowBias: ClassVar[int] = ...
    kShadowMapSize: ClassVar[int] = ...
    kShadowViewProj: ClassVar[int] = ...
    kShadowColor: ClassVar[int] = ...
    kGlobalShadowOn: ClassVar[int] = ...
    kShadowOn: ClassVar[int] = ...
    kShadowDirty: ClassVar[int] = ...
    kDepthRange: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def parameterList(self) -> listofstring: ...  # type: ignore
    def parameterType(self, string) -> int: ...
    def parameterSemantic(self, string) -> int: ...
    def parameterNames(self, int) -> listofstring: ...  # type: ignore
    def arrayParameterCount(self, string) -> int: ...
    def getParameter(self, *args, **kwargs): ...
    def getParameterTextureHandle(self, *args, **kwargs): ...
    def lightType(self) -> string: ...  # type: ignore
    def lightPath(self) -> MDagPath: ...  # type: ignore

class MPassContext:
    kColorPassSemantic: ClassVar[str] = ...
    kShadowPassSemantic: ClassVar[str] = ...
    kDepthPassSemantic: ClassVar[str] = ...
    kNormalDepthPassSemantic: ClassVar[str] = ...
    kOpaqueGeometrySemantic: ClassVar[str] = ...
    kPreUIGeometrySemantic: ClassVar[str] = ...
    kPostUIGeometrySemantic: ClassVar[str] = ...
    kUIGeometrySemantic: ClassVar[str] = ...
    kOpaqueUISemantic: ClassVar[str] = ...
    kTransparentUISemantic: ClassVar[str] = ...
    kXrayUISemantic: ClassVar[str] = ...
    kTransparentGeometrySemantic: ClassVar[str] = ...
    kCullBackSemantic: ClassVar[str] = ...
    kCullFrontSemantic: ClassVar[str] = ...
    kMaterialOverrideSemantic: ClassVar[str] = ...
    kTransparentPeelSemantic: ClassVar[str] = ...
    kTransparentPeelAndAvgSemantic: ClassVar[str] = ...
    kTransparentWeightedAvgSemantic: ClassVar[str] = ...
    kUserPassSemantic: ClassVar[str] = ...
    kBeginRenderSemantic: ClassVar[str] = ...
    kBeginSceneRenderSemantic: ClassVar[str] = ...
    kEndSceneRenderSemantic: ClassVar[str] = ...
    kEndRenderSemantic: ClassVar[str] = ...
    kSelectionPassSemantic: ClassVar[str] = ...
    kDOFPassSemantic: ClassVar[str] = ...
    kMotionVectorPassSemantic: ClassVar[str] = ...
    kPEPatternPassSemantic: ClassVar[str] = ...
    kNonPEPatternPassSemantic: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def passIdentifier(self) -> string: ...  # type: ignore
    def passSemantics(self) -> listofstring: ...  # type: ignore
    def hasShaderOverride(self) -> bool: ...
    def shaderOverrideInstance(self) -> MShaderInstance: ...

class MDrawContext(MFrameContext):
    kFilteredToLightLimit: ClassVar[int] = ...
    kFilteredIgnoreLightLimit: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def getFrameStamp(self) -> long: ...  # type: ignore
    def getSceneBox(self) -> MBoundingBox: ...  # type: ignore
    def getFrustumBox(self) -> MBoundingBox: ...  # type: ignore
    def getRenderTargetSize(self, *args, **kwargs): ...
    def getDepthRange(self, *args, **kwargs): ...
    def viewDirectionAlongNegZ(self) -> bool: ...
    def numberOfActiveLights(self, lightFilter=...) -> int: ...
    def getLightInformation(self, *args, **kwargs): ...
    def getLightParameterInformation(self, lightNumber, lightFilter=...) -> MLightParameterInformation: ...
    def getStateManager(self) -> MStateManager: ...
    def getPassContext(self) -> MPassContext: ...
    def copyCurrentColorRenderTarget(self, string) -> MRenderTarget: ...
    def copyCurrentDepthRenderTarget(self, string) -> MRenderTarget: ...
    def copyCurrentColorRenderTargetToTexture(self) -> MTexture: ...
    def copyCurrentDepthRenderTargetToTexture(self) -> MTexture: ...

class MDrawRegistry:
    @staticmethod
    def deregisterComponentConverter(renderItemName) -> None: ...
    @staticmethod
    def deregisterDrawOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterGeometryOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterImagePlaneOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterIndexBufferMutator(primitiveType) -> None: ...
    @staticmethod
    def deregisterPrimitiveGenerator(primitiveType) -> None: ...
    @staticmethod
    def deregisterShaderOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterShadingNodeOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterSubSceneOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterSurfaceShadingNodeOverrideCreator(drawClassification, registrantId) -> None: ...
    @staticmethod
    def deregisterVertexBufferGenerator(bufferName) -> None: ...
    @staticmethod
    def deregisterVertexBufferMutator(bufferName) -> None: ...
    @staticmethod
    def registerComponentConverter(renderItemName, creator) -> None: ...
    @staticmethod
    def registerDrawOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerGeometryOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerImagePlaneOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerIndexBufferMutator(primitiveType, creator) -> None: ...
    @staticmethod
    def registerPrimitiveGenerator(primitiveType, creator) -> None: ...
    @staticmethod
    def registerShaderOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerShadingNodeOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerSubSceneOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerSurfaceShadingNodeOverrideCreator(drawClassification, registrantId, creator) -> None: ...
    @staticmethod
    def registerVertexBufferGenerator(bufferName, creator) -> None: ...
    @staticmethod
    def registerVertexBufferMutator(bufferName, creator) -> None: ...

class MFragmentManager:
    kVertexShader: ClassVar[int] = ...
    kPixelShader: ClassVar[int] = ...
    kGeometryShader: ClassVar[int] = ...
    kHullShader: ClassVar[int] = ...
    kHullConstantShader: ClassVar[int] = ...
    kDomainShader: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def addFragmentGraphFromBuffer(self, buffer) -> string: ...  # type: ignore
    def addFragmentGraphFromFile(self, fileName) -> string: ...  # type: ignore
    def addFragmentPath(self, path) -> bool: ...
    def addShadeFragmentFromBuffer(self, buffer, hidden) -> string: ...  # type: ignore
    def addShadeFragmentFromFile(self, fileName, hidden) -> string: ...  # type: ignore
    def fragmentList(self) -> listofstring: ...  # type: ignore
    def getEffectOutputDirectory(self) -> string: ...  # type: ignore
    @overload
    def getFragmentXML(self, fragmentName) -> string: ...  # type: ignore
    @overload
    def getFragmentXML(self, shadingNode, includeUpstreamNodes=..., objectContext=...) -> string: ...  # type: ignore
    def getIntermediateGraphOutputDirectory(self) -> string: ...  # type: ignore
    def hasFragment(self, string) -> bool: ...
    def removeFragment(self, fragmentName) -> bool: ...
    def setEffectOutputDirectory(self, string) -> self: ...  # type: ignore
    def setIntermediateGraphOutputDirectory(self, string) -> self: ...  # type: ignore
    def addAutomaticShaderStageInput(self, *args, **kwargs): ...
    def removeAutomaticShaderStageInput(self, int, string) -> bool: ...
    def addDomainShaderInputNameMapping(self, *args, **kwargs): ...
    def removeDomainShaderInputNameMapping(self, string) -> bool: ...
    def findDomainShaderInputName(self, string) -> string: ...  # type: ignore
    def getColorManagementFragmentInfo(self, *args, **kwargs): ...

class MGeometryExtractor:
    kPolyGeom_Normal: ClassVar[int] = ...
    kPolyGeom_NotSharing: ClassVar[int] = ...
    kPolyGeom_BaseMesh: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def minimumBufferSize(primitiveCount, primitive, primitiveStride=...) -> int: ...
    def populateIndexBuffer(self, data, primitiveCount, indexDesc) -> self: ...  # type: ignore
    def populateVertexBuffer(self, data, vertexCount, bufferDesc) -> self: ...  # type: ignore
    def primitiveCount(self, indexDesc) -> int: ...
    def vertexCount(self) -> int: ...

class MGeometry:
    kInvalidType: ClassVar[int] = ...
    kFloat: ClassVar[int] = ...
    kDouble: ClassVar[int] = ...
    kChar: ClassVar[int] = ...
    kUnsignedChar: ClassVar[int] = ...
    kInt16: ClassVar[int] = ...
    kUnsignedInt16: ClassVar[int] = ...
    kInt32: ClassVar[int] = ...
    kUnsignedInt32: ClassVar[int] = ...
    kInvalidSemantic: ClassVar[int] = ...
    kPosition: ClassVar[int] = ...
    kNormal: ClassVar[int] = ...
    kTexture: ClassVar[int] = ...
    kColor: ClassVar[int] = ...
    kTangent: ClassVar[int] = ...
    kBitangent: ClassVar[int] = ...
    kTangentWithSign: ClassVar[int] = ...
    kInvalidPrimitive: ClassVar[int] = ...
    kPoints: ClassVar[int] = ...
    kLines: ClassVar[int] = ...
    kLineStrip: ClassVar[int] = ...
    kTriangles: ClassVar[int] = ...
    kTriangleStrip: ClassVar[int] = ...
    kAdjacentTriangles: ClassVar[int] = ...
    kAdjacentTriangleStrip: ClassVar[int] = ...
    kAdjacentLines: ClassVar[int] = ...
    kAdjacentLineStrip: ClassVar[int] = ...
    kPatch: ClassVar[int] = ...
    kWireframe: ClassVar[int] = ...
    kShaded: ClassVar[int] = ...
    kTextured: ClassVar[int] = ...
    kBoundingBox: ClassVar[int] = ...
    kSelectionOnly: ClassVar[int] = ...
    kSelectionHighlighting: ClassVar[int] = ...
    kAll: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def addIndexBuffer(self, MIndexBuffer) -> bool: ...
    def addVertexBuffer(self, MVertexBuffer) -> bool: ...
    def createIndexBuffer(self, int) -> MIndexBuffer: ...
    def createVertexBuffer(self, MVertexBufferDescriptor) -> MVertexBuffer: ...
    @staticmethod
    def dataTypeString(int) -> string: ...  # type: ignore
    def deleteIndexBuffer(self, int) -> bool: ...
    def deleteVertexBuffer(self, int) -> bool: ...
    @staticmethod
    def drawModeString(int) -> string: ...  # type: ignore
    def indexBuffer(self, int) -> MIndexBuffer: ...
    def indexBufferCount(self) -> int: ...
    @staticmethod
    def primitiveString(int) -> string: ...  # type: ignore
    @staticmethod
    def semanticString(int) -> string: ...  # type: ignore
    def vertexBuffer(self, int) -> MVertexBuffer: ...
    def vertexBufferCount(self) -> int: ...

class MVertexBufferDescriptor:
    name: Incomplete
    semantic: Incomplete
    semanticName: Incomplete
    dataType: Incomplete
    dataTypeSize: Incomplete
    dimension: Incomplete
    offset: Incomplete
    stride: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MVertexBufferDescriptorList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MVertexBufferDescriptor) -> bool: ...
    def clear(self) -> self: ...  # type: ignore
    def remove(self, index) -> bool: ...

class MVertexBuffer:
    def __init__(self, *args, **kwargs) -> None: ...
    def acquire(self, size, writeOnly) -> long: ...  # type: ignore
    def commit(self, long) -> self: ...  # type: ignore
    def descriptor(self) -> MVertexBufferDescriptor: ...
    def hasCustomResourceHandle(self) -> bool: ...
    @overload
    def lockResourceHandle(self) -> self: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    def map(self) -> long: ...  # type: ignore
    def resourceHandle(self) -> long: ...  # type: ignore
    def setResourceHandle(self, long, int) -> self: ...  # type: ignore
    def unload(self) -> self: ...  # type: ignore
    def unlockResourceHandle(self) -> self: ...  # type: ignore
    def unmap(self) -> self: ...  # type: ignore
    def update(self, buffer, destOffset, numVerts, truncateIfSmaller) -> self: ...  # type: ignore
    def vertexCount(self) -> int: ...

class MVertexBufferArray:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MVertexBuffer, name) -> self: ...  # type: ignore
    def clear(self) -> self: ...  # type: ignore
    def getBuffer(self, string) -> MVertexBuffer: ...
    def getName(self, int) -> string: ...  # type: ignore

class MIndexBufferDescriptor:
    kVertexPoint: ClassVar[int] = ...
    kEdgeLine: ClassVar[int] = ...
    kTriangleEdge: ClassVar[int] = ...
    kTriangle: ClassVar[int] = ...
    kFaceCenter: ClassVar[int] = ...
    kEditPoint: ClassVar[int] = ...
    kControlVertex: ClassVar[int] = ...
    kHullEdgeLine: ClassVar[int] = ...
    kHullTriangle: ClassVar[int] = ...
    kHullFaceCenter: ClassVar[int] = ...
    kHullEdgeCenter: ClassVar[int] = ...
    kHullUV: ClassVar[int] = ...
    kSubDivEdge: ClassVar[int] = ...
    kTangent: ClassVar[int] = ...
    kCustom: ClassVar[int] = ...
    name: Incomplete
    indexType: Incomplete
    primitive: Incomplete
    primitiveStride: Incomplete
    component: Incomplete
    dataType: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MIndexBufferDescriptorList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MIndexBufferDescriptor) -> bool: ...
    def clear(self) -> self: ...  # type: ignore
    def remove(self, index) -> bool: ...

class MIndexBuffer:
    def __init__(self, *args, **kwargs) -> None: ...
    def acquire(self, size, writeOnly) -> long: ...  # type: ignore
    def commit(self, long) -> self: ...  # type: ignore
    def dataType(self) -> int: ...
    def hasCustomResourceHandle(self) -> bool: ...
    @overload
    def lockResourceHandle(self) -> self: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    @overload
    def lockResourceHandle(self) -> Any: ...  # type: ignore
    def map(self) -> long: ...  # type: ignore
    def resourceHandle(self) -> long: ...  # type: ignore
    def setResourceHandle(self, *args, **kwargs): ...
    def size(self) -> int: ...
    def unload(self) -> self: ...  # type: ignore
    def unlockResourceHandle(self) -> self: ...  # type: ignore
    def unmap(self) -> self: ...  # type: ignore
    def update(self, buffer, destOffset, numIndices, truncateIfSmaller) -> self: ...  # type: ignore

class MGeometryIndexMapping:
    def __init__(self, *args, **kwargs) -> None: ...
    def component(self, int) -> MObject: ...  # type: ignore
    def dagPath(self, int) -> MDagPath: ...  # type: ignore
    def geometryCount(self) -> int: ...
    def indexLength(self, int) -> int: ...
    def indexStart(self, int) -> int: ...

class MRenderItem:  # type: ignore
    sDormantFilledDepthPriority: ClassVar[int] = ...
    sDormantWireDepthPriority: ClassVar[int] = ...
    sHiliteWireDepthPriority: ClassVar[int] = ...
    sActiveWireDepthPriority: ClassVar[int] = ...
    sActiveLineDepthPriority: ClassVar[int] = ...
    sDormantPointDepthPriority: ClassVar[int] = ...
    sActivePointDepthPriority: ClassVar[int] = ...
    sSelectionDepthPriority: ClassVar[int] = ...
    MaterialSceneItem: ClassVar[int] = ...
    NonMaterialSceneItem: ClassVar[int] = ...
    DecorationItem: ClassVar[int] = ...
    InternalItem: ClassVar[int] = ...
    InternalMaterialItem: ClassVar[int] = ...
    InternalTexturedMaterialItem: ClassVar[int] = ...
    InternalUnsupportedMaterialItem: ClassVar[int] = ...
    OverrideNonMaterialItem: ClassVar[int] = ...
    IgnoreDefaultMaterialMode: ClassVar[int] = ...
    DrawOnlyWhenDefaultMaterialActive: ClassVar[int] = ...
    SkipWhenDefaultMaterialActive: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def associateWithIndexBuffer(self, MIndexBuffer) -> bool: ...
    def availableShaderParameters(self) -> listofstring: ...  # type: ignore
    def boundingBox(self, space=...) -> MBoundingBox: ...  # type: ignore
    def setBoundingBox(self, bounds) -> self: ...  # type: ignore
    def castsShadows(self) -> bool: ...
    def wantConsolidation(self) -> bool: ...
    def getDefaultMaterialHandling(self) -> MRenderItem.DefaultMaterialFiltering: ...
    def isCompatibleWithMayaInstancer(self) -> bool: ...
    def component(self) -> MObject: ...  # type: ignore
    def shadingComponent(self) -> MObject: ...  # type: ignore
    def setAllowIsolateSelectCopy(self, bool) -> self: ...  # type: ignore
    def allowIsolateSelectCopy(self) -> bool: ...
    def isIsolateSelectCopy(self) -> bool: ...
    @overload
    @staticmethod
    def create(name, type, primitive) -> MRenderItem: ...
    @overload
    @staticmethod
    def create(item) -> MRenderItem: ...
    def customData(self) -> MUserData: ...  # type: ignore
    def getCustomData(self) -> MUserData: ...  # type: ignore
    def depthPriority(self) -> int: ...
    @staticmethod
    def destroy(item) -> None: ...
    def drawMode(self) -> int: ...
    def enable(self, bool) -> self: ...  # type: ignore
    def excludedFromPostEffects(self) -> bool: ...
    def excludedFromDefaultMaterialOverride(self) -> bool: ...
    def geometry(self) -> MGeometry: ...
    def getShader(self) -> MShaderInstance: ...
    def getShaderParameters(self, *args, **kwargs): ...
    def isConsolidated(self) -> bool: ...
    def isEnabled(self) -> bool: ...
    def isShaderFromNode(self) -> bool: ...
    def name(self) -> string: ...  # type: ignore
    def primitive(self) -> int: ...
    def primitiveAndStride(self, *args, **kwargs): ...
    def setPrimitive(self, *args, **kwargs): ...
    def receivesShadows(self) -> bool: ...
    def requiredVertexBuffers(self) -> MVertexBufferDescriptorList: ...
    def selectionMask(self) -> MSelectionMask: ...  # type: ignore
    def setCastsShadows(self, bool) -> self: ...  # type: ignore
    def setWantConsolidation(self, bool) -> self: ...  # type: ignore
    def setDefaultMaterialHandling(self, *args, **kwargs): ...
    def setCompatibleWithMayaInstancer(self, bool) -> self: ...  # type: ignore
    def setCustomData(self, MUserData) -> self: ...  # type: ignore
    def setDepthPriority(self, int) -> self: ...  # type: ignore
    def setDrawMode(self, int) -> self: ...  # type: ignore
    def setExcludedFromPostEffects(self, bool) -> self: ...  # type: ignore
    def setExcludedFromDefaultMaterialOverride(self, bool) -> self: ...  # type: ignore
    def setMatrix(self, MMatrix) -> bool: ...
    def setReceivesShadows(self, bool) -> self: ...  # type: ignore
    def setSelectionMask(self, *args, **kwargs): ...
    def setShader(self, shader, customStreamName=...) -> bool: ...
    def setShaderFromNode(self, shaderNode, shapePath, linkLostCb=..., linkLostUserData=..., nonTextured=...) -> self: ...  # type: ignore
    def setTreatAsTransparent(self, bool) -> self: ...  # type: ignore
    def setWantSubSceneConsolidation(self, bool) -> self: ...  # type: ignore
    def sourceDagPath(self) -> MDagPath: ...  # type: ignore
    def sourceIndexMapping(self) -> MGeometryIndexMapping: ...
    def type(self) -> int: ...
    def wantSubSceneConsolidation(self) -> bool: ...
    def objectTypeExclusionFlag(self) -> long: ...  # type: ignore
    def setObjectTypeExclusionFlag(self, long) -> self: ...  # type: ignore

class MRenderItemList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MVertexBufferDescriptor) -> bool: ...
    def clear(self) -> self: ...  # type: ignore
    @overload
    def indexOf(self, name) -> int: ...
    @overload
    def indexOf(self, name, type) -> int: ...
    @overload
    def indexOf(self, name, primitive, mode) -> int: ...
    def remove(self, index) -> bool: ...

class MGeometryRequirements:
    def __init__(self, *args, **kwargs) -> None: ...
    def addIndexingRequirement(self, MIndexBufferDescriptor) -> self: ...  # type: ignore
    def addVertexRequirement(self, MVertexBufferDescriptor) -> self: ...  # type: ignore
    def indexingRequirements(self) -> MIndexBufferDescriptorList: ...
    def vertexRequirements(self) -> MVertexBufferDescriptorList: ...

class MGeometryUtilities:
    kDefaultSphere: ClassVar[int] = ...
    kDefaultPlane: ClassVar[int] = ...
    kDefaultCube: ClassVar[int] = ...
    kActive: ClassVar[int] = ...
    kLive: ClassVar[int] = ...
    kDormant: ClassVar[int] = ...
    kInvisible: ClassVar[int] = ...
    kHilite: ClassVar[int] = ...
    kTemplate: ClassVar[int] = ...
    kActiveTemplate: ClassVar[int] = ...
    kActiveComponent: ClassVar[int] = ...
    kLead: ClassVar[int] = ...
    kIntermediateObject: ClassVar[int] = ...
    kActiveAffected: ClassVar[int] = ...
    kNoStatus: ClassVar[int] = ...
    @staticmethod
    def acquireReferenceGeometry(shape, requirements) -> MGeometry: ...
    @staticmethod
    def displayStatus(path) -> DisplayStatus: ...  # type: ignore
    @staticmethod
    def releaseReferenceGeometry(geometry) -> None: ...
    @staticmethod
    def wireframeColor(path) -> MColor: ...  # type: ignore

class MPxComponentConverter:
    def __init__(self, *args, **kwargs) -> None: ...
    def addIntersection(self, intersection) -> self: ...  # type: ignore
    def component(self) -> MObject: ...  # type: ignore
    def initialize(self, renderItem) -> self: ...  # type: ignore
    def selectionMask(self) -> MSelectionMask: ...  # type: ignore

class MPxDrawOverride:
    def __init__(self, obj, callback, isAlwaysDirty=...) -> Any: ...  # type: ignore
    def addUIDrawables(self, objPath, drawManager, frameContext, data) -> self: ...  # type: ignore
    def boundingBox(self, objPath, cameraPath) -> MBoundingBox: ...  # type: ignore
    def disableInternalBoundingBoxDraw(self) -> bool: ...
    def excludedFromPostEffects(self) -> bool: ...
    def isTransparent(self) -> bool: ...
    def hasUIDrawables(self) -> bool: ...
    def isBounded(self, objPath, cameraPath) -> bool: ...
    def prepareForDraw(self, objPath, cameraPath, frameContext, oldData) -> MUserData: ...  # type: ignore
    def refineSelectionPath(self, selectInfo, hitItem, path, components, objectMask) -> bool: ...
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore
    def transform(self, objPath, cameraPath) -> MMatrix: ...  # type: ignore
    def wantUserSelection(self) -> bool: ...
    def userSelect(self, selectInfo, drawContext, objPath, data, selectionList, worldSpaceHitPts) -> bool: ...
    def updateSelectionGranularity(self, path, selectionContext) -> self: ...  # type: ignore
    @staticmethod
    def pointSnappingActive() -> bool: ...
    def traceCallSequence(self) -> bool: ...
    def handleTraceMessage(self, message) -> self: ...  # type: ignore

class MPxGeometryOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def addUIDrawables(self, path, drawManager, frameContext) -> self: ...  # type: ignore
    def cleanUp(self) -> self: ...  # type: ignore
    def hasUIDrawables(self) -> bool: ...
    def isIndexingDirty(self, item) -> bool: ...
    def isStreamDirty(self, desc) -> bool: ...
    @staticmethod
    def pointSnappingActive() -> bool: ...
    def populateGeometry(self, requirements, renderItems, data) -> self: ...  # type: ignore
    def refineSelectionPath(self, selectInfo, hitItem, path, components, objectMask) -> bool: ...
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore
    def configCache(self, evalNode, schema) -> None: ...
    def updateDG(self) -> self: ...  # type: ignore
    def updateRenderItems(self, path, list) -> self: ...  # type: ignore
    def requiresUpdateRenderItems(self, path) -> bool: ...
    def requiresGeometryUpdate(self) -> bool: ...
    def supportsEvaluationManagerParallelUpdate(self) -> bool: ...
    def supportsVP2CustomCaching(self) -> bool: ...
    def updateSelectionGranularity(self, path, selectionContext) -> self: ...  # type: ignore
    def traceCallSequence(self) -> bool: ...
    def handleTraceMessage(self, message) -> self: ...  # type: ignore
    def getFrameContext(self) -> MFrameContext: ...

class MPxImagePlaneOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore

class MPxIndexBufferMutator:
    def __init__(self, *args, **kwargs) -> None: ...
    def mutateIndexing(self, *args, **kwargs): ...

class MPxPrimitiveGenerator:
    def __init__(self, *args, **kwargs) -> None: ...
    def computeIndexCount(self, object, component) -> int: ...
    def generateIndexing(self, *args, **kwargs): ...

class MInitContext:
    shader: Incomplete
    dagPath: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MInitFeedback:
    customData: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MPxShaderOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def activateKey(self, context, key) -> self: ...  # type: ignore
    def addGeometryRequirement(self, MVertexBufferDescriptor) -> self: ...  # type: ignore
    def addGeometryRequirements(self, MVertexBufferDescriptorList) -> self: ...  # type: ignore
    def addIndexingRequirement(self, MIndexBufferDescriptor) -> self: ...  # type: ignore
    def addShaderSignature(self, *args, **kwargs): ...
    def boundingBoxExtraScale(self) -> float: ...
    def draw(self, context, renderItemList) -> bool: ...
    def drawGeometry(self, MDrawContext) -> self: ...  # type: ignore
    def endUpdate(self) -> self: ...  # type: ignore
    def handlesConsolidatedGeometry(self) -> bool: ...
    def handlesDraw(self, context) -> bool: ...
    @overload
    def initialize(self, shader) -> string: ...  # type: ignore
    @overload
    def initialize(self, initContext, initFeedback) -> string: ...  # type: ignore
    def initialize2(self, *args, **kwargs): ...
    def isTransparent(self) -> bool: ...
    def nonTexturedShaderInstance(self, *args, **kwargs): ...
    def overridesDrawState(self) -> bool: ...
    def overridesNonMaterialItems(self) -> bool: ...
    def rebuildAlways(self) -> bool: ...
    def setGeometryRequirements(self, MShaderInstance) -> self: ...  # type: ignore
    def shaderInstance(self) -> MShaderInstance: ...
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore
    def supportsAdvancedTransparency(self) -> bool: ...
    def terminateKey(self, context, key) -> self: ...  # type: ignore
    def updateDG(self, object) -> self: ...  # type: ignore
    def updateDevice(self) -> self: ...  # type: ignore

class MAttributeParameterMapping:
    def __init__(self, *args, **kwargs) -> None: ...
    def allowConnection(self) -> bool: ...
    def allowRename(self) -> bool: ...
    def attributeName(self) -> string: ...  # type: ignore
    def parameterName(self) -> string: ...  # type: ignore
    def resolvedParameterName(self) -> string: ...  # type: ignore

class MAttributeParameterMappingList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, MAttributeParameterMapping) -> self: ...  # type: ignore
    def clear(self) -> self: ...  # type: ignore
    def findByAttributeName(self, attributeName) -> MAttributeParameterMapping: ...
    def findByParameterName(self, parameterName) -> MAttributeParameterMapping: ...

class MPxShadingNodeOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def allowConnections(self) -> bool: ...
    def fragmentName(self) -> string: ...  # type: ignore
    def getCustomMappings(self, mappings) -> self: ...  # type: ignore
    def outputForConnection(self, sourcePlug, destinationPlug) -> string: ...  # type: ignore
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore
    def updateDG(self) -> self: ...  # type: ignore
    @overload
    def updateShader(self, shader, mappings) -> self: ...  # type: ignore
    @overload
    def updateShader(self) -> Any: ...
    def valueChangeRequiresFragmentRebuild(self, plug) -> bool: ...

class MSubSceneContainerIterator:
    def __init__(self, *args, **kwargs) -> None: ...
    def destroy(self) -> self: ...  # type: ignore
    def next(self) -> MRenderItem: ...
    def reset(self) -> self: ...  # type: ignore

class MSubSceneContainer:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def add(self, item) -> bool: ...
    def clear(self) -> self: ...  # type: ignore
    def count(self) -> int: ...
    def find(self, name) -> MRenderItem: ...
    def getIterator(self) -> MSubSceneContainerIterator: ...
    def remove(self, name) -> bool: ...

class MPxSubSceneOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def areUIDrawablesDirty(self) -> bool: ...
    def hasUIDrawables(self) -> bool: ...
    def addUIDrawables(self, drawManager, frameContext) -> int: ...
    def setAllowTransparentInstances(self, renderItem, transform) -> int: ...
    def addInstanceTransform(self, renderItem, transform) -> int: ...
    def furtherUpdateRequired(self, frameContext) -> bool: ...
    def getSelectionPath(self, renderItem, dagPath) -> bool: ...
    def getInstancedSelectionPath(self, renderItem, intersection, dagPath) -> bool: ...
    @staticmethod
    def pointSnappingActive() -> bool: ...
    def removeAllInstances(self, renderItem) -> self: ...  # type: ignore
    def removeExtraInstanceData(self, renderItem, parameterName) -> self: ...  # type: ignore
    def removeInstance(self, renderItem, instanceId) -> self: ...  # type: ignore
    def requiresUpdate(self, container, frameContext) -> bool: ...
    def setExtraInstanceData(self, renderItem, parameterName, data, instanceId=...) -> self: ...  # type: ignore
    def setGeometryForRenderItem(self, renderItem, vertexBuffers, indexBuffer=..., objectBox=...) -> self: ...  # type: ignore
    def setInstanceTransformArray(self, renderItem, matrixArray) -> self: ...  # type: ignore
    def supportedDrawAPIs(self) -> DrawAPI: ...  # type: ignore
    def update(self, container, frameContext) -> self: ...  # type: ignore
    def updateInstanceTransform(self, renderItem, instanceId, transform) -> self: ...  # type: ignore
    def updateSelectionGranularity(self, path, selectionContext) -> self: ...  # type: ignore

class MPxSurfaceShadingNodeOverride(MPxShadingNodeOverride):
    def __init__(self, *args, **kwargs) -> None: ...
    def bumpAttribute(self) -> string: ...  # type: ignore
    def primaryColorParameter(self) -> string: ...  # type: ignore
    def transparencyParameter(self) -> string: ...  # type: ignore

class MPxVertexBufferGenerator:
    def __init__(self, *args, **kwargs) -> None: ...
    def createVertexStream(self, object, vertexBuffer, targetIndexing, sharedIndexing, sourceStreams) -> self: ...  # type: ignore
    def getSourceIndexing(self, object, sourceIndexing) -> self: ...  # type: ignore
    def getSourceStreams(self, object, sourceStreams) -> self: ...  # type: ignore

class MPxVertexBufferMutator:
    def __init__(self, *args, **kwargs) -> None: ...
    def modifyVertexStream(self, object, vertexBuffer, targetIndexing) -> self: ...  # type: ignore

class MRenderTargetDescription:
    def __init__(self, *args, **kwargs) -> None: ...
    def name(self) -> string: ...  # type: ignore
    def width(self) -> int: ...
    def height(self) -> int: ...
    def multiSampleCount(self) -> int: ...
    def rasterFormat(self) -> int: ...
    def arraySliceCount(self) -> int: ...
    def isCubeMap(self) -> bool: ...
    def allowsUnorderedAccess(self) -> bool: ...
    def setName(self, string) -> self: ...  # type: ignore
    def setWidth(self, int) -> self: ...  # type: ignore
    def setHeight(self, int) -> self: ...  # type: ignore
    def setMultiSampleCount(self, int) -> self: ...  # type: ignore
    def setRasterFormat(self, int) -> self: ...  # type: ignore
    def setArraySliceCount(self, int) -> self: ...  # type: ignore
    def setIsCubeMap(self, bool) -> self: ...  # type: ignore
    def setAllowsUnorderedAccess(self, bool) -> self: ...  # type: ignore
    def compatibleWithDescription(self, MRenderTargetDescription) -> bool: ...

class MRenderTarget:
    def __init__(self, *args, **kwargs) -> None: ...
    def updateDescription(self, MRenderTargetDescription) -> self: ...  # type: ignore
    def targetDescription(self) -> MRenderTargetDescription: ...
    def resourceHandle(self) -> long: ...  # type: ignore
    def rawData(self, *args, **kwargs): ...
    @staticmethod
    def freeRawData(long) -> None: ...

class MRenderTargetManager:
    def __init__(self, *args, **kwargs) -> None: ...
    def acquireRenderTarget(self, MRenderTargetDescription) -> MRenderTarget: ...
    def acquireRenderTargetFromScreen(self, string) -> MRenderTarget: ...
    def formatSupportsSRGBWrite(self, int) -> bool: ...
    def releaseRenderTarget(self, MRenderTarget) -> self: ...  # type: ignore

class MRenderProfile:
    kMayaSoftware: ClassVar[int] = ...
    kMayaOpenGL: ClassVar[int] = ...
    kMayaD3D: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def addRenderer(self, *args, **kwargs): ...
    def hasRenderer(self, *args, **kwargs): ...
    def numberOfRenderers(self) -> int: ...

class MRenderUtilities:
    kPerspectiveCamera: ClassVar[int] = ...
    kOrthogonalCameraWithMargin: ClassVar[int] = ...
    kOrthogonalCameraCloseUp: ClassVar[int] = ...
    kDefaultLights: ClassVar[int] = ...
    kSwatchLight: ClassVar[int] = ...
    kAmbientLight: ClassVar[int] = ...
    @overload
    @staticmethod
    def acquireSwatchDrawContext() -> MDrawContext: ...
    @overload
    @staticmethod
    def acquireSwatchDrawContext(colorTarget) -> MDrawContext: ...
    @overload
    @staticmethod
    def acquireSwatchDrawContext(colorTarget, depthTarget) -> MDrawContext: ...
    @overload
    @staticmethod
    def acquireUVTextureDrawContext() -> MDrawContext: ...
    @overload
    @staticmethod
    def acquireUVTextureDrawContext(colorTarget) -> MDrawContext: ...
    @overload
    @staticmethod
    def acquireUVTextureDrawContext(colorTarget, depthTarget) -> MDrawContext: ...
    @staticmethod
    def blitTargetToGL(target, region, unfiltered) -> None: ...
    @staticmethod
    def blitTargetToImage(target, image) -> None: ...
    @staticmethod
    def drawSimpleMesh(context, vertexBuffer, indexBuffer, primitiveType, start, count) -> None: ...
    @overload
    @staticmethod
    def releaseDrawContext(context) -> None: ...
    @overload
    @staticmethod
    def releaseDrawContext(context, releaseTargets) -> None: ...
    @staticmethod
    def renderMaterialViewerGeometry(shape, shaderNode, image, cameraMode=..., lightRig=...) -> None: ...
    @staticmethod
    def swatchBackgroundColor() -> MColor: ...  # type: ignore

class MSelectionContext:
    kNone: ClassVar[int] = ...
    kObject: ClassVar[int] = ...
    kComponent: ClassVar[int] = ...
    kFace: ClassVar[int] = ...
    kEdge: ClassVar[int] = ...
    kVertex: ClassVar[int] = ...
    selectionLevel: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MIntersection:
    barycentricCoordinates: Incomplete
    edgeInterpolantValue: Incomplete
    index: Incomplete
    intersectionPoint: Incomplete
    instanceID: Incomplete
    selectionLevel: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MSelectionInfo:
    alignmentMatrix: Incomplete
    isRay: Incomplete
    isSingleSelection: Incomplete
    localRay: Incomplete
    selectClosest: Incomplete
    selectOnHilitedOnly: Incomplete
    selectRect: Incomplete
    cursorPoint: Incomplete
    pointSnapping: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def selectForHilite(self, mask) -> bool: ...
    def selectable(self, mask) -> bool: ...
    def selectableComponent(self, displayed, mask) -> bool: ...

class MShaderCompileMacro:
    name: Incomplete
    definition: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MTextureAssignment:
    texture: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MRenderTargetAssignment:
    target: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MShaderInstance:
    kInvalid: ClassVar[int] = ...
    kBoolean: ClassVar[int] = ...
    kInteger: ClassVar[int] = ...
    kFloat: ClassVar[int] = ...
    kFloat2: ClassVar[int] = ...
    kFloat3: ClassVar[int] = ...
    kFloat4: ClassVar[int] = ...
    kFloat4x4Row: ClassVar[int] = ...
    kFloat4x4Col: ClassVar[int] = ...
    kTexture1: ClassVar[int] = ...
    kTexture2: ClassVar[int] = ...
    kTexture3: ClassVar[int] = ...
    kTextureCube: ClassVar[int] = ...
    kSampler: ClassVar[int] = ...
    kPixelShader: ClassVar[int] = ...
    kNormalShader: ClassVar[int] = ...
    kNormalShader2: ClassVar[int] = ...
    kVertexShader: ClassVar[int] = ...
    kGeometryShader: ClassVar[int] = ...
    kGlossShader: ClassVar[int] = ...
    kGlossShader2: ClassVar[int] = ...
    kRotationAngleShader: ClassVar[int] = ...
    kRotationAngleShader2: ClassVar[int] = ...
    kReflectanceShader: ClassVar[int] = ...
    kReflectanceShader2: ClassVar[int] = ...
    kRoughnessShader: ClassVar[int] = ...
    kRoughnessShader2: ClassVar[int] = ...
    kAnisotropyShader: ClassVar[int] = ...
    kAnisotropyShader2: ClassVar[int] = ...
    kDisplacementPosShader: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def activatePass(self, MDrawContext, int) -> self: ...  # type: ignore
    def addInputFragment(self, fragmentName, outputName, inputName, promotedInputName=...) -> self: ...  # type: ignore
    def addInputFragmentForMultiParams(self, fragmentName, uniqueName, outputNames, inputNames, invalidParameterIndices=..., fragmentUsage=...) -> self: ...  # type: ignore
    def addOutputFragment(self, fragmentName, inputName) -> self: ...  # type: ignore
    def annotation(self, *args, **kwargs): ...
    def bind(self, MDrawContext) -> self: ...  # type: ignore
    def clone(self) -> MShaderInstance: ...
    def createShaderInstanceWithColorManagementFragment(self, inputColorSpace) -> MShaderInstance: ...
    def addColorManagementTextures(self) -> self: ...  # type: ignore
    def getPassCount(self, MDrawContext) -> int: ...
    def isArrayParameter(self, string) -> bool: ...
    def getArraySize(self, string) -> int: ...
    def isTransparent(self) -> bool: ...
    def parameterDefaultValue(self, *args, **kwargs): ...
    def parameterList(self) -> listofstring: ...  # type: ignore
    def parameterSemantic(self, parameterName) -> string: ...  # type: ignore
    def parameterType(self, string) -> int: ...
    def passAnnotation(self, *args, **kwargs): ...
    def postDrawCallback(self, *args, **kwargs): ...
    def preDrawCallback(self, *args, **kwargs): ...
    def resourceName(self, parameterName) -> string: ...  # type: ignore
    def semantic(self, string) -> string: ...  # type: ignore
    def isVaryingParameter(self, string) -> bool: ...
    @overload
    def setArrayParameter(self, parameterName, sequenceofbool, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceofint, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceoffloat, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceofMMatrix, int) -> self: ...  # type: ignore
    def setIsTransparent(self, bool) -> self: ...  # type: ignore
    def setAsVarying(self, parameterName, bool) -> self: ...  # type: ignore
    def setSemantic(self, parameterName, string) -> self: ...  # type: ignore
    def renameParameter(self, parameterName, string) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, bool) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, int) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, float) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, listoffloat) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MFloatVector) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MMatrix) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MFloatMatrix) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MTexture) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MRenderTarget) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MSamplerState) -> self: ...  # type: ignore
    def techniqueNames(self) -> listofstrings: ...  # type: ignore
    def techniqueAnnotation(self, *args, **kwargs): ...
    def uiName(self, parameterName) -> string: ...  # type: ignore
    def uiWidget(self, parameterName) -> string: ...  # type: ignore
    def unbind(self, MDrawContext) -> self: ...  # type: ignore
    def updateParameters(self, MDrawContext) -> self: ...  # type: ignore
    def requiredVertexBuffers(self, MVertexBufferDescriptorList) -> self: ...  # type: ignore
    def writeEffectSourceToFile(self, filePath) -> self: ...  # type: ignore

class MShaderManager:
    k3dSolidShader: ClassVar[int] = ...
    k3dBlinnShader: ClassVar[int] = ...
    k3dDefaultMaterialShader: ClassVar[int] = ...
    k3dSolidTextureShader: ClassVar[int] = ...
    k3dCPVFatPointShader: ClassVar[int] = ...
    k3dColorLookupFatPointShader: ClassVar[int] = ...
    k3dOpacityLookupFatPointShader: ClassVar[int] = ...
    k3dColorOpacityLookupFatPointShader: ClassVar[int] = ...
    k3dShadowerShader: ClassVar[int] = ...
    k3dFatPointShader: ClassVar[int] = ...
    k3dThickLineShader: ClassVar[int] = ...
    k3dCPVThickLineShader: ClassVar[int] = ...
    k3dDashLineShader: ClassVar[int] = ...
    k3dCPVDashLineShader: ClassVar[int] = ...
    k3dStippleShader: ClassVar[int] = ...
    k3dThickDashLineShader: ClassVar[int] = ...
    k3dCPVThickDashLineShader: ClassVar[int] = ...
    k3dDepthShader: ClassVar[int] = ...
    k3dCPVSolidShader: ClassVar[int] = ...
    k3dIntegerNumericShader: ClassVar[int] = ...
    k3dFloatNumericShader: ClassVar[int] = ...
    k3dFloat2NumericShader: ClassVar[int] = ...
    k3dFloat3NumericShader: ClassVar[int] = ...
    k3dPointVectorShader: ClassVar[int] = ...
    k3dPointLightShadowerShader: ClassVar[int] = ...
    k3dStandardSurfaceShader: ClassVar[int] = ...
    k3dIsotropicStandardSurfaceShader: ClassVar[int] = ...
    k3dCPVShader: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def addShaderIncludePath(self, string) -> self: ...  # type: ignore
    def addShaderPath(self, string) -> self: ...  # type: ignore
    def getEffectsBufferShader(self, buffer, size, techniqueName, macros=..., useEffectCache=..., preCb=..., postCb=...) -> MShaderInstance: ...
    def getEffectsFileShader(self, effecsFileName, techniqueName, macros=..., useEffectCache=..., preCb=..., postCb=...) -> MShaderInstance: ...
    def getEffectsTechniques(self, effecsFileName, macros=..., useEffectCache=...) -> tupleofstrings: ...  # type: ignore
    def getFragmentShader(self, fragmentName, structOutputName, decorateFragment, preCb=..., postCb=...) -> MShaderInstance: ...
    def getShaderFromNode(self, shaderNode, shapePath, linkLostCb=..., linkLostUserData=..., preCb=..., postCb=..., nonTextured=...) -> MShaderInstance: ...
    def getStockShader(self, shaderId, preCb=..., postCb=...) -> MShaderInstance: ...
    @staticmethod
    def isSupportedShaderSemantic(string) -> bool: ...
    def releaseShader(self, MShaderInstance) -> None: ...
    def clearEffectCache(self) -> self: ...  # type: ignore
    def removeEffectFromCache(self, effecsFileName, techniqueName, macros=...) -> self: ...  # type: ignore
    def shaderIncludePaths(self) -> listofstrings: ...  # type: ignore
    def shaderPaths(self) -> listofstrings: ...  # type: ignore
    @staticmethod
    def getLastError() -> string: ...  # type: ignore
    @staticmethod
    def getLastErrorSource(displayLineNumber=..., filterSource=..., numSurroundingLines=...) -> string: ...  # type: ignore

class MStateManager:
    kCompareNever: ClassVar[int] = ...
    kCompareLess: ClassVar[int] = ...
    kCompareEqual: ClassVar[int] = ...
    kCompareLessEqual: ClassVar[int] = ...
    kCompareGreater: ClassVar[int] = ...
    kCompareNotEqual: ClassVar[int] = ...
    kCompareGreaterEqual: ClassVar[int] = ...
    kCompareAlways: ClassVar[int] = ...
    kNoShader: ClassVar[int] = ...
    kVertexShader: ClassVar[int] = ...
    kGeometryShader: ClassVar[int] = ...
    kPixelShader: ClassVar[int] = ...
    kHullShader: ClassVar[int] = ...
    kDomainShader: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def acquireBlendState(MBlendStateDesc) -> MBlendState: ...
    @staticmethod
    def releaseBlendState(MBlendState) -> None: ...
    def setBlendState(self, MBlendState) -> self: ...  # type: ignore
    def getBlendState(self) -> MBlendState: ...
    @staticmethod
    def acquireRasterizerState(MRasterizerStateDesc) -> MRasterizerState: ...
    @staticmethod
    def releaseRasterizerState(MRasterizerState) -> None: ...
    def setRasterizerState(self, MRasterizerState) -> self: ...  # type: ignore
    def getRasterizerState(self) -> MRasterizerState: ...
    @staticmethod
    def acquireDepthStencilState(MDepthStencilStateDesc) -> MDepthStencilState: ...
    @staticmethod
    def releaseDepthStencilState(MDepthStencilState) -> None: ...
    def setDepthStencilState(self, MDepthStencilState) -> self: ...  # type: ignore
    def getDepthStencilState(self) -> MDepthStencilState: ...
    @staticmethod
    def acquireSamplerState(MSamplerStateDesc) -> MSamplerState: ...
    @staticmethod
    def releaseSamplerState(MSamplerState) -> None: ...
    def setSamplerState(self, shader, samplerIndex, samplerState) -> self: ...  # type: ignore
    def getSamplerState(self, shader, samplerIndex) -> MSamplerState: ...
    @staticmethod
    def getMaxSamplerCount() -> int: ...

class MBlendState:
    kAdd: ClassVar[int] = ...
    kSubtract: ClassVar[int] = ...
    kReverseSubtract: ClassVar[int] = ...
    kMin: ClassVar[int] = ...
    kMax: ClassVar[int] = ...
    kZero: ClassVar[int] = ...
    kOne: ClassVar[int] = ...
    kSourceColor: ClassVar[int] = ...
    kInvSourceColor: ClassVar[int] = ...
    kSourceAlpha: ClassVar[int] = ...
    kInvSourceAlpha: ClassVar[int] = ...
    kSourceAlphaSat: ClassVar[int] = ...
    kDestinationColor: ClassVar[int] = ...
    kInvDestinationColor: ClassVar[int] = ...
    kDestinationAlpha: ClassVar[int] = ...
    kInvDestinationAlpha: ClassVar[int] = ...
    kBothSourceAlpha: ClassVar[int] = ...
    kBothInvSourceAlpha: ClassVar[int] = ...
    kBlendFactor: ClassVar[int] = ...
    kInvBlendFactor: ClassVar[int] = ...
    kNoChannels: ClassVar[int] = ...
    kRedChannel: ClassVar[int] = ...
    kGreenChannel: ClassVar[int] = ...
    kBlueChannel: ClassVar[int] = ...
    kAlphaChannel: ClassVar[int] = ...
    kRGBChannels: ClassVar[int] = ...
    kRGBAChannels: ClassVar[int] = ...
    kMaxTargets: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def desc(self) -> MBlendStateDesc: ...
    def resourceHandle(self) -> long: ...  # type: ignore

class MTargetBlendDesc:
    blendEnable: Incomplete
    sourceBlend: Incomplete
    destinationBlend: Incomplete
    blendOperation: Incomplete
    alphaSourceBlend: Incomplete
    alphaDestinationBlend: Incomplete
    alphaBlendOperation: Incomplete
    targetWriteMask: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MBlendStateDesc:
    alphaToCoverageEnable: Incomplete
    independentBlendEnable: Incomplete
    blendFactor: Incomplete
    multiSampleMask: Incomplete
    targetBlends: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MRasterizerState:
    kFillSolid: ClassVar[int] = ...
    kFillWireFrame: ClassVar[int] = ...
    kCullNone: ClassVar[int] = ...
    kCullFront: ClassVar[int] = ...
    kCullBack: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def desc(self) -> MRasterizerStateDesc: ...
    def resourceHandle(self) -> long: ...  # type: ignore

class MRasterizerStateDesc:
    fillMode: Incomplete
    cullMode: Incomplete
    frontCounterClockwise: Incomplete
    depthBiasIsFloat: Incomplete
    depthBias: Incomplete
    depthBiasClamp: Incomplete
    slopeScaledDepthBias: Incomplete
    depthClipEnable: Incomplete
    scissorEnable: Incomplete
    multiSampleEnable: Incomplete
    antialiasedLineEnable: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MDepthStencilState:
    kKeepStencil: ClassVar[int] = ...
    kZeroStencil: ClassVar[int] = ...
    kReplaceStencil: ClassVar[int] = ...
    kIncrementStencilSat: ClassVar[int] = ...
    kDecrementStencilSat: ClassVar[int] = ...
    kInvertStencil: ClassVar[int] = ...
    kIncrementStencil: ClassVar[int] = ...
    kDecrementStencil: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def desc(self) -> MDepthStencilStateDesc: ...
    def resourceHandle(self) -> long: ...  # type: ignore

class MStencilOpDesc:
    stencilPassOp: Incomplete
    stencilFailOp: Incomplete
    stencilDepthFailOp: Incomplete
    stencilFunc: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MDepthStencilStateDesc:
    depthEnable: Incomplete
    depthWriteEnable: Incomplete
    depthFunc: Incomplete
    stencilEnable: Incomplete
    stencilReadMask: Incomplete
    stencilWriteMask: Incomplete
    stencilReferenceVal: Incomplete
    frontFace: Incomplete
    backFace: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MSamplerState:
    kMinMagMipPoint: ClassVar[int] = ...
    kMinMagPoint_MipLinear: ClassVar[int] = ...
    kMinPoint_MagLinear_MipPoint: ClassVar[int] = ...
    kMinPoint_MagMipLinear: ClassVar[int] = ...
    kMinLinear_MagMipPoint: ClassVar[int] = ...
    kMinLinear_MagPoint_MipLinear: ClassVar[int] = ...
    kMinMagLinear_MipPoint: ClassVar[int] = ...
    kMinMagMipLinear: ClassVar[int] = ...
    kAnisotropic: ClassVar[int] = ...
    kTexWrap: ClassVar[int] = ...
    kTexMirror: ClassVar[int] = ...
    kTexClamp: ClassVar[int] = ...
    kTexBorder: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def desc(self) -> MSamplerStateDesc: ...
    def resourceHandle(self) -> long: ...  # type: ignore

class MSamplerStateDesc:
    filter: Incomplete
    comparisonFn: Incomplete
    addressU: Incomplete
    addressV: Incomplete
    addressW: Incomplete
    borderColor: Incomplete
    mipLODBias: Incomplete
    minLOD: Incomplete
    maxLOD: Incomplete
    maxAnisotropy: Incomplete
    coordCount: Incomplete
    elementIndex: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setDefaults(self) -> self: ...  # type: ignore

class MSwatchRenderBase:
    renderQuality: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    @staticmethod
    def cancelCurrentSwatchRender() -> None: ...
    def cancelParallelRendering(self) -> self: ...  # type: ignore
    def doIteration(self) -> bool: ...
    def finishParallelRender(self) -> self: ...  # type: ignore
    def image(self) -> MImage: ...  # type: ignore
    def node(self) -> MObject: ...  # type: ignore
    def renderParallel(self) -> bool: ...
    def resolution(self) -> int: ...
    def swatchNode(self) -> MObject: ...  # type: ignore

class MTextureDescription:
    kImage1D: ClassVar[int] = ...
    kImage1DArray: ClassVar[int] = ...
    kImage2D: ClassVar[int] = ...
    kImage2DArray: ClassVar[int] = ...
    kCubeMap: ClassVar[int] = ...
    kVolumeTexture: ClassVar[int] = ...
    kDepthTexture: ClassVar[int] = ...
    kNumberOfTextureTypes: ClassVar[int] = ...
    kEnvNone: ClassVar[int] = ...
    kEnvSphere: ClassVar[int] = ...
    kEnvHemiSphere: ClassVar[int] = ...
    kEnvLatLong: ClassVar[int] = ...
    kEnvCrossVert: ClassVar[int] = ...
    kEnvCrossHoriz: ClassVar[int] = ...
    kEnvCubemap: ClassVar[int] = ...
    kNumberOfEnvMapTypes: ClassVar[int] = ...
    fWidth: Incomplete
    fHeight: Incomplete
    fDepth: Incomplete
    fBytesPerRow: Incomplete
    fBytesPerSlice: Incomplete
    fMipmaps: Incomplete
    fArraySlices: Incomplete
    fFormat: Incomplete
    fTextureType: Incomplete
    fEnvMapType: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def setToDefault2DTexture(self) -> self: ...  # type: ignore

class MDepthNormalizationDescription:
    fNearClipDistance: Incomplete
    fFarClipDistance: Incomplete
    fDepthScale: Incomplete
    fDepthBias: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MTextureUpdateRegion:
    fXRangeMin: Incomplete
    fXRangeMax: Incomplete
    fYRangeMin: Incomplete
    fYRangeMax: Incomplete
    fZRangeMin: Incomplete
    fZRangeMax: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MTexture:
    def __init__(self, *args, **kwargs) -> None: ...
    def hasAlpha(self) -> bool: ...
    def setHasAlpha(self, bool) -> self: ...  # type: ignore
    def hasZeroAlpha(self) -> bool: ...
    def setHasZeroAlpha(self, bool) -> self: ...  # type: ignore
    def hasTransparentAlpha(self) -> bool: ...
    def setHasTransparentAlpha(self, bool) -> self: ...  # type: ignore
    def resourceHandle(self) -> long: ...  # type: ignore
    def name(self) -> string: ...  # type: ignore
    def bytesPerPixel(self) -> int: ...
    def textureDescription(self) -> MTextureDescription: ...
    def rawData(self, *args, **kwargs): ...
    @staticmethod
    def freeRawData(long) -> None: ...
    def update(self, pixelData, generateMipMaps, rowPitch=..., region=...) -> self: ...  # type: ignore

class MTextureManager:
    def __init__(self, *args, **kwargs) -> None: ...
    def addImagePath(self, string) -> self: ...  # type: ignore
    def imagePaths(self) -> listofstrings: ...  # type: ignore
    @overload
    def acquireTexture(self, filePath, mipmapLevels=..., layerName=..., alphaChannelIdx=...) -> MTexture: ...
    @overload
    def acquireTexture(self, filePath, contextNodeFullName, mipmapLevels=..., layerName=..., alphaChannelIdx=...) -> MTexture: ...
    @overload
    def acquireTexture(self, textureName, plug, width, height, generateMipMaps=...) -> MTexture: ...
    @overload
    def acquireTexture(self, textureName, textureDesc, pixelData, generateMipMaps=...) -> MTexture: ...
    @overload
    def acquireTexture(self, fileNode, allowBackgroundLoad=...) -> MTexture: ...
    def acquireTiledTexture(self, *args, **kwargs): ...
    @overload
    def acquireDepthTexture(self, textureName, image, generateMipMaps=..., normalizationDesc=...) -> MTexture: ...
    @overload
    def acquireDepthTexture(self, textureName, pixelData, width, height, generateMipMaps=..., normalizationDesc=...) -> MTexture: ...
    def releaseTexture(self, MTexture) -> self: ...  # type: ignore
    def saveTexture(self, MTexture, string) -> self: ...  # type: ignore

class MUIDrawManager:
    kDefaultFontSize: ClassVar[int] = ...
    kSmallFontSize: ClassVar[int] = ...
    kLeft: ClassVar[int] = ...
    kCenter: ClassVar[int] = ...
    kRight: ClassVar[int] = ...
    kInclineNormal: ClassVar[int] = ...
    kInclineItalic: ClassVar[int] = ...
    kInclineOblique: ClassVar[int] = ...
    kWeightLight: ClassVar[int] = ...
    kWeightNormal: ClassVar[int] = ...
    kWeightDemiBold: ClassVar[int] = ...
    kWeightBold: ClassVar[int] = ...
    kWeightBlack: ClassVar[int] = ...
    kStretchUltraCondensed: ClassVar[int] = ...
    kStretchExtraCondensed: ClassVar[int] = ...
    kStretchCondensed: ClassVar[int] = ...
    kStretchSemiCondensed: ClassVar[int] = ...
    kStretchUnstretched: ClassVar[int] = ...
    kStretchSemiExpanded: ClassVar[int] = ...
    kStretchExpanded: ClassVar[int] = ...
    kStretchExtraExpanded: ClassVar[int] = ...
    kStretchUltraExpanded: ClassVar[int] = ...
    kLineNone: ClassVar[int] = ...
    kLineOverline: ClassVar[int] = ...
    kLineUnderline: ClassVar[int] = ...
    kLineStrikeoutLine: ClassVar[int] = ...
    kSolid: ClassVar[int] = ...
    kShortDotted: ClassVar[int] = ...
    kShortDashed: ClassVar[int] = ...
    kDashed: ClassVar[int] = ...
    kDotted: ClassVar[int] = ...
    kFlat: ClassVar[int] = ...
    kStippled: ClassVar[int] = ...
    kShaded: ClassVar[int] = ...
    kPoints: ClassVar[int] = ...
    kLines: ClassVar[int] = ...
    kLineStrip: ClassVar[int] = ...
    kClosedLine: ClassVar[int] = ...
    kTriangles: ClassVar[int] = ...
    kTriStrip: ClassVar[int] = ...
    kNonSelectable: ClassVar[int] = ...
    kSelectable: ClassVar[int] = ...
    kAutomatic: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    @overload
    def beginDrawable(self, selectability=..., selectionName=...) -> self: ...  # type: ignore
    @overload
    def beginDrawable(self) -> Any: ...  # type: ignore
    def endDrawable(self) -> self: ...  # type: ignore
    @overload
    def setColor(self, color) -> self: ...  # type: ignore
    @overload
    def setColor(self) -> Any: ...
    def setColorIndex(self, index) -> self: ...  # type: ignore
    def setPointSize(self, value) -> self: ...  # type: ignore
    def setLineWidth(self, value) -> self: ...  # type: ignore
    @overload
    def setLineStyle(self, style) -> self: ...  # type: ignore
    @overload
    def setLineStyle(self, factor, pattern) -> self: ...  # type: ignore
    def setPaintStyle(self, style) -> self: ...  # type: ignore
    def depthPriority(self) -> int: ...
    def setDepthPriority(self, priority) -> self: ...  # type: ignore
    def line(self, startPoint, endPoint) -> self: ...  # type: ignore
    def line2d(self, startPoint, endPoint) -> self: ...  # type: ignore
    def lineList(self, points, draw2D) -> self: ...  # type: ignore
    def lineStrip(self, points, draw2D) -> self: ...  # type: ignore
    @overload
    def point(self, point) -> self: ...  # type: ignore
    @overload
    def point(self, MPoint) -> Any: ...
    def point2d(self, point) -> self: ...  # type: ignore
    @overload
    def points(self, points, draw2D) -> self: ...  # type: ignore
    @overload
    def points(self, MPointArray) -> Any: ...
    def rect(self, center, up, normal, scaleX, scaleY, filled=...) -> self: ...  # type: ignore
    def rect2d(self, center, up, scaleX, scaleY, filled=...) -> self: ...  # type: ignore
    def sphere(self, *args, **kwargs): ...
    def circle(self, *args, **kwargs): ...
    def circle2d(self, *args, **kwargs): ...
    def arc(self, *args, **kwargs): ...
    def arc2d(self, *args, **kwargs): ...
    def mesh(self, mode, position, normal=..., color=..., index=..., texcoord=...) -> self: ...  # type: ignore
    def mesh2d(self, mode, position, color=..., index=..., texcoord=...) -> self: ...  # type: ignore
    @overload
    def beginDrawInXray(self) -> self: ...  # type: ignore
    @overload
    def beginDrawInXray(self) -> Any: ...  # type: ignore
    @overload
    def beginDrawInXray(self) -> Any: ...  # type: ignore
    def endDrawInXray(self) -> self: ...  # type: ignore
    def cone(self, *args, **kwargs): ...
    def cylinder(self, center, up, radius, height, subdivisionsAxis, filled=...) -> self: ...  # type: ignore
    def capsule(self, center, up, radius, height, subdivisionsAxis, subdivisionsHeight, filled=...) -> self: ...  # type: ignore
    def box(self, center, up, right, scaleX=..., scaleY=..., scaleZ=..., filled=...) -> self: ...  # type: ignore
    @staticmethod
    def getFontList() -> listofstrings: ...  # type: ignore
    def setFontIncline(self, fontIncline) -> self: ...  # type: ignore
    def setFontWeight(self, fontWeight) -> self: ...  # type: ignore
    def setFontStretch(self, fontStretch) -> self: ...  # type: ignore
    def setFontLine(self, fontLine) -> self: ...  # type: ignore
    def setFontSize(self, fontSize) -> self: ...  # type: ignore
    def setFontName(self, faceName) -> self: ...  # type: ignore
    @overload
    def text(self, position, text, alignment=..., backgroundSize=..., backgroundColor=..., dynamic=...) -> self: ...  # type: ignore
    @overload
    def text(self, string) -> Any: ...
    def text2d(self, position, text, alignment=..., backgroundSize=..., backgroundColor=..., dynamic=...) -> self: ...  # type: ignore
    @overload
    def setTexture(self, texture) -> self: ...  # type: ignore
    @overload
    def setTexture(self) -> Any: ...
    @overload
    def setTextureSampler(self, filter, address) -> self: ...  # type: ignore
    @overload
    def setTextureSampler(self) -> Any: ...
    @overload
    def setTextureMask(self, mask) -> self: ...  # type: ignore
    @overload
    def setTextureMask(self) -> Any: ...
    def icon(self, position, name, scale) -> self: ...  # type: ignore
    @staticmethod
    def getIconNames() -> listofstrings: ...  # type: ignore

class MUniformParameter:
    kTypeUnknown: ClassVar[int] = ...
    kTypeBool: ClassVar[int] = ...
    kTypeInt: ClassVar[int] = ...
    kTypeFloat: ClassVar[int] = ...
    kType1DTexture: ClassVar[int] = ...
    kType2DTexture: ClassVar[int] = ...
    kType3DTexture: ClassVar[int] = ...
    kTypeCubeTexture: ClassVar[int] = ...
    kTypeEnvTexture: ClassVar[int] = ...
    kTypeString: ClassVar[int] = ...
    kTypeEnum: ClassVar[int] = ...
    kSemanticUnknown: ClassVar[int] = ...
    kSemanticObjectDir: ClassVar[int] = ...
    kSemanticWorldDir: ClassVar[int] = ...
    kSemanticViewDir: ClassVar[int] = ...
    kSemanticProjectionDir: ClassVar[int] = ...
    kSemanticObjectPos: ClassVar[int] = ...
    kSemanticWorldPos: ClassVar[int] = ...
    kSemanticViewPos: ClassVar[int] = ...
    kSemanticProjectionPos: ClassVar[int] = ...
    kSemanticColor: ClassVar[int] = ...
    kSemanticNormal: ClassVar[int] = ...
    kSemanticBump: ClassVar[int] = ...
    kSemanticEnvironment: ClassVar[int] = ...
    kSemanticWorldMatrix: ClassVar[int] = ...
    kSemanticWorldInverseMatrix: ClassVar[int] = ...
    kSemanticWorldInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticViewMatrix: ClassVar[int] = ...
    kSemanticViewInverseMatrix: ClassVar[int] = ...
    kSemanticViewInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticProjectionMatrix: ClassVar[int] = ...
    kSemanticProjectionInverseMatrix: ClassVar[int] = ...
    kSemanticProjectionInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticWorldViewMatrix: ClassVar[int] = ...
    kSemanticWorldViewInverseMatrix: ClassVar[int] = ...
    kSemanticWorldViewInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticWorldViewProjectionMatrix: ClassVar[int] = ...
    kSemanticWorldViewProjectionInverseMatrix: ClassVar[int] = ...
    kSemanticWorldViewProjectionInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticColorTexture: ClassVar[int] = ...
    kSemanticNormalTexture: ClassVar[int] = ...
    kSemanticBumpTexture: ClassVar[int] = ...
    kSemanticNormalizationTexture: ClassVar[int] = ...
    kSemanticTranspDepthTexture: ClassVar[int] = ...
    kSemanticOpaqueDepthTexture: ClassVar[int] = ...
    kSemanticTime: ClassVar[int] = ...
    kSemanticWorldTransposeMatrix: ClassVar[int] = ...
    kSemanticViewTransposeMatrix: ClassVar[int] = ...
    kSemanticProjectionTransposeMatrix: ClassVar[int] = ...
    kSemanticWorldViewTransposeMatrix: ClassVar[int] = ...
    kSemanticWorldViewProjectionTransposeMatrix: ClassVar[int] = ...
    kSemanticViewProjectionMatrix: ClassVar[int] = ...
    kSemanticViewProjectionInverseMatrix: ClassVar[int] = ...
    kSemanticViewProjectionTransposeMatrix: ClassVar[int] = ...
    kSemanticViewProjectionInverseTransposeMatrix: ClassVar[int] = ...
    kSemanticLocalViewer: ClassVar[int] = ...
    kSemanticViewportPixelSize: ClassVar[int] = ...
    kSemanticBackgroundColor: ClassVar[int] = ...
    kSemanticFrameNumber: ClassVar[int] = ...
    kSemanticNearClipPlane: ClassVar[int] = ...
    kSemanticFarClipPlane: ClassVar[int] = ...
    kSemanticHWSPrimitiveBase: ClassVar[int] = ...
    kSemanticHWSPrimitiveCountPerInstance: ClassVar[int] = ...
    kSemanticHWSObjectLevel: ClassVar[int] = ...
    kSemanticHWSFaceLevel: ClassVar[int] = ...
    kSemanticHWSEdgeLevel: ClassVar[int] = ...
    kSemanticHWSVertexLevel: ClassVar[int] = ...
    kSemanticHWSOccluder: ClassVar[int] = ...
    kSemanticHWSFrontCCW: ClassVar[int] = ...
    kSemanticHWSInstancedDraw: ClassVar[int] = ...
    kSemanticHWSHighlighting: ClassVar[int] = ...
    uiHidden: Incomplete
    keyable: Incomplete
    rangeMin: Incomplete
    rangeMax: Incomplete
    softRangeMin: Incomplete
    softRangeMax: Incomplete
    enumFieldNames: Incomplete
    uiNiceName: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def asBool(self, context) -> bool: ...
    def asFloat(self, context) -> float: ...
    def asFloatArray(self, context) -> tupleoffloats: ...  # type: ignore
    def asInt(self, context) -> int: ...
    def asString(self, context) -> string: ...  # type: ignore
    def copy(self, source) -> self: ...  # type: ignore
    def hasChanged(self, context) -> bool: ...
    def isATexture(self) -> bool: ...
    def name(self) -> string: ...  # type: ignore
    def numColumns(self) -> int: ...
    def numElements(self) -> int: ...
    def numRows(self) -> int: ...
    def plug(self) -> MPlug: ...  # type: ignore
    def semantic(self) -> int: ...
    def setBool(self, value) -> self: ...  # type: ignore
    def setDirty(self) -> self: ...  # type: ignore
    def setFloat(self, value) -> self: ...  # type: ignore
    def setFloatArray(self, value) -> self: ...  # type: ignore
    def setInt(self, value) -> self: ...  # type: ignore
    def setString(self, value) -> self: ...  # type: ignore
    def source(self) -> MPlug: ...  # type: ignore
    def type(self) -> int: ...
    def userData(self) -> int: ...

class MUniformParameterList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, element) -> bool: ...
    def copy(self, source) -> self: ...  # type: ignore
    def setElement(self, n, element) -> bool: ...
    def setLength(self, length) -> bool: ...

class MVaryingParameter:
    kInvalidParameter: ClassVar[int] = ...
    kStructure: ClassVar[int] = ...
    kFloat: ClassVar[int] = ...
    kDouble: ClassVar[int] = ...
    kChar: ClassVar[int] = ...
    kUnsignedChar: ClassVar[int] = ...
    kInt16: ClassVar[int] = ...
    kUnsignedInt16: ClassVar[int] = ...
    kInt32: ClassVar[int] = ...
    kUnsignedInt32: ClassVar[int] = ...
    kNoSemantic: ClassVar[int] = ...
    kPosition: ClassVar[int] = ...
    kNormal: ClassVar[int] = ...
    kTexCoord: ClassVar[int] = ...
    kColor: ClassVar[int] = ...
    kWeight: ClassVar[int] = ...
    kTangent: ClassVar[int] = ...
    kBinormal: ClassVar[int] = ...
    def __init__(self) -> Any: ...  # type: ignore
    def addElement(self, child) -> self: ...  # type: ignore
    def copy(self, source) -> self: ...  # type: ignore
    def destinationSetName(self) -> string: ...  # type: ignore
    def dimension(self) -> int: ...
    def elementSize(self) -> int: ...
    def getElement(self, index) -> MVaryingParameter: ...
    def maximumStride(self) -> int: ...
    def name(self) -> string: ...  # type: ignore
    def numElements(self) -> int: ...
    def removeElements(self) -> self: ...  # type: ignore
    def semantic(self) -> int: ...
    def semanticName(self) -> string: ...  # type: ignore
    def setSource(self, semantic, name) -> self: ...  # type: ignore
    def sourceSetName(self) -> string: ...  # type: ignore
    def sourceSemantic(self) -> int: ...
    def type(self) -> int: ...
    def updateId(self) -> int: ...

class MVaryingParameterList:
    def __init__(self, *args, **kwargs) -> None: ...
    def __len__(self) -> int: ...
    def __getitem__(self, key): ...
    def append(self, element) -> bool: ...
    def copy(self, source) -> self: ...  # type: ignore
    def setElement(self, n, element) -> bool: ...
    def setLength(self, length) -> bool: ...

class MRenderer:
    kNone: ClassVar[int] = ...
    kOpenGL: ClassVar[int] = ...
    kDirectX11: ClassVar[int] = ...
    kOpenGLCoreProfile: ClassVar[int] = ...
    kAllDevices: ClassVar[int] = ...
    kD24S8: ClassVar[int] = ...
    kD24X8: ClassVar[int] = ...
    kD32_FLOAT: ClassVar[int] = ...
    kR24G8: ClassVar[int] = ...
    kR24X8: ClassVar[int] = ...
    kDXT1_UNORM: ClassVar[int] = ...
    kDXT1_UNORM_SRGB: ClassVar[int] = ...
    kDXT2_UNORM: ClassVar[int] = ...
    kDXT2_UNORM_SRGB: ClassVar[int] = ...
    kDXT2_UNORM_PREALPHA: ClassVar[int] = ...
    kDXT3_UNORM: ClassVar[int] = ...
    kDXT3_UNORM_SRGB: ClassVar[int] = ...
    kDXT3_UNORM_PREALPHA: ClassVar[int] = ...
    kDXT4_UNORM: ClassVar[int] = ...
    kDXT4_SNORM: ClassVar[int] = ...
    kDXT5_UNORM: ClassVar[int] = ...
    kDXT5_SNORM: ClassVar[int] = ...
    kBC6H_UF16: ClassVar[int] = ...
    kBC6H_SF16: ClassVar[int] = ...
    kBC7_UNORM: ClassVar[int] = ...
    kBC7_UNORM_SRGB: ClassVar[int] = ...
    kR9G9B9E5_FLOAT: ClassVar[int] = ...
    kR1_UNORM: ClassVar[int] = ...
    kA8: ClassVar[int] = ...
    kR8_UNORM: ClassVar[int] = ...
    kR8_SNORM: ClassVar[int] = ...
    kR8_UINT: ClassVar[int] = ...
    kR8_SINT: ClassVar[int] = ...
    kL8: ClassVar[int] = ...
    kR16_FLOAT: ClassVar[int] = ...
    kR16_UNORM: ClassVar[int] = ...
    kR16_SNORM: ClassVar[int] = ...
    kR16_UINT: ClassVar[int] = ...
    kR16_SINT: ClassVar[int] = ...
    kL16: ClassVar[int] = ...
    kR8G8_UNORM: ClassVar[int] = ...
    kR8G8_SNORM: ClassVar[int] = ...
    kR8G8_UINT: ClassVar[int] = ...
    kR8G8_SINT: ClassVar[int] = ...
    kB5G5R5A1: ClassVar[int] = ...
    kB5G6R5: ClassVar[int] = ...
    kR32_FLOAT: ClassVar[int] = ...
    kR32_UINT: ClassVar[int] = ...
    kR32_SINT: ClassVar[int] = ...
    kR16G16_FLOAT: ClassVar[int] = ...
    kR16G16_UNORM: ClassVar[int] = ...
    kR16G16_SNORM: ClassVar[int] = ...
    kR16G16_UINT: ClassVar[int] = ...
    kR16G16_SINT: ClassVar[int] = ...
    kR8G8B8A8_UNORM: ClassVar[int] = ...
    kR8G8B8A8_SNORM: ClassVar[int] = ...
    kR8G8B8A8_UINT: ClassVar[int] = ...
    kR8G8B8A8_SINT: ClassVar[int] = ...
    kR10G10B10A2_UNORM: ClassVar[int] = ...
    kR10G10B10A2_UINT: ClassVar[int] = ...
    kB8G8R8A8: ClassVar[int] = ...
    kB8G8R8X8: ClassVar[int] = ...
    kR8G8B8X8: ClassVar[int] = ...
    kA8B8G8R8: ClassVar[int] = ...
    kR32G32_FLOAT: ClassVar[int] = ...
    kR32G32_UINT: ClassVar[int] = ...
    kR32G32_SINT: ClassVar[int] = ...
    kR16G16B16A16_FLOAT: ClassVar[int] = ...
    kR16G16B16A16_UNORM: ClassVar[int] = ...
    kR16G16B16A16_SNORM: ClassVar[int] = ...
    kR16G16B16A16_UINT: ClassVar[int] = ...
    kR16G16B16A16_SINT: ClassVar[int] = ...
    kR32G32B32_FLOAT: ClassVar[int] = ...
    kR32G32B32_UINT: ClassVar[int] = ...
    kR32G32B32_SINT: ClassVar[int] = ...
    kR32G32B32A32_FLOAT: ClassVar[int] = ...
    kR32G32B32A32_UINT: ClassVar[int] = ...
    kR32G32B32A32_SINT: ClassVar[int] = ...
    kNumberOfRasterFormats: ClassVar[int] = ...
    @staticmethod
    def GPUDeviceHandle() -> long: ...  # type: ignore
    @staticmethod
    def GPUmaximumPrimitiveCount() -> int: ...
    @staticmethod
    def GPUmaximumVertexBufferSize() -> int: ...
    @staticmethod
    def activeRenderOverride() -> string: ...  # type: ignore
    @staticmethod
    def copyTargetToScreen(MRenderTarget) -> bool: ...
    @staticmethod
    def render(sourceName, targetList) -> bool: ...
    @staticmethod
    def deregisterOverride(MRenderOverride) -> None: ...
    @staticmethod
    def disableChangeManagementUntilNextRefresh() -> None: ...
    @staticmethod
    def drawAPI() -> int: ...
    @staticmethod
    def drawAPIIsOpenGL() -> bool: ...
    @staticmethod
    def drawAPIVersion() -> int: ...
    @staticmethod
    def findRenderOverride(string) -> MRenderOverride: ...
    @staticmethod
    def getFragmentManager() -> MFragmentManager: ...
    @staticmethod
    def getRenderTargetManager() -> MRenderTargetManager: ...
    @staticmethod
    def getShaderManager() -> MShaderManager: ...
    @staticmethod
    def getTextureManager() -> MTextureManager: ...
    @staticmethod
    def outputTargetSize(*args, **kwargs): ...
    @staticmethod
    def registerOverride(MRenderOverride) -> None: ...
    @staticmethod
    def renderOverrideCount() -> int: ...
    @staticmethod
    def renderOverrideName() -> string: ...  # type: ignore
    @staticmethod
    def setGeometryDrawDirty(object, topologyChanged=...) -> None: ...
    @staticmethod
    def setLightRequiresShadows(object, flag) -> bool: ...
    @staticmethod
    def needEvaluateAllLights() -> None: ...
    @staticmethod
    def setLightsAndShadowsDirty() -> None: ...
    @staticmethod
    def setRenderOverrideName(string) -> bool: ...

class MCameraOverride:
    mCameraPath: Incomplete
    mUseHiddenCameraList: Incomplete
    mHiddenCameraList: Incomplete
    mUseProjectionMatrix: Incomplete
    mProjectionMatrix: Incomplete
    mUseViewMatrix: Incomplete
    mViewMatrix: Incomplete
    mUseNearClippingPlane: Incomplete
    mNearClippingPlane: Incomplete
    mUseFarClippingPlane: Incomplete
    mFarClippingPlane: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class MRenderOperation:
    kClear: ClassVar[int] = ...
    kSceneRender: ClassVar[int] = ...
    kQuadRender: ClassVar[int] = ...
    kUserDefined: ClassVar[int] = ...
    kDataServer: ClassVar[int] = ...
    kHUDRender: ClassVar[int] = ...
    kPresentTarget: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def enableSRGBWrite(self) -> bool: ...
    def name(self) -> string: ...  # type: ignore
    def operationType(self) -> int: ...
    def targetOverrideList(self) -> listofMRenderTarget: ...  # type: ignore
    def viewportRectangleOverride(self) -> MFloatPoint: ...  # type: ignore

class MUserRenderOperation(MRenderOperation):
    def __init__(self, *args, **kwargs) -> None: ...
    def addUIDrawables(self, drawManager, frameContext) -> self: ...  # type: ignore
    def cameraOverride(self) -> MCameraOverride: ...
    def hasUIDrawables(self) -> bool: ...
    def requiresLightData(self) -> bool: ...
    def requiresResetDeviceStates(self) -> bool: ...

class MHUDRender(MRenderOperation):
    def __init__(self, *args, **kwargs) -> None: ...
    def addUIDrawables(self, drawManager2D, frameContext) -> self: ...  # type: ignore
    def hasUIDrawables(self) -> bool: ...
    def name(self) -> string: ...  # type: ignore

class MPresentTarget(MRenderOperation):
    kCenterBuffer: ClassVar[int] = ...
    kLeftBuffer: ClassVar[int] = ...
    kRightBuffer: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def presentDepth(self) -> bool: ...
    def setPresentDepth(self, bool) -> self: ...  # type: ignore
    def setTargetBackBuffer(self, int) -> self: ...  # type: ignore
    def targetBackBuffer(self) -> int: ...

class MClearOperation(MRenderOperation):
    kClearNone: ClassVar[int] = ...
    kClearColor: ClassVar[int] = ...
    kClearDepth: ClassVar[int] = ...
    kClearStencil: ClassVar[int] = ...
    kClearAll: ClassVar[int] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def clearColor(self, *args, **kwargs): ...
    def clearColor2(self, *args, **kwargs): ...
    def clearDepth(self) -> float: ...
    def clearGradient(self) -> bool: ...
    def clearStencil(self) -> int: ...
    def mask(self) -> int: ...
    def overridesColors(self) -> bool: ...
    def setClearColor(self, *args, **kwargs): ...
    def setClearColor2(self, *args, **kwargs): ...
    def setClearDepth(self, float) -> self: ...  # type: ignore
    def setClearGradient(self, bool) -> self: ...  # type: ignore
    def setClearStencil(self, int) -> self: ...  # type: ignore
    def setMask(self, int) -> self: ...  # type: ignore
    def setOverridesColors(self, bool) -> self: ...  # type: ignore

class MSceneRender(MRenderOperation):
    kExcludeNone: ClassVar[int] = ...
    kExcludeNurbsCurves: ClassVar[int] = ...
    kExcludeNurbsSurfaces: ClassVar[int] = ...
    kExcludeMeshes: ClassVar[int] = ...
    kExcludePlanes: ClassVar[int] = ...
    kExcludeLights: ClassVar[int] = ...
    kExcludeCameras: ClassVar[int] = ...
    kExcludeJoints: ClassVar[int] = ...
    kExcludeIkHandles: ClassVar[int] = ...
    kExcludeDeformers: ClassVar[int] = ...
    kExcludeDynamics: ClassVar[int] = ...
    kExcludeParticleInstancers: ClassVar[int] = ...
    kExcludeLocators: ClassVar[int] = ...
    kExcludeDimensions: ClassVar[int] = ...
    kExcludeSelectHandles: ClassVar[int] = ...
    kExcludePivots: ClassVar[int] = ...
    kExcludeTextures: ClassVar[int] = ...
    kExcludeGrid: ClassVar[int] = ...
    kExcludeCVs: ClassVar[int] = ...
    kExcludeHulls: ClassVar[int] = ...
    kExcludeStrokes: ClassVar[int] = ...
    kExcludeSubdivSurfaces: ClassVar[int] = ...
    kExcludeFluids: ClassVar[int] = ...
    kExcludeFollicles: ClassVar[int] = ...
    kExcludeHairSystems: ClassVar[int] = ...
    kExcludeImagePlane: ClassVar[int] = ...
    kExcludeNCloths: ClassVar[int] = ...
    kExcludeNRigids: ClassVar[int] = ...
    kExcludeDynamicConstraints: ClassVar[int] = ...
    kExcludeManipulators: ClassVar[int] = ...
    kExcludeNParticles: ClassVar[int] = ...
    kExcludeMotionTrails: ClassVar[int] = ...
    kExcludeHoldOuts: ClassVar[int] = ...
    kExcludeAll: ClassVar[int] = ...
    kNoSceneFilterOverride: ClassVar[int] = ...
    kRenderPreSceneUIItems: ClassVar[int] = ...
    kRenderOpaqueShadedItems: ClassVar[int] = ...
    kRenderTransparentShadedItems: ClassVar[int] = ...
    kRenderShadedItems: ClassVar[int] = ...
    kRenderPostSceneUIItems: ClassVar[int] = ...
    kRenderUIItems: ClassVar[int] = ...
    kRenderNonShadedItems: ClassVar[int] = ...
    kRenderAllItems: ClassVar[int] = ...
    kNoDisplayModeOverride: ClassVar[int] = ...
    kWireFrame: ClassVar[int] = ...
    kShaded: ClassVar[int] = ...
    kFlatShaded: ClassVar[int] = ...
    kShadeActiveOnly: ClassVar[int] = ...
    kBoundingBox: ClassVar[int] = ...
    kDefaultMaterial: ClassVar[int] = ...
    kTextured: ClassVar[int] = ...
    kNoLightingModeOverride: ClassVar[int] = ...
    kNoLight: ClassVar[int] = ...
    kAmbientLight: ClassVar[int] = ...
    kLightDefault: ClassVar[int] = ...
    kSelectedLights: ClassVar[int] = ...
    kSceneLights: ClassVar[int] = ...
    kPostEffectDisableNone: ClassVar[int] = ...
    kPostEffectDisableSSAO: ClassVar[int] = ...
    kPostEffectDisableMotionBlur: ClassVar[int] = ...
    kPostEffectDisableDOF: ClassVar[int] = ...
    kPostEffectDisableAll: ClassVar[int] = ...
    kNoCullingOverride: ClassVar[int] = ...
    kCullNone: ClassVar[int] = ...
    kCullBackFaces: ClassVar[int] = ...
    kCullFrontFaces: ClassVar[int] = ...
    mClearOperation: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def addPostUIDrawables(self, drawManager, frameContext) -> self: ...  # type: ignore
    def addPreUIDrawables(self, drawManager, frameContext) -> self: ...  # type: ignore
    def cameraOverride(self) -> MCameraOverride: ...
    def clearOperation(self) -> MClearOperation: ...
    def cullingOverride(self) -> int: ...
    def displayModeOverride(self) -> int: ...
    def fragmentName(self) -> String: ...  # type: ignore
    def hasUIDrawables(self) -> bool: ...
    def lightModeOverride(self) -> int: ...
    def objectSetOverride(self) -> MSelectionList: ...  # type: ignore
    def getParameters(self) -> MRenderParameters: ...
    def getObjectTypeExclusions(self) -> long: ...  # type: ignore
    def objectTypeExclusions(self) -> int: ...
    def postEffectsOverride(self) -> int: ...
    def postRender(self) -> self: ...  # type: ignore
    def postSceneRender(self, context) -> self: ...  # type: ignore
    def preRender(self) -> self: ...  # type: ignore
    def preSceneRender(self, context) -> self: ...  # type: ignore
    def renderFilterOverride(self) -> int: ...
    def shaderOverride(self) -> MShaderInstance: ...
    def shadowEnableOverride(self, *args, **kwargs): ...

class MQuadRender(MRenderOperation):
    mClearOperation: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def blendStateOverride(self) -> MBlendState: ...
    def clearOperation(self) -> MClearOperation: ...
    def depthStencilStateOverride(self) -> MDepthStencilState: ...
    def rasterizerStateOverride(self) -> MRasterizerState: ...
    def shader(self) -> MShaderInstance: ...

class MRenderOverride:
    def __init__(self, *args, **kwargs) -> None: ...
    def cleanup(self) -> self: ...  # type: ignore
    def name(self) -> string: ...  # type: ignore
    def nextRenderOperation(self) -> bool: ...
    def renderOperation(self) -> MRenderOperation: ...
    def setup(self, destination) -> self: ...  # type: ignore
    def startOperationIterator(self) -> bool: ...
    def supportedDrawAPIs(self) -> int: ...
    def uiName(self) -> string: ...  # type: ignore
    def getFrameContext(self) -> MFrameContext: ...
    def select(self, frameContext, selectInfo, useDepth, selectionList, worldSpaceHitPts) -> bool: ...

class MRenderParameters:
    def __init__(self, *args, **kwargs) -> None: ...
    def isArrayParameter(self, string) -> bool: ...
    def parameterList(self) -> listofstring: ...  # type: ignore
    def parameterType(self, string) -> int: ...
    def semantic(self, string) -> string: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceofbool, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceofint, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceoffloat, int) -> self: ...  # type: ignore
    @overload
    def setArrayParameter(self, parameterName, sequenceofMMatrix, int) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, bool) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, int) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, float) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, listoffloat) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MFloatVector) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MMatrix) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MFloatMatrix) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MTextureAssignment) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MRenderTargetAssignment) -> self: ...  # type: ignore
    @overload
    def setParameter(self, parameterName, MSamplerState) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, bool) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, int) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, float) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, listoffloat) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MFloatVector) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MMatrix) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MFloatMatrix) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MTextureAssignment) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MRenderTargetAssignment) -> self: ...  # type: ignore
    @overload
    def getParameter(self, parameterName, MSamplerStateDesc) -> self: ...  # type: ignore
