This reference page is linked to from the following overview topics: New Classes and Methods, Porting Object Plug-ins to Nitrous, Plug-in Display Interface, About RenderItem.
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... |
|
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 |
The pipeline context contains the complete
state of a single item being drawn all system supplied variables
are contained here, as is the current virtual device. 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 | HLSLMaterialHandle |
HLSLMaterialHandle is a material class to support HLSL custom
material.
More... |
|
class | ICustomRenderItem |
This class is used to custom 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 |
class | IDisplayManager2 |
This is IDisplayManager
extension, add a new interface to get device caps. 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 | IObjectDisplay |
This is the base interface for all objects
that want to be displayed in viewport. More... |
|
class | IAddRenderItemsHelper |
Internal used only.
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
except that this class don't have a QueryInterface function.
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 presentation of 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 | DisplayTextureHelper |
Used for creating 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 | IVirtualDevice |
This class provides low level access of 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 | MaxContext |
MaxContext contains pointers to all the viewports the given
object will be displayed. 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 | 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 | 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 | ChildObjectDisplayCallback |
This is the utility display callback class
for any compound object that would like to customize the display of
its child objects so that each child object could decide on its own
how its child render items would be rendered when IDisplayCallback::DoDisplay()
is invoked.
More... |
|
class | CompoundObjectAddRenderItemsHelper |
This is the utility AddRenderItemsHelper
class for any compound object that would like to customize the
display of its child-objects.
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... |
|
class | UpdateDisplayContext |
This class contains all information that
will be passed to IObjectDisplay::UpdateDisplay
and will be used by plugin to update its display data.
More... |
|
class | UpdateNodeContext |
This class contains node dependent
information for calling
IObjectDisplay2::UpdatePerNodeItems(), and
IObjectDisplay2::UpdatePerViewItems()
More... |
|
class | UpdateViewContext |
This class contains view dependent
information for calling
IObjectDisplay2::UpdatePerViewItems()
More... |
|
class | VertexBufferHandle |
VertexBufferHandle
is a memory buffer that contain vertex data.
More... |
|
class | VertexColorMaterialHandle |
VertexColorMaterialHandle is a material class to support vertex
color.
More... |
|
Typedefs |
|
typedef RefPtr< ICustomRenderItem > | ICustomRenderItemPtr |
typedef RefPtr< IDisplayCallback > | IDisplayCallbackPtr |
typedef RefPtr< IRefObject > | RefObjectPtr |
typedef RefPtr< IRenderGeometry > | IRenderGeometryPtr |
typedef
RefPtr < ChildObjectDisplayCallback > |
ChildObjectDisplayCallbackPtr |
typedef
MaxSDK::Array < TargetHandle > |
TargetHandleArray |
typedef unsigned __int64 | Identifier |
This is the unique id type of our internal
graphics objects. |
|
typedef
MaxSDK::Array < VertexBufferHandle > |
VertexBufferHandleArray |
Enumerations |
|
enum |
VertexFieldType { VertexFieldTypeUnknown, VertexFieldFloat1, VertexFieldFloat2, VertexFieldFloat3, VertexFieldFloat4, VertexFieldColor, VertexFieldTypeCount } |
types available for vertex fields, e.g.
More... |
|
enum |
VertexFieldUsage { VertexFieldUsageUnknown, VertexFieldUsagePosition, VertexFieldUsageNormal, VertexFieldUsageDiffuse, VertexFieldUsageSpecular, VertexFieldUsageTexcoord, VertexFieldUsageTangent, VertexFieldUsageBitangent, VertexFieldUsageCount } |
Indicates the usage of a vertex field of a
vertex buffer.
More... |
|
enum |
MeshChannelCategory { MeshChannelUnknown, MeshChannelPosition, MeshChannelVertexNormal, MeshChannelTexcoord, MeshChannelVertexColor, MeshChannelTangent, MeshChannelBitangent, 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 { BufferUsageTypeNone, BufferUsageStatic, BufferUsageDynamic, BufferUsageStreamOut, BufferUsageShaderResource, BufferUsageStreamOutAndShaderResource } |
BufferUsageType Types for OGS buffer usage.
More... |
|
enum |
VisualStyle { VisualStyleRealistic = 0, VisualStyleShaded, VisualStyleFacets, VisualStyleConsistentColor, VisualStyleHiddenLine, VisualStyleWireframe, VisualStyleBoundingBox, VisualStyleInk, VisualStyleColorInk, VisualStyleAcrylic, VisualStyleTech, VisualStyleGraphite, VisualStyleColorPencil, VisualStylePastel, VisualStyleClay, VisualStyleCount } |
Enum type for all visual styles of nitrous
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 |
PrimitiveType { PrimitivePointList, PrimitiveLineList, PrimitiveLineStrip, PrimitiveTriangleList, PrimitiveTriangleStrip, 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 |
TextureFormat { TextureFormatUnknown, TextureFormatA8R8G8B8, TextureFormatA16B16G16R16, TextureFormatA32B32G32R32F, TextureFormatCount } |
TextureFormat indicates which type the
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 |
RenderItemCategory { RenderItemCategorySolidMesh = 0x00000001, RenderItemCategoryDiagonalMesh = 0x00000002, RenderItemCategoryEdgeMesh = 0x00000004, RenderItemCategorySubObjectVertexTicks = 0x00000008, RenderItemCategorySubObjectEdgeMesh = 0x00000010, RenderItemCategoryOtherSubObjects = 0x00000020, RenderItemCategoryGizmo = 0x00000040 } |
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 |
|
DataBridgeAPI size_t | GetVertexStride (const VertexFieldType type) |
Get the vertex stride by a given vertex
type, in bytes. |
|
DataBridgeAPI size_t | GetIndexStride (const IndexType type) |
Get the index stride by a given index type,
in bytes. |
|
CoreExport IDisplayManager * | GetIDisplayManager () |
CoreExport IDisplayManager2 * | GetIDisplayManager2 () |
Helper function to access the
IDisplayManager2 core interface. |
|
bool | IsRetainedModeEnabled () |
Helper function to test whether the new
viewport graphics system is running. |
|
bool | IsHardwareHitTesting (ViewExp *vpt) |
Helper function to test whether the new
viewport graphics system is performing hardware hit testing.
|
|
template<class RefObjectType , class SafeRefObjectType , class LifeTimePolicy > | |
bool | operator== (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface) |
template<class RefObjectType , class SafeRefObjectType , class LifeTimePolicy > | |
bool | operator!= (void *pPtr, const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > &pInterface) |
GraphicsDriverAPI void | MaxWorldMatrixToMatrix44 (Matrix44 &outMatrix, const Matrix3 &inMatrix) |
Convert Matrix3 to Matrix44.
|
|
GraphicsDriverAPI void | Matrix44ToMaxWorldMatrix (Matrix3 &outMatrix, const Matrix44 &inMatrix) |
Convert Matrix44 to
Matrix3. |
|
GraphicsDriverAPI const MeshElementDescription & |
GetBuiltInMeshElementDescription (BuiltInMeshElementDescription type) |
Get a specified built-in mesh element
description. |
|
GraphicsDriverAPI size_t | GetTextureFormatPixelSize (TextureFormat format) |
Get the number of bytes for each pixel by a
given texture format. |
|
MAX_DEPRECATED GraphicsDriverAPI void |
GenerateRenderItems (RenderItemHandleArray &renderItems, Mesh *pMaxMesh, unsigned long renderItemCategoryFlags, const MaterialRequiredStreams &requiredStreams) |
MAX_DEPRECATED GraphicsDriverAPI void |
GenerateRenderItems (RenderItemHandleArray &renderItems, MNMesh *pMaxMesh, unsigned long renderItemCategoryFlags, const MaterialRequiredStreams &requiredStreams) |
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. |
|
Variables |
|
const Identifier | NIL_ID = (Identifier)-1 |
Invalid id value. |
typedef unsigned __int64 Identifier |
This is the unique id type of our internal graphics objects.
enum VertexFieldType |
types available for vertex fields, e.g.
Float4
enum 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.
enum MeshChannelCategory |
Indicates the data source of a vertex field of a mesh vertex buffer.
e.g. Position, Normal, Texture, etc.
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.
enum BufferUsageType |
BufferUsageType Types for OGS buffer usage.
enum VisualStyle |
Enum type for all visual styles of nitrous viewport.
{ VisualStyleRealistic = 0, VisualStyleShaded, VisualStyleFacets, VisualStyleConsistentColor, VisualStyleHiddenLine, VisualStyleWireframe, VisualStyleBoundingBox, VisualStyleInk, VisualStyleColorInk, VisualStyleAcrylic, VisualStyleTech, VisualStyleGraphite, VisualStyleColorPencil, VisualStylePastel, VisualStyleClay, VisualStyleCount, };
This enum contains flags that can be combined together to specify whether or not certain functions of IObjectDisplay2 will be supported.
{ ObjectDisplayRequireLegacyDisplayMode = 0x00000001, ObjectDisplayRequireUpdatePerViewItems = 0x00000002, };
This enum defines requirement flags of material additional to mesh stream requirements of MaterialRequiredStreams.
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. |
{ MaterialRequirementSplitByMaterialID = 0x00000001, };
enum 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().
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 |
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. |
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.
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.
enum PrimitiveType |
Supported primitive types.
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.
|
PrimitiveTypeCount |
enum BufferClearFlag |
This flag describes the way to clear the current buffers.
ClearBackbuffer |
clear the target |
ClearDepthBuffer |
clear the zbuffer |
ClearStencilBuffer |
clear the stencil |
ClearAll |
clear the zbuffer, target & stencil |
{ ClearBackbuffer = 0x1, ClearDepthBuffer = 0x2, ClearStencilBuffer = 0x4, ClearAll = 0x7, };
enum BlendSelector |
blend selector.
selects a blend source/destination
{ BlendSelectorBlendFactor, BlendSelectorBothInvSourceAlpha, BlendSelectorBothSourceAlpha, BlendSelectorDestinationAlpha, BlendSelectorDestinationColor, BlendSelectorInvBlendFactor, BlendSelectorInvDestinationAlpha, BlendSelectorInvDestinationColor, BlendSelectorInvSourceAlpha, BlendSelectorInvSourceColor, BlendSelectorOne, BlendSelectorSourceAlpha, BlendSelectorSourceAlphaSat, BlendSelectorSourceColor, BlendSelectorZero };
enum CullMode |
cull type.
CullModeCW |
cull backfaces of CW polygons |
CullModeCCW |
cull backfaces of CCW polygons |
CullModeNone |
don't cull backfaces |
{ CullModeCW, CullModeCCW, CullModeNone };
enum FillMode |
fill mode for polygons
{ FillSolid, FillWireFrame } ;
enum CompareFunction |
compare functions
enum ColorWriteEnable |
{ ColorWriteEnableNone = 0, ColorWriteEnableAlpha = 0x8, ColorWriteEnableBlue = 0x4, ColorWriteEnableGreen = 0x2, ColorWriteEnableRed = 0x1, ColorWriteEnableRedGreenBlue = 0x7, ColorWriteEnableRedGreenBlueAlpha = 0xf, WRITEENABLE_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ };
enum BlendOperation |
blend operations
enum StencilOperationType |
Stencil buffer operation.
{ StencilOperationTypeDecrement = 8, StencilOperationTypeDecrementSaturation = 5, StencilOperationTypeIncrement = 7, StencilOperationTypeIncrementSaturation = 4, StencilOperationTypeInvert = 6, StencilOperationTypeKeep = 1, StencilOperationTypeReplace = 3, StencilOperationTypeZeroStencil = 2, STENCILOP_FORCE_DWORD = 0x7fffffff, /* force 32-bit size enum */ };
enum AccessType |
AccessType Types for accessing buffers.
{ AccessTypeNone = 0x0, ReadAcess = 0x1, WriteAcess = 0x2, /* Data will be read and written. */ ReadWriteAcess = ReadAcess | WriteAcess, //0x3 WriteDiscardAcess };
enum TextureFormat |
TextureFormat indicates which type the texture is.
enum GraphicFeatureLevel |
This enum specifies the feature levels device supported.
{ 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 };
enum TextureType |
Texture type enums.
{ TextureTypeUnknown = 0, TextureTypeImage1D = 1, TextureTypeImage1DArray = 2, TextureTypeImage2D = 3, TextureTypeImage2DArray = 4, TextureTypeCubeMap = 5, TextureTypeVolume = 6, TextureTypeCount };
enum ResourceUsage |
Resource usage, used for texture.
{ ResourceUsageNormal = 0, ResourceUsageDynamic = 1, ResourceUsageStaging = 2, ResourceUsageMask = 0xf, ResourceUsageStream = 0x10, ResourceUsageTarget = 0x20, };
enum RenderItemCategory |
NOTE: There's no replacement for this enum.
{ RenderItemCategorySolidMesh = 0x00000001, RenderItemCategoryDiagonalMesh = 0x00000002, RenderItemCategoryEdgeMesh = 0x00000004, RenderItemCategorySubObjectVertexTicks = 0x00000008, RenderItemCategorySubObjectEdgeMesh = 0x00000010, RenderItemCategoryOtherSubObjects = 0x00000020, RenderItemCategoryGizmo = 0x00000040, };
This enum defines in what group a render item is visible.
This enum contains flags that can be combined together to specify which part is required by the node when updating render items.
{ ObjectComponentSolidMesh = 0x00000001, ObjectComponentWireframe = 0x00000002, ObjectComponentVertexTicks = 0x00000004, ObjectComponentDiagonal = 0x00000008, ObjectComponentSelected = 0x00000010, ObjectComponentUnselected = 0x00000020, ObjectComponentBackfaceCull = 0x00000040, ObjectComponentVertexColorSoftSelection = 0x00000080, };
DataBridgeAPI size_t MaxSDK::Graphics::GetVertexStride | ( | const VertexFieldType | type | ) |
Get the vertex stride by a given vertex type, in bytes.
type | the vertex type. |
DataBridgeAPI size_t MaxSDK::Graphics::GetIndexStride | ( | const IndexType | type | ) |
Get the index stride by a given index type, in bytes.
type | the index type. |
CoreExport IDisplayManager* MaxSDK::Graphics::GetIDisplayManager | ( | ) |
Use GetIDisplayManager2() instead. /*! Helper function to access the IDisplayManager core interface
CoreExport IDisplayManager2* MaxSDK::Graphics::GetIDisplayManager2 | ( | ) |
Helper function to access the IDisplayManager2 core interface.
bool MaxSDK::Graphics::IsRetainedModeEnabled | ( | ) | [inline] |
Helper function to test whether the new viewport graphics system is running.
{ IDisplayManager* pGraphicsManager = GetIDisplayManager(); return NULL != pGraphicsManager && pGraphicsManager->IsRetainedModeEnabled(); }
bool MaxSDK::Graphics::IsHardwareHitTesting | ( | ViewExp * | vpt | ) | [inline] |
Helper function to test whether the new viewport graphics system is performing hardware hit testing.
vpt | The specific viewport in which we want to know whether we are performing hardware hit testing. |
{ IDisplayManager* pGraphicsManager = GetIDisplayManager(); return NULL != pGraphicsManager && pGraphicsManager->IsHardwareHitTesting(vpt); }
bool MaxSDK::Graphics::operator== | ( | void * | pPtr, |
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > & | pInterface | ||
) | [inline] |
{
return pPtr == pInterface.GetPointer();
}
bool MaxSDK::Graphics::operator!= | ( | void * | pPtr, |
const RefPtr< RefObjectType, SafeRefObjectType, LifeTimePolicy > & | pInterface | ||
) | [inline] |
{
return pPtr != pInterface.GetPointer();
}
GraphicsDriverAPI void MaxSDK::Graphics::MaxWorldMatrixToMatrix44 | ( | Matrix44 & | outMatrix, |
const Matrix3 & | inMatrix | ||
) |
GraphicsDriverAPI void MaxSDK::Graphics::Matrix44ToMaxWorldMatrix | ( | Matrix3 & | outMatrix, |
const Matrix44 & | inMatrix | ||
) |
GraphicsDriverAPI const MeshElementDescription& MaxSDK::Graphics::GetBuiltInMeshElementDescription | ( | BuiltInMeshElementDescription | type | ) |
Get a specified built-in mesh element description.
type | the kind of built-in mesh element description |
GraphicsDriverAPI size_t MaxSDK::Graphics::GetTextureFormatPixelSize | ( | TextureFormat | format | ) |
Get the number of bytes for each pixel by a given texture format.
format | The given texture format. |
MAX_DEPRECATED GraphicsDriverAPI void MaxSDK::Graphics::GenerateRenderItems | ( | RenderItemHandleArray & | renderItems, |
Mesh * | pMaxMesh, | ||
unsigned long | renderItemCategoryFlags, | ||
const MaterialRequiredStreams & | requiredStreams | ||
) |
Please use Mesh::GenerateRenderItems() instead
MAX_DEPRECATED GraphicsDriverAPI void MaxSDK::Graphics::GenerateRenderItems | ( | RenderItemHandleArray & | renderItems, |
MNMesh * | pMaxMesh, | ||
unsigned long | renderItemCategoryFlags, | ||
const MaterialRequiredStreams & | requiredStreams | ||
) |
Please use MNMesh::GenerateRenderItems() instead
GraphicsDriverAPI VertexBufferHandle MaxSDK::Graphics::GenerateInstanceData | ( | Matrix3 * | worldTransforms, |
size_t | count | ||
) |
Generate the instance data from a Matrix3 array.
worldTransforms | pointer to world transform matrices. Each matrix is a instance of Mesh. |
count | the number of the instances |
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.
//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::VertexBufferHandle hInstanceData = 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) { MaxSDK::Graphics::RenderItemHandle hInstanceItem; //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 successed, 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]); } }
hInstanceRenderItem | the instance render item handle which can replace original tuple mesh render item. |
hTupleMeshHandle | handle of a tuple mesh render item |
hInstanceData | handle generated by GenerateInstanceData |
const Identifier NIL_ID = (Identifier)-1 |
Invalid id value.