3ds Max C++ API Reference
Loading...
Searching...
No Matches
MaxSDK::Graphics Namespace Reference

Namespaces

namespace  HelperFunctionsBaseRaster
namespace  MaterialConversionHelper
 MaterialConversionHelper is a class to convert from a 3ds Max material (Mtl class) into a Viewport material (BaseMaterialHandle class) This viewport material can be assigned with :
namespace  Utilities
namespace  ViewportInstancing
 This API is about having a single INode in the scene, but having many geometries being instantiated at the GPU level in the viewport when the INode is drawn, e.g : a particles system.
namespace  ViewportVolumeDisplay
 Volume Display functions for 3ds Max's viewport This is a set of functions for an Object plug-in to support a volume display in the viewport Link with MaxGraphics.lib when using this header.

Classes

class  ARefObject
 This class implemented IRefObject interfaces. More...
class  AtomicRefCounter
 this class contains an integer which is initialized to zero. More...
class  AutoRestoreRenderNodeMaterial
 This is a utility class for assigning customized solid material to the solid mesh render item of a render node when generating render items from IMeshDisplay2::GetRenderItems() during the execution of BaseObject::UpdatePerNodeItems() More...
class  AutoRestoreWorldMatrix
class  BaseMaterialHandle
 This is base graphics material class. More...
class  BaseRasterHandle
 This is our base graphics raster resource class. More...
class  BlendState
 This class holds the blend state for all render targets. More...
class  ConnectionPoint
 ConnectionPoint is the base class that manages the connections between view fragments. More...
struct  ConsolidationData
 This a structure that holds parameters used for render item consolidation. More...
class  CustomRenderItemHandle
 CustomRenderItemHandle is a wrapper of ICustomRenderItem. More...
class  CustomRenderStageHandle
 CustomRenderStageHandle is the base wrapper class of the custom render stage. More...
class  DefaultLifeTimePolicy
class  DepthStencilState
 This class encapsulates a complete depth buffer and stencil buffer state. More...
struct  DeviceCaps
 This struct is used to store some device related information. More...
class  DisplayCallbackContext
 This class contains context which can be queried in IDisplayCallback. More...
class  DisplayTextureHelper
 Used for creating texture handles (TexHandle) and updating texture data managed by the viewport display system. More...
class  DisplayTextureHelperExt
 DisplayTextureHelperExt extends DisplayTextureHelper to support more textures Used for creating stage texture handles (TexHandle) and updating texture data managed by the viewport display system. More...
class  DrawContext
 Typically ICustomRenderItem::Draw() and ICustomRenderItem::HitTest() bring instance of this class as parameter. More...
class  EffectHandle
 EffectHandle is a class provides features similar as Effect in Direct3D This class is used for viewport display and Quicksilver. More...
class  EffectInstanceHandle
 EffectInstanceHandle is a class which stores values of parameters in an effect. More...
struct  EvaluationContext
 This struct is a collection of elements that are necessary in a render view. More...
class  Fragment
 Fragment is the base computation unit in the view system. More...
class  FragmentGraph
 FragmentGraph is a graph consisting of fragment nodes. More...
struct  FragmentMessageParameter
 Message parameters. More...
class  GenerateMeshRenderItemsContext
 This class contains all information that will be passed to Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems() to update its display data. More...
class  GeometryRenderItemHandle
 This is a special render item which used only by Mesh/MNMesh. More...
class  HitTestContext
 This is a hit test context class. More...
class  HLSLMaterialHandle
 HLSLMaterialHandle is a material class to support HLSL custom material. More...
class  IActiveShadeFragment
 This class is used to manage ActiveShade in a viewport (called ActiveShadeFragment) A view fragment is a part of the viewport drawing system. More...
class  ICamera
 The interface of a render camera for nitrous viewport. More...
class  IConsolidationKey
 This class is used as a key for a hash table. More...
class  IConsolidationRenderItem
 This class defines a consolidation render item, which is used to improve rendering performance by batching similar render items together. More...
class  IConsolidationStrategy
 This class defines a strategy to consolidate one type of consolidation key. More...
class  ICustomRenderItem
 This class is used to customize the behavior of a render item. More...
class  IDisplayCallback
 A developer would implement this interface to allow immediate mode drawing of primitives, text and markers. More...
class  IDisplayManager
 A core interface for accessing properties of the graphics library introduced in 3ds Max 2012. More...
class  IDisposable
class  IFixedViewportPipeline
 This class provide some facility to add some extended behavior to the fixed render pipeline. More...
class  IHLSLMaterialTranslator
 Facilitates translation of material parameter values to their shaders representation. More...
class  IMeshDisplay2
 Use this interface to query the per node related render items from a mesh or mnesh. More...
class  ImmediateFragment
 ImmediateFragment is a class which let application render primitives outside the render loop. More...
class  ImmediateRenderItemHandle
 This class is used to wrap user defined IDisplayCallback class. More...
class  IndexBufferHandle
 IndexBufferHandle is a memory buffer that contain index data. More...
class  INormalMappingManager
 This interface manages the normal mapping modes that can affect how 3ds Max calculates/interprets the tangent/binormal(bitangent) in vertex/pixel shading level during baking/rendering. More...
class  Input
 Class that stores input information for a fragment. More...
class  IObjectDisplay2
 To give object plugins better control of display, now object plugins can expose IObjectDisplay2 interface. More...
class  IParameterTranslator
 Facilitates translation of material and texture map parameter values to their shaders representation. More...
class  IPerViewportFilter
 The interface for filtering per viewport. More...
class  IPrimitiveRenderer
 This class is used to draw simple primitives, markers, text with given material and transformations. More...
class  IRefObject
 This class is similar to IUnknown in COM. More...
class  IRenderGeometry
 IRenderGeometry is a representation of a geometry. More...
class  IRenderItemContainer
 A render item container, it provides various methods to access the contained render items. More...
class  IRenderStateManager
 IRenderStateManager controls primitive renderer's current render style. More...
class  IRenderView
 This class is a representation of a render view which provides some common functions to manipulate a viewport. More...
class  IRenderView2
 IRenderView2 provide the access to IFixedViewportPipeline with which 3rd party developer can add some extended behavior to the fixed render pipeline. More...
class  IShaderManager
 Represents the programmable shader associated with a material or texture map plug-in. More...
class  IShaderManagerCreator
 Factory class for IShaderManager objects. More...
class  ISimpleMaterial
 ISimpleMaterial provides any material or texture plugin the ability to display itself in the new Viewport Display system in 3ds Max 2012. More...
class  ISimpleMaterialExt
 ISimpleMaterialExt extends ISimpleMaterial to support more textures. More...
class  ITextureDisplay
 This interface enables material and texture map plugins to display textures in the new viewport display system in 3ds Max 2012. More...
class  IVariableDictionary
 IVariableDictionary is a map structure that contains key/variable pairs. More...
class  IView
 This class is a representation of a basic view. More...
class  IViewportFragmentManager
 IViewportFragmentManager is used to manage the view fragment graph for viewports. More...
class  IViewportViewSetting
 Viewport Setting For The Nitrous Graphics Viewport. More...
class  IViewportViewSetting2
 Viewport Setting For The Nitrous Graphics Viewport. More...
class  IVirtualDevice
 This class provides low level access to the GPU device. More...
struct  LockedRect
 Defines a rectangular region that has been locked by a call to TextureHandle::LockRect(). More...
struct  MaterialRequiredStreamElement
 This struct describes a single stream element that will be used by the hardware shader of a material. More...
class  MaterialRequiredStreams
 This class is used for describing the mesh stream requirements of a material. More...
class  Matrix44
class  MemoryTargetHandle
 Application can use this class to create a render target in memory which can be a target input/output for a fragment node. More...
class  MeshElementDescription
 This class describes a single mesh element(which corresponds to a render item) required to be generated by calling Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems() from the specified mesh(or mnmesh). More...
class  Output
 Class that stores output information for a fragment. More...
class  PresentableTargetHandle
 This class is similar as TargetHandle. More...
struct  Query_Data_SO_Statistics
class  QueryHandle
 QueryHandle is a query object used for submitting hardware queries. More...
class  RasterizerState
 This class encapsulates a complete rasterizer state, like fill mode, cull mode, point size, etc. More...
struct  RectangleSize
 the struct that defines the width and height of one rectangle. More...
class  RefPtr
 This template class act similar as CComPtr. More...
class  RenderItemHandle
 This is the base wrapper class for all viewport render items. More...
class  RenderItemHandleArray
 This is a utility class. More...
class  RenderItemHandleDecorator
 This is a decorator class for RenderItemHandle. More...
class  RenderNodeHandle
 This class describes a graphics node. More...
class  RenderNodeIterator
 RenderNodeIterator is the iterator class to iterate all render nodes in the current render world. More...
struct  RenderRegion
 Note: The render region can set the clipping rectangle,offset and scale of render target in the screen space of render view. More...
class  RenderWorldHandle
 RenderWorldHandle is the base wrapper class of the nitrous world. More...
class  SafeReferenceObjectProxy
 This class is internally used for preventing the AddRef and Release of a pointer returned by RefPtr::operator -> from being called. More...
class  ShadowMapData
 ShadowMapData is used to get the shadow map data associated to an INode which is a light. More...
class  SimpleRenderGeometry
 SimpleRenderGeometry is a simple implementation of IRenderGeometry. More...
struct  SimpleVertexStream
 Used by DrawPrimitive and DrawIndexedPrimitive for vertex data. More...
class  SmartHandle
 This is the base wrapper class for all graphics primitive classes in max viewport: worlds, nodes, render items, materials, etc. More...
class  SolidColorMaterialHandle
 SolidColorMaterialHandle is a material class to support solid color. More...
class  StandardMaterialHandle
 StandardMaterialHandle is a material class to support phong style material . More...
class  StencilOperation
 This class encapsulates a complete set of stencil buffer operations for stencil test. More...
class  TargetBlendState
 This class holds the blend state for single render target. More...
class  TargetHandle
 Application can use this class either as a render target or convert it to texture and assign to model. More...
struct  TextureCoordStream
 This structure is used to define vertex's texture coordinate information. More...
class  TextureHandle
 This is texture class to support texture for material, such as TextureMaterialHandle. More...
class  TextureHandleUtility
 This is utility class to create TextureHandle from Texmap. More...
class  TextureMaterialHandle
 This is material class to support material with texture. More...
class  UpdateDisplayContext
 This class contains all information that will be passed to IObjectDisplay::UpdateDisplay and will be used by plugin to update its display data. More...
class  UpdateNodeContext
 This class contains node dependent information for calling IObjectDisplay2::UpdatePerNodeItems(), and IObjectDisplay2::UpdatePerViewItems() More...
class  UpdateViewContext
 This class contains view dependent information for calling IObjectDisplay2::UpdatePerViewItems() More...
class  Variable
 Variable is a simple class that stores certain data that a developer can decide at runtime. More...
class  VertexBufferHandle
 VertexBufferHandle is a memory buffer that contain vertex data. More...
class  VertexColorMaterialHandle
 VertexColorMaterialHandle is a material class to support vertex color. More...
class  ViewFragment
 Base class of all viewport fragment. More...
class  ViewParameter
 This class wrap up all viewport related parameters. More...

Typedefs

typedef MaxSDK::Array< MSTRTechniqueNames
typedef RefPtr< FragmentFragmentPtr
typedef RefPtr< FragmentGraphFragmentGraphPtr
typedef RefPtr< ICameraCameraPtr
typedef RefPtr< IConsolidationKeyIConsolidationKeyPtr
typedef RefPtr< IConsolidationRenderItemIConsolidationRenderItemPtr
typedef RefPtr< ICustomRenderItemICustomRenderItemPtr
typedef RefPtr< IDisplayCallbackIDisplayCallbackPtr
typedef RefPtr< IRefObjectRefObjectPtr
typedef RefPtr< IRenderGeometryIRenderGeometryPtr
typedef MaxSDK::Array< SmartHandleSmartHandleArray
typedef MaxSDK::Array< TargetHandleTargetHandleArray
typedef unsigned __int64 Identifier
 This is the unique id type of our internal graphics objects.
typedef unsigned long Bitfields
 record the dirty flags of render view.
typedef MaxSDK::Array< VertexBufferHandleVertexBufferHandleArray
typedef MaxSDK::Graphics::RefPtr< ViewParameterViewParameterPtr

Enumerations

enum  FrameType { FrameType_Normal , FrameType_BeginSequence , FrameType_Interactive , FrameType_EndSequence }
 Indicates the type of frame. More...
enum  RenderViewDirtyFlag { RenderViewDirtyFlagViewChanged = 0x1 , RenderViewDirtyFlagFragmentChanged = 0x2 }
 Indicates the dirty flag of render view. More...
enum  FragmentFlags { FragmentFlagsEvaluated = 0x00000001 , FragmentFlagsDirty = 0x00000002 }
 This enum contains flags that specify certain states of a fragment or fragment graph node. More...
enum  FragmentMessageID { FragmentMessageIDTimer , FragmentMessageIDEndFrame , BuiltInFragmentMessageIDCount = 0xFF }
 This enum describes types of messages a fragment could register and receive from the fragment system. More...
enum  VarType {
  VT_Char , VT_UnsignedChar , VT_WideChar , VT_Short ,
  VT_UnsignedShort , VT_Int , VT_UnsignedInt , VT_Long ,
  VT_UnsignedLong , VT_Int64 , VT_UnsignedInt64 , VT_Float ,
  VT_Double , VT_StringA , VT_StringW , VT_Dictionary ,
  VT_IRefObject
}
 built-in variable types. More...
enum  VertexFieldType {
  VertexFieldFloat1 = 0 , VertexFieldFloat2 = 1 , VertexFieldFloat3 = 2 , VertexFieldFloat4 = 3 ,
  VertexFieldColor = 4 , VertexFieldByte4 = 5 , VertexFieldShort2 = 6 , VertexFieldShort4 = 7 ,
  VertexFieldShortFloat2 = 15 , VertexFieldShortFloat4 = 16 , VertexFieldInt = 20 , VertexFieldInt2 = 21 ,
  VertexFieldInt3 = 22 , VertexFieldInt4 = 23 , VertexFieldTypeUnknown , VertexFieldTypeCount
}
 types available for vertex fields, e.g. More...
enum  VertexFieldUsage {
  VertexFieldUsagePosition = 0 , VertexFieldUsageNormal , VertexFieldUsageTexcoord , VertexFieldUsageTangent ,
  VertexFieldUsageBitangent , VertexFieldUsageUnknown , VertexFieldUsageCount
}
 Indicates the usage of a vertex field of a vertex buffer. More...
enum  MeshChannelCategory {
  MeshChannelPosition = 0 , MeshChannelVertexNormal , MeshChannelTexcoord , MeshChannelTangent ,
  MeshChannelBitangent , MeshChannelVertexColor , MeshChannelUnknown , MeshChannelFaceMap ,
  MeshChannelCategoryCount
}
 Indicates the data source of a vertex field of a mesh vertex buffer. More...
enum  IndexType { IndexTypeUnknown , IndexTypeShort , IndexTypeInt , IndexTypeCount }
 Buffers are composed of arrays of elements all of the same type. More...
enum  BufferUsageType {
  BufferUsageStatic = 0 , BufferUsageDynamic , BufferUsageStaging , BufferUsageMask = 0xf ,
  BufferUsageStreamTexture = 0x10 , BufferUsageTarget = 0x20 , BufferUsageUnorderedAccess = 0x80 , BufferUsageStructure = 0x100 ,
  BufferUsageRaw = 0x200 , BufferUsageBuffer = 0x400
}
 BufferUsageType Types for OGS buffer usage. More...
enum  BufferPoolType {
  BufferPoolTypeUnKnown = 0 , BufferPoolTypeDiskBuffer = 0x1 , BufferPoolTypeSystemBuffer = 0x1 << 1 , BufferPoolTypeHardwareBuffer = 0x1 << 2 ,
  BufferPoolTypeInMemory = BufferPoolTypeSystemBuffer | BufferPoolTypeHardwareBuffer
}
enum  VisualStyle {
  VisualStyleRealistic = 0 , VisualStyleShaded , VisualStyleFacets , VisualStyleConsistentColor ,
  VisualStyleHiddenLine , VisualStyleWireframe , VisualStyleBoundingBox , VisualStyleInk ,
  VisualStyleColorInk , VisualStyleAcrylic , VisualStyleTech , VisualStyleGraphite ,
  VisualStyleColorPencil , VisualStylePastel , VisualStyleClay , VisualStyleModelAssist ,
  VisualStyleCount
}
 Enum type for all visual styles of nitrous viewport. More...
enum  ViewportPreset {
  ViewportPresetQuality , ViewportPresetStandard , ViewportPresetPerformance , ViewportPresetDXMode ,
  ViewportPresetCustomize , ViewportPresetCount
}
 Enum type for all presets of nitrous viewport. More...
enum class  BloomQuality {
  Gaussian_3x3 , Gaussian_5x5 , Gaussian_7x7 , Gaussian_9x9 ,
  NumValues
}
 Enum for the kernel filters for the Bloom effect in the viewport. More...
enum class  ColorPipelineTargetFormat : uint8_t { kFormat_FLOAT_32 , kFormat_FLOAT_16 }
enum  ObjectDisplayRequirement { ObjectDisplayRequireLegacyDisplayMode = 0x00000001 , ObjectDisplayRequireUpdatePerViewItems = 0x00000002 }
 This enum contains flags that can be combined together to specify whether or not certain functions of IObjectDisplay2 will be supported. More...
enum  MaterialRequirementFlags { MaterialRequirementSplitByMaterialID = 0x00000001 }
 This enum defines requirement flags of material additional to mesh stream requirements of MaterialRequiredStreams. More...
enum  MeshElementType {
  MeshElementTypeSolidMesh , MeshElementTypeVertexTicks , MeshElementTypeEdge , MeshElementTypeDiagonal ,
  MeshElementTypeFace , MeshElementTypeNormal
}
 This enum describes the type of mesh element to be generated. More...
enum  MeshPart { MeshPartSelected , MeshPartUnselected , MeshPartWhole }
 When a mesh is displayed in any sub-object level, this enum help decide which part of the mesh this mesh element belongs to. More...
enum  BuiltInMeshElementDescription {
  ElementDescriptionSolidMesh , ElementDescriptionVetexTicks , ElementDescriptionWireframe , ElementDescriptionSelectedEdge ,
  ElementDescriptionDiagonal , ElementDescriptionSelectedDiagonal , ElementDescriptionSelectedFace
}
 This enum defines some kinds of built-in mesh element descriptions. More...
enum  NormalBumpMode { NB_3dsMax = 0 , NB_Maya , NB_DirectX , NB_MikkT }
enum  TangentBasisMode { kPerpendicularToFaceNormal = 0 , kPerpendicularToVertexNormal , kMikkT }
enum  PrimitiveType {
  PrimitivePointList , PrimitiveLineList , PrimitiveLineStrip , PrimitiveTriangleList ,
  PrimitiveTriangleStrip , PrimitiveLineListAdj , PrimitiveLineStripAdj , PrimitiveTriangleListAdj ,
  PrimitiveTriangleStripAdj , PrimitivePatchList1 , PrimitivePatchList2 , PrimitivePatchList3 ,
  PrimitivePatchList4 , PrimitivePatchList5 , PrimitivePatchList6 , PrimitivePatchList7 ,
  PrimitivePatchList8 , PrimitivePatchList9 , PrimitivePatchList10 , PrimitivePatchList11 ,
  PrimitivePatchList12 , PrimitivePatchList13 , PrimitivePatchList14 , PrimitivePatchList15 ,
  PrimitivePatchList16 , PrimitivePatchList17 , PrimitivePatchList18 , PrimitivePatchList19 ,
  PrimitivePatchList20 , PrimitivePatchList21 , PrimitivePatchList22 , PrimitivePatchList23 ,
  PrimitivePatchList24 , PrimitivePatchList25 , PrimitivePatchList26 , PrimitivePatchList27 ,
  PrimitivePatchList28 , PrimitivePatchList29 , PrimitivePatchList30 , PrimitivePatchList31 ,
  PrimitivePatchList32 , PrimitiveTypeCount
}
 Supported primitive types. More...
enum  BufferClearFlag { ClearBackbuffer = 0x1 , ClearDepthBuffer = 0x2 , ClearStencilBuffer = 0x4 , ClearAll = 0x7 }
 This flag describes the way to clear the current buffers. More...
enum  BlendSelector {
  BlendSelectorBlendFactor , BlendSelectorBothInvSourceAlpha , BlendSelectorBothSourceAlpha , BlendSelectorDestinationAlpha ,
  BlendSelectorDestinationColor , BlendSelectorInvBlendFactor , BlendSelectorInvDestinationAlpha , BlendSelectorInvDestinationColor ,
  BlendSelectorInvSourceAlpha , BlendSelectorInvSourceColor , BlendSelectorOne , BlendSelectorSourceAlpha ,
  BlendSelectorSourceAlphaSat , BlendSelectorSourceColor , BlendSelectorZero
}
 blend selector. More...
enum  CullMode { CullModeCW , CullModeCCW , CullModeNone }
 cull type. More...
enum  FillMode { FillSolid , FillWireFrame }
 fill mode for polygons More...
enum  CompareFunction {
  CompareFunctionAlways , CompareFunctionEqual , CompareFunctionGreater , CompareFunctionGreaterEqual ,
  CompareFunctionLess , CompareFunctionLessEqual , CompareFunctionNever , CompareFunctionNotEqual
}
 compare functions More...
enum  ColorWriteEnable {
  ColorWriteEnableNone = 0 , ColorWriteEnableAlpha = 0x8 , ColorWriteEnableBlue = 0x4 , ColorWriteEnableGreen = 0x2 ,
  ColorWriteEnableRed = 0x1 , ColorWriteEnableRedGreenBlue = 0x7 , ColorWriteEnableRedGreenBlueAlpha = 0xf , WRITEENABLE_FORCE_DWORD = 0x7fffffff
}
enum  BlendOperation {
  BlendOperationAdd , BlendOperationMax , BlendOperationMin , BlendOperationSubtract ,
  BlendOperationReverseSubtract
}
 blend operations More...
enum  StencilOperationType {
  StencilOperationTypeDecrement = 8 , StencilOperationTypeDecrementSaturation = 5 , StencilOperationTypeIncrement = 7 , StencilOperationTypeIncrementSaturation = 4 ,
  StencilOperationTypeInvert = 6 , StencilOperationTypeKeep = 1 , StencilOperationTypeReplace = 3 , StencilOperationTypeZeroStencil = 2 ,
  STENCILOP_FORCE_DWORD = 0x7fffffff
}
 Stencil buffer operation. More...
enum  AccessType {
  AccessTypeNone = 0x0 , ReadAcess = 0x1 , WriteAcess = 0x2 , ReadWriteAcess = ReadAcess | WriteAcess ,
  WriteDiscardAcess
}
 AccessType Types for accessing buffers. More...
enum  TargetFormat : int {
  TargetFormatUnkown , TargetFormatD24S8 , TargetFormatD24X8 , TargetFormatD32 ,
  TargetFormatDxt1 , TargetFormatDxt2 , TargetFormatDxt3 , TargetFormatDxt4 ,
  TargetFormatDxt5 , TargetFormatA8 , TargetFormatR8 , TargetFormatR16 ,
  TargetFormatR16F , TargetFormatA1R5G5B5 , TargetFormatR5G6B5 , TargetFormatR32F ,
  TargetFormatR16G16 , TargetFormatR16G16F , TargetFormatA8R8G8B8 , TargetFormatA8B8G8R8 ,
  TargetFormatX8B8G8R8 , TargetFormatA2B10G10R10 , TargetFormatR32G32F , TargetFormatA16B16G16R16 ,
  TargetFormatA16B16G16R16F , TargetFormatA32B32G32R32F , TargetFormatX8R8G8B8 , TargetFormatR32G32B32F ,
  TargetFormatR32UINT , TargetFormatR32SINT , TargetFormatCount
}
 TargetFormat indicates which type the target/texture is. More...
enum  GraphicFeatureLevel {
  Level_Unknown = 0 , Level_NULL = 5 , Level2_0 = 20 , Level2_1 = 21 ,
  Level3_0 = 30 , Level3_1 = 31 , Level4_0 = 40 , Level4_1 = 41 ,
  Level4_5 = 45 , Level5_0 = 50 , Level_Count = 9
}
 This enum specifies the feature levels device supported. More...
enum  TextureType {
  TextureTypeUnknown = 0 , TextureTypeImage1D = 1 , TextureTypeImage1DArray = 2 , TextureTypeImage2D = 3 ,
  TextureTypeImage2DArray = 4 , TextureTypeCubeMap = 5 , TextureTypeVolume = 6 , TextureTypeCount
}
 Texture type enums. More...
enum  ResourceUsage {
  ResourceUsageNormal = 0 , ResourceUsageDynamic = 1 , ResourceUsageStaging = 2 , ResourceUsageMask = 0xf ,
  ResourceUsageStream = 0x10 , ResourceUsageTarget = 0x20
}
 Resource usage, used for texture. More...
enum  QueryType {
  QueryType_Event = 8 , QueryType_Occlusion = 9 , QueryType_TimeStamp = 10 , QueryType_Occlusion_Test = 20 ,
  QueryType_SO_Overflow_Test = 21 , QueryType_SO_Stats = 22
}
 Enums for QueryHandle, indicates which query types to issue. More...
enum  ZBiasPresets { ZBiasPresets_Default = -1 , ZBiasPresets_Shaded = 0 , ZBiasPresets_Wireframe = 1 , ZBiasPresets_Gizmo = 2 }
enum  RenderItemVisibilityGroup : int { RenderItemVisible_Unknown , RenderItemVisible_Shaded , RenderItemVisible_Wireframe , RenderItemVisible_Gizmo }
 This enum defines in what group a render item is visible. More...
enum  ObjectComponentRequirement {
  ObjectComponentSolidMesh = 0x00000001 , ObjectComponentWireframe = 0x00000002 , ObjectComponentVertexTicks = 0x00000004 , ObjectComponentDiagonal = 0x00000008 ,
  ObjectComponentSelected = 0x00000010 , ObjectComponentUnselected = 0x00000020 , ObjectComponentBackfaceCull = 0x00000040 , ObjectComponentVertexColorSoftSelection = 0x00000080
}
 This enum contains flags that can be combined together to specify which part is required by the node when updating render items. More...

Functions

FragmentGraphAPI bool IsNumberType (VarType type)
 Checks if the given type is number type.
FragmentGraphAPI bool IsCompatibleType (VarType lhs, VarType rhs)
 Checks if two types can be converted to each other.
DataBridgeAPI size_t GetVertexStride (const VertexFieldType type)
 Get the vertex stride by a given vertex type, in bytes.
DataBridgeAPI size_t GetIndexStride (const IndexType type)
 Get the index stride by a given index type, in bytes.
GraphicsDriverAPI size_t CombineHashCode (size_t seed, size_t hashCode)
 A utility function for generating hash code.
UtilExport MaxSDK::Graphics::IDisplayManagerGetIDisplayManager ()
 Helper function to access the IDisplayManager core interface.
bool IsRetainedModeEnabled ()
 Helper function to test whether the new viewport graphics system is running.
bool IsHardwareHitTesting (ViewExp *vpt)
 Helper function to test whether the new viewport graphics system is performing hardware hit testing.
template<class RefObjectType, class SafeRefObjectType, class LifeTimePolicy>
bool operator== (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface)
template<class RefObjectType, class SafeRefObjectType, class LifeTimePolicy>
bool operator!= (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface)
Point4 operator* (const Matrix44 &M, const Point4 &p)
Point4 operator* (const Matrix44 &M, const Point3 &p)
GraphicsDriverAPI void MaxWorldMatrixToMatrix44 (Matrix44 &outMatrix, const Matrix3 &inMatrix)
 Convert Matrix3 to Matrix44.
GraphicsDriverAPI void Matrix44ToMaxWorldMatrix (Matrix3 &outMatrix, const Matrix44 &inMatrix)
 Convert Matrix44 to Matrix3.
GraphicsDriverAPI const MeshElementDescriptionGetBuiltInMeshElementDescription (BuiltInMeshElementDescription type)
 Get a specified built-in mesh element description.
GraphicsDriverAPI DWORD GetDeviceCompatibleARGBColor (DWORD color)
 Use this function for TargetFormatA8R8G8B8 only.
GraphicsDriverAPI size_t GetTargetFormatPixelSize (TargetFormat format)
 Get the number of bytes for each pixel by a given target format.
GraphicsDriverAPI VertexBufferHandle GenerateInstanceData (Matrix3 *worldTransforms, size_t count)
 Generate the instance data from a Matrix3 array.
GraphicsDriverAPI VertexBufferHandle GenerateInstanceData (Point3 *UVs, Matrix3 *worldTransforms, size_t count)
 Generate the instance data from a texture coordinates array and a Matrix3 array.
GraphicsDriverAPI bool GenerateInstanceRenderItem (RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const VertexBufferHandle &hInstanceData)
 Generate the instance render item from a tuple mesh and a Matrix3 array.
GraphicsDriverAPI bool GenerateInstanceRenderItem (RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const ViewportInstancing::InstanceDisplayGeometry *pInstanceDisplayGeometry)
 Generate the instance render item from a tuple mesh which is a ViewportInstancing::InstanceDisplayGeometry class.
IViewportFragmentManagerGetIViewportFragmentManager ()
 Helper function to retrieve a pointer on the IViewportFragmentManager interface.
UtilExport bool IsGpuPresent ()
 Method that verifies if at least one GPU is present on the current system.

Variables

FragmentGraphAPI Class_ID TYPE_ID_Char
 Built-in char input/output type.
FragmentGraphAPI Class_ID TYPE_ID_UnsignedChar
 Built-in unsigned char input/output type.
FragmentGraphAPI Class_ID TYPE_ID_WideChar
 Built-in wchar_t input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Short
 Built-in short input/output type.
FragmentGraphAPI Class_ID TYPE_ID_UnsignedShort
 Built-in unsigned short input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Int
 Built-in int input/output type.
FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt
 Built-in unsigned int input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Long
 Built-in long input/output type.
FragmentGraphAPI Class_ID TYPE_ID_UnsignedLong
 Built-in unsigned long input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Int64
 Built-in __int64 input/output type.
FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt64
 Built-in unsigned __int64 input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Float
 Built-in float input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Double
 Built-in double input/output type.
FragmentGraphAPI Class_ID TYPE_ID_StringA
 Built-in multi-byte string input/output type.
FragmentGraphAPI Class_ID TYPE_ID_StringW
 Built-in Unicode string input/output type.
FragmentGraphAPI Class_ID TYPE_ID_Dictionary
 Built-in dictionary input/output type.
const size_t TIMER_NONE = (size_t)-1
 Use this value to unregister a timer with a fragment.
GraphicsDriverAPI IndexBufferHandle EmptyIndexBufferHandle
GraphicsDriverAPI MaxSDK::Array< SmartHandleEmptySmartHandleArray
GraphicsDriverAPI TargetHandle EmptyTargetHandle
const Identifier NIL_ID = (Identifier)-1
 Invalid id value.
GraphicsDriverAPI VertexBufferHandle EmptyVertexBufferHandle
GraphicsDriverAPI MaxSDK::Array< VertexBufferHandleEmptyVertexBufferHandleArray

Typedef Documentation

◆ TechniqueNames

◆ FragmentPtr

◆ FragmentGraphPtr

◆ CameraPtr

◆ IConsolidationKeyPtr

◆ IConsolidationRenderItemPtr

◆ ICustomRenderItemPtr

◆ IDisplayCallbackPtr

◆ RefObjectPtr

◆ IRenderGeometryPtr

◆ SmartHandleArray

◆ TargetHandleArray

◆ Identifier

typedef unsigned __int64 Identifier

This is the unique id type of our internal graphics objects.

◆ Bitfields

typedef unsigned long Bitfields

record the dirty flags of render view.

See the enumeration RenderViewDirtyFlag.

◆ VertexBufferHandleArray

◆ ViewParameterPtr

Enumeration Type Documentation

◆ FrameType

enum FrameType

Indicates the type of frame.

Enumerator
FrameType_Normal 

Same as REDRAW_NORMAL i.e., we will perform a complete redraw.

FrameType_BeginSequence 

Same as REDRAW_BEGIN which indicates the beginning of a continuous render sequence(for e.g., start dragging the view cube).

FrameType_Interactive 

Same as REDRAW_INTERACTIVE which indicates the continuous state of a render
sequence(for e.g., while we are dragging the view cube).

FrameType_EndSequence 

Same as REDRAW_END which indicates the end of a render sequence (for e.g.,when we stop dragging the view cube).

16{
32};
@ FrameType_BeginSequence
Same as REDRAW_BEGIN which indicates the beginning of a continuous render sequence(for e....
Definition Enums.h:23
@ FrameType_Normal
Same as REDRAW_NORMAL i.e., we will perform a complete redraw.
Definition Enums.h:19
@ FrameType_Interactive
Same as REDRAW_INTERACTIVE which indicates the continuous state of a render sequence(for e....
Definition Enums.h:27
@ FrameType_EndSequence
Same as REDRAW_END which indicates the end of a render sequence (for e.g.,when we stop dragging the v...
Definition Enums.h:31

◆ RenderViewDirtyFlag

Indicates the dirty flag of render view.

Enumerator
RenderViewDirtyFlagViewChanged 

View elements such as width,height or position are changed.

RenderViewDirtyFlagFragmentChanged 

Fragment elements such as input,out or connection are changed.

37{
41
45};
@ RenderViewDirtyFlagFragmentChanged
Fragment elements such as input,out or connection are changed.
Definition Enums.h:44
@ RenderViewDirtyFlagViewChanged
View elements such as width,height or position are changed.
Definition Enums.h:40

◆ FragmentFlags

This enum contains flags that specify certain states of a fragment or fragment graph node.

Enumerator
FragmentFlagsEvaluated 

Indicates whether this fragment has already been evaluated during a recursive call to FragmentGraph::Evaluate().

If this flag is true, we simply ignore evaluating this fragment an additional time.

FragmentFlagsDirty 

Indicates whether this fragment is dirty and needs to be evaluated once more.

Note this flag is mainly used to indicate if a viewport redraw is required.

29 {
34 FragmentFlagsEvaluated = 0x00000001,
39 FragmentFlagsDirty = 0x00000002,
40 };
@ FragmentFlagsEvaluated
Indicates whether this fragment has already been evaluated during a recursive call to FragmentGraph::...
Definition Fragment.h:34
@ FragmentFlagsDirty
Indicates whether this fragment is dirty and needs to be evaluated once more.
Definition Fragment.h:39

◆ FragmentMessageID

This enum describes types of messages a fragment could register and receive from the fragment system.

Fragment::OnMessage is invoked whenever a fragment receives the registered messages from the fragment system.

Enumerator
FragmentMessageIDTimer 

The timer message.

A fragment may call Fragment::SetTimerTicks to register a timer. When the timer ticks, Fragment::OnMessage is invoked.

FragmentMessageIDEndFrame 

The end frame message.

A fragment will receive this message at the end of each frame.

BuiltInFragmentMessageIDCount 

Preserved count of built-in message.

47 {
59 };
@ BuiltInFragmentMessageIDCount
Preserved count of built-in message.
Definition Fragment.h:58
@ FragmentMessageIDEndFrame
The end frame message.
Definition Fragment.h:55
@ FragmentMessageIDTimer
The timer message.
Definition Fragment.h:51

◆ VarType

enum VarType

built-in variable types.

For more details please see class Variable.

Enumerator
VT_Char 

A single char type.

VT_UnsignedChar 

unsigned char type.

VT_WideChar 

wchar_t type.

VT_Short 

short type.

VT_UnsignedShort 

unsigned short type.

VT_Int 

int type.

VT_UnsignedInt 

unsigned int type.

VT_Long 

long type.

VT_UnsignedLong 

unsigned long type.

VT_Int64 

__int64 type.

VT_UnsignedInt64 

unsigned __int64 type.

VT_Float 

float type.

VT_Double 

double type.

VT_StringA 

Ascii string type.

VT_StringW 

Unicode string type.

VT_Dictionary 

dictionary type.

If a variable is this type, it is actually a map. The key is a multi-byte string, while the value is another variable.

VT_IRefObject 

A IRefObject type.

The variable will hold a reference of that object.

21 {
24 VT_Char,
33 VT_Short,
39 VT_Int,
45 VT_Long,
51 VT_Int64,
57 VT_Float,
60 VT_Double,
74 };
@ VT_StringA
Ascii string type.
Definition Variable.h:63
@ VT_UnsignedChar
unsigned char type.
Definition Variable.h:27
@ VT_WideChar
wchar_t type.
Definition Variable.h:30
@ VT_Float
float type.
Definition Variable.h:57
@ VT_Long
long type.
Definition Variable.h:45
@ VT_Int64
__int64 type.
Definition Variable.h:51
@ VT_IRefObject
A IRefObject type.
Definition Variable.h:73
@ VT_Double
double type.
Definition Variable.h:60
@ VT_UnsignedLong
unsigned long type.
Definition Variable.h:48
@ VT_UnsignedInt
unsigned int type.
Definition Variable.h:42
@ VT_UnsignedShort
unsigned short type.
Definition Variable.h:36
@ VT_Int
int type.
Definition Variable.h:39
@ VT_Dictionary
dictionary type.
Definition Variable.h:70
@ VT_StringW
Unicode string type.
Definition Variable.h:66
@ VT_Char
A single char type.
Definition Variable.h:24
@ VT_Short
short type.
Definition Variable.h:33
@ VT_UnsignedInt64
unsigned __int64 type.
Definition Variable.h:54

◆ VertexFieldType

types available for vertex fields, e.g.

Float4

Enumerator
VertexFieldFloat1 

single float field see DXGI_FORMAT_R32_FLOAT

VertexFieldFloat2 

double float field.

x,y see DXGI_FORMAT_R32G32_FLOAT

VertexFieldFloat3 

triple float field see DXGI_FORMAT_R32G32B32_FLOAT

VertexFieldFloat4 

quad float field see DXGI_FORMAT_R32G32B32A32_FLOAT

VertexFieldColor 

color field see DXGI_FORMAT_R8G8B8A8_UNORM

VertexFieldByte4 

unsigned byte 4 field see DXGI_FORMAT_R8G8B8A8_UINT

VertexFieldShort2 

short 2 field see DXGI_FORMAT_R16G16_SINT

VertexFieldShort4 

short 4 field see DXGI_FORMAT_R16G16B16A16_SINT

VertexFieldShortFloat2 

FP16 x 2 type see DXGI_FORMAT_R16G16_FLOAT.

VertexFieldShortFloat4 

FP16 x 4 type see DXGI_FORMAT_R16G16B16A16_FLOAT.

VertexFieldInt 

int field see DXGI_FORMAT_R32_SINT

VertexFieldInt2 

int2 field see DXGI_FORMAT_R32G32_SINT

VertexFieldInt3 

int3 field see DXGI_FORMAT_R32G32B32_SINT

VertexFieldInt4 

int4 field see DXGI_FORMAT_R32G32B32A32_SINT

VertexFieldTypeUnknown 

unknown field

VertexFieldTypeCount 
20 {
25
30
35
40
45
50
55
64
69
73 VertexFieldInt = 20,
77 VertexFieldInt2 = 21,
81 VertexFieldInt3 = 22,
85 VertexFieldInt4 = 23,
86
90
92 };
@ VertexFieldShort4
short 4 field see DXGI_FORMAT_R16G16B16A16_SINT
Definition GeometryEnums.h:59
@ VertexFieldInt2
int2 field see DXGI_FORMAT_R32G32_SINT
Definition GeometryEnums.h:77
@ VertexFieldShortFloat4
FP16 x 4 type see DXGI_FORMAT_R16G16B16A16_FLOAT.
Definition GeometryEnums.h:68
@ VertexFieldShort2
short 2 field see DXGI_FORMAT_R16G16_SINT
Definition GeometryEnums.h:54
@ VertexFieldTypeCount
Definition GeometryEnums.h:91
@ VertexFieldInt
int field see DXGI_FORMAT_R32_SINT
Definition GeometryEnums.h:73
@ VertexFieldShortFloat2
FP16 x 2 type see DXGI_FORMAT_R16G16_FLOAT.
Definition GeometryEnums.h:63
@ VertexFieldFloat3
triple float field see DXGI_FORMAT_R32G32B32_FLOAT
Definition GeometryEnums.h:34
@ VertexFieldFloat1
single float field see DXGI_FORMAT_R32_FLOAT
Definition GeometryEnums.h:24
@ VertexFieldTypeUnknown
unknown field
Definition GeometryEnums.h:89
@ VertexFieldInt4
int4 field see DXGI_FORMAT_R32G32B32A32_SINT
Definition GeometryEnums.h:85
@ VertexFieldColor
color field see DXGI_FORMAT_R8G8B8A8_UNORM
Definition GeometryEnums.h:44
@ VertexFieldFloat4
quad float field see DXGI_FORMAT_R32G32B32A32_FLOAT
Definition GeometryEnums.h:39
@ VertexFieldByte4
unsigned byte 4 field see DXGI_FORMAT_R8G8B8A8_UINT
Definition GeometryEnums.h:49
@ VertexFieldInt3
int3 field see DXGI_FORMAT_R32G32B32_SINT
Definition GeometryEnums.h:81
@ VertexFieldFloat2
double float field.
Definition GeometryEnums.h:29

◆ VertexFieldUsage

Indicates the usage of a vertex field of a vertex buffer.

This enum is used to make hardware shaders understand the usage of vertex buffer.

Enumerator
VertexFieldUsagePosition 

Position.

VertexFieldUsageNormal 

Normal.

VertexFieldUsageTexcoord 

Texture coordinate.

VertexFieldUsageTangent 

tangent

VertexFieldUsageBitangent 

bitangent

VertexFieldUsageUnknown 

Unknown usage.

VertexFieldUsageCount 
98 {
102
106
110
114
118
122
124 };
@ VertexFieldUsageNormal
Normal.
Definition GeometryEnums.h:105
@ VertexFieldUsageUnknown
Unknown usage.
Definition GeometryEnums.h:121
@ VertexFieldUsageTangent
tangent
Definition GeometryEnums.h:113
@ VertexFieldUsageCount
Definition GeometryEnums.h:123
@ VertexFieldUsageTexcoord
Texture coordinate.
Definition GeometryEnums.h:109
@ VertexFieldUsageBitangent
bitangent
Definition GeometryEnums.h:117
@ VertexFieldUsagePosition
Position.
Definition GeometryEnums.h:101

◆ MeshChannelCategory

Indicates the data source of a vertex field of a mesh vertex buffer.

e.g. Position, Normal, Texture, etc.

Enumerator
MeshChannelPosition 

position

MeshChannelVertexNormal 

vertex normal components

MeshChannelTexcoord 

texture coordinate components

MeshChannelTangent 

tangent components

MeshChannelBitangent 

bitangent components

MeshChannelVertexColor 

vertex color components

MeshChannelUnknown 

Unknown data source.

MeshChannelFaceMap 

face map components

MeshChannelCategoryCount 
130 {
134
138
145
149
153
157
161
163 };
@ MeshChannelCategoryCount
Definition GeometryEnums.h:162
@ MeshChannelFaceMap
face map components
Definition GeometryEnums.h:160
@ MeshChannelVertexNormal
vertex normal components
Definition GeometryEnums.h:137
@ MeshChannelVertexColor
vertex color components
Definition GeometryEnums.h:152
@ MeshChannelUnknown
Unknown data source.
Definition GeometryEnums.h:156
@ MeshChannelBitangent
bitangent components
Definition GeometryEnums.h:148
@ MeshChannelTangent
tangent components
Definition GeometryEnums.h:144
@ MeshChannelTexcoord
texture coordinate components
Definition GeometryEnums.h:141
@ MeshChannelPosition
position
Definition GeometryEnums.h:133

◆ IndexType

enum IndexType

Buffers are composed of arrays of elements all of the same type.

This enum describes the size and interpretation of the elements in the buffer. Index buffers can have ushort or uint elements.

Enumerator
IndexTypeUnknown 

not defined

IndexTypeShort 

unsigned 16 bit short integer, used for index buffers.

IndexTypeInt 

unsigned 32 bit integer, used for index buffers.

IndexTypeCount 
170 {
174
178
182
184 };
@ IndexTypeCount
Definition GeometryEnums.h:183
@ IndexTypeShort
unsigned 16 bit short integer, used for index buffers.
Definition GeometryEnums.h:177
@ IndexTypeUnknown
not defined
Definition GeometryEnums.h:173
@ IndexTypeInt
unsigned 32 bit integer, used for index buffers.
Definition GeometryEnums.h:181

◆ BufferUsageType

BufferUsageType Types for OGS buffer usage.

Enumerator
BufferUsageStatic 

static usage type.

Data stores in GPU memory.

BufferUsageDynamic 

Dynamic buffer.

If the resource contents are to be changed often, EDynamicUsage is recommended to achieve fast update. Used with the correct map flag( WriteDiscard or WriteNoOverwrite), maximum performance to change the contents will be achieved. Meaning of WriteNoOverwrite: WriteNoOverwrite signifies that the application promises not to write to data that the GPU is using. In exchange, the GPU allows the application to write to other parts of the same buffer. The application must ensure that it does not write over any data in use by the GPU.
Common Usage of WriteDiscard with WriteNoOverwrite as map flags: WriteDiscard and WriteNoOverwrite are normally used in conjunction with dynamic index/vertex buffers, although they can also be used with dynamic textures. A common use of these two flags involves filling dynamic index/vertex buffers with geometry that can be seen from the camera's current position. The first time that data is entered into the buffer on a given frame, Map is called with WriteDiscard; doing so invalidates the previous contents of the buffer. The buffer is then filled with all available data. Subsequent writes to the buffer within the same frame should use WriteNoOverwrite. This will enable the CPU to access a resource that is potentially being used by the GPU as long as the restrictions described previously are respected.

BufferUsageStaging 
BufferUsageMask 
BufferUsageStreamTexture 

Usage for stream output for vb & ibs, may be used as a texture.

BufferUsageTarget 

Usage for render target, it means the resouce created from video memory and can be used as render-target for vb & ibs & textures, may be used as a render target/stream output buffer.

BufferUsageUnorderedAccess 

Usage for unordered access of the resource.

This allows the resource to be both read and written by a shader, through the use of atomic functions. Check the device capabilities to determine support.

BufferUsageStructure 

Usage for structured buffer.

If this flag is specified, the buffer must use BufferPoolTypeHardwareBuffer for pool type

BufferUsageRaw 

Usage for bytes address buffer.

BufferUsageBuffer 

Usage for standard buffer type If this flag is specified, user must specify dataType parameter of VertexBufferHandle::Initialize()

201 {
205
224
225 /* Staging usage, means it's a system memory resource
226 */
228
229 /*for anding off the high bits
230 */
231 BufferUsageMask = 0xf,
232
237
242 BufferUsageTarget = 0x20,
243
249
253 BufferUsageStructure = 0x100,
254
257 BufferUsageRaw = 0x200,
258
262 BufferUsageBuffer = 0x400
263 };
@ BufferUsageRaw
Usage for bytes address buffer.
Definition GeometryEnums.h:257
@ BufferUsageMask
Definition GeometryEnums.h:231
@ BufferUsageBuffer
Usage for standard buffer type If this flag is specified, user must specify dataType parameter of Ver...
Definition GeometryEnums.h:262
@ BufferUsageStatic
static usage type.
Definition GeometryEnums.h:204
@ BufferUsageTarget
Usage for render target, it means the resouce created from video memory and can be used as render-tar...
Definition GeometryEnums.h:242
@ BufferUsageStructure
Usage for structured buffer.
Definition GeometryEnums.h:253
@ BufferUsageStreamTexture
Usage for stream output for vb & ibs, may be used as a texture.
Definition GeometryEnums.h:236
@ BufferUsageDynamic
Dynamic buffer.
Definition GeometryEnums.h:223
@ BufferUsageStaging
Definition GeometryEnums.h:227
@ BufferUsageUnorderedAccess
Usage for unordered access of the resource.
Definition GeometryEnums.h:248

◆ BufferPoolType

Enumerator
BufferPoolTypeUnKnown 

Buffer state unknown.

BufferPoolTypeDiskBuffer 

Buffer on disk.

BufferPoolTypeSystemBuffer 

Buffer in system memory.

BufferPoolTypeHardwareBuffer 

Buffer on GPU memory.

BufferPoolTypeInMemory 

Buffer in memory mask, both system and GPU memory.

266 {
270
274
277 BufferPoolTypeSystemBuffer = 0x1 << 1 ,
278
282
286 };
@ BufferPoolTypeHardwareBuffer
Buffer on GPU memory.
Definition GeometryEnums.h:281
@ BufferPoolTypeDiskBuffer
Buffer on disk.
Definition GeometryEnums.h:273
@ BufferPoolTypeInMemory
Buffer in memory mask, both system and GPU memory.
Definition GeometryEnums.h:285
@ BufferPoolTypeSystemBuffer
Buffer in system memory.
Definition GeometryEnums.h:277
@ BufferPoolTypeUnKnown
Buffer state unknown.
Definition GeometryEnums.h:269

◆ VisualStyle

Enum type for all visual styles of nitrous viewport.

Enumerator
VisualStyleRealistic 

The realistic visual style.

VisualStyleShaded 

The shaded visual style.

VisualStyleFacets 

The facet visual style.

VisualStyleConsistentColor 

The consistent color visual style.

VisualStyleHiddenLine 

The hidden line visual style.

VisualStyleWireframe 

The wireframe visual style.

VisualStyleBoundingBox 

The bounding box visual style.

VisualStyleInk 

The ink visual style for NPR.

VisualStyleColorInk 

The color ink visual style of NPR.

VisualStyleAcrylic 

The acrylic stylized visual style.

VisualStyleTech 

The tech stylized visual style.

VisualStyleGraphite 

The graphite stylized visual style.

VisualStyleColorPencil 

The color pencil stylized visual style.

VisualStylePastel 

The pastel stylized visual style.

VisualStyleClay 

The clay visual style.

VisualStyleModelAssist 

The Model Assist visual style from Max 2016 (smoothing using invisible edge and not smooth only groups) MAXX-34246.

VisualStyleCount 

The count of all visual styles.

17 {
69 };
@ VisualStyleWireframe
The wireframe visual style.
Definition GraphicsEnums.h:35
@ VisualStyleBoundingBox
The bounding box visual style.
Definition GraphicsEnums.h:38
@ VisualStyleConsistentColor
The consistent color visual style.
Definition GraphicsEnums.h:29
@ VisualStyleShaded
The shaded visual style.
Definition GraphicsEnums.h:23
@ VisualStyleInk
The ink visual style for NPR.
Definition GraphicsEnums.h:41
@ VisualStyleClay
The clay visual style.
Definition GraphicsEnums.h:62
@ VisualStylePastel
The pastel stylized visual style.
Definition GraphicsEnums.h:59
@ VisualStyleAcrylic
The acrylic stylized visual style.
Definition GraphicsEnums.h:47
@ VisualStyleHiddenLine
The hidden line visual style.
Definition GraphicsEnums.h:32
@ VisualStyleCount
The count of all visual styles.
Definition GraphicsEnums.h:68
@ VisualStyleTech
The tech stylized visual style.
Definition GraphicsEnums.h:50
@ VisualStyleColorInk
The color ink visual style of NPR.
Definition GraphicsEnums.h:44
@ VisualStyleFacets
The facet visual style.
Definition GraphicsEnums.h:26
@ VisualStyleRealistic
The realistic visual style.
Definition GraphicsEnums.h:20
@ VisualStyleGraphite
The graphite stylized visual style.
Definition GraphicsEnums.h:53
@ VisualStyleModelAssist
The Model Assist visual style from Max 2016 (smoothing using invisible edge and not smooth only group...
Definition GraphicsEnums.h:65
@ VisualStyleColorPencil
The color pencil stylized visual style.
Definition GraphicsEnums.h:56

◆ ViewportPreset

Enum type for all presets of nitrous viewport.

Enumerator
ViewportPresetQuality 

The quality preset.

ViewportPresetStandard 

The standard preset.

ViewportPresetPerformance 

The performance preset.

ViewportPresetDXMode 

The DX mode preset.

ViewportPresetCustomize 

The user customize preset.

ViewportPresetCount 

The count of all presets.

73 {
92 };
@ ViewportPresetQuality
The quality preset.
Definition GraphicsEnums.h:76
@ ViewportPresetStandard
The standard preset.
Definition GraphicsEnums.h:79
@ ViewportPresetPerformance
The performance preset.
Definition GraphicsEnums.h:82
@ ViewportPresetDXMode
The DX mode preset.
Definition GraphicsEnums.h:85
@ ViewportPresetCount
The count of all presets.
Definition GraphicsEnums.h:91
@ ViewportPresetCustomize
The user customize preset.
Definition GraphicsEnums.h:88

◆ BloomQuality

enum class BloomQuality
strong

Enum for the kernel filters for the Bloom effect in the viewport.

Enumerator
Gaussian_3x3 
Gaussian_5x5 
Gaussian_7x7 
Gaussian_9x9 
NumValues 
96 {
101
102 NumValues,
103 };
@ Gaussian_5x5
Definition GraphicsEnums.h:98
@ Gaussian_7x7
Definition GraphicsEnums.h:99
@ Gaussian_9x9
Definition GraphicsEnums.h:100
@ Gaussian_3x3
Definition GraphicsEnums.h:97
@ NumValues
Definition GraphicsEnums.h:102

◆ ColorPipelineTargetFormat

enum class ColorPipelineTargetFormat : uint8_t
strong
Enumerator
kFormat_FLOAT_32 
kFormat_FLOAT_16 
26{
27 kFormat_FLOAT_32, // 32 bits float per component, the default format used in viewport color pipeline.
28 kFormat_FLOAT_16, // 16 bits float per component, use this for saving GPU memory with lower color fidelity in viewport color pipeline.
29};
@ kFormat_FLOAT_32
Definition IDisplayManager.h:27
@ kFormat_FLOAT_16
Definition IDisplayManager.h:28

◆ ObjectDisplayRequirement

This enum contains flags that can be combined together to specify whether or not certain functions of IObjectDisplay2 will be supported.

Enumerator
ObjectDisplayRequireLegacyDisplayMode 

Check if this plugin contains legacy display code and want legacy code to be called as well.

Signal this bit if contains legacy display code. Default value for this bit is false.

ObjectDisplayRequireUpdatePerViewItems 

Trying to update items on per view basis is very time consuming.

So only signal this bit if there are actual per view-dependent render items to update. Otherwise call to UpdatePerViewItems will be ignored. Default value for this bit is false.

32{
44};
@ ObjectDisplayRequireUpdatePerViewItems
Trying to update items on per view basis is very time consuming.
Definition IObjectDisplay2.h:43
@ ObjectDisplayRequireLegacyDisplayMode
Check if this plugin contains legacy display code and want legacy code to be called as well.
Definition IObjectDisplay2.h:37

◆ MaterialRequirementFlags

This enum defines requirement flags of material additional to mesh stream requirements of MaterialRequiredStreams.

Enumerator
MaterialRequirementSplitByMaterialID 

Plug-in needs to split mesh to sub meshes according to face material id.

This flag is on when the material is multi/sub material.

157{
162};
@ MaterialRequirementSplitByMaterialID
Plug-in needs to split mesh to sub meshes according to face material id.
Definition MaterialRequiredStreams.h:161

◆ MeshElementType

This enum describes the type of mesh element to be generated.

Each mesh element corresponds to a specific render item generated by calling Mesh::GenerateRenderItems() or MNMesh::GenerateRenderItems().

Enumerator
MeshElementTypeSolidMesh 

Solid Mesh, it could be: vertex color mesh or general mesh.

This will be displayed in any viewport that requires smooth mesh.

MeshElementTypeVertexTicks 

Vertex ticks.

This will be displayed when the node has "Vertex Ticks" display option on or the vertex tick sub-object be selected.

MeshElementTypeEdge 

Edge mesh, this layer includes the edges.

This will be displayed in viewport that has "wireframe" or "hidden line" on or when the edge sub-object level is selected.

MeshElementTypeDiagonal 

Diagonal Mesh.

This is the dotted edge lines when user turn off "edges only" display property of a node and enable the wireframe mode of viewport.

MeshElementTypeFace 

Face Mesh.

This is the face render item of the mesh when this mesh is displayed in face sub-object level.

MeshElementTypeNormal 

Mesh normals.

This mesh element is required when we need to show all normals of selected face.

22{
48};
@ MeshElementTypeNormal
Mesh normals.
Definition MeshElementDescription.h:47
@ MeshElementTypeFace
Face Mesh.
Definition MeshElementDescription.h:43
@ MeshElementTypeEdge
Edge mesh, this layer includes the edges.
Definition MeshElementDescription.h:35
@ MeshElementTypeVertexTicks
Vertex ticks.
Definition MeshElementDescription.h:30
@ MeshElementTypeDiagonal
Diagonal Mesh.
Definition MeshElementDescription.h:39
@ MeshElementTypeSolidMesh
Solid Mesh, it could be: vertex color mesh or general mesh.
Definition MeshElementDescription.h:26

◆ MeshPart

enum MeshPart

When a mesh is displayed in any sub-object level, this enum help decide which part of the mesh this mesh element belongs to.

Enumerator
MeshPartSelected 

Selected part.

Only the selected part of the mesh will be displayed.

Remarks
For an edge/diagonal/face mesh element, this value indicates that the mesh element only includes the selected edges/diagonals/faces of the mesh. For a vertex ticks mesh element, it will include the whole of the mesh. But selected vertices will be displayed in red(indicating they're selected).
MeshPartUnselected 

Unselected part.

Only the unselected part of the mesh will be displayed.

Remarks
For an edge/diagonal/face mesh element, this value indicates that the render item only include the unselected edges/diagonals/faces of the mesh. For a vertex ticks mesh element, it will include the whole of the mesh. But selected vertices won't be displayed in red.
MeshPartWhole 

Whole part.

This value indicates an render item includes the whole of the mesh.

54{
72};
@ MeshPartSelected
Selected part.
Definition MeshElementDescription.h:61
@ MeshPartUnselected
Unselected part.
Definition MeshElementDescription.h:68
@ MeshPartWhole
Whole part.
Definition MeshElementDescription.h:71

◆ BuiltInMeshElementDescription

This enum defines some kinds of built-in mesh element descriptions.

Developer may query a built-in mesh element description by calling MeshElementDescription::GetBuiltInMeshElementDescription() using any enum value below.

Enumerator
ElementDescriptionSolidMesh 

The mesh element description of a solid mesh.

MeshElementType : MeshElementTypeSolidMesh MeshPart : MeshPartWhole UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionVetexTicks 

The mesh element description of vertex ticks.

MeshElementType : MeshElementTypeVertexTicks MeshPart : MeshPartWhole UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionWireframe 

The mesh element description of a wireframe mesh.

MeshElementType : MeshElementTypeEdge MeshPart : MeshPartWhole UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionSelectedEdge 

The mesh element description of selected edges.

MeshElementType : MeshElementTypeEdge MeshPart : MeshPartSelected UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionDiagonal 

The mesh element description of diagonals.

MeshElementType : MeshElementTypeDiagonal MeshPart : MeshPartWhole UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionSelectedDiagonal 

The mesh element description of selected diagonals.

MeshElementType : MeshElementTypeDiagonal MeshPart : MeshPartSelected UseSoftSelectionColor : false BackfaceCull : false

ElementDescriptionSelectedFace 

The mesh element description of selected faces.

MeshElementType : MeshElementTypeFace MeshPart : MeshPartSelected UseSoftSelectionColor : false BackfaceCull : false

151{
159
167
175
183
191
199
207};
@ ElementDescriptionSelectedFace
The mesh element description of selected faces.
Definition MeshElementDescription.h:206
@ ElementDescriptionSelectedEdge
The mesh element description of selected edges.
Definition MeshElementDescription.h:182
@ ElementDescriptionWireframe
The mesh element description of a wireframe mesh.
Definition MeshElementDescription.h:174
@ ElementDescriptionSelectedDiagonal
The mesh element description of selected diagonals.
Definition MeshElementDescription.h:198
@ ElementDescriptionDiagonal
The mesh element description of diagonals.
Definition MeshElementDescription.h:190
@ ElementDescriptionSolidMesh
The mesh element description of a solid mesh.
Definition MeshElementDescription.h:158
@ ElementDescriptionVetexTicks
The mesh element description of vertex ticks.
Definition MeshElementDescription.h:166

◆ NormalBumpMode

Enumerator
NB_3dsMax 

3ds Max Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the face normal.

The face normal is always perpendicular to the triangle face. During pixel shading, the tangent and binormal interpolated from triangle vertices are used in the normal bump calculation.

NB_Maya 

Maya Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex normal.

Vertex normals take their smoothing group into account. During pixel shading, the tangent and binormal interpolated from triangle vertices are orthogonalized against the normal before the normal bump calculation.

NB_DirectX 

DirectX Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex normal.

During pixel shading, the tangent and binormal interpolated from triangle vertices are used in the normal bump calculation.

NB_MikkT 

MikkT Mode - by Morten S.

Mikkelsen In this mode, the same vertex tangent and binormal(bitangent) are generated even if there is a change in index list(s), ordering of faces/vertices of a face, and/or the removal of degenerate primitives. During pixel shading, the tangent interpolated from vertices is used in the normal bump calculation, however, the binormal(bitangent) could be either interpolated from vertices or re-caluclated against the pixel normal and tangent, depends on CalculateBitangentPerPixel flag is enabled or not.

24 {
29 NB_3dsMax = 0,
35 NB_Maya,
47};
@ NB_3dsMax
3ds Max Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the face n...
Definition NormalMappingManager.h:29
@ NB_MikkT
MikkT Mode - by Morten S.
Definition NormalMappingManager.h:46
@ NB_Maya
Maya Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex no...
Definition NormalMappingManager.h:35
@ NB_DirectX
DirectX Mode In this mode, the vertex tangent and binormal(bitangent) are perpendicular to the vertex...
Definition NormalMappingManager.h:39

◆ TangentBasisMode

Enumerator
kPerpendicularToFaceNormal 

Tangent basis mode that requires the tangent and binormal are perpendicular to face normal.

kPerpendicularToVertexNormal 

Tangent basis mode that requires the tangent and binormal are perpendicular to vertex normal.

kMikkT 

Tangent basis mode that's aligned with MikkT.

54 {
57 kMikkT
58};
@ kPerpendicularToFaceNormal
Tangent basis mode that requires the tangent and binormal are perpendicular to face normal.
Definition NormalMappingManager.h:55
@ kPerpendicularToVertexNormal
Tangent basis mode that requires the tangent and binormal are perpendicular to vertex normal.
Definition NormalMappingManager.h:56
@ kMikkT
Tangent basis mode that's aligned with MikkT.
Definition NormalMappingManager.h:57

◆ PrimitiveType

Supported primitive types.

Enumerator
PrimitivePointList 

A list of independent points.

PrimitiveLineList 

A list of unconnected two-point line segments, such that the number of lines is the the total number of points divided by two.

PrimitiveLineStrip 

A polyline, where each point is connected to the previous vertex, yielding a single polyline with (vertex_count - 1) two-point line segments.

PrimitiveTriangleList 

A list of unconnected triangles, yielding (vertex_count / 3) triangles.

PrimitiveTriangleStrip 

A strip of connected triangles, such that each vertex after the first three vertices defines a new triangle, yielding (vertex_count - 1) connected triangles.

Remarks
Strips of even a small number of triangles provides better performance and reduced memory consumption relative to the same geometry represented with a triangle list. There is substantial research and software devoted to generating optimal triangle strips. See http://en.wikipedia.org/wiki/Triangle_strip for details.
PrimitiveLineListAdj 

A line list with adjacency information.

PrimitiveLineStripAdj 

A line strip with adjacency information.

PrimitiveTriangleListAdj 

A triangle list with adjacency information.

PrimitiveTriangleStripAdj 

A triangle strip with adjacency information.

PrimitivePatchList1 

A patch list with 1 control point.

PrimitivePatchList2 

A patch list with 2 control point.

PrimitivePatchList3 

A patch list with 3 control point.

PrimitivePatchList4 

A patch list with 4 control point.

PrimitivePatchList5 

A patch list with 5 control point.

PrimitivePatchList6 

A patch list with 6 control point.

PrimitivePatchList7 

A patch list with 7 control point.

PrimitivePatchList8 

A patch list with 8 control point.

PrimitivePatchList9 

A patch list with 9 control point.

PrimitivePatchList10 

A patch list with 10 control point.

PrimitivePatchList11 

A patch list with 11 control point.

PrimitivePatchList12 

A patch list with 12 control point.

PrimitivePatchList13 

A patch list with 13 control point.

PrimitivePatchList14 

A patch list with 14 control point.

PrimitivePatchList15 

A patch list with 15 control point.

PrimitivePatchList16 

A patch list with 16 control point.

PrimitivePatchList17 

A patch list with 17 control point.

PrimitivePatchList18 

A patch list with 18 control point.

PrimitivePatchList19 

A patch list with 19 control point.

PrimitivePatchList20 

A patch list with 20 control point.

PrimitivePatchList21 

A patch list with 21 control point.

PrimitivePatchList22 

A patch list with 22 control point.

PrimitivePatchList23 

A patch list with 23 control point.

PrimitivePatchList24 

A patch list with 24 control point.

PrimitivePatchList25 

A patch list with 25 control point.

PrimitivePatchList26 

A patch list with 26 control point.

PrimitivePatchList27 

A patch list with 27 control point.

PrimitivePatchList28 

A patch list with 28 control point.

PrimitivePatchList29 

A patch list with 29 control point.

PrimitivePatchList30 

A patch list with 30 control point.

PrimitivePatchList31 

A patch list with 31 control point.

PrimitivePatchList32 

A patch list with 32 control point.

PrimitiveTypeCount 
24 {
28
33
38
42
53
57
61
65
69
73
77
81
85
89
93
97
101
105
109
113
117
121
125
129
133
137
141
145
149
153
157
161
165
169
173
177
181
185
189
193
197
199 };
@ PrimitivePatchList18
A patch list with 18 control point.
Definition RenderEnums.h:140
@ PrimitivePatchList11
A patch list with 11 control point.
Definition RenderEnums.h:112
@ PrimitivePatchList26
A patch list with 26 control point.
Definition RenderEnums.h:172
@ PrimitiveTriangleListAdj
A triangle list with adjacency information.
Definition RenderEnums.h:64
@ PrimitivePatchList3
A patch list with 3 control point.
Definition RenderEnums.h:80
@ PrimitiveLineStrip
A polyline, where each point is connected to the previous vertex, yielding a single polyline with (ve...
Definition RenderEnums.h:37
@ PrimitivePatchList14
A patch list with 14 control point.
Definition RenderEnums.h:124
@ PrimitivePatchList16
A patch list with 16 control point.
Definition RenderEnums.h:132
@ PrimitivePatchList32
A patch list with 32 control point.
Definition RenderEnums.h:196
@ PrimitivePatchList29
A patch list with 29 control point.
Definition RenderEnums.h:184
@ PrimitivePatchList24
A patch list with 24 control point.
Definition RenderEnums.h:164
@ PrimitivePatchList4
A patch list with 4 control point.
Definition RenderEnums.h:84
@ PrimitiveTriangleStripAdj
A triangle strip with adjacency information.
Definition RenderEnums.h:68
@ PrimitiveTriangleStrip
A strip of connected triangles, such that each vertex after the first three vertices defines a new tr...
Definition RenderEnums.h:52
@ PrimitivePatchList20
A patch list with 20 control point.
Definition RenderEnums.h:148
@ PrimitivePointList
A list of independent points.
Definition RenderEnums.h:27
@ PrimitivePatchList13
A patch list with 13 control point.
Definition RenderEnums.h:120
@ PrimitivePatchList8
A patch list with 8 control point.
Definition RenderEnums.h:100
@ PrimitivePatchList31
A patch list with 31 control point.
Definition RenderEnums.h:192
@ PrimitivePatchList30
A patch list with 30 control point.
Definition RenderEnums.h:188
@ PrimitivePatchList12
A patch list with 12 control point.
Definition RenderEnums.h:116
@ PrimitivePatchList1
A patch list with 1 control point.
Definition RenderEnums.h:72
@ PrimitiveTypeCount
Definition RenderEnums.h:198
@ PrimitivePatchList22
A patch list with 22 control point.
Definition RenderEnums.h:156
@ PrimitivePatchList15
A patch list with 15 control point.
Definition RenderEnums.h:128
@ PrimitivePatchList27
A patch list with 27 control point.
Definition RenderEnums.h:176
@ PrimitiveLineList
A list of unconnected two-point line segments, such that the number of lines is the the total number ...
Definition RenderEnums.h:32
@ PrimitivePatchList21
A patch list with 21 control point.
Definition RenderEnums.h:152
@ PrimitivePatchList7
A patch list with 7 control point.
Definition RenderEnums.h:96
@ PrimitivePatchList23
A patch list with 23 control point.
Definition RenderEnums.h:160
@ PrimitivePatchList17
A patch list with 17 control point.
Definition RenderEnums.h:136
@ PrimitiveLineListAdj
A line list with adjacency information.
Definition RenderEnums.h:56
@ PrimitivePatchList5
A patch list with 5 control point.
Definition RenderEnums.h:88
@ PrimitivePatchList28
A patch list with 28 control point.
Definition RenderEnums.h:180
@ PrimitivePatchList25
A patch list with 25 control point.
Definition RenderEnums.h:168
@ PrimitivePatchList6
A patch list with 6 control point.
Definition RenderEnums.h:92
@ PrimitiveTriangleList
A list of unconnected triangles, yielding (vertex_count / 3) triangles.
Definition RenderEnums.h:41
@ PrimitivePatchList10
A patch list with 10 control point.
Definition RenderEnums.h:108
@ PrimitivePatchList9
A patch list with 9 control point.
Definition RenderEnums.h:104
@ PrimitiveLineStripAdj
A line strip with adjacency information.
Definition RenderEnums.h:60
@ PrimitivePatchList2
A patch list with 2 control point.
Definition RenderEnums.h:76
@ PrimitivePatchList19
A patch list with 19 control point.
Definition RenderEnums.h:144

◆ BufferClearFlag

This flag describes the way to clear the current buffers.

Enumerator
ClearBackbuffer 

clear the target

ClearDepthBuffer 

clear the zbuffer

ClearStencilBuffer 

clear the stencil

ClearAll 

clear the zbuffer, target & stencil

204 {
207 ClearBackbuffer = 0x1,
210 ClearDepthBuffer = 0x2,
213 ClearStencilBuffer = 0x4,
216 ClearAll = 0x7,
217 };
@ ClearDepthBuffer
clear the zbuffer
Definition RenderEnums.h:210
@ ClearAll
clear the zbuffer, target & stencil
Definition RenderEnums.h:216
@ ClearStencilBuffer
clear the stencil
Definition RenderEnums.h:213
@ ClearBackbuffer
clear the target
Definition RenderEnums.h:207

◆ BlendSelector

blend selector.

selects a blend source/destination

Enumerator
BlendSelectorBlendFactor 

use blend factor in blend state

BlendSelectorBothInvSourceAlpha 

use inverse source alpha

BlendSelectorBothSourceAlpha 

use source aplha

BlendSelectorDestinationAlpha 

use the destination alpha

BlendSelectorDestinationColor 

use the destination color

BlendSelectorInvBlendFactor 

use inversed blend factor

BlendSelectorInvDestinationAlpha 

use the inverse destination alpha

BlendSelectorInvDestinationColor 

use the inverse destination color

BlendSelectorInvSourceAlpha 

use inverse source alpha

BlendSelectorInvSourceColor 

use inverse source color

BlendSelectorOne 

always 1,1,1

BlendSelectorSourceAlpha 

use the source alpha

BlendSelectorSourceAlphaSat 

use the source alpha and saturate it

BlendSelectorSourceColor 

use the source color

BlendSelectorZero 

always 0

222 {
268
269 };
@ BlendSelectorInvDestinationAlpha
use the inverse destination alpha
Definition RenderEnums.h:243
@ BlendSelectorDestinationColor
use the destination color
Definition RenderEnums.h:237
@ BlendSelectorZero
always 0
Definition RenderEnums.h:267
@ BlendSelectorBothInvSourceAlpha
use inverse source alpha
Definition RenderEnums.h:228
@ BlendSelectorInvBlendFactor
use inversed blend factor
Definition RenderEnums.h:240
@ BlendSelectorInvSourceColor
use inverse source color
Definition RenderEnums.h:252
@ BlendSelectorInvSourceAlpha
use inverse source alpha
Definition RenderEnums.h:249
@ BlendSelectorBothSourceAlpha
use source aplha
Definition RenderEnums.h:231
@ BlendSelectorSourceAlphaSat
use the source alpha and saturate it
Definition RenderEnums.h:261
@ BlendSelectorDestinationAlpha
use the destination alpha
Definition RenderEnums.h:234
@ BlendSelectorSourceAlpha
use the source alpha
Definition RenderEnums.h:258
@ BlendSelectorOne
always 1,1,1
Definition RenderEnums.h:255
@ BlendSelectorInvDestinationColor
use the inverse destination color
Definition RenderEnums.h:246
@ BlendSelectorSourceColor
use the source color
Definition RenderEnums.h:264
@ BlendSelectorBlendFactor
use blend factor in blend state
Definition RenderEnums.h:225

◆ CullMode

enum CullMode

cull type.

Enumerator
CullModeCW 

cull backfaces of CW polygons

CullModeCCW 

cull backfaces of CCW polygons

CullModeNone 

don't cull backfaces

275 {
278 CullModeCW,
285 };
@ CullModeCCW
cull backfaces of CCW polygons
Definition RenderEnums.h:281
@ CullModeCW
cull backfaces of CW polygons
Definition RenderEnums.h:278
@ CullModeNone
don't cull backfaces
Definition RenderEnums.h:284

◆ FillMode

enum FillMode

fill mode for polygons

Enumerator
FillSolid 

draw as a solid object

FillWireFrame 

draw as a wireframe object

291 {
294 FillSolid,
298 } ;
@ FillSolid
draw as a solid object
Definition RenderEnums.h:294
@ FillWireFrame
draw as a wireframe object
Definition RenderEnums.h:297

◆ CompareFunction

compare functions

Enumerator
CompareFunctionAlways 

always true

CompareFunctionEqual 

true if equal

CompareFunctionGreater 

true if greater

CompareFunctionGreaterEqual 

true if greater or equal

CompareFunctionLess 

true if less

CompareFunctionLessEqual 

true if less or equal

CompareFunctionNever 

never true

CompareFunctionNotEqual 

true if not equal

303 {
328 };
@ CompareFunctionGreater
true if greater
Definition RenderEnums.h:312
@ CompareFunctionLessEqual
true if less or equal
Definition RenderEnums.h:321
@ CompareFunctionEqual
true if equal
Definition RenderEnums.h:309
@ CompareFunctionAlways
always true
Definition RenderEnums.h:306
@ CompareFunctionNever
never true
Definition RenderEnums.h:324
@ CompareFunctionLess
true if less
Definition RenderEnums.h:318
@ CompareFunctionGreaterEqual
true if greater or equal
Definition RenderEnums.h:315
@ CompareFunctionNotEqual
true if not equal
Definition RenderEnums.h:327

◆ ColorWriteEnable

Enumerator
ColorWriteEnableNone 

None, all off.

ColorWriteEnableAlpha 

Write alpha.

Same as d3d.ColorWriteEnable.Alpha,

ColorWriteEnableBlue 

Write blue.

Same as d3d.ColorWriteEnable.Blue,

ColorWriteEnableGreen 

Write green.

Same as d3d.ColorWriteEnable.Green,

ColorWriteEnableRed 

Write red.

Same as d3d.ColorWriteEnable.Red,

ColorWriteEnableRedGreenBlue 

Write RGB but no alpha.

Same as d3d.ColorWriteEnable.RedGreenBlue,

ColorWriteEnableRedGreenBlueAlpha 

Write all RGBA.

Same as d3d.ColorWriteEnable.RedGreenBlueAlpha,

WRITEENABLE_FORCE_DWORD 
331 {
350 ColorWriteEnableRed = 0x1,
359
360 WRITEENABLE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
361 };
@ ColorWriteEnableRedGreenBlueAlpha
Write all RGBA.
Definition RenderEnums.h:358
@ ColorWriteEnableRed
Write red.
Definition RenderEnums.h:350
@ ColorWriteEnableBlue
Write blue.
Definition RenderEnums.h:342
@ ColorWriteEnableRedGreenBlue
Write RGB but no alpha.
Definition RenderEnums.h:354
@ WRITEENABLE_FORCE_DWORD
Definition RenderEnums.h:360
@ ColorWriteEnableNone
None, all off.
Definition RenderEnums.h:334
@ ColorWriteEnableAlpha
Write alpha.
Definition RenderEnums.h:338
@ ColorWriteEnableGreen
Write green.
Definition RenderEnums.h:346

◆ BlendOperation

blend operations

Enumerator
BlendOperationAdd 

add the source and destination together

BlendOperationMax 

max of the source and destination

BlendOperationMin 

min of the source and destination

BlendOperationSubtract 

dest gets dest minus source

BlendOperationReverseSubtract 

dest gets source minus dest

366 {
382 };
@ BlendOperationMin
min of the source and destination
Definition RenderEnums.h:375
@ BlendOperationReverseSubtract
dest gets source minus dest
Definition RenderEnums.h:381
@ BlendOperationMax
max of the source and destination
Definition RenderEnums.h:372
@ BlendOperationSubtract
dest gets dest minus source
Definition RenderEnums.h:378
@ BlendOperationAdd
add the source and destination together
Definition RenderEnums.h:369

◆ StencilOperationType

Stencil buffer operation.

Enumerator
StencilOperationTypeDecrement 

Decrement the stencil buffer entry, wrapping to the maximum value if the new value is less than zero.

Same as d3d.StencilOperation.Decrement,

StencilOperationTypeDecrementSaturation 

Decrement the stencil buffer entry, clamping to zero.

Same as d3d.StencilOperation.DecrementSaturation,

StencilOperationTypeIncrement 

Increment the stencil buffer entry, wrapping to zero if the new value exceeds the maximum value.

Same as d3d.StencilOperation.Increment,

StencilOperationTypeIncrementSaturation 

Increment the stencil buffer entry, clamping to the maximum value.

Same as d3d.StencilOperation.IncrementSaturation,

StencilOperationTypeInvert 

Invert the bits in the stencil-buffer entry.

Same as d3d.StencilOperation.Invert

StencilOperationTypeKeep 

Do not update the entry in the stencil buffer.

This is the default value. Same as d3d.StencilOperation.Keep,

StencilOperationTypeReplace 

Replace the stencil-buffer entry with a reference value.

Same as d3d.StencilOperation.Replace,

StencilOperationTypeZeroStencil 

Set the stencil-buffer entry to 0.

Same as d3d.StencilOperation.Zero,

STENCILOP_FORCE_DWORD 
388 {
397
402
407
412
417
422
427
428 STENCILOP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */
429
430 };
@ StencilOperationTypeDecrement
Decrement the stencil buffer entry, wrapping to the maximum value if the new value is less than zero.
Definition RenderEnums.h:392
@ STENCILOP_FORCE_DWORD
Definition RenderEnums.h:428
@ StencilOperationTypeIncrementSaturation
Increment the stencil buffer entry, clamping to the maximum value.
Definition RenderEnums.h:406
@ StencilOperationTypeDecrementSaturation
Decrement the stencil buffer entry, clamping to zero.
Definition RenderEnums.h:396
@ StencilOperationTypeIncrement
Increment the stencil buffer entry, wrapping to zero if the new value exceeds the maximum value.
Definition RenderEnums.h:401
@ StencilOperationTypeZeroStencil
Set the stencil-buffer entry to 0.
Definition RenderEnums.h:426
@ StencilOperationTypeInvert
Invert the bits in the stencil-buffer entry.
Definition RenderEnums.h:411
@ StencilOperationTypeKeep
Do not update the entry in the stencil buffer.
Definition RenderEnums.h:416
@ StencilOperationTypeReplace
Replace the stencil-buffer entry with a reference value.
Definition RenderEnums.h:421

◆ AccessType

enum AccessType

AccessType Types for accessing buffers.

Enumerator
AccessTypeNone 

Data is not accessed yet.

ReadAcess 

Data will only be read.

WriteAcess 

Data will only be written.

ReadWriteAcess 
WriteDiscardAcess 

To be used by dynamic buffer for write-discard access.

435 {
438 AccessTypeNone = 0x0,
441 ReadAcess = 0x1,
444 WriteAcess = 0x2,
445 /* Data will be read and written.
446 */
451 };
@ AccessTypeNone
Data is not accessed yet.
Definition RenderEnums.h:438
@ WriteAcess
Data will only be written.
Definition RenderEnums.h:444
@ WriteDiscardAcess
To be used by dynamic buffer for write-discard access.
Definition RenderEnums.h:450
@ ReadAcess
Data will only be read.
Definition RenderEnums.h:441
@ ReadWriteAcess
Definition RenderEnums.h:447

◆ TargetFormat

enum TargetFormat : int

TargetFormat indicates which type the target/texture is.

Enumerator
TargetFormatUnkown 

Unknown target format.

TargetFormatD24S8 

depth 24, stencil 8

TargetFormatD24X8 

depth 24, no stencil

TargetFormatD32 

depth 32, no stencil

TargetFormatDxt1 

compressed format dxt1, no alpha

TargetFormatDxt2 

compressed format dxt2, premultiplied alpha, otherwise same as dxt3

TargetFormatDxt3 

compressed format dxt3, has alpha

TargetFormatDxt4 

compressed format dxt4, premultiplied alpha otherwise same as dxt5

TargetFormatDxt5 

compressed format dxt5, has alpha

TargetFormatA8 

8 bit alpha texture

TargetFormatR8 

8 bit one-channel texture

TargetFormatR16 

16 bit int one-channel texture

TargetFormatR16F 

16 bit float one-channel texture

TargetFormatA1R5G5B5 

one bit alpha, 5 bits each for RGB.

The layout of the short is:

15 14 10 5 0

| A | R | G | B |

TargetFormatR5G6B5 

no alpha, 5 bits each for R and B, 6 bits for G.

The layout of the short is:

15 11 5 0

| R | G | B |

TargetFormatR32F 

one-channel 32 bit float

TargetFormatR16G16 

two-channel, 16 bit int

TargetFormatR16G16F 

two-channel, 16 bit float

TargetFormatA8R8G8B8 

8 bit int for each of RGB and A, with byte ordering ARGB

TargetFormatA8B8G8R8 

8 bit int for each of RGB and A, with byte ordering ABGR

TargetFormatX8B8G8R8 

8 bit int for each of RGB, no alpha

TargetFormatA2B10G10R10 

2 bit alpha, 10 bits for each of RGB, with byte ordering ABGR

TargetFormatR32G32F 

two-channel 32 bit float

TargetFormatA16B16G16R16 

four-channel, 16 bit int for each of RGB and A, with byte ordering ABGR

TargetFormatA16B16G16R16F 

four-channel, 16 bit float for each of RGB and A, with byte ordering ABGR

TargetFormatA32B32G32R32F 

32 bit float for each of RGB and A, with byte ordering ABGR

TargetFormatX8R8G8B8 

8 bit int for each of RBA, no alpha

TargetFormatR32G32B32F 

three-channel, 32 bit float for each of RGB

TargetFormatR32UINT 

32bit unsigned int format

TargetFormatR32SINT 

32bit signed int format

TargetFormatCount 
456 {
551
555
559
561 };
@ TargetFormatR32F
one-channel 32 bit float
Definition RenderEnums.h:514
@ TargetFormatDxt3
compressed format dxt3, has alpha
Definition RenderEnums.h:478
@ TargetFormatCount
Definition RenderEnums.h:560
@ TargetFormatA32B32G32R32F
32 bit float for each of RGB and A, with byte ordering ABGR
Definition RenderEnums.h:544
@ TargetFormatDxt4
compressed format dxt4, premultiplied alpha otherwise same as dxt5
Definition RenderEnums.h:482
@ TargetFormatR32SINT
32bit signed int format
Definition RenderEnums.h:558
@ TargetFormatUnkown
Unknown target format.
Definition RenderEnums.h:459
@ TargetFormatR16F
16 bit float one-channel texture
Definition RenderEnums.h:497
@ TargetFormatR8
8 bit one-channel texture
Definition RenderEnums.h:491
@ TargetFormatA8B8G8R8
8 bit int for each of RGB and A, with byte ordering ABGR
Definition RenderEnums.h:526
@ TargetFormatD24S8
depth 24, stencil 8
Definition RenderEnums.h:462
@ TargetFormatA1R5G5B5
one bit alpha, 5 bits each for RGB.
Definition RenderEnums.h:504
@ TargetFormatA2B10G10R10
2 bit alpha, 10 bits for each of RGB, with byte ordering ABGR
Definition RenderEnums.h:532
@ TargetFormatX8R8G8B8
8 bit int for each of RBA, no alpha
Definition RenderEnums.h:547
@ TargetFormatDxt1
compressed format dxt1, no alpha
Definition RenderEnums.h:471
@ TargetFormatR5G6B5
no alpha, 5 bits each for R and B, 6 bits for G.
Definition RenderEnums.h:511
@ TargetFormatD32
depth 32, no stencil
Definition RenderEnums.h:468
@ TargetFormatA16B16G16R16
four-channel, 16 bit int for each of RGB and A, with byte ordering ABGR
Definition RenderEnums.h:538
@ TargetFormatR16G16F
two-channel, 16 bit float
Definition RenderEnums.h:520
@ TargetFormatX8B8G8R8
8 bit int for each of RGB, no alpha
Definition RenderEnums.h:529
@ TargetFormatR32UINT
32bit unsigned int format
Definition RenderEnums.h:554
@ TargetFormatDxt2
compressed format dxt2, premultiplied alpha, otherwise same as dxt3
Definition RenderEnums.h:475
@ TargetFormatA8
8 bit alpha texture
Definition RenderEnums.h:488
@ TargetFormatD24X8
depth 24, no stencil
Definition RenderEnums.h:465
@ TargetFormatR32G32F
two-channel 32 bit float
Definition RenderEnums.h:535
@ TargetFormatR16
16 bit int one-channel texture
Definition RenderEnums.h:494
@ TargetFormatA8R8G8B8
8 bit int for each of RGB and A, with byte ordering ARGB
Definition RenderEnums.h:523
@ TargetFormatR32G32B32F
three-channel, 32 bit float for each of RGB
Definition RenderEnums.h:550
@ TargetFormatR16G16
two-channel, 16 bit int
Definition RenderEnums.h:517
@ TargetFormatDxt5
compressed format dxt5, has alpha
Definition RenderEnums.h:485
@ TargetFormatA16B16G16R16F
four-channel, 16 bit float for each of RGB and A, with byte ordering ABGR
Definition RenderEnums.h:541

◆ GraphicFeatureLevel

This enum specifies the feature levels device supported.

Enumerator
Level_Unknown 

Unknown feature level.

Level_NULL 

NULL feature level.

Level2_0 

Feature Level 2_0.

Level2_1 

Feature Level 2_1.

Level3_0 

Feature Level 3_0.

Level3_1 

Feature Level 3_1.

Level4_0 

Feature Level 4_0.

Level4_1 

Feature Level 4_1 Notes: Feature Level4_1 corresponds to the NV DX10+ device, which supports some of DX10.1 features.

Level4_5 

Feature Level 4_5 Notes: Feature Level4_5 corresponds to DX10.1 device, which supports all of DX10.1 features.

The OS must be Vista SP1 or above.

Level5_0 

Feature Level 5_0 Notes: Feature Level5_0 corresponds to DX11 device, which supports all of DX11 features.

The OS must be "Vista SP2 + Platform update" or above.

Level_Count 

Feature Level count.

577 {
580 Level_Unknown = 0,
583 Level_NULL = 5,
586 Level2_0 = 20,
589 Level2_1 = 21,
592 Level3_0 = 30,
595 Level3_1 = 31,
598 Level4_0 = 40,
603 Level4_1 = 41,
608 Level4_5 = 45,
613 Level5_0 = 50,
614
617 Level_Count = 9
618 };
@ Level2_0
Feature Level 2_0.
Definition RenderEnums.h:586
@ Level4_1
Feature Level 4_1 Notes: Feature Level4_1 corresponds to the NV DX10+ device, which supports some of ...
Definition RenderEnums.h:603
@ Level5_0
Feature Level 5_0 Notes: Feature Level5_0 corresponds to DX11 device, which supports all of DX11 feat...
Definition RenderEnums.h:613
@ Level_Count
Feature Level count.
Definition RenderEnums.h:617
@ Level4_0
Feature Level 4_0.
Definition RenderEnums.h:598
@ Level2_1
Feature Level 2_1.
Definition RenderEnums.h:589
@ Level_Unknown
Unknown feature level.
Definition RenderEnums.h:580
@ Level3_0
Feature Level 3_0.
Definition RenderEnums.h:592
@ Level4_5
Feature Level 4_5 Notes: Feature Level4_5 corresponds to DX10.1 device, which supports all of DX10....
Definition RenderEnums.h:608
@ Level_NULL
NULL feature level.
Definition RenderEnums.h:583
@ Level3_1
Feature Level 3_1.
Definition RenderEnums.h:595

◆ TextureType

Texture type enums.

Enumerator
TextureTypeUnknown 

unknown texture type

TextureTypeImage1D 

1d bitmap texture

TextureTypeImage1DArray 

1d bitmap texture array

TextureTypeImage2D 

bitmap texture

TextureTypeImage2DArray 

bitmap texture

TextureTypeCubeMap 

cube map texture

TextureTypeVolume 

volume texture

TextureTypeCount 
630 {
634
638
642
646
650
654
658
660 };
@ TextureTypeUnknown
unknown texture type
Definition RenderEnums.h:633
@ TextureTypeCount
Definition RenderEnums.h:659
@ TextureTypeImage2DArray
bitmap texture
Definition RenderEnums.h:649
@ TextureTypeVolume
volume texture
Definition RenderEnums.h:657
@ TextureTypeImage1D
1d bitmap texture
Definition RenderEnums.h:637
@ TextureTypeImage1DArray
1d bitmap texture array
Definition RenderEnums.h:641
@ TextureTypeImage2D
bitmap texture
Definition RenderEnums.h:645
@ TextureTypeCubeMap
cube map texture
Definition RenderEnums.h:653

◆ ResourceUsage

Resource usage, used for texture.

Enumerator
ResourceUsageNormal 

Normal usage, means it's a video memory resource Immutable or default depending on access.

ResourceUsageDynamic 

If the resource contents are to be changed often, ResourceUsageDynamic is recommended to achieve fast update.

Used with the correct map flag( WriteDiscard or WriteNoOverwrite), maximum performance to change the contents will be achieved. Meaning of WriteNoOverwrite: WriteNoOverwrite signifies that the application promises not to write to data that the GPU is using. In exchange, the GPU allows the application to write to other parts of the same buffer. The application must ensure that it does not write over any data in use by the GPU.
Common Usage of WriteDiscard with WriteNoOverwrite as map flags: WriteDiscard and WriteNoOverwrite are normally used in conjunction with dynamic index/vertex buffers, although they can also be used with dynamic textures. A common use of these two flags involves filling dynamic index/vertex buffers with geometry that can be seen from the camera's current position. The first time that data is entered into the buffer on a given frame, Map is called with WriteDiscard; doing so invalidates the previous contents of the buffer. The buffer is then filled with all available data. Subsequent writes to the buffer within the same frame should use WriteNoOverwrite. This will enable the CPU to access a resource that is potentially being used by the GPU as long as the restrictions described previously are respected.

ResourceUsageStaging 

Staging usage, means it's a system memory resource on each devices.

For cpu readback

ResourceUsageMask 

Usage mask.

For anding off the high bits

ResourceUsageStream 

Usage for stream output.

For vb & ibs, may be used as a texture

ResourceUsageTarget 

Usage for render target, it means the resource created from video memory and can be used as render-target for vb & ibs & textures, may be used as a render target/stream output buffer.

665 {
670
688
693
696 ResourceUsageMask = 0xf,
697
700 ResourceUsageStream = 0x10,
701
706 ResourceUsageTarget = 0x20,
707 };
@ ResourceUsageDynamic
If the resource contents are to be changed often, ResourceUsageDynamic is recommended to achieve fast...
Definition RenderEnums.h:687
@ ResourceUsageMask
Usage mask.
Definition RenderEnums.h:696
@ ResourceUsageTarget
Usage for render target, it means the resource created from video memory and can be used as render-ta...
Definition RenderEnums.h:706
@ ResourceUsageStaging
Staging usage, means it's a system memory resource on each devices.
Definition RenderEnums.h:692
@ ResourceUsageStream
Usage for stream output.
Definition RenderEnums.h:700
@ ResourceUsageNormal
Normal usage, means it's a video memory resource Immutable or default depending on access.
Definition RenderEnums.h:669

◆ QueryType

enum QueryType

Enums for QueryHandle, indicates which query types to issue.

Refer D3D11_QUERY in DirectX Graphics Document for detail.

Enumerator
QueryType_Event 

Same as D3D11_QUERY_EVENT Determines whether or not the GPU is finished processing commands.

QueryType_Occlusion 

Same as D3D11_QUERY_OCCLUSION Get the number of samples that passed the depth and stencil tests in between QueryHandle::Begin() and QueryHandle::End().

QueryType_TimeStamp 

Same as D3D11_QUERY_TIMESTAMP Get a timestamp value from QueryHandle::GetData()

QueryType_Occlusion_Test 

Same as D3D11_QUERY_OCCLUSION_PREDICATE Return BOOL in QueryHandle::GetData(), indicates any pixels passes depth and stencil tests.

QueryType_SO_Overflow_Test 

Same as D3D11_QUERY_SO_OVERFLOW_PREDICATE Indicates whether or not any of the streaming output buffers overflowed between QueryHandle::Begin() and QueryHandle::End().

QueryType_SO_Stats 

Same as D3D11_QUERY_SO_STATISTICS Get streaming output statistics, such as the number of primitives streamed out in between QueryHandle::Begin() and QueryHandle::End().

713 {
717 QueryType_Event = 8,
741 };
@ QueryType_SO_Stats
Same as D3D11_QUERY_SO_STATISTICS Get streaming output statistics, such as the number of primitives s...
Definition RenderEnums.h:740
@ QueryType_Occlusion_Test
Same as D3D11_QUERY_OCCLUSION_PREDICATE Return BOOL in QueryHandle::GetData(), indicates any pixels p...
Definition RenderEnums.h:730
@ QueryType_Occlusion
Same as D3D11_QUERY_OCCLUSION Get the number of samples that passed the depth and stencil tests in be...
Definition RenderEnums.h:722
@ QueryType_Event
Same as D3D11_QUERY_EVENT Determines whether or not the GPU is finished processing commands.
Definition RenderEnums.h:717
@ QueryType_TimeStamp
Same as D3D11_QUERY_TIMESTAMP Get a timestamp value from QueryHandle::GetData()
Definition RenderEnums.h:726
@ QueryType_SO_Overflow_Test
Same as D3D11_QUERY_SO_OVERFLOW_PREDICATE Indicates whether or not any of the streaming output buffer...
Definition RenderEnums.h:735

◆ ZBiasPresets

Enumerator
ZBiasPresets_Default 
ZBiasPresets_Shaded 
ZBiasPresets_Wireframe 
ZBiasPresets_Gizmo 
36{
37 ZBiasPresets_Default = -1, //Auto z bias set by system
41};
@ ZBiasPresets_Default
Definition RenderItemHandle.h:37
@ ZBiasPresets_Wireframe
Definition RenderItemHandle.h:39
@ ZBiasPresets_Shaded
Definition RenderItemHandle.h:38
@ ZBiasPresets_Gizmo
Definition RenderItemHandle.h:40

◆ RenderItemVisibilityGroup

This enum defines in what group a render item is visible.

Enumerator
RenderItemVisible_Unknown 

By default, all render items are in default visible group.

That means the system will determine when the render item will be displayed based on the render item traits. If the render item is mesh, it will be displayed in shaded/realistic mode. If the render item is lines, it will be displayed in wireframe/edged faces mode. Any other render items including display callbacks will be displayed as gizmos.

RenderItemVisible_Shaded 

This kind of render item will only be visible if visual style is shaded or realistic.

RenderItemVisible_Wireframe 

This kind of render item is visible in wireframe visual style, or edged faces is on, or "wireframe selected" is on and the node is selected.

RenderItemVisible_Gizmo 

This kind of render item is always visible, no matter what the visual style is.

46{
55
60
65
70};
@ RenderItemVisible_Unknown
By default, all render items are in default visible group.
Definition RenderItemHandle.h:54
@ RenderItemVisible_Wireframe
This kind of render item is visible in wireframe visual style, or edged faces is on,...
Definition RenderItemHandle.h:64
@ RenderItemVisible_Shaded
This kind of render item will only be visible if visual style is shaded or realistic.
Definition RenderItemHandle.h:59
@ RenderItemVisible_Gizmo
This kind of render item is always visible, no matter what the visual style is.
Definition RenderItemHandle.h:69

◆ ObjectComponentRequirement

This enum contains flags that can be combined together to specify which part is required by the node when updating render items.

Enumerator
ObjectComponentSolidMesh 

Require solid mesh, it could be: vertex color mesh or general mesh.

This will be displayed in any viewport that requires smooth mesh.

ObjectComponentWireframe 

Require wireframe mesh, this layer includes the edges.

This will be displayed in viewport that has "wireframe" or "hidden line" on.

ObjectComponentVertexTicks 

Require vertex ticks.

This will be displayed when the node has "Vertex Ticks" display option on or the vertex tick sub-object be selected.

ObjectComponentDiagonal 

Require diagonals.

This is the dotted edge lines when user enabled "show edges" of a node and enable the wireframe mode of viewport.

ObjectComponentSelected 

one or more of the node is selected

ObjectComponentUnselected 

one or more of the node is not selected

ObjectComponentBackfaceCull 

one or more of the node has the object property "Backface Cull" on.

ObjectComponentVertexColorSoftSelection 

one or more of the node has the object property "Vertex Channel Display" on and the active channel is soft selection

26{
30 ObjectComponentSolidMesh = 0x00000001,
34 ObjectComponentWireframe = 0x00000002,
38 ObjectComponentVertexTicks = 0x00000004,
42 ObjectComponentDiagonal = 0x00000008,
45 ObjectComponentSelected = 0x00000010,
48 ObjectComponentUnselected = 0x00000020,
51 ObjectComponentBackfaceCull = 0x00000040,
56};
@ ObjectComponentVertexColorSoftSelection
one or more of the node has the object property "Vertex Channel Display" on and the active channel is...
Definition UpdateDisplayContext.h:55
@ ObjectComponentSolidMesh
Require solid mesh, it could be: vertex color mesh or general mesh.
Definition UpdateDisplayContext.h:30
@ ObjectComponentUnselected
one or more of the node is not selected
Definition UpdateDisplayContext.h:48
@ ObjectComponentDiagonal
Require diagonals.
Definition UpdateDisplayContext.h:42
@ ObjectComponentSelected
one or more of the node is selected
Definition UpdateDisplayContext.h:45
@ ObjectComponentBackfaceCull
one or more of the node has the object property "Backface Cull" on.
Definition UpdateDisplayContext.h:51
@ ObjectComponentWireframe
Require wireframe mesh, this layer includes the edges.
Definition UpdateDisplayContext.h:34
@ ObjectComponentVertexTicks
Require vertex ticks.
Definition UpdateDisplayContext.h:38

Function Documentation

◆ IsNumberType()

FragmentGraphAPI bool IsNumberType ( VarType type)

Checks if the given type is number type.

Parameters
[in]typetype value.
Returns
true if the type is a number type, (for example, char, wide char, int, double), false otherwise.

◆ IsCompatibleType()

FragmentGraphAPI bool IsCompatibleType ( VarType lhs,
VarType rhs )

Checks if two types can be converted to each other.

Parameters
[in]lhsThe first type.
[in]rhsThe second type.
Returns
true if two types are equal or both are numbers, false otherwise.

◆ GetVertexStride()

DataBridgeAPI size_t GetVertexStride ( const VertexFieldType type)

Get the vertex stride by a given vertex type, in bytes.

Parameters
typethe vertex type.
Returns
the vertex stride, in bytes.

◆ GetIndexStride()

DataBridgeAPI size_t GetIndexStride ( const IndexType type)

Get the index stride by a given index type, in bytes.

Parameters
typethe index type.
Returns
the index stride, in bytes.

◆ CombineHashCode()

GraphicsDriverAPI size_t CombineHashCode ( size_t seed,
size_t hashCode )

A utility function for generating hash code.

Interface_ID id = PLUGIN_CONSOLIDATION_INTERFACE_ID;
size_t key = CombineHashCode(0, id.PartA()); //Initialize a new key
mHashKey = CombineHashCode(key, id.PartB()); //Combine new data with existing key
Definition maxtypes.h:136
GraphicsDriverAPI size_t CombineHashCode(size_t seed, size_t hashCode)
A utility function for generating hash code.
Returns
new code from seed and hash code.

◆ GetIDisplayManager()

UtilExport IDisplayManager * GetIDisplayManager ( )

Helper function to access the IDisplayManager core interface.

Returns
A pointer to IDisplayManager

◆ IsRetainedModeEnabled()

bool IsRetainedModeEnabled ( )
inline

Helper function to test whether the new viewport graphics system is running.

Returns
TRUE if new viewport graphics is active
100{
101 IDisplayManager* pGraphicsManager = GetIDisplayManager();
102 return nullptr != pGraphicsManager && pGraphicsManager->IsRetainedModeEnabled();
103}
A core interface for accessing properties of the graphics library introduced in 3ds Max 2012.
Definition IDisplayManager.h:38
virtual bool IsRetainedModeEnabled() const =0
Plug-ins that have a mesh representation and use Mesh::render() in their implementation of BaseObject...
UtilExport MaxSDK::Graphics::IDisplayManager * GetIDisplayManager()
Helper function to access the IDisplayManager core interface.

◆ IsHardwareHitTesting()

bool IsHardwareHitTesting ( ViewExp * vpt)
inline

Helper function to test whether the new viewport graphics system is performing hardware hit testing.

Parameters
vptThe specific viewport in which we want to know whether we are performing hardware hit testing.
Returns
TRUE if new viewport graphics is performing hardware hit testing.
110{
111 IDisplayManager* pGraphicsManager = GetIDisplayManager();
112 return nullptr != pGraphicsManager && pGraphicsManager->IsHardwareHitTesting(vpt);
113}
virtual bool IsHardwareHitTesting(ViewExp *vpt) const =0
Queries whether the system is performing hardware hit testing for a specific viewport.

◆ operator==()

template<class RefObjectType, class SafeRefObjectType, class LifeTimePolicy>
bool operator== ( void * pPtr,
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > & pInterface )
inline
388{
389 return pPtr == pInterface.GetPointer();
390}
RefObjectType * GetPointer() const
Definition IRefObject.h:252

◆ operator!=()

template<class RefObjectType, class SafeRefObjectType, class LifeTimePolicy>
bool operator!= ( void * pPtr,
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > & pInterface )
inline
399{
400 return pPtr != pInterface.GetPointer();
401}

◆ operator*() [1/2]

Point4 operator* ( const Matrix44 & M,
const Point4 & p )
inline
143{
144 Point4 result;
145 result[0] = M.m[0][0]*p[0] + M.m[1][0]*p[1] + M.m[2][0]*p[2] + M.m[3][0]*p[3];
146 result[1] = M.m[0][1]*p[0] + M.m[1][1]*p[1] + M.m[2][1]*p[2] + M.m[3][1]*p[3];
147 result[2] = M.m[0][2]*p[0] + M.m[1][2]*p[1] + M.m[2][2]*p[2] + M.m[3][2]*p[3];
148 result[3] = M.m[0][3]*p[0] + M.m[1][3]*p[1] + M.m[2][3]*p[2] + M.m[3][3]*p[3];
149 return result;
150}
float m[4][4]
Definition Matrix44.h:109

◆ operator*() [2/2]

Point4 operator* ( const Matrix44 & M,
const Point3 & p )
inline
154{
155 return M * Point4(p, 1.f);
156}

◆ MaxWorldMatrixToMatrix44()

GraphicsDriverAPI void MaxWorldMatrixToMatrix44 ( Matrix44 & outMatrix,
const Matrix3 & inMatrix )

Convert Matrix3 to Matrix44.

Parameters
outMatrixthe Matrix44 output
inMatrixthe source Matrix3

◆ Matrix44ToMaxWorldMatrix()

GraphicsDriverAPI void Matrix44ToMaxWorldMatrix ( Matrix3 & outMatrix,
const Matrix44 & inMatrix )

Convert Matrix44 to Matrix3.

Parameters
outMatrixthe Matrix3 output
inMatrixthe source Matrix44

◆ GetBuiltInMeshElementDescription()

GraphicsDriverAPI const MeshElementDescription & GetBuiltInMeshElementDescription ( BuiltInMeshElementDescription type)

Get a specified built-in mesh element description.

Parameters
typethe kind of built-in mesh element description
Returns
the specified mesh element description.

◆ GetDeviceCompatibleARGBColor()

GraphicsDriverAPI DWORD GetDeviceCompatibleARGBColor ( DWORD color)

Use this function for TargetFormatA8R8G8B8 only.

DX10/11 doesn't support A8R8G8B8 which is only supported in DX9. So when we're using DX10/11 device, we will meet with color shift issue with the A8R8G8B8 format. So for a TargetHandle of TargetFormatA8R8G8B8, you may call this function to get a device compatible color.

Parameters
colorThe original color data.
Returns
the original color for a DX9 device. For DX10/DX11 device, returns a color with red and blue channels swapped.

◆ GetTargetFormatPixelSize()

GraphicsDriverAPI size_t GetTargetFormatPixelSize ( TargetFormat format)

Get the number of bytes for each pixel by a given target format.

Parameters
formatThe given target format.
Returns
The number of bytes for each pixel by that given target format.

◆ GenerateInstanceData() [1/2]

GraphicsDriverAPI VertexBufferHandle GenerateInstanceData ( Matrix3 * worldTransforms,
size_t count )

Generate the instance data from a Matrix3 array.

Remarks
The input matrix array should contain object-to-world matrices. Each matrix is used to render an mesh instance. The return object VertexBufferHandle is needed by GenerateInstanceRenderItem(). Multiple instance render items can share the same VertexBufferHandle. The returned vertex buffer contains world matrices and inverse transpose world matrices. This function automatically compute inverse transpose world matrices from world matrices and then fill the buffer.
Parameters
worldTransformspointer to world transform matrices. Each matrix is a instance of Mesh.
countthe number of the instances
Returns
the instance data handle.

◆ GenerateInstanceData() [2/2]

GraphicsDriverAPI VertexBufferHandle GenerateInstanceData ( Point3 * UVs,
Matrix3 * worldTransforms,
size_t count )

Generate the instance data from a texture coordinates array and a Matrix3 array.

Remarks
The input matrix array should contain object-to-world matrices. Each matrix is used to render an mesh instance which can have different texture coordinate. The return object VertexBufferHandle is needed by GenerateInstanceRenderItem(). Multiple instance render items can sharing the same VertexBufferHandle. The returned vertex buffer contains texture coordinate, world matrices and inverse transpose world matrices. This function automatically compute inverse transpose world matrices from world matrices and then fill the buffer.
Parameters
UVspointer to texture coordinate array.Each texture coordinate pair is for an instance of Mesh.
worldTransformspointer to world transform matrices. Each matrix is an instance of Mesh.
countthe number of the instances
Returns
the instance data handle.

◆ GenerateInstanceRenderItem() [1/2]

GraphicsDriverAPI bool GenerateInstanceRenderItem ( RenderItemHandle & hInstanceRenderItem,
const RenderItemHandle & hTupleMeshHandle,
const VertexBufferHandle & hInstanceData )

Generate the instance render item from a tuple mesh and a Matrix3 array.

Remarks
Instance rendering is a way to draw many objects that use the same geometry. These objects shares same materials and modifiers. The only difference between objects is world transformation. You can specify a matrix array for the mesh, then the mesh will be drawn for many times. Each corresponds to a matrix in the array. Typical usage of these instance functions should like following:
//Sample code fragment in IDisplay::UpdateDisplay()
//1. Generate render items from mesh.
mesh.GenerateRenderItems(tempRenderItemArray, generateRenderItemsContext);
//2. Generate instance data. The data can be shared by multiply instance render items.
MaxSDK::Graphics::GenerateInstanceData(Matrices, NumberOfMatrices);
//3. Check all of the render items and covert them to instance render item.
for (size_t i = 0; i < tempRenderItemArray.length(); ++i)
{
//4. Try to generate instance render item. Only tuple mesh render item can convert to instance render item
if (MaxSDK::Graphics::GenerateInstanceRenderItem(hInstanceItem, tempRenderItemArray[i], hInstanceData))
{
//If the function succeeded, add the generated instance render item to final render item array(mRenderItemHandles).
mRenderItemHandles.append(hInstanceItem) ;
}
else
{
//If the function failed, add original render item to the final array(mRenderItemHandles).
//Typically this render item is other render item type like immediate render item.
mRenderItemHandles.append(tempRenderItemArray[i]);
}
}
This is the base wrapper class for all viewport render items.
Definition RenderItemHandle.h:96
VertexBufferHandle is a memory buffer that contain vertex data.
Definition VertexBufferHandle.h:24
GraphicsDriverAPI VertexBufferHandle GenerateInstanceData(Matrix3 *worldTransforms, size_t count)
Generate the instance data from a Matrix3 array.
GraphicsDriverAPI bool GenerateInstanceRenderItem(RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const VertexBufferHandle &hInstanceData)
Generate the instance render item from a tuple mesh and a Matrix3 array.
Parameters
hInstanceRenderItemthe instance render item handle which can replace original tuple mesh render item.
hTupleMeshHandlehandle of a tuple mesh render item
hInstanceDatahandle generated by GenerateInstanceData
Returns
true if successful created the instance render item.

◆ GenerateInstanceRenderItem() [2/2]

GraphicsDriverAPI bool GenerateInstanceRenderItem ( RenderItemHandle & hInstanceRenderItem,
const RenderItemHandle & hTupleMeshHandle,
const ViewportInstancing::InstanceDisplayGeometry * pInstanceDisplayGeometry )

Generate the instance render item from a tuple mesh which is a ViewportInstancing::InstanceDisplayGeometry class.

This is an extension of the bool GenerateInstanceRenderItem(RenderItemHandle& hInstanceRenderItem, const RenderItemHandle& hTupleMeshHandle, const VertexBufferHandle& hInstanceData) function with more overridable data for instances. The previous method could only override the transform matrix in world space and UV from the map channel #1. The MaxSDK::Graphics::ViewportInstancing::InstanceDisplayGeometry class lets you override more data per instance. For more details, please see the header file maxsdk\include\Graphics\InstanceDisplayGeometry.h.

Parameters
hInstanceRenderItemthe instance render item handle which can replace original tuple mesh render item.
hTupleMeshHandlehandle of a tuple mesh render item
pInstanceDisplayGeometry: an InstanceDisplayGeometry*
Returns
true if successful created the instance render item.

◆ GetIViewportFragmentManager()

IViewportFragmentManager * GetIViewportFragmentManager ( )
inline

Helper function to retrieve a pointer on the IViewportFragmentManager interface.

Returns
a pointer on IViewportFragmentManager, the pointer cannot be null.
69{
71}
#define VIEWPORT_FRAGMENT_MANAGER_INTERFACE_ID
Definition IViewportFragmentManager.h:16
IViewportFragmentManager is used to manage the view fragment graph for viewports.
Definition IViewportFragmentManager.h:29
CoreExport Interface * GetCOREInterface()

◆ IsGpuPresent()

UtilExport bool IsGpuPresent ( )

Method that verifies if at least one GPU is present on the current system.

Returns
true if at least one GPU is present, false otherwise

Variable Documentation

◆ TYPE_ID_Char

FragmentGraphAPI Class_ID TYPE_ID_Char
extern

Built-in char input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_UnsignedChar

FragmentGraphAPI Class_ID TYPE_ID_UnsignedChar
extern

Built-in unsigned char input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_WideChar

FragmentGraphAPI Class_ID TYPE_ID_WideChar
extern

Built-in wchar_t input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Short

FragmentGraphAPI Class_ID TYPE_ID_Short
extern

Built-in short input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_UnsignedShort

FragmentGraphAPI Class_ID TYPE_ID_UnsignedShort
extern

Built-in unsigned short input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Int

FragmentGraphAPI Class_ID TYPE_ID_Int
extern

Built-in int input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_UnsignedInt

FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt
extern

Built-in unsigned int input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Long

FragmentGraphAPI Class_ID TYPE_ID_Long
extern

Built-in long input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_UnsignedLong

FragmentGraphAPI Class_ID TYPE_ID_UnsignedLong
extern

Built-in unsigned long input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Int64

FragmentGraphAPI Class_ID TYPE_ID_Int64
extern

Built-in __int64 input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_UnsignedInt64

FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt64
extern

Built-in unsigned __int64 input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Float

FragmentGraphAPI Class_ID TYPE_ID_Float
extern

Built-in float input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Double

FragmentGraphAPI Class_ID TYPE_ID_Double
extern

Built-in double input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_StringA

FragmentGraphAPI Class_ID TYPE_ID_StringA
extern

Built-in multi-byte string input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_StringW

FragmentGraphAPI Class_ID TYPE_ID_StringW
extern

Built-in Unicode string input/output type.

This can be used in the constructor of class Input/Output.

◆ TYPE_ID_Dictionary

FragmentGraphAPI Class_ID TYPE_ID_Dictionary
extern

Built-in dictionary input/output type.

This can be used in the constructor of class Input/Output.

◆ TIMER_NONE

const size_t TIMER_NONE = (size_t)-1

Use this value to unregister a timer with a fragment.

See also
Fragment::SetTimerTicks(DWORD timerTicks)

◆ EmptyIndexBufferHandle

GraphicsDriverAPI IndexBufferHandle EmptyIndexBufferHandle
extern

◆ EmptySmartHandleArray

GraphicsDriverAPI MaxSDK::Array<SmartHandle> EmptySmartHandleArray
extern

◆ EmptyTargetHandle

GraphicsDriverAPI TargetHandle EmptyTargetHandle
extern

◆ NIL_ID

const Identifier NIL_ID = (Identifier)-1

Invalid id value.

◆ EmptyVertexBufferHandle

GraphicsDriverAPI VertexBufferHandle EmptyVertexBufferHandle
extern

◆ EmptyVertexBufferHandleArray

GraphicsDriverAPI MaxSDK::Array<VertexBufferHandle> EmptyVertexBufferHandleArray
extern