Source code
Revision control
Copy as Markdown
Other Tools
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
/// Groups together properties you use to create a mesh render pipeline state object.
///
/// Compared to ``MTLMeshRenderPipelineDescriptor``, this interface doesn't offer a mechanism to hint to Metal mutability
/// of object, mesh, or fragment buffers. Additionally, when you use this descriptor, you don't specify binary archives.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtl4meshrenderpipelinedescriptor?language=objc)
#[unsafe(super(MTL4PipelineDescriptor, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "MTL4PipelineState")]
pub struct MTL4MeshRenderPipelineDescriptor;
);
#[cfg(feature = "MTL4PipelineState")]
extern_conformance!(
unsafe impl NSCopying for MTL4MeshRenderPipelineDescriptor {}
);
#[cfg(feature = "MTL4PipelineState")]
unsafe impl CopyingHelper for MTL4MeshRenderPipelineDescriptor {
type Result = Self;
}
#[cfg(feature = "MTL4PipelineState")]
extern_conformance!(
unsafe impl NSObjectProtocol for MTL4MeshRenderPipelineDescriptor {}
);
#[cfg(feature = "MTL4PipelineState")]
impl MTL4MeshRenderPipelineDescriptor {
extern_methods!(
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Assigns a function descriptor representing the function this pipeline executes for each *object* in the object shader stage.
#[unsafe(method(objectFunctionDescriptor))]
#[unsafe(method_family = none)]
pub fn objectFunctionDescriptor(&self) -> Option<Retained<MTL4FunctionDescriptor>>;
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Setter for [`objectFunctionDescriptor`][Self::objectFunctionDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setObjectFunctionDescriptor:))]
#[unsafe(method_family = none)]
pub fn setObjectFunctionDescriptor(
&self,
object_function_descriptor: Option<&MTL4FunctionDescriptor>,
);
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Assigns a function descriptor representing the function this pipeline executes for each primitive in the mesh shader stage.
#[unsafe(method(meshFunctionDescriptor))]
#[unsafe(method_family = none)]
pub fn meshFunctionDescriptor(&self) -> Option<Retained<MTL4FunctionDescriptor>>;
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Setter for [`meshFunctionDescriptor`][Self::meshFunctionDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setMeshFunctionDescriptor:))]
#[unsafe(method_family = none)]
pub fn setMeshFunctionDescriptor(
&self,
mesh_function_descriptor: Option<&MTL4FunctionDescriptor>,
);
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Assigns a function descriptor representing the function this pipeline executes for each fragment.
#[unsafe(method(fragmentFunctionDescriptor))]
#[unsafe(method_family = none)]
pub fn fragmentFunctionDescriptor(&self) -> Option<Retained<MTL4FunctionDescriptor>>;
#[cfg(feature = "MTL4FunctionDescriptor")]
/// Setter for [`fragmentFunctionDescriptor`][Self::fragmentFunctionDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setFragmentFunctionDescriptor:))]
#[unsafe(method_family = none)]
pub fn setFragmentFunctionDescriptor(
&self,
fragment_function_descriptor: Option<&MTL4FunctionDescriptor>,
);
/// Controls the largest number of threads the pipeline state can execute in a single object shader threadgroup dispatch.
///
/// This number represents the maximum size of the product of the components of parameter `threadsPerObjectThreadgroup`
/// that Metal can use when drawing with this pipeline in mesh shader dispatch methods, such as
/// ``MTL4RenderCommandEncoder/drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:``.
///
/// The compiler's optimizer can use the value of this property to generate more efficient code, specifically when
/// the value doesn't exceed the thread execution width of the underlying GPU.
///
/// The default value of this property is `0`, which indicates that the number you pass to attribute
/// `[[max_total_threads_per_threadgroup(N)]]` of the pipeline's object function determines the maximum
/// total threads per threadgroup.
///
/// When you specify both the `[[max_total_threads_per_threadgroup(N)]]` attribute and this property, you are responsible
/// for making sure these values match.
///
/// Additionally, you are responsible for ensuring this value doesn't exceed the "maximum threads per threadgroup"
/// device limit documented in the "Metal Feature Set Tables" PDF:
/// <https
/// ://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf>.
#[unsafe(method(maxTotalThreadsPerObjectThreadgroup))]
#[unsafe(method_family = none)]
pub fn maxTotalThreadsPerObjectThreadgroup(&self) -> NSUInteger;
/// Setter for [`maxTotalThreadsPerObjectThreadgroup`][Self::maxTotalThreadsPerObjectThreadgroup].
#[unsafe(method(setMaxTotalThreadsPerObjectThreadgroup:))]
#[unsafe(method_family = none)]
pub fn setMaxTotalThreadsPerObjectThreadgroup(
&self,
max_total_threads_per_object_threadgroup: NSUInteger,
);
/// Controls the largest number of threads the pipeline state can execute in a single mesh shader threadgroup dispatch.
///
/// This number represents the maximum size of the product of the components of parameter `threadsPerMeshThreadgroup`
/// that Metal can use when drawing with this pipeline in mesh shader dispatch methods, such as
/// ``MTL4RenderCommandEncoder/drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:``.
///
/// The compiler's optimizer can use the value of this property to generate more efficient code, specifically when
/// the value doesn't exceed the thread execution width of the underlying GPU.
///
/// The default value of this property is `0`, thish indicates that the Metal Shader Language attribute
/// `[[max_total_threads_per_threadgroup]]` you attache to the pipeline's mesh shader function determines
/// the value of this property.
///
/// When you specify both the `[[max_total_threads_per_threadgroup(N)]]` attribute and this property, you are responsible
/// for making sure these values match.
///
/// Additionally, you are responsible for ensuring this value doesn't exceed the "maximum threads per threadgroup"
/// device limit documented in the "Metal Feature Set Tables" PDF:
/// <https
/// ://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf>.
#[unsafe(method(maxTotalThreadsPerMeshThreadgroup))]
#[unsafe(method_family = none)]
pub fn maxTotalThreadsPerMeshThreadgroup(&self) -> NSUInteger;
/// Setter for [`maxTotalThreadsPerMeshThreadgroup`][Self::maxTotalThreadsPerMeshThreadgroup].
#[unsafe(method(setMaxTotalThreadsPerMeshThreadgroup:))]
#[unsafe(method_family = none)]
pub fn setMaxTotalThreadsPerMeshThreadgroup(
&self,
max_total_threads_per_mesh_threadgroup: NSUInteger,
);
#[cfg(feature = "MTLTypes")]
/// Controls the required number of object threads-per-threadgroup when drawing with a mesh shader pipeline you create
/// from this descriptor.
///
/// This argument is optional, unless this pipeline uses `CooperativeTensors`, in which case you are responsible for providing it.
///
/// When this value is set to non-zero, you are responsible for ensuring the parameter `threadsPerObjectThreadgroup`
/// in any mesh dispatch draw calls that use this mesh render pipeline, such as
/// ``MTL4RenderCommandEncoder/drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:``,
/// match it.
///
/// Setting this value to a size of 0 in every dimension disables this property.
#[unsafe(method(requiredThreadsPerObjectThreadgroup))]
#[unsafe(method_family = none)]
pub fn requiredThreadsPerObjectThreadgroup(&self) -> MTLSize;
#[cfg(feature = "MTLTypes")]
/// Setter for [`requiredThreadsPerObjectThreadgroup`][Self::requiredThreadsPerObjectThreadgroup].
#[unsafe(method(setRequiredThreadsPerObjectThreadgroup:))]
#[unsafe(method_family = none)]
pub fn setRequiredThreadsPerObjectThreadgroup(
&self,
required_threads_per_object_threadgroup: MTLSize,
);
#[cfg(feature = "MTLTypes")]
/// Controls the required number of mesh threads-per-threadgroup when drawing with a mesh shader pipeline you create
/// from this descriptor.
///
/// This argument is optional, unless this pipeline uses `CooperativeTensors`, in which case you are responsible for providing it.
///
/// When this value is set to non-zero, you are responsible for ensuring the parameter `threadsPerMeshThreadgroup`
/// in any mesh dispatch draw calls that use this mesh render pipeline, such as
/// ``MTL4RenderCommandEncoder/drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:``,
/// match it.
///
/// Setting this value to a size of 0 in every dimension disables this property.
#[unsafe(method(requiredThreadsPerMeshThreadgroup))]
#[unsafe(method_family = none)]
pub fn requiredThreadsPerMeshThreadgroup(&self) -> MTLSize;
#[cfg(feature = "MTLTypes")]
/// Setter for [`requiredThreadsPerMeshThreadgroup`][Self::requiredThreadsPerMeshThreadgroup].
#[unsafe(method(setRequiredThreadsPerMeshThreadgroup:))]
#[unsafe(method_family = none)]
pub fn setRequiredThreadsPerMeshThreadgroup(
&self,
required_threads_per_mesh_threadgroup: MTLSize,
);
/// Provides a guarantee to Metal regarding the number of threadgroup threads for the object stage of a pipeline you
/// create from this descriptor.
///
/// If you set this property to
/// <doc
/// ://com.apple.documentation/documentation/swift/true>, you state to Metal that when
/// you use a mesh render pipeline you create from this descriptor, the number of threadgroup threads you dispatch for
/// the object stage is a multiple of its ``MTLRenderPipelineState/objectThreadExecutionWidth``. The compiler's optimizer can use this guarantee to generate
/// more efficient code.
///
/// This property's default value is
/// <doc
/// ://com.apple.documentation/documentation/swift/false>.
#[unsafe(method(objectThreadgroupSizeIsMultipleOfThreadExecutionWidth))]
#[unsafe(method_family = none)]
pub fn objectThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool;
/// Setter for [`objectThreadgroupSizeIsMultipleOfThreadExecutionWidth`][Self::objectThreadgroupSizeIsMultipleOfThreadExecutionWidth].
#[unsafe(method(setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth:))]
#[unsafe(method_family = none)]
pub fn setObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth(
&self,
object_threadgroup_size_is_multiple_of_thread_execution_width: bool,
);
/// Provides a guarantee to Metal regarding the number of threadgroup threads for the mesh stage of a pipeline you
/// create from this descriptor.
///
/// If you set this property to
/// <doc
/// ://com.apple.documentation/documentation/swift/true>, you state to Metal that when
/// you use a mesh render pipeline you create from this descriptor, the number of threadgroup threads you dispatch for
/// the mesh stage is a multiple of its ``MTLRenderPipelineState/meshThreadExecutionWidth``. The compiler's optimizer
/// can use this guarantee to generate more efficient code.
///
/// This property's default value is
/// <doc
/// ://com.apple.documentation/documentation/swift/false>.
#[unsafe(method(meshThreadgroupSizeIsMultipleOfThreadExecutionWidth))]
#[unsafe(method_family = none)]
pub fn meshThreadgroupSizeIsMultipleOfThreadExecutionWidth(&self) -> bool;
/// Setter for [`meshThreadgroupSizeIsMultipleOfThreadExecutionWidth`][Self::meshThreadgroupSizeIsMultipleOfThreadExecutionWidth].
#[unsafe(method(setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth:))]
#[unsafe(method_family = none)]
pub fn setMeshThreadgroupSizeIsMultipleOfThreadExecutionWidth(
&self,
mesh_threadgroup_size_is_multiple_of_thread_execution_width: bool,
);
/// Reserves storage for the object-to-mesh stage payload.
///
/// This property determines the size, in bytes, of the buffer you indicate via the Metal Shading Language `[[payload]]`
/// attribute in the object and mesh shader functions of the mesh render pipeline.
///
/// If this value is `0`, Metal derives the size from the (dereferenced) type you declare for the payload in the object
/// shader function. If the type is a pointer, Metal reserves space for a single element.
///
/// The default value is `0`.
#[unsafe(method(payloadMemoryLength))]
#[unsafe(method_family = none)]
pub fn payloadMemoryLength(&self) -> NSUInteger;
/// Setter for [`payloadMemoryLength`][Self::payloadMemoryLength].
#[unsafe(method(setPayloadMemoryLength:))]
#[unsafe(method_family = none)]
pub fn setPayloadMemoryLength(&self, payload_memory_length: NSUInteger);
/// Controls the largest number of threads the pipeline state can execute when the object stage of a mesh
/// render pipeline you create from this descriptor dispatches its mesh stage.
///
/// This number represents the maximum size of the product of the components of the parameter you pass to Metal
/// Shading Language's built-in function `mesh_grid_properties::set_threadgroups_per_grid`.
///
/// The default value of this property is `0`, which indicates that the Metal Shading Language attribute
/// `[[max_total_threadgroups_per_mesh_grid(N)]]` you attach to the pipeline's mesh shader function determines
/// the value of this property.
///
/// When you specify both the `[[max_total_threadgroups_per_mesh_grid(N)]]` attribute and this property, you are
/// responsible for making sure these values match.
///
/// Additionally, you are responsible for ensuring this value doesn't exceed the "maximum threads per mesh grid"
/// device limit documented in the "Metal Feature Set Tables" PDF:
/// <https
/// ://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf>.
#[unsafe(method(maxTotalThreadgroupsPerMeshGrid))]
#[unsafe(method_family = none)]
pub fn maxTotalThreadgroupsPerMeshGrid(&self) -> NSUInteger;
/// Setter for [`maxTotalThreadgroupsPerMeshGrid`][Self::maxTotalThreadgroupsPerMeshGrid].
#[unsafe(method(setMaxTotalThreadgroupsPerMeshGrid:))]
#[unsafe(method_family = none)]
pub fn setMaxTotalThreadgroupsPerMeshGrid(
&self,
max_total_threadgroups_per_mesh_grid: NSUInteger,
);
/// Sets number of samples this pipeline applies for each fragment.
#[unsafe(method(rasterSampleCount))]
#[unsafe(method_family = none)]
pub fn rasterSampleCount(&self) -> NSUInteger;
/// Setter for [`rasterSampleCount`][Self::rasterSampleCount].
///
/// # Safety
///
/// This might not be bounds-checked.
#[unsafe(method(setRasterSampleCount:))]
#[unsafe(method_family = none)]
pub unsafe fn setRasterSampleCount(&self, raster_sample_count: NSUInteger);
/// Indicates whether to read and use the alpha channel fragment output of color attachments to compute a sample coverage mask.
#[unsafe(method(alphaToCoverageState))]
#[unsafe(method_family = none)]
pub fn alphaToCoverageState(&self) -> MTL4AlphaToCoverageState;
/// Setter for [`alphaToCoverageState`][Self::alphaToCoverageState].
#[unsafe(method(setAlphaToCoverageState:))]
#[unsafe(method_family = none)]
pub fn setAlphaToCoverageState(&self, alpha_to_coverage_state: MTL4AlphaToCoverageState);
/// Indicates whether the pipeline forces alpha channel values of color attachments to the largest representable value.
#[unsafe(method(alphaToOneState))]
#[unsafe(method_family = none)]
pub fn alphaToOneState(&self) -> MTL4AlphaToOneState;
/// Setter for [`alphaToOneState`][Self::alphaToOneState].
#[unsafe(method(setAlphaToOneState:))]
#[unsafe(method_family = none)]
pub fn setAlphaToOneState(&self, alpha_to_one_state: MTL4AlphaToOneState);
/// Determines whether the pipeline rasterizes primitives.
///
/// By default, this value is
/// <doc
/// ://com.apple.documentation/documentation/swift/true>, specifying that this pipeline
/// rasterizes primitives. Set this property to
/// <doc
/// ://com.apple.documentation/documentation/swift/false> when you
/// don't provide a fragment shader function via function ``fragmentFunctionDescriptor``.
#[unsafe(method(isRasterizationEnabled))]
#[unsafe(method_family = none)]
pub fn isRasterizationEnabled(&self) -> bool;
/// Setter for [`isRasterizationEnabled`][Self::isRasterizationEnabled].
#[unsafe(method(setRasterizationEnabled:))]
#[unsafe(method_family = none)]
pub fn setRasterizationEnabled(&self, rasterization_enabled: bool);
/// Determines the maximum value that can you can pass as the pipeline's amplification count.
///
/// This property controls the maximum count you pass to ``MTL4RenderCommandEncoder/setVertexAmplificationCount:viewMappings:``
/// when using vertex amplification with this pipeline.
#[unsafe(method(maxVertexAmplificationCount))]
#[unsafe(method_family = none)]
pub fn maxVertexAmplificationCount(&self) -> NSUInteger;
/// Setter for [`maxVertexAmplificationCount`][Self::maxVertexAmplificationCount].
///
/// # Safety
///
/// This might not be bounds-checked.
#[unsafe(method(setMaxVertexAmplificationCount:))]
#[unsafe(method_family = none)]
pub unsafe fn setMaxVertexAmplificationCount(
&self,
max_vertex_amplification_count: NSUInteger,
);
#[cfg(feature = "MTL4RenderPipeline")]
/// Accesses an array containing descriptions of the color attachments this pipeline writes to.
#[unsafe(method(colorAttachments))]
#[unsafe(method_family = none)]
pub fn colorAttachments(
&self,
) -> Retained<MTL4RenderPipelineColorAttachmentDescriptorArray>;
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Provides static linking information for the object stage of the render pipeline.
///
/// Use this property to link extra shader functions to the object stage of the render pipeline.
#[unsafe(method(objectStaticLinkingDescriptor))]
#[unsafe(method_family = none)]
pub fn objectStaticLinkingDescriptor(&self) -> Retained<MTL4StaticLinkingDescriptor>;
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Setter for [`objectStaticLinkingDescriptor`][Self::objectStaticLinkingDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setObjectStaticLinkingDescriptor:))]
#[unsafe(method_family = none)]
pub fn setObjectStaticLinkingDescriptor(
&self,
object_static_linking_descriptor: Option<&MTL4StaticLinkingDescriptor>,
);
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Provides static linking information for the mesh stage of the render pipeline.
///
/// Use this property to link extra shader functions to the mesh stage of the render pipeline.
#[unsafe(method(meshStaticLinkingDescriptor))]
#[unsafe(method_family = none)]
pub fn meshStaticLinkingDescriptor(&self) -> Retained<MTL4StaticLinkingDescriptor>;
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Setter for [`meshStaticLinkingDescriptor`][Self::meshStaticLinkingDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setMeshStaticLinkingDescriptor:))]
#[unsafe(method_family = none)]
pub fn setMeshStaticLinkingDescriptor(
&self,
mesh_static_linking_descriptor: Option<&MTL4StaticLinkingDescriptor>,
);
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Provides static linking information for the fragment stage of the render pipeline.
///
/// Use this property to link extra shader functions to the fragment stage of the render pipeline.
#[unsafe(method(fragmentStaticLinkingDescriptor))]
#[unsafe(method_family = none)]
pub fn fragmentStaticLinkingDescriptor(&self) -> Retained<MTL4StaticLinkingDescriptor>;
#[cfg(feature = "MTL4LinkingDescriptor")]
/// Setter for [`fragmentStaticLinkingDescriptor`][Self::fragmentStaticLinkingDescriptor].
///
/// This is [copied][objc2_foundation::NSCopying::copy] when set.
#[unsafe(method(setFragmentStaticLinkingDescriptor:))]
#[unsafe(method_family = none)]
pub fn setFragmentStaticLinkingDescriptor(
&self,
fragment_static_linking_descriptor: Option<&MTL4StaticLinkingDescriptor>,
);
/// Indicates whether you can use the render pipeline to create new pipelines by adding binary functions to the object
/// shader function’s callable functions list.
#[unsafe(method(supportObjectBinaryLinking))]
#[unsafe(method_family = none)]
pub fn supportObjectBinaryLinking(&self) -> bool;
/// Setter for [`supportObjectBinaryLinking`][Self::supportObjectBinaryLinking].
#[unsafe(method(setSupportObjectBinaryLinking:))]
#[unsafe(method_family = none)]
pub fn setSupportObjectBinaryLinking(&self, support_object_binary_linking: bool);
/// Indicates whether you can use the render pipeline to create new pipelines by adding binary functions to the mesh
/// shader function’s callable functions list.
#[unsafe(method(supportMeshBinaryLinking))]
#[unsafe(method_family = none)]
pub fn supportMeshBinaryLinking(&self) -> bool;
/// Setter for [`supportMeshBinaryLinking`][Self::supportMeshBinaryLinking].
#[unsafe(method(setSupportMeshBinaryLinking:))]
#[unsafe(method_family = none)]
pub fn setSupportMeshBinaryLinking(&self, support_mesh_binary_linking: bool);
/// Indicates whether you can use the render pipeline to create new pipelines by adding binary functions to the fragment
/// shader function’s callable functions list.
#[unsafe(method(supportFragmentBinaryLinking))]
#[unsafe(method_family = none)]
pub fn supportFragmentBinaryLinking(&self) -> bool;
/// Setter for [`supportFragmentBinaryLinking`][Self::supportFragmentBinaryLinking].
#[unsafe(method(setSupportFragmentBinaryLinking:))]
#[unsafe(method_family = none)]
pub fn setSupportFragmentBinaryLinking(&self, support_fragment_binary_linking: bool);
#[cfg(feature = "MTL4RenderPipeline")]
/// Sets the logical-to-physical rendering remap state.
///
/// Use this property to assign how a ``MTL4RenderCommandEncoder`` instance maps the output of your fragment shader to
/// physical color attachments.
#[unsafe(method(colorAttachmentMappingState))]
#[unsafe(method_family = none)]
pub fn colorAttachmentMappingState(
&self,
) -> MTL4LogicalToPhysicalColorAttachmentMappingState;
#[cfg(feature = "MTL4RenderPipeline")]
/// Setter for [`colorAttachmentMappingState`][Self::colorAttachmentMappingState].
#[unsafe(method(setColorAttachmentMappingState:))]
#[unsafe(method_family = none)]
pub fn setColorAttachmentMappingState(
&self,
color_attachment_mapping_state: MTL4LogicalToPhysicalColorAttachmentMappingState,
);
/// Indicates whether the pipeline supports indirect command buffers.
#[unsafe(method(supportIndirectCommandBuffers))]
#[unsafe(method_family = none)]
pub fn supportIndirectCommandBuffers(&self) -> MTL4IndirectCommandBufferSupportState;
/// Setter for [`supportIndirectCommandBuffers`][Self::supportIndirectCommandBuffers].
#[unsafe(method(setSupportIndirectCommandBuffers:))]
#[unsafe(method_family = none)]
pub fn setSupportIndirectCommandBuffers(
&self,
support_indirect_command_buffers: MTL4IndirectCommandBufferSupportState,
);
/// Resets this descriptor to its default state.
#[unsafe(method(reset))]
#[unsafe(method_family = none)]
pub fn reset(&self);
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "MTL4PipelineState")]
impl MTL4MeshRenderPipelineDescriptor {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
#[cfg(feature = "MTL4PipelineState")]
impl DefaultRetained for MTL4MeshRenderPipelineDescriptor {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}