3ds Max C++ API Reference
MaxSDK::Graphics Namespace Reference

Namespaces

 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 :
 
 Utilities
 
 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.
 
 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  AtomicRefCounter
 this class contains an integer which is initialized to zero. More...
 
class  BaseMaterialHandle
 This is base graphics material class. More...
 
class  BaseRasterHandle
 This is our base graphics raster resource class. More...
 
class  CustomRenderItemHandle
 CustomRenderItemHandle is a wrapper of ICustomRenderItem. More...
 
class  CustomRenderStageHandle
 CustomRenderStageHandle is the base wrapper class of the custom render stage. 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  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...
 
class  ConnectionPoint
 ConnectionPoint is the base class that manages the connections between view fragments. More...
 
class  Input
 Class that stores input information for a fragment. More...
 
class  Output
 Class that stores output information for a fragment. More...
 
struct  FragmentMessageParameter
 Message parameters. 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...
 
class  IVariableDictionary
 IVariableDictionary is a map structure that contains key/variable pairs. More...
 
class  Variable
 Variable is a simple class that stores certain data that a developer can decide at runtime. More...
 
class  ViewFragment
 Base class of all viewport fragment. 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  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  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  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...
 
struct  TextureCoordStream
 This structure is used to define vertex's texture coordinate information. More...
 
struct  SimpleVertexStream
 Used by DrawPrimitive and DrawIndexedPrimitive for vertex data. More...
 
class  IPrimitiveRenderer
 This class is used to draw simple primitives, markers, text with given material and transformations. More...
 
class  AutoRestoreWorldMatrix
 
class  IRefObject
 This class is similar to IUnknown in COM. More...
 
class  ARefObject
 This class implemented IRefObject interfaces. 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  DefaultLifeTimePolicy
 
class  RefPtr
 This template class act similar as CComPtr. 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  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  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  ITextureDisplay
 This interface enables material and texture map plugins to display textures in the new viewport display system in 3ds Max 2012. 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  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  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...
 
struct  Query_Data_SO_Statistics
 
class  QueryHandle
 QueryHandle is a query object used for submitting hardware queries. More...
 
struct  ConsolidationData
 This a structure that holds parameters used for render item consolidation. 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  RasterizerState
 This class encapsulates a complete rasterizer state, like fill mode, cull mode, point size, etc. More...
 
class  TargetBlendState
 This class holds the blend state for single render target. More...
 
class  BlendState
 This class holds the blend state for all render targets. More...
 
class  StencilOperation
 This class encapsulates a complete set of stencil buffer operations for stencil test. More...
 
class  DepthStencilState
 This class encapsulates a complete depth buffer and stencil buffer state. More...
 
class  RenderNodeIterator
 RenderNodeIterator is the iterator class to iterate all render nodes in the current render world. More...
 
class  RenderWorldHandle
 RenderWorldHandle is the base wrapper class of the nitrous world. More...
 
class  SimpleRenderGeometry
 SimpleRenderGeometry is a simple implementation of IRenderGeometry. 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  TargetHandle
 Application can use this class either as a render target or convert it to texture and assign to model. More...
 
class  PresentableTargetHandle
 This class is similar as TargetHandle. More...
 
struct  LockedRect
 Defines a rectangular region that has been locked by a call to TextureHandle::LockRect(). 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...
 
struct  RectangleSize
 the struct that defines the width and height of one rectangle. 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  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  UpdateViewContext
 This class contains view dependent information for calling IObjectDisplay2::UpdatePerViewItems() 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...
 
struct  EvaluationContext
 This struct is a collection of elements that are necessary in a render view. 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  IFixedViewportPipeline
 This class provide some facility to add some extended behavior to the fixed render pipeline. 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  IView
 This class is a representation of a basic view. 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  ViewParameter
 This class wrap up all viewport related parameters. More...
 
class  IPerViewportFilter
 The interface for filtering per viewport. 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. More...
 
typedef unsigned long Bitfields
 record the dirty flags of render view. More...
 
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  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 { 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. More...
 
FragmentGraphAPI bool IsCompatibleType (VarType lhs, VarType rhs)
 Checks if two types can be converted to each other. More...
 
DataBridgeAPI size_t GetVertexStride (const VertexFieldType type)
 Get the vertex stride by a given vertex type, in bytes. More...
 
DataBridgeAPI size_t GetIndexStride (const IndexType type)
 Get the index stride by a given index type, in bytes. More...
 
GraphicsDriverAPI size_t CombineHashCode (size_t seed, size_t hashCode)
 A utility function for generating hash code. More...
 
UtilExport MaxSDK::Graphics::IDisplayManagerGetIDisplayManager ()
 Helper function to access the IDisplayManager core interface. More...
 
bool IsRetainedModeEnabled ()
 Helper function to test whether the new viewport graphics system is running. More...
 
bool IsHardwareHitTesting (ViewExp *vpt)
 Helper function to test whether the new viewport graphics system is performing hardware hit testing. More...
 
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)
 
GraphicsDriverAPI void MaxWorldMatrixToMatrix44 (Matrix44 &outMatrix, const Matrix3 &inMatrix)
 Convert Matrix3 to Matrix44. More...
 
GraphicsDriverAPI void Matrix44ToMaxWorldMatrix (Matrix3 &outMatrix, const Matrix44 &inMatrix)
 Convert Matrix44 to Matrix3. More...
 
GraphicsDriverAPI const MeshElementDescriptionGetBuiltInMeshElementDescription (BuiltInMeshElementDescription type)
 Get a specified built-in mesh element description. More...
 
GraphicsDriverAPI DWORD GetDeviceCompatibleARGBColor (DWORD color)
 Use this function for TargetFormatA8R8G8B8 only. More...
 
GraphicsDriverAPI size_t GetTargetFormatPixelSize (TargetFormat format)
 Get the number of bytes for each pixel by a given target format. More...
 
GraphicsDriverAPI VertexBufferHandle GenerateInstanceData (Matrix3 *worldTransforms, size_t count)
 Generate the instance data from a Matrix3 array. More...
 
GraphicsDriverAPI VertexBufferHandle GenerateInstanceData (Point3 *UVs, Matrix3 *worldTransforms, size_t count)
 Generate the instance data from a texture coordinates array and a Matrix3 array. More...
 
GraphicsDriverAPI bool GenerateInstanceRenderItem (RenderItemHandle &hInstanceRenderItem, const RenderItemHandle &hTupleMeshHandle, const VertexBufferHandle &hInstanceData)
 Generate the instance render item from a tuple mesh and a Matrix3 array. More...
 
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. More...
 
ViewSystemAPI IActiveShadeFragmentGetActiveShadeFragmentFromActiveViewport ()
 Get the ActiveShade fragment from the active viewport. More...
 
UtilExport bool IsGpuPresent ()
 Method that verifies if at least one GPU is present on the current system. More...
 

Variables

FragmentGraphAPI Class_ID TYPE_ID_Char
 Built-in char input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_UnsignedChar
 Built-in unsigned char input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_WideChar
 Built-in wchar_t input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Short
 Built-in short input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_UnsignedShort
 Built-in unsigned short input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Int
 Built-in int input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt
 Built-in unsigned int input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Long
 Built-in long input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_UnsignedLong
 Built-in unsigned long input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Int64
 Built-in __int64 input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_UnsignedInt64
 Built-in unsigned __int64 input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Float
 Built-in float input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Double
 Built-in double input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_StringA
 Built-in multi-byte string input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_StringW
 Built-in Unicode string input/output type. More...
 
FragmentGraphAPI Class_ID TYPE_ID_Dictionary
 Built-in dictionary input/output type. More...
 
const size_t TIMER_NONE = (size_t)-1
 Use this value to unregister a timer with a fragment. More...
 
GraphicsDriverAPI IndexBufferHandle EmptyIndexBufferHandle
 
GraphicsDriverAPI MaxSDK::Array< SmartHandleEmptySmartHandleArray
 
GraphicsDriverAPI TargetHandle EmptyTargetHandle
 
const Identifier NIL_ID = (Identifier)-1
 Invalid id value. More...
 
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,
30  VT_WideChar,
33  VT_Short,
39  VT_Int,
45  VT_Long,
51  VT_Int64,
57  VT_Float,
60  VT_Double,
63  VT_StringA,
66  VT_StringW,
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  {
24  VertexFieldFloat1 = 0,
25 
29  VertexFieldFloat2 = 1,
30 
34  VertexFieldFloat3 = 2,
35 
39  VertexFieldFloat4 = 3,
40 
44  VertexFieldColor = 4,
45 
49  VertexFieldByte4 = 5,
50 
54  VertexFieldShort2 = 6,
55 
59  VertexFieldShort4 = 7,
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  {
133  MeshChannelPosition = 0,
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 
181  IndexTypeInt,
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  {
204  BufferUsageStatic = 0,
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 
281  BufferPoolTypeHardwareBuffer = 0x1 << 2,
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 BloomQuality
strong

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

Enumerator
Gaussian_3x3 
Gaussian_5x5 
Gaussian_7x7 
Gaussian_9x9 
NumValues 

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

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

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

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

◆ 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,
281  CullModeCCW,
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  {
338  ColorWriteEnableAlpha = 0x8,
342  ColorWriteEnableBlue = 0x4,
346  ColorWriteEnableGreen = 0x2,
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  {
633  TextureTypeUnknown = 0,
634 
637  TextureTypeImage1D = 1,
638 
642 
645  TextureTypeImage2D = 3,
646 
650 
653  TextureTypeCubeMap = 5,
654 
657  TextureTypeVolume = 6,
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,
726  QueryType_TimeStamp = 10,
740  QueryType_SO_Stats = 22
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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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:128
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 MaxSDK::Graphics::IsRetainedModeEnabled ( )
inline

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

Returns
TRUE if new viewport graphics is active
79 {
80  IDisplayManager* pGraphicsManager = GetIDisplayManager();
81  return NULL != pGraphicsManager && pGraphicsManager->IsRetainedModeEnabled();
82 }
#define NULL
Definition: autoptr.h:18
UtilExport MaxSDK::Graphics::IDisplayManager * GetIDisplayManager()
Helper function to access the IDisplayManager core interface.

◆ IsHardwareHitTesting()

bool MaxSDK::Graphics::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.
89 {
90  IDisplayManager* pGraphicsManager = GetIDisplayManager();
91  return NULL != pGraphicsManager && pGraphicsManager->IsHardwareHitTesting(vpt);
92 }

◆ operator==()

bool MaxSDK::Graphics::operator== ( void pPtr,
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &  pInterface 
)
inline
381 {
382  return pPtr == pInterface.GetPointer();
383 }

◆ operator!=()

bool MaxSDK::Graphics::operator!= ( void pPtr,
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &  pInterface 
)
inline
392 {
393  return pPtr != pInterface.GetPointer();
394 }

◆ MaxWorldMatrixToMatrix44()

GraphicsDriverAPI void MaxSDK::Graphics::MaxWorldMatrixToMatrix44 ( Matrix44 outMatrix,
const Matrix3 inMatrix 
)

Convert Matrix3 to Matrix44.

Parameters
outMatrixthe Matrix44 output
inMatrixthe source Matrix3

◆ Matrix44ToMaxWorldMatrix()

GraphicsDriverAPI void MaxSDK::Graphics::Matrix44ToMaxWorldMatrix ( Matrix3 outMatrix,
const Matrix44 inMatrix 
)

Convert Matrix44 to Matrix3.

Parameters
outMatrixthe Matrix3 output
inMatrixthe source Matrix44

◆ GetBuiltInMeshElementDescription()

GraphicsDriverAPI const MeshElementDescription& MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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 MaxSDK::Graphics::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.

◆ GetActiveShadeFragmentFromActiveViewport()

ViewSystemAPI IActiveShadeFragment* MaxSDK::Graphics::GetActiveShadeFragmentFromActiveViewport ( )

Get the ActiveShade fragment from the active viewport.

Link your project using this function with ViewSystem.lib as MaxSDK::Graphics::IActiveShadeFragment* MaxSDK::Graphics::GetActiveShadeFragmentFromActiveViewport() is implemented in ViewSystem.

Returns
a IActiveShadeFragment pointer or nullptr is something failed for some reason, such as you are querying this ActiveShadeFragment on a viewport that is not a 3D viewport.

◆ IsGpuPresent()

UtilExport bool MaxSDK::Graphics::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