MTLArgumentEncoder

Trait MTLArgumentEncoder 

Source
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 { ... }
}
Available on crate feature MTLArgumentEncoder only.
Expand description

MTLArgumentEncoder encodes buffer, texture, sampler, and constant data into a buffer.

See also Apple’s documentation

Provided Methods§

Source

fn device(&self) -> Retained<ProtocolObject<dyn MTLDevice>>
where Self: Sized + Message,

Available on crate feature MTLDevice only.

The device this argument encoder was created against.

Source

fn label(&self) -> Option<Retained<NSString>>
where Self: Sized + Message,

A string to help identify this object.

Source

fn setLabel(&self, label: Option<&NSString>)
where Self: Sized + Message,

Setter for label.

This is copied when set.

Source

fn encodedLength(&self) -> NSUInteger
where Self: Sized + Message,

The number of bytes required to store the encoded resource bindings.

Source

fn alignment(&self) -> NSUInteger
where Self: Sized + Message,

The alignment in bytes required to store the encoded resource bindings.

Source

unsafe fn setArgumentBuffer_offset( &self, argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>, offset: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLBuffer and MTLResource only.

Sets the destination buffer and offset at which the arguments will be encoded.

§Safety
  • argument_buffer may need to be synchronized.
  • argument_buffer may be unretained, you must ensure it is kept alive while in use.
  • argument_buffer contents should be of the correct type.
  • offset might not be bounds-checked.
Source

unsafe fn setArgumentBuffer_startOffset_arrayElement( &self, argument_buffer: Option<&ProtocolObject<dyn MTLBuffer>>, start_offset: NSUInteger, array_element: NSUInteger, )
where Self: Sized + Message,

Available on crate features 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_buffer may need to be synchronized.
  • argument_buffer may be unretained, you must ensure it is kept alive while in use.
  • argument_buffer contents should be of the correct type.
  • startOffset might not be bounds-checked.
Source

unsafe fn setBuffer_offset_atIndex( &self, buffer: Option<&ProtocolObject<dyn MTLBuffer>>, offset: NSUInteger, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLBuffer and MTLResource only.

Set a buffer at the given bind point index.

§Safety
  • buffer may need to be synchronized.
  • buffer may be unretained, you must ensure it is kept alive while in use.
  • buffer contents should be of the correct type.
  • offset might not be bounds-checked.
  • index might not be bounds-checked.
Source

unsafe fn setBuffers_offsets_withRange( &self, buffers: NonNull<*const ProtocolObject<dyn MTLBuffer>>, offsets: NonNull<NSUInteger>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLBuffer and MTLResource only.

Set an array of buffers at the given bind point index range.

§Safety
  • buffers must be a valid pointer.
  • offsets might not be bounds-checked.
  • offsets must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setTexture_atIndex( &self, texture: Option<&ProtocolObject<dyn MTLTexture>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLResource and MTLTexture only.

Set a texture at the given bind point index.

§Safety
  • texture may need to be synchronized.
  • texture may be unretained, you must ensure it is kept alive while in use.
  • index might not be bounds-checked.
Source

unsafe fn setTextures_withRange( &self, textures: NonNull<*const ProtocolObject<dyn MTLTexture>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLResource and MTLTexture only.

Set an array of textures at the given bind point index range.

§Safety
  • textures must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setSamplerState_atIndex( &self, sampler: Option<&ProtocolObject<dyn MTLSamplerState>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate feature MTLSampler only.

Set a sampler at the given bind point index.

§Safety

index might not be bounds-checked.

Source

unsafe fn setSamplerStates_withRange( &self, samplers: NonNull<*const ProtocolObject<dyn MTLSamplerState>>, range: NSRange, )
where Self: Sized + Message,

Available on crate feature MTLSampler only.

Set an array of samplers at the given bind point index range.

§Safety
  • samplers must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn constantDataAtIndex(&self, index: NSUInteger) -> NonNull<c_void>
where Self: Sized + Message,

Returns a pointer to the constant data at the given bind point index.

§Safety

index might not be bounds-checked.

Source

unsafe fn setRenderPipelineState_atIndex( &self, pipeline: Option<&ProtocolObject<dyn MTLRenderPipelineState>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLRenderPipeline only.

Sets a render pipeline state at a given bind point index

§Safety

index might not be bounds-checked.

Source

unsafe fn setRenderPipelineStates_withRange( &self, pipelines: NonNull<*const ProtocolObject<dyn MTLRenderPipelineState>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLRenderPipeline only.

Set an array of render pipeline states at a given bind point index range

§Safety
  • pipelines must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setComputePipelineState_atIndex( &self, pipeline: Option<&ProtocolObject<dyn MTLComputePipelineState>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLComputePipeline only.

Sets a compute pipeline state at a given bind point index

§Safety

index might not be bounds-checked.

Source

unsafe fn setComputePipelineStates_withRange( &self, pipelines: NonNull<*const ProtocolObject<dyn MTLComputePipelineState>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLComputePipeline only.

Set an array of compute pipeline states at a given bind point index range

§Safety
  • pipelines must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setIndirectCommandBuffer_atIndex( &self, indirect_command_buffer: Option<&ProtocolObject<dyn MTLIndirectCommandBuffer>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.

Sets an indirect command buffer at a given bind point index

§Safety
  • indirect_command_buffer may need to be synchronized.
  • indirect_command_buffer may be unretained, you must ensure it is kept alive while in use.
  • index might not be bounds-checked.
Source

unsafe fn setIndirectCommandBuffers_withRange( &self, buffers: NonNull<*const ProtocolObject<dyn MTLIndirectCommandBuffer>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLIndirectCommandBuffer and MTLResource only.

Set an array of indirect command buffers at the given bind point index range.

§Safety
  • buffers must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setAccelerationStructure_atIndex( &self, acceleration_structure: Option<&ProtocolObject<dyn MTLAccelerationStructure>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAccelerationStructure and MTLAllocation and MTLResource only.
§Safety
  • acceleration_structure may need to be synchronized.
  • acceleration_structure may be unretained, you must ensure it is kept alive while in use.
  • index might not be bounds-checked.
Source

unsafe fn newArgumentEncoderForBufferAtIndex( &self, index: NSUInteger, ) -> Option<Retained<ProtocolObject<dyn MTLArgumentEncoder>>>
where Self: Sized + Message,

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.

Source

unsafe fn setVisibleFunctionTable_atIndex( &self, visible_function_table: Option<&ProtocolObject<dyn MTLVisibleFunctionTable>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLResource and MTLVisibleFunctionTable only.

Set a visible function table at the given buffer index

§Safety
  • visible_function_table may need to be synchronized.
  • visible_function_table may be unretained, you must ensure it is kept alive while in use.
  • index might not be bounds-checked.
Source

unsafe fn setVisibleFunctionTables_withRange( &self, visible_function_tables: NonNull<*const ProtocolObject<dyn MTLVisibleFunctionTable>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLResource and MTLVisibleFunctionTable only.

Set visible function tables at the given buffer index range

§Safety
  • visible_function_tables must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setIntersectionFunctionTable_atIndex( &self, intersection_function_table: Option<&ProtocolObject<dyn MTLIntersectionFunctionTable>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.

Set an intersection function table at the given buffer index

§Safety
  • intersection_function_table may need to be synchronized.
  • intersection_function_table may be unretained, you must ensure it is kept alive while in use.
  • index might not be bounds-checked.
Source

unsafe fn setIntersectionFunctionTables_withRange( &self, intersection_function_tables: NonNull<*const ProtocolObject<dyn MTLIntersectionFunctionTable>>, range: NSRange, )
where Self: Sized + Message,

Available on crate features MTLAllocation and MTLIntersectionFunctionTable and MTLResource only.

Set intersection function tables at the given buffer index range

§Safety
  • intersection_function_tables must be a valid pointer.
  • range might not be bounds-checked.
Source

unsafe fn setDepthStencilState_atIndex( &self, depth_stencil_state: Option<&ProtocolObject<dyn MTLDepthStencilState>>, index: NSUInteger, )
where Self: Sized + Message,

Available on crate feature MTLDepthStencil only.

Sets a depth stencil state at a given bind point index

§Safety

index might not be bounds-checked.

Source

unsafe fn setDepthStencilStates_withRange( &self, depth_stencil_states: NonNull<*const ProtocolObject<dyn MTLDepthStencilState>>, range: NSRange, )
where Self: Sized + Message,

Available on crate feature MTLDepthStencil only.

Sets an array of depth stencil states at a given buffer index range

§Safety
  • depth_stencil_states must be a valid pointer.
  • range might not be bounds-checked.

Trait Implementations§

Source§

impl ProtocolType for dyn MTLArgumentEncoder

Source§

const NAME: &'static str = "MTLArgumentEncoder"

The name of the Objective-C protocol that this type represents. Read more
Source§

fn protocol() -> Option<&'static AnyProtocol>

Get a reference to the Objective-C protocol object that this type represents. Read more
Source§

impl<T> ImplementedBy<T> for dyn MTLArgumentEncoder

Implementations on Foreign Types§

Source§

impl<T> MTLArgumentEncoder for ProtocolObject<T>

Implementors§