IMTLFunction Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
System protocol for shader functions that are suitable for use on a GPU in a shader or compute function.
[Foundation.Protocol(Name="MTLFunction", WrapperType=typeof(Metal.MTLFunctionWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateArgumentEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLArgumentEncoder), Selector="newArgumentEncoderWithBufferIndex:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateArgumentEncoder", ParameterByRef=new System.Boolean[] { false, true }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLArgument) }, ReturnType=typeof(Metal.IMTLArgumentEncoder), Selector="newArgumentEncoderWithBufferIndex:reflection:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="functionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="FunctionType", PropertyType=typeof(Metal.MTLFunctionType), Selector="functionType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="vertexAttributes", IsProperty=true, IsRequired=true, IsStatic=false, Name="VertexAttributes", PropertyType=typeof(Metal.MTLVertexAttribute[]), Selector="vertexAttributes")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="name", IsProperty=true, IsRequired=true, IsStatic=false, Name="Name", PropertyType=typeof(System.String), Selector="name")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="patchType", IsProperty=true, IsRequired=true, IsStatic=false, Name="PatchType", PropertyType=typeof(Metal.MTLPatchType), Selector="patchType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="patchControlPointCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="PatchControlPointCount", PropertyType=typeof(System.IntPtr), Selector="patchControlPointCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="stageInputAttributes", IsProperty=true, IsRequired=true, IsStatic=false, Name="StageInputAttributes", PropertyType=typeof(Metal.MTLAttribute[]), Selector="stageInputAttributes")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="functionConstantsDictionary", IsProperty=true, IsRequired=true, IsStatic=false, Name="FunctionConstants", PropertyType=typeof(Foundation.NSDictionary<Foundation.NSString,Metal.MTLFunctionConstant>), Selector="functionConstantsDictionary")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="options", IsProperty=true, IsRequired=true, IsStatic=false, Name="Options", PropertyType=typeof(Metal.MTLFunctionOptions), Selector="options")]
public interface IMTLFunction : IDisposable, ObjCRuntime.INativeObject
[<Foundation.Protocol(Name="MTLFunction", WrapperType=typeof(Metal.MTLFunctionWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateArgumentEncoder", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLArgumentEncoder), Selector="newArgumentEncoderWithBufferIndex:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateArgumentEncoder", ParameterByRef=new System.Boolean[] { false, true }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLArgument) }, ReturnType=typeof(Metal.IMTLArgumentEncoder), Selector="newArgumentEncoderWithBufferIndex:reflection:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="functionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="FunctionType", PropertyType=typeof(Metal.MTLFunctionType), Selector="functionType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="vertexAttributes", IsProperty=true, IsRequired=true, IsStatic=false, Name="VertexAttributes", PropertyType=typeof(Metal.MTLVertexAttribute[]), Selector="vertexAttributes")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="name", IsProperty=true, IsRequired=true, IsStatic=false, Name="Name", PropertyType=typeof(System.String), Selector="name")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="patchType", IsProperty=true, IsRequired=true, IsStatic=false, Name="PatchType", PropertyType=typeof(Metal.MTLPatchType), Selector="patchType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="patchControlPointCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="PatchControlPointCount", PropertyType=typeof(System.IntPtr), Selector="patchControlPointCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="stageInputAttributes", IsProperty=true, IsRequired=true, IsStatic=false, Name="StageInputAttributes", PropertyType=typeof(Metal.MTLAttribute[]), Selector="stageInputAttributes")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="functionConstantsDictionary", IsProperty=true, IsRequired=true, IsStatic=false, Name="FunctionConstants", PropertyType=typeof(Foundation.NSDictionary<Foundation.NSString,Metal.MTLFunctionConstant>), Selector="functionConstantsDictionary")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="options", IsProperty=true, IsRequired=true, IsStatic=false, Name="Options", PropertyType=typeof(Metal.MTLFunctionOptions), Selector="options")>]
type IMTLFunction = interface
interface INativeObject
interface IDisposable
- Attributes
- Implements
Properties
| Name | Description |
|---|---|
| Device | |
| FunctionConstants | |
| FunctionType | |
| Handle |
Handle (pointer) to the unmanaged object representation. (Inherited from INativeObject) |
| Label | |
| Name | |
| Options | |
| PatchControlPointCount | |
| PatchType | |
| StageInputAttributes | |
| VertexAttributes | |
Methods
| Name | Description |
|---|---|
| CreateArgumentEncoder(UIntPtr, MTLArgument) |
Creates a new argument encoder for the specified buffer index and reflection argument. |
| CreateArgumentEncoder(UIntPtr) |
Creates a new argument encoder for the specified buffer index. |
Extension Methods
| Name | Description |
|---|---|
| GetOptions(IMTLFunction) | |
| GetHandle(INativeObject) | |
| GetNonNullHandle(INativeObject, String) | |