pub struct MTLMeshRenderPipelineDescriptor { /* private fields */ }MTLRenderPipeline only.Expand description
As an alternative to a vertex + fragment shader render pipeline, this render pipeline uses a (object +) mesh + fragment shader for rendering geometry.
See also Apple’s documentation
Implementations§
Source§impl MTLMeshRenderPipelineDescriptor
impl MTLMeshRenderPipelineDescriptor
Sourcepub fn label(&self) -> Option<Retained<NSString>>
pub fn label(&self) -> Option<Retained<NSString>>
A name or description provided by the application that will be displayed in debugging tools. The default value is nil.
Sourcepub fn objectFunction(
&self,
) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
Available on crate feature MTLLibrary only.
pub fn objectFunction( &self, ) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
MTLLibrary only.Optional shader function responsible for determining how many threadgroups of the mesh shader to run, can optionally provide payload data for the mesh stage. If this is nil, no payload data is available to the mesh function, and the draw command determines how many threadgroups of the mesh stage to run. The default value is nil.
Sourcepub unsafe fn setObjectFunction(
&self,
object_function: Option<&ProtocolObject<dyn MTLFunction>>,
)
Available on crate feature MTLLibrary only.
pub unsafe fn setObjectFunction( &self, object_function: Option<&ProtocolObject<dyn MTLFunction>>, )
MTLLibrary only.Setter for objectFunction.
§Safety
object_functionmust be safe to call.object_functionmust have the correct argument and return types.
Sourcepub fn meshFunction(&self) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
Available on crate feature MTLLibrary only.
pub fn meshFunction(&self) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
MTLLibrary only.Shader function responsible for exporting a chunk of geometry per threadgroup for the rasterizer. The default value is nil.
Sourcepub unsafe fn setMeshFunction(
&self,
mesh_function: Option<&ProtocolObject<dyn MTLFunction>>,
)
Available on crate feature MTLLibrary only.
pub unsafe fn setMeshFunction( &self, mesh_function: Option<&ProtocolObject<dyn MTLFunction>>, )
MTLLibrary only.Setter for meshFunction.
§Safety
mesh_functionmust be safe to call.mesh_functionmust have the correct argument and return types.
Sourcepub fn fragmentFunction(
&self,
) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
Available on crate feature MTLLibrary only.
pub fn fragmentFunction( &self, ) -> Option<Retained<ProtocolObject<dyn MTLFunction>>>
MTLLibrary only.Like a classical render pipeline, this fragments covered by the rasterized geometry are shaded with this function. The default value is nil. To create a pipeline, you must either set fragmentFunction to non-nil, or set rasterizationEnabled to NO.
Sourcepub unsafe fn setFragmentFunction(
&self,
fragment_function: Option<&ProtocolObject<dyn MTLFunction>>,
)
Available on crate feature MTLLibrary only.
pub unsafe fn setFragmentFunction( &self, fragment_function: Option<&ProtocolObject<dyn MTLFunction>>, )
MTLLibrary only.Setter for fragmentFunction.
§Safety
fragment_functionmust be safe to call.fragment_functionmust have the correct argument and return types.
Sourcepub fn maxTotalThreadsPerObjectThreadgroup(&self) -> NSUInteger
pub fn maxTotalThreadsPerObjectThreadgroup(&self) -> NSUInteger
The maximum size of the product of threadsPerObjectThreadgroup that can be used for draws with this pipeline. This information can be used by the optimizer to generate more efficient code, specifically when the specified value does not exceed the thread execution width of the underlying GPU. The default value is 0, which means that the value specified with the [[max_total_threads_per_threadgroup(N)]] specified on objectFunction will be used. When both the [[max_total_threads_per_threadgroup(N)]] attribute and a non-zero value are specified, both values must match. Any value specified cannot exceed the device limit as documented in the “Metal Feature Set Tables” for “Maximum threads per threadgroup”.
Sourcepub fn setMaxTotalThreadsPerObjectThreadgroup(
&self,
max_total_threads_per_object_threadgroup: NSUInteger,
)
pub fn setMaxTotalThreadsPerObjectThreadgroup( &self, max_total_threads_per_object_threadgroup: NSUInteger, )
Setter for maxTotalThreadsPerObjectThreadgroup.
Sourcepub fn maxTotalThreadsPerMeshThreadgroup(&self) -> NSUInteger
pub fn maxTotalThreadsPerMeshThreadgroup(&self) -> NSUInteger
The maximum size of the product of threadsPerMeshThreadgroup that can be used for draws with this pipeline. This information can be used by the optimizer to generate more efficient code, specifically when the specified value does not exceed the thread execution width of the underlying GPU. The default value is 0, which means that the value specified with the [[max_total_threads_per_threadgroup(N)]] specified on meshFunction will be used. When both the [[max_total_threads_per_threadgroup(N)]] attribute and a non-zero value are specified, both values must match. Any value specified cannot exceed the device limit as documented in the “Metal Feature Set Tables” for “Maximum threads per threadgroup”.
Sourcepub fn setMaxTotalThreadsPerMeshThreadgroup(
&self,
max_total_threads_per_mesh_threadgroup: NSUInteger,
)
pub fn setMaxTotalThreadsPerMeshThreadgroup( &self, max_total_threads_per_mesh_threadgroup: NSUInteger, )
Setter for maxTotalThreadsPerMeshThreadgroup.
Sourcepub fn objectThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool
pub fn objectThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool
Set this value to YES when you will only use draws with the product of threadsPerObjectThreadgroup set to a multiple of the objectThreadExecutionWidth of the returned pipeline state. This information can be used by the optimizer to generate more efficient code. The default value is NO.
Sourcepub fn setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth(
&self,
object_threadgroup_size_is_multiple_of_thread_execution_width: bool,
)
pub fn setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth( &self, object_threadgroup_size_is_multiple_of_thread_execution_width: bool, )
Sourcepub fn meshThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool
pub fn meshThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool
Set this value to YES when you will only use draws with the product of threadsPerMeshThreadgroup set to a multiple of the meshThreadExecutionWidth of the returned pipeline state. This information can be used by the optimizer to generate more efficient code. The default value is NO.
Sourcepub fn setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth(
&self,
mesh_threadgroup_size_is_multiple_of_thread_execution_width: bool,
)
pub fn setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth( &self, mesh_threadgroup_size_is_multiple_of_thread_execution_width: bool, )
Sourcepub fn payloadMemoryLength(&self) -> NSUInteger
pub fn payloadMemoryLength(&self) -> NSUInteger
The size, in bytes, of the buffer indicated by [[payload]] in the object and mesh shader. If this value is 0, the size of the dereferenced type declared in the object shader for the buffer is used (space for a single element is assumed for pointers). The default value is 0.
Sourcepub fn setPayloadMemoryLength(&self, payload_memory_length: NSUInteger)
pub fn setPayloadMemoryLength(&self, payload_memory_length: NSUInteger)
Setter for payloadMemoryLength.
Sourcepub fn maxTotalThreadgroupsPerMeshGrid(&self) -> NSUInteger
pub fn maxTotalThreadgroupsPerMeshGrid(&self) -> NSUInteger
The maximum value of the product of vector elements that the object shader may pass to the mesh_grid_properties::set_threadgroups_per_grid built-in function. The default value is 0, which means that the value specified with the [[max_total_threadgroups_per_mesh_grid(N)]] specified on objectFunction will be used. When both the [[max_total_threadgroups_per_mesh_grid(N)]] attribute and a non-zero value are specified, both values must match. Any value specified cannot exceed the device limit as documented in the “Metal Feature Set Tables” for “Maximum threadgroups per mesh grid”. Specifying this value is optional; it may be used to improve scheduling of the workload. If neither this value nor the shader attribute are used, the device’s maximum supported value is used instead.
Sourcepub fn setMaxTotalThreadgroupsPerMeshGrid(
&self,
max_total_threadgroups_per_mesh_grid: NSUInteger,
)
pub fn setMaxTotalThreadgroupsPerMeshGrid( &self, max_total_threadgroups_per_mesh_grid: NSUInteger, )
Setter for maxTotalThreadgroupsPerMeshGrid.
Sourcepub fn objectBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
Available on crate feature MTLPipeline only.
pub fn objectBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
MTLPipeline only.Provide mutability information on the buffers used by objectFunction.
Specifying these values is optional; it may be used to optimize the shader code.
Sourcepub fn meshBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
Available on crate feature MTLPipeline only.
pub fn meshBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
MTLPipeline only.Provide mutability information on the buffers used by meshFunction.
Specifying these values is optional; it may be used to optimize the shader code.
Sourcepub fn fragmentBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
Available on crate feature MTLPipeline only.
pub fn fragmentBuffers(&self) -> Retained<MTLPipelineBufferDescriptorArray>
MTLPipeline only.Provide mutability information on the buffers used by fragmentFunction.
Specifying these values is optional; it may be used to optimize the shader code.
Sourcepub fn rasterSampleCount(&self) -> NSUInteger
pub fn rasterSampleCount(&self) -> NSUInteger
The number of samples per fragment of the render pass in which this pipeline will be used.
Sourcepub unsafe fn setRasterSampleCount(&self, raster_sample_count: NSUInteger)
pub unsafe fn setRasterSampleCount(&self, raster_sample_count: NSUInteger)
Sourcepub fn isAlphaToCoverageEnabled(&self) -> bool
pub fn isAlphaToCoverageEnabled(&self) -> bool
Whether the alpha value exported by the fragment shader for the first color attachment is converted to a sample mask, which is subsequently AND-ed with the fragments’ sample mask
The default value is NO.
Sourcepub fn setAlphaToCoverageEnabled(&self, alpha_to_coverage_enabled: bool)
pub fn setAlphaToCoverageEnabled(&self, alpha_to_coverage_enabled: bool)
Setter for isAlphaToCoverageEnabled.
Sourcepub fn isAlphaToOneEnabled(&self) -> bool
pub fn isAlphaToOneEnabled(&self) -> bool
Whether the alpha value exported by the fragment shader for all color attachments is modified to 1 (after evaluating alphaToCoverage).
The default value is NO.
Sourcepub fn setAlphaToOneEnabled(&self, alpha_to_one_enabled: bool)
pub fn setAlphaToOneEnabled(&self, alpha_to_one_enabled: bool)
Setter for isAlphaToOneEnabled.
Sourcepub fn isRasterizationEnabled(&self) -> bool
pub fn isRasterizationEnabled(&self) -> bool
Whether rasterization is disabled, all primitives are dropped prior to rasterization.
The default value is YES.
Sourcepub fn setRasterizationEnabled(&self, rasterization_enabled: bool)
pub fn setRasterizationEnabled(&self, rasterization_enabled: bool)
Setter for isRasterizationEnabled.
Sourcepub fn maxVertexAmplificationCount(&self) -> NSUInteger
pub fn maxVertexAmplificationCount(&self) -> NSUInteger
The maximum value that can be passed to setVertexAmplificationCount when using this pipeline.
The default value is 1. The value must be supported by the device, which can be checked with supportsVertexAmplificationCount.
Sourcepub unsafe fn setMaxVertexAmplificationCount(
&self,
max_vertex_amplification_count: NSUInteger,
)
pub unsafe fn setMaxVertexAmplificationCount( &self, max_vertex_amplification_count: NSUInteger, )
Sourcepub fn colorAttachments(
&self,
) -> Retained<MTLRenderPipelineColorAttachmentDescriptorArray>
pub fn colorAttachments( &self, ) -> Retained<MTLRenderPipelineColorAttachmentDescriptorArray>
Describes the color attachments of the render pass in which this pipeline will be used.
Sourcepub fn depthAttachmentPixelFormat(&self) -> MTLPixelFormat
Available on crate feature MTLPixelFormat only.
pub fn depthAttachmentPixelFormat(&self) -> MTLPixelFormat
MTLPixelFormat only.The pixel format of the depth attachment of the render pass in which this pipeline will be used.
The default value is MTLPixelFormatInvalid; indicating no depth attachment will be used.
Sourcepub fn setDepthAttachmentPixelFormat(
&self,
depth_attachment_pixel_format: MTLPixelFormat,
)
Available on crate feature MTLPixelFormat only.
pub fn setDepthAttachmentPixelFormat( &self, depth_attachment_pixel_format: MTLPixelFormat, )
MTLPixelFormat only.Setter for depthAttachmentPixelFormat.
Sourcepub fn stencilAttachmentPixelFormat(&self) -> MTLPixelFormat
Available on crate feature MTLPixelFormat only.
pub fn stencilAttachmentPixelFormat(&self) -> MTLPixelFormat
MTLPixelFormat only.The pixel format of the stencil attachment of the render pass in which this pipeline will be used.
The default value is MTLPixelFormatInvalid; indicating no stencil attachment will be used.
Sourcepub fn setStencilAttachmentPixelFormat(
&self,
stencil_attachment_pixel_format: MTLPixelFormat,
)
Available on crate feature MTLPixelFormat only.
pub fn setStencilAttachmentPixelFormat( &self, stencil_attachment_pixel_format: MTLPixelFormat, )
MTLPixelFormat only.Setter for stencilAttachmentPixelFormat.
Sourcepub fn supportIndirectCommandBuffers(&self) -> bool
pub fn supportIndirectCommandBuffers(&self) -> bool
Whether this pipeline will support being used by commands in an indirect command buffer.
The default value is NO.
Sourcepub fn setSupportIndirectCommandBuffers(
&self,
support_indirect_command_buffers: bool,
)
pub fn setSupportIndirectCommandBuffers( &self, support_indirect_command_buffers: bool, )
Setter for supportIndirectCommandBuffers.
Sourcepub fn binaryArchives(
&self,
) -> Option<Retained<NSArray<ProtocolObject<dyn MTLBinaryArchive>>>>
Available on crate feature MTLBinaryArchive only.
pub fn binaryArchives( &self, ) -> Option<Retained<NSArray<ProtocolObject<dyn MTLBinaryArchive>>>>
MTLBinaryArchive only.The set of MTLBinaryArchive to search for compiled code when creating the pipeline state.
Accelerate pipeline state creation by providing archives of compiled code such that no compilation needs to happen on the fast path.
See: MTLBinaryArchive
Sourcepub fn setBinaryArchives(
&self,
binary_archives: Option<&NSArray<ProtocolObject<dyn MTLBinaryArchive>>>,
)
Available on crate feature MTLBinaryArchive only.
pub fn setBinaryArchives( &self, binary_archives: Option<&NSArray<ProtocolObject<dyn MTLBinaryArchive>>>, )
MTLBinaryArchive only.Setter for binaryArchives.
This is copied when set.
Sourcepub fn objectLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
Available on crate feature MTLLinkedFunctions only.
pub fn objectLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
MTLLinkedFunctions only.The set of functions to be linked with the pipeline state and accessed from the object function.
See: MTLLinkedFunctions
Sourcepub fn setObjectLinkedFunctions(
&self,
object_linked_functions: Option<&MTLLinkedFunctions>,
)
Available on crate feature MTLLinkedFunctions only.
pub fn setObjectLinkedFunctions( &self, object_linked_functions: Option<&MTLLinkedFunctions>, )
MTLLinkedFunctions only.Setter for objectLinkedFunctions.
This is copied when set.
Sourcepub fn meshLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
Available on crate feature MTLLinkedFunctions only.
pub fn meshLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
MTLLinkedFunctions only.The set of functions to be linked with the pipeline state and accessed from the mesh function.
See: MTLLinkedFunctions
Sourcepub fn setMeshLinkedFunctions(
&self,
mesh_linked_functions: Option<&MTLLinkedFunctions>,
)
Available on crate feature MTLLinkedFunctions only.
pub fn setMeshLinkedFunctions( &self, mesh_linked_functions: Option<&MTLLinkedFunctions>, )
MTLLinkedFunctions only.Setter for meshLinkedFunctions.
This is copied when set.
Sourcepub fn fragmentLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
Available on crate feature MTLLinkedFunctions only.
pub fn fragmentLinkedFunctions(&self) -> Retained<MTLLinkedFunctions>
MTLLinkedFunctions only.The set of functions to be linked with the pipeline state and accessed from the fragment function.
See: MTLLinkedFunctions
Sourcepub fn setFragmentLinkedFunctions(
&self,
fragment_linked_functions: Option<&MTLLinkedFunctions>,
)
Available on crate feature MTLLinkedFunctions only.
pub fn setFragmentLinkedFunctions( &self, fragment_linked_functions: Option<&MTLLinkedFunctions>, )
MTLLinkedFunctions only.Setter for fragmentLinkedFunctions.
This is copied when set.
Sourcepub fn shaderValidation(&self) -> MTLShaderValidation
Available on crate feature MTLPipeline only.
pub fn shaderValidation(&self) -> MTLShaderValidation
MTLPipeline only.Toggle that determines whether Metal Shader Validation should be enabled or disabled for the pipeline.
The value can be overridden using MTL_SHADER_VALIDATION_ENABLE_PIPELINES or MTL_SHADER_VALIDATION_DISABLE_PIPELINES Environment Variables.
Sourcepub fn setShaderValidation(&self, shader_validation: MTLShaderValidation)
Available on crate feature MTLPipeline only.
pub fn setShaderValidation(&self, shader_validation: MTLShaderValidation)
MTLPipeline only.Setter for shaderValidation.
Sourcepub fn requiredThreadsPerObjectThreadgroup(&self) -> MTLSize
Available on crate feature MTLTypes only.
pub fn requiredThreadsPerObjectThreadgroup(&self) -> MTLSize
MTLTypes only.Sets the required object threads-per-threadgroup during mesh draws. The threadsPerObjectThreadgroup argument of any draw must match to this value if it is set.
Optional, unless the pipeline is going to use CooperativeTensors in which case this must be set.
Setting this to a size of 0 in every dimension disables this property
Sourcepub fn setRequiredThreadsPerObjectThreadgroup(
&self,
required_threads_per_object_threadgroup: MTLSize,
)
Available on crate feature MTLTypes only.
pub fn setRequiredThreadsPerObjectThreadgroup( &self, required_threads_per_object_threadgroup: MTLSize, )
MTLTypes only.Setter for requiredThreadsPerObjectThreadgroup.
Sourcepub fn requiredThreadsPerMeshThreadgroup(&self) -> MTLSize
Available on crate feature MTLTypes only.
pub fn requiredThreadsPerMeshThreadgroup(&self) -> MTLSize
MTLTypes only.Sets the required mesh threads-per-threadgroup during mesh draws. The threadsPerMeshThreadgroup argument of any draw must match to this value if it is set.
Optional, unless the pipeline is going to use CooperativeTensors in which case this must be set.
Setting this to a size of 0 in every dimension disables this property
Sourcepub fn setRequiredThreadsPerMeshThreadgroup(
&self,
required_threads_per_mesh_threadgroup: MTLSize,
)
Available on crate feature MTLTypes only.
pub fn setRequiredThreadsPerMeshThreadgroup( &self, required_threads_per_mesh_threadgroup: MTLSize, )
MTLTypes only.Setter for requiredThreadsPerMeshThreadgroup.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl ClassType for MTLMeshRenderPipelineDescriptor
impl ClassType for MTLMeshRenderPipelineDescriptor
Source§const NAME: &'static str = "MTLMeshRenderPipelineDescriptor"
const NAME: &'static str = "MTLMeshRenderPipelineDescriptor"
Source§type ThreadKind = <<MTLMeshRenderPipelineDescriptor as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<MTLMeshRenderPipelineDescriptor as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for MTLMeshRenderPipelineDescriptor
impl CopyingHelper for MTLMeshRenderPipelineDescriptor
Source§type Result = MTLMeshRenderPipelineDescriptor
type Result = MTLMeshRenderPipelineDescriptor
Self if the type has no
immutable counterpart. Read moreSource§impl NSCopying for MTLMeshRenderPipelineDescriptor
impl NSCopying for MTLMeshRenderPipelineDescriptor
Source§impl NSObjectProtocol for MTLMeshRenderPipelineDescriptor
impl NSObjectProtocol for MTLMeshRenderPipelineDescriptor
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref