pub unsafe trait MTLArgumentEncoder: NSObjectProtocol {
Show 28 methods
// Provided methods
fn device(&self) -> Retained<ProtocolObject<dyn MTLDevice>>
where Self: Sized + Message { ... }
fn label(&self) -> Option<Retained<NSString>>
where Self: Sized + Message { ... }
fn setLabel(&self, label: Option<&NSString>)
where Self: Sized + Message { ... }
fn encodedLength(&self) -> NSUInteger
where Self: Sized + Message { ... }
fn alignment(&self) -> NSUInteger
where Self: Sized + Message { ... }
unsafe fn setArgumentBuffer_offset(
&self,
argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
offset: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setArgumentBuffer_startOffset_arrayElement(
&self,
argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
start_offset: NSUInteger,
array_element: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setBuffer_offset_atIndex(
&self,
buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
offset: NSUInteger,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setBuffers_offsets_withRange(
&self,
buffers: NonNull<*const ProtocolObject<dyn MTLBuffer>>,
offsets: NonNull<NSUInteger>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setTexture_atIndex(
&self,
texture: Option<&ProtocolObject<dyn MTLTexture>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setTextures_withRange(
&self,
textures: NonNull<*const ProtocolObject<dyn MTLTexture>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setSamplerState_atIndex(
&self,
sampler: Option<&ProtocolObject<dyn MTLSamplerState>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setSamplerStates_withRange(
&self,
samplers: NonNull<*const ProtocolObject<dyn MTLSamplerState>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn constantDataAtIndex(&self, index: NSUInteger) -> NonNull<c_void>
where Self: Sized + Message { ... }
unsafe fn setRenderPipelineState_atIndex(
&self,
pipeline: Option<&ProtocolObject<dyn MTLRenderPipelineState>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setRenderPipelineStates_withRange(
&self,
pipelines: NonNull<*const ProtocolObject<dyn MTLRenderPipelineState>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setComputePipelineState_atIndex(
&self,
pipeline: Option<&ProtocolObject<dyn MTLComputePipelineState>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setComputePipelineStates_withRange(
&self,
pipelines: NonNull<*const ProtocolObject<dyn MTLComputePipelineState>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setIndirectCommandBuffer_atIndex(
&self,
indirect_command_buffer: Option<&ProtocolObject<dyn MTLIndirectCommandBuffer>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setIndirectCommandBuffers_withRange(
&self,
buffers: NonNull<*const ProtocolObject<dyn MTLIndirectCommandBuffer>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setAccelerationStructure_atIndex(
&self,
acceleration_structure: Option<&ProtocolObject<dyn MTLAccelerationStructure>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn newArgumentEncoderForBufferAtIndex(
&self,
index: NSUInteger,
) -> Option<Retained<ProtocolObject<dyn MTLArgumentEncoder>>>
where Self: Sized + Message { ... }
unsafe fn setVisibleFunctionTable_atIndex(
&self,
visible_function_table: Option<&ProtocolObject<dyn MTLVisibleFunctionTable>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setVisibleFunctionTables_withRange(
&self,
visible_function_tables: NonNull<*const ProtocolObject<dyn MTLVisibleFunctionTable>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setIntersectionFunctionTable_atIndex(
&self,
intersection_function_table: Option<&ProtocolObject<dyn MTLIntersectionFunctionTable>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setIntersectionFunctionTables_withRange(
&self,
intersection_function_tables: NonNull<*const ProtocolObject<dyn MTLIntersectionFunctionTable>>,
range: NSRange,
)
where Self: Sized + Message { ... }
unsafe fn setDepthStencilState_atIndex(
&self,
depth_stencil_state: Option<&ProtocolObject<dyn MTLDepthStencilState>>,
index: NSUInteger,
)
where Self: Sized + Message { ... }
unsafe fn setDepthStencilStates_withRange(
&self,
depth_stencil_states: NonNull<*const ProtocolObject<dyn MTLDepthStencilState>>,
range: NSRange,
)
where Self: Sized + Message { ... }
}MTLArgumentEncoder only.Expand description
MTLArgumentEncoder encodes buffer, texture, sampler, and constant data into a buffer.
See also Apple’s documentation
Provided Methods§
Sourcefn device(&self) -> Retained<ProtocolObject<dyn MTLDevice>>
Available on crate feature MTLDevice only.
fn device(&self) -> Retained<ProtocolObject<dyn MTLDevice>>
MTLDevice only.The device this argument encoder was created against.
Sourcefn encodedLength(&self) -> NSUInteger
fn encodedLength(&self) -> NSUInteger
The number of bytes required to store the encoded resource bindings.
Sourcefn alignment(&self) -> NSUInteger
fn alignment(&self) -> NSUInteger
The alignment in bytes required to store the encoded resource bindings.
Sourceunsafe fn setArgumentBuffer_offset(
&self,
argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
offset: NSUInteger,
)
Available on crate features MTLAllocation and MTLBuffer and MTLResource only.
unsafe fn setArgumentBuffer_offset( &self, argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>, offset: NSUInteger, )
MTLAllocation and MTLBuffer and MTLResource only.Sets the destination buffer and offset at which the arguments will be encoded.
§Safety
argument_buffermay need to be synchronized.argument_buffermay be unretained, you must ensure it is kept alive while in use.argument_buffercontents should be of the correct type.offsetmight not be bounds-checked.
Sourceunsafe fn setArgumentBuffer_startOffset_arrayElement(
&self,
argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
start_offset: NSUInteger,
array_element: NSUInteger,
)
Available on crate features MTLAllocation and MTLBuffer and MTLResource only.
unsafe fn setArgumentBuffer_startOffset_arrayElement( &self, argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>, start_offset: NSUInteger, array_element: NSUInteger, )
MTLAllocation and MTLBuffer and MTLResource only.Sets the destination buffer, starting offset and specific array element arguments will be encoded into. arrayElement represents the desired element of IAB array targetted by encoding
§Safety
argument_buffermay need to be synchronized.argument_buffermay be unretained, you must ensure it is kept alive while in use.argument_buffercontents should be of the correct type.startOffsetmight not be bounds-checked.
Sourceunsafe fn setBuffer_offset_atIndex(
&self,
buffer: Option<&ProtocolObject<dyn MTLBuffer>>,
offset: NSUInteger,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLBuffer and MTLResource only.
unsafe fn setBuffer_offset_atIndex( &self, buffer: Option<&ProtocolObject<dyn MTLBuffer>>, offset: NSUInteger, index: NSUInteger, )
MTLAllocation and MTLBuffer and MTLResource only.Set a buffer at the given bind point index.
§Safety
buffermay need to be synchronized.buffermay be unretained, you must ensure it is kept alive while in use.buffercontents should be of the correct type.offsetmight not be bounds-checked.indexmight not be bounds-checked.
Sourceunsafe fn setBuffers_offsets_withRange(
&self,
buffers: NonNull<*const ProtocolObject<dyn MTLBuffer>>,
offsets: NonNull<NSUInteger>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLBuffer and MTLResource only.
unsafe fn setBuffers_offsets_withRange( &self, buffers: NonNull<*const ProtocolObject<dyn MTLBuffer>>, offsets: NonNull<NSUInteger>, range: NSRange, )
MTLAllocation and MTLBuffer and MTLResource only.Set an array of buffers at the given bind point index range.
§Safety
buffersmust be a valid pointer.offsetsmight not be bounds-checked.offsetsmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setTexture_atIndex(
&self,
texture: Option<&ProtocolObject<dyn MTLTexture>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLResource and MTLTexture only.
unsafe fn setTexture_atIndex( &self, texture: Option<&ProtocolObject<dyn MTLTexture>>, index: NSUInteger, )
MTLAllocation and MTLResource and MTLTexture only.Set a texture at the given bind point index.
§Safety
texturemay need to be synchronized.texturemay be unretained, you must ensure it is kept alive while in use.indexmight not be bounds-checked.
Sourceunsafe fn setTextures_withRange(
&self,
textures: NonNull<*const ProtocolObject<dyn MTLTexture>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLResource and MTLTexture only.
unsafe fn setTextures_withRange( &self, textures: NonNull<*const ProtocolObject<dyn MTLTexture>>, range: NSRange, )
MTLAllocation and MTLResource and MTLTexture only.Set an array of textures at the given bind point index range.
§Safety
texturesmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setSamplerState_atIndex(
&self,
sampler: Option<&ProtocolObject<dyn MTLSamplerState>>,
index: NSUInteger,
)
Available on crate feature MTLSampler only.
unsafe fn setSamplerState_atIndex( &self, sampler: Option<&ProtocolObject<dyn MTLSamplerState>>, index: NSUInteger, )
MTLSampler only.Sourceunsafe fn setSamplerStates_withRange(
&self,
samplers: NonNull<*const ProtocolObject<dyn MTLSamplerState>>,
range: NSRange,
)
Available on crate feature MTLSampler only.
unsafe fn setSamplerStates_withRange( &self, samplers: NonNull<*const ProtocolObject<dyn MTLSamplerState>>, range: NSRange, )
MTLSampler only.Set an array of samplers at the given bind point index range.
§Safety
samplersmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn constantDataAtIndex(&self, index: NSUInteger) -> NonNull<c_void>
unsafe fn constantDataAtIndex(&self, index: NSUInteger) -> NonNull<c_void>
Returns a pointer to the constant data at the given bind point index.
§Safety
index might not be bounds-checked.
Sourceunsafe fn setRenderPipelineState_atIndex(
&self,
pipeline: Option<&ProtocolObject<dyn MTLRenderPipelineState>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLRenderPipeline only.
unsafe fn setRenderPipelineState_atIndex( &self, pipeline: Option<&ProtocolObject<dyn MTLRenderPipelineState>>, index: NSUInteger, )
MTLAllocation and MTLRenderPipeline only.Sourceunsafe fn setRenderPipelineStates_withRange(
&self,
pipelines: NonNull<*const ProtocolObject<dyn MTLRenderPipelineState>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLRenderPipeline only.
unsafe fn setRenderPipelineStates_withRange( &self, pipelines: NonNull<*const ProtocolObject<dyn MTLRenderPipelineState>>, range: NSRange, )
MTLAllocation and MTLRenderPipeline only.Set an array of render pipeline states at a given bind point index range
§Safety
pipelinesmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setComputePipelineState_atIndex(
&self,
pipeline: Option<&ProtocolObject<dyn MTLComputePipelineState>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLComputePipeline only.
unsafe fn setComputePipelineState_atIndex( &self, pipeline: Option<&ProtocolObject<dyn MTLComputePipelineState>>, index: NSUInteger, )
MTLAllocation and MTLComputePipeline only.Sets a compute pipeline state at a given bind point index
§Safety
index might not be bounds-checked.
Sourceunsafe fn setComputePipelineStates_withRange(
&self,
pipelines: NonNull<*const ProtocolObject<dyn MTLComputePipelineState>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLComputePipeline only.
unsafe fn setComputePipelineStates_withRange( &self, pipelines: NonNull<*const ProtocolObject<dyn MTLComputePipelineState>>, range: NSRange, )
MTLAllocation and MTLComputePipeline only.Set an array of compute pipeline states at a given bind point index range
§Safety
pipelinesmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setIndirectCommandBuffer_atIndex(
&self,
indirect_command_buffer: Option<&ProtocolObject<dyn MTLIndirectCommandBuffer>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.
unsafe fn setIndirectCommandBuffer_atIndex( &self, indirect_command_buffer: Option<&ProtocolObject<dyn MTLIndirectCommandBuffer>>, index: NSUInteger, )
MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.Sets an indirect command buffer at a given bind point index
§Safety
indirect_command_buffermay need to be synchronized.indirect_command_buffermay be unretained, you must ensure it is kept alive while in use.indexmight not be bounds-checked.
Sourceunsafe fn setIndirectCommandBuffers_withRange(
&self,
buffers: NonNull<*const ProtocolObject<dyn MTLIndirectCommandBuffer>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.
unsafe fn setIndirectCommandBuffers_withRange( &self, buffers: NonNull<*const ProtocolObject<dyn MTLIndirectCommandBuffer>>, range: NSRange, )
MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.Set an array of indirect command buffers at the given bind point index range.
§Safety
buffersmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setAccelerationStructure_atIndex(
&self,
acceleration_structure: Option<&ProtocolObject<dyn MTLAccelerationStructure>>,
index: NSUInteger,
)
Available on crate features MTLAccelerationStructure and MTLAllocation and MTLResource only.
unsafe fn setAccelerationStructure_atIndex( &self, acceleration_structure: Option<&ProtocolObject<dyn MTLAccelerationStructure>>, index: NSUInteger, )
MTLAccelerationStructure and MTLAllocation and MTLResource only.§Safety
acceleration_structuremay need to be synchronized.acceleration_structuremay be unretained, you must ensure it is kept alive while in use.indexmight not be bounds-checked.
Sourceunsafe fn newArgumentEncoderForBufferAtIndex(
&self,
index: NSUInteger,
) -> Option<Retained<ProtocolObject<dyn MTLArgumentEncoder>>>
unsafe fn newArgumentEncoderForBufferAtIndex( &self, index: NSUInteger, ) -> Option<Retained<ProtocolObject<dyn MTLArgumentEncoder>>>
Returns a pointer to a new MTLArgumentEncoder that can be used to encode the an argument buffer in the buffer associated with a given index. Returns nil if the resource at the given index is not an argument buffer.
§Safety
index might not be bounds-checked.
Sourceunsafe fn setVisibleFunctionTable_atIndex(
&self,
visible_function_table: Option<&ProtocolObject<dyn MTLVisibleFunctionTable>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLResource and MTLVisibleFunctionTable only.
unsafe fn setVisibleFunctionTable_atIndex( &self, visible_function_table: Option<&ProtocolObject<dyn MTLVisibleFunctionTable>>, index: NSUInteger, )
MTLAllocation and MTLResource and MTLVisibleFunctionTable only.Set a visible function table at the given buffer index
§Safety
visible_function_tablemay need to be synchronized.visible_function_tablemay be unretained, you must ensure it is kept alive while in use.indexmight not be bounds-checked.
Sourceunsafe fn setVisibleFunctionTables_withRange(
&self,
visible_function_tables: NonNull<*const ProtocolObject<dyn MTLVisibleFunctionTable>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLResource and MTLVisibleFunctionTable only.
unsafe fn setVisibleFunctionTables_withRange( &self, visible_function_tables: NonNull<*const ProtocolObject<dyn MTLVisibleFunctionTable>>, range: NSRange, )
MTLAllocation and MTLResource and MTLVisibleFunctionTable only.Set visible function tables at the given buffer index range
§Safety
visible_function_tablesmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setIntersectionFunctionTable_atIndex(
&self,
intersection_function_table: Option<&ProtocolObject<dyn MTLIntersectionFunctionTable>>,
index: NSUInteger,
)
Available on crate features MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.
unsafe fn setIntersectionFunctionTable_atIndex( &self, intersection_function_table: Option<&ProtocolObject<dyn MTLIntersectionFunctionTable>>, index: NSUInteger, )
MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.Set an intersection function table at the given buffer index
§Safety
intersection_function_tablemay need to be synchronized.intersection_function_tablemay be unretained, you must ensure it is kept alive while in use.indexmight not be bounds-checked.
Sourceunsafe fn setIntersectionFunctionTables_withRange(
&self,
intersection_function_tables: NonNull<*const ProtocolObject<dyn MTLIntersectionFunctionTable>>,
range: NSRange,
)
Available on crate features MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.
unsafe fn setIntersectionFunctionTables_withRange( &self, intersection_function_tables: NonNull<*const ProtocolObject<dyn MTLIntersectionFunctionTable>>, range: NSRange, )
MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.Set intersection function tables at the given buffer index range
§Safety
intersection_function_tablesmust be a valid pointer.rangemight not be bounds-checked.
Sourceunsafe fn setDepthStencilState_atIndex(
&self,
depth_stencil_state: Option<&ProtocolObject<dyn MTLDepthStencilState>>,
index: NSUInteger,
)
Available on crate feature MTLDepthStencil only.
unsafe fn setDepthStencilState_atIndex( &self, depth_stencil_state: Option<&ProtocolObject<dyn MTLDepthStencilState>>, index: NSUInteger, )
MTLDepthStencil only.Sourceunsafe fn setDepthStencilStates_withRange(
&self,
depth_stencil_states: NonNull<*const ProtocolObject<dyn MTLDepthStencilState>>,
range: NSRange,
)
Available on crate feature MTLDepthStencil only.
unsafe fn setDepthStencilStates_withRange( &self, depth_stencil_states: NonNull<*const ProtocolObject<dyn MTLDepthStencilState>>, range: NSRange, )
MTLDepthStencil only.Sets an array of depth stencil states at a given buffer index range
§Safety
depth_stencil_statesmust be a valid pointer.rangemight not be bounds-checked.