Share via


IMTLIndirectRenderCommand Interface

Definition

This interface represents the Objective-C protocol MTLIndirectRenderCommand.

[Foundation.Protocol(Name="MTLIndirectRenderCommand", WrapperType=typeof(Metal.MTLIndirectRenderCommandWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetRenderPipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLRenderPipelineState) }, Selector="setRenderPipelineState:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVertexBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setVertexBuffer:offset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetFragmentBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setFragmentBuffer:offset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawPatches", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawIndexedPatches", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawPrimitives", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPrimitiveType), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawIndexedPrimitives", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPrimitiveType), typeof(System.UIntPtr), typeof(Metal.MTLIndexType), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Reset", Selector="reset")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVertexBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setVertexBuffer:offset:attributeStride:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetObjectThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setObjectThreadgroupMemoryLength:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetObjectBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setObjectBuffer:offset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetMeshBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setMeshBuffer:offset:atIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawMeshThreadgroups", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawMeshThreads", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBarrier", Selector="setBarrier")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ClearBarrier", Selector="clearBarrier")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthStencilState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDepthStencilState) }, Selector="setDepthStencilState:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthBias", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.Single), typeof(System.Single), typeof(System.Single) }, Selector="setDepthBias:slopeScale:clamp:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthClipMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDepthClipMode) }, Selector="setDepthClipMode:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetCullMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLCullMode) }, Selector="setCullMode:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetFrontFacingWinding", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLWinding) }, Selector="setFrontFacingWinding:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTriangleFillMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTriangleFillMode) }, Selector="setTriangleFillMode:")]
public interface IMTLIndirectRenderCommand : IDisposable, ObjCRuntime.INativeObject
[<Foundation.Protocol(Name="MTLIndirectRenderCommand", WrapperType=typeof(Metal.MTLIndirectRenderCommandWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetRenderPipelineState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLRenderPipelineState) }, Selector="setRenderPipelineState:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVertexBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setVertexBuffer:offset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetFragmentBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setFragmentBuffer:offset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawPatches", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawIndexedPatches", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawPrimitives", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPrimitiveType), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawIndexedPrimitives", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPrimitiveType), typeof(System.UIntPtr), typeof(Metal.MTLIndexType), typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Reset", Selector="reset")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetVertexBuffer", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setVertexBuffer:offset:attributeStride:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetObjectThreadgroupMemoryLength", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setObjectThreadgroupMemoryLength:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetObjectBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setObjectBuffer:offset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetMeshBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.IMTLBuffer), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="setMeshBuffer:offset:atIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawMeshThreadgroups", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="DrawMeshThreads", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLSize), typeof(Metal.MTLSize), typeof(Metal.MTLSize) }, Selector="drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetBarrier", Selector="setBarrier")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ClearBarrier", Selector="clearBarrier")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthStencilState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDepthStencilState) }, Selector="setDepthStencilState:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthBias", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.Single), typeof(System.Single), typeof(System.Single) }, Selector="setDepthBias:slopeScale:clamp:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetDepthClipMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLDepthClipMode) }, Selector="setDepthClipMode:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetCullMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLCullMode) }, Selector="setCullMode:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetFrontFacingWinding", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLWinding) }, Selector="setFrontFacingWinding:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetTriangleFillMode", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTriangleFillMode) }, Selector="setTriangleFillMode:")>]
type IMTLIndirectRenderCommand = interface
    interface INativeObject
    interface IDisposable
Attributes
Implements

Remarks

A class that implements this interface (and subclasses NSObject) will be exported to Objective-C as implementing the Objective-C protocol this interface represents.

A class may also implement members from this interface to implement members from the protocol.

Properties

Name Description
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)

Methods

Name Description
ClearBarrier()
DrawIndexedPatches(UIntPtr, UIntPtr, UIntPtr, IMTLBuffer, UIntPtr, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr, IMTLBuffer, UIntPtr, UIntPtr)
DrawIndexedPrimitives(MTLPrimitiveType, UIntPtr, MTLIndexType, IMTLBuffer, UIntPtr, UIntPtr, IntPtr, UIntPtr)
DrawMeshThreadgroups(MTLSize, MTLSize, MTLSize)
DrawMeshThreads(MTLSize, MTLSize, MTLSize)
DrawPatches(UIntPtr, UIntPtr, UIntPtr, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr, IMTLBuffer, UIntPtr, UIntPtr)
DrawPrimitives(MTLPrimitiveType, UIntPtr, UIntPtr, UIntPtr, UIntPtr)
Reset()
SetBarrier()
SetCullMode(MTLCullMode)
SetDepthBias(Single, Single, Single)
SetDepthClipMode(MTLDepthClipMode)
SetDepthStencilState(IMTLDepthStencilState)
SetFragmentBuffer(IMTLBuffer, UIntPtr, UIntPtr)
SetFrontFacingWinding(MTLWinding)
SetMeshBuffer(IMTLBuffer, UIntPtr, UIntPtr)
SetObjectBuffer(IMTLBuffer, UIntPtr, UIntPtr)
SetObjectThreadgroupMemoryLength(UIntPtr, UIntPtr)
SetRenderPipelineState(IMTLRenderPipelineState)
SetTriangleFillMode(MTLTriangleFillMode)
SetVertexBuffer(IMTLBuffer, UIntPtr, UIntPtr, UIntPtr)
SetVertexBuffer(IMTLBuffer, UIntPtr, UIntPtr)

Extension Methods

Name Description
ClearBarrier(IMTLIndirectRenderCommand)
DrawMeshThreadgroups(IMTLIndirectRenderCommand, MTLSize, MTLSize, MTLSize)
DrawMeshThreads(IMTLIndirectRenderCommand, MTLSize, MTLSize, MTLSize)
SetBarrier(IMTLIndirectRenderCommand)
SetCullMode(IMTLIndirectRenderCommand, MTLCullMode)
SetDepthBias(IMTLIndirectRenderCommand, Single, Single, Single)
SetDepthClipMode(IMTLIndirectRenderCommand, MTLDepthClipMode)
SetDepthStencilState(IMTLIndirectRenderCommand, IMTLDepthStencilState)
SetFrontFacingWinding(IMTLIndirectRenderCommand, MTLWinding)
SetMeshBuffer(IMTLIndirectRenderCommand, IMTLBuffer, UIntPtr, UIntPtr)
SetObjectBuffer(IMTLIndirectRenderCommand, IMTLBuffer, UIntPtr, UIntPtr)
SetObjectThreadgroupMemoryLength(IMTLIndirectRenderCommand, UIntPtr, UIntPtr)
SetTriangleFillMode(IMTLIndirectRenderCommand, MTLTriangleFillMode)
SetVertexBuffer(IMTLIndirectRenderCommand, IMTLBuffer, UIntPtr, UIntPtr, UIntPtr)
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to