pub struct Compiler(/* private fields */);Expand description
MTL4 shader compiler.
C++ equivalent: MTL4::Compiler
Compiler provides methods for compiling shaders, creating pipelines, and managing binary functions.
Implementations§
Source§impl Compiler
impl Compiler
Sourcepub fn device(&self) -> Option<Device>
pub fn device(&self) -> Option<Device>
Get the device.
C++ equivalent: MTL::Device* device() const
Sourcepub fn pipeline_data_set_serializer(&self) -> Option<PipelineDataSetSerializer>
pub fn pipeline_data_set_serializer(&self) -> Option<PipelineDataSetSerializer>
Get the pipeline data set serializer.
C++ equivalent: PipelineDataSetSerializer* pipelineDataSetSerializer() const
Sourcepub fn new_library(
&self,
descriptor: &LibraryDescriptor,
) -> Result<Library, Error>
pub fn new_library( &self, descriptor: &LibraryDescriptor, ) -> Result<Library, Error>
Create a new library synchronously.
C++ equivalent: MTL::Library* newLibrary(const MTL4::LibraryDescriptor*, NS::Error**)
Sourcepub fn new_binary_function(
&self,
descriptor: &BinaryFunctionDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<BinaryFunction, Error>
pub fn new_binary_function( &self, descriptor: &BinaryFunctionDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<BinaryFunction, Error>
Create a new binary function synchronously.
C++ equivalent: BinaryFunction* newBinaryFunction(..., NS::Error**)
Sourcepub fn new_compute_pipeline_state(
&self,
descriptor: &ComputePipelineDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<ComputePipelineState, Error>
pub fn new_compute_pipeline_state( &self, descriptor: &ComputePipelineDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<ComputePipelineState, Error>
Create a new compute pipeline state synchronously.
C++ equivalent: MTL::ComputePipelineState* newComputePipelineState(..., NS::Error**)
Sourcepub fn new_compute_pipeline_state_with_dynamic_linking(
&self,
descriptor: &ComputePipelineDescriptor,
dynamic_linking: &PipelineStageDynamicLinkingDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<ComputePipelineState, Error>
pub fn new_compute_pipeline_state_with_dynamic_linking( &self, descriptor: &ComputePipelineDescriptor, dynamic_linking: &PipelineStageDynamicLinkingDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<ComputePipelineState, Error>
Create a new compute pipeline state with dynamic linking synchronously.
C++ equivalent: MTL::ComputePipelineState* newComputePipelineState(..., dynamicLinkingDescriptor, ..., NS::Error**)
Sourcepub fn new_render_pipeline_state(
&self,
descriptor: &PipelineDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<RenderPipelineState, Error>
pub fn new_render_pipeline_state( &self, descriptor: &PipelineDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<RenderPipelineState, Error>
Create a new render pipeline state synchronously.
C++ equivalent: MTL::RenderPipelineState* newRenderPipelineState(..., NS::Error**)
Sourcepub fn new_render_pipeline_state_with_dynamic_linking(
&self,
descriptor: &PipelineDescriptor,
dynamic_linking: &RenderPipelineDynamicLinkingDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<RenderPipelineState, Error>
pub fn new_render_pipeline_state_with_dynamic_linking( &self, descriptor: &PipelineDescriptor, dynamic_linking: &RenderPipelineDynamicLinkingDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<RenderPipelineState, Error>
Create a new render pipeline state with dynamic linking synchronously.
C++ equivalent: MTL::RenderPipelineState* newRenderPipelineState(..., dynamicLinkingDescriptor, ..., NS::Error**)
Sourcepub fn new_render_pipeline_state_by_specialization(
&self,
descriptor: &PipelineDescriptor,
pipeline: &RenderPipelineState,
) -> Result<RenderPipelineState, Error>
pub fn new_render_pipeline_state_by_specialization( &self, descriptor: &PipelineDescriptor, pipeline: &RenderPipelineState, ) -> Result<RenderPipelineState, Error>
Create a new render pipeline state by specialization.
C++ equivalent: MTL::RenderPipelineState* newRenderPipelineStateBySpecialization(...)
Sourcepub fn new_dynamic_library_from_library(
&self,
library: &Library,
) -> Result<*mut c_void, Error>
pub fn new_dynamic_library_from_library( &self, library: &Library, ) -> Result<*mut c_void, Error>
Create a new dynamic library from a library.
C++ equivalent: MTL::DynamicLibrary* newDynamicLibrary(const MTL::Library*, NS::Error**)
Sourcepub fn new_dynamic_library_from_url(
&self,
url: *const c_void,
) -> Result<*mut c_void, Error>
pub fn new_dynamic_library_from_url( &self, url: *const c_void, ) -> Result<*mut c_void, Error>
Create a new dynamic library from a URL.
C++ equivalent: MTL::DynamicLibrary* newDynamicLibrary(const NS::URL*, NS::Error**)
Sourcepub fn new_library_async<F>(
&self,
descriptor: &LibraryDescriptor,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_library_async<F>( &self, descriptor: &LibraryDescriptor, completion_handler: F, ) -> Option<CompilerTask>
Create a new library asynchronously with a completion handler.
C++ equivalent: CompilerTask* newLibrary(const LibraryDescriptor*, NewLibraryCompletionHandler)
Sourcepub fn new_binary_function_async<F>(
&self,
descriptor: &BinaryFunctionDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_binary_function_async<F>( &self, descriptor: &BinaryFunctionDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new binary function asynchronously with a completion handler.
C++ equivalent: CompilerTask* newBinaryFunction(const BinaryFunctionDescriptor*, CompilerTaskOptions*, NewBinaryFunctionCompletionHandler)
Sourcepub fn new_compute_pipeline_state_async<F>(
&self,
descriptor: &ComputePipelineDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_compute_pipeline_state_async<F>( &self, descriptor: &ComputePipelineDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new compute pipeline state asynchronously with a completion handler.
C++ equivalent: CompilerTask* newComputePipelineState(const ComputePipelineDescriptor*, CompilerTaskOptions*, NewComputePipelineStateCompletionHandler)
Sourcepub fn new_render_pipeline_state_async<F>(
&self,
descriptor: &PipelineDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_render_pipeline_state_async<F>( &self, descriptor: &PipelineDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new render pipeline state asynchronously with a completion handler.
C++ equivalent: CompilerTask* newRenderPipelineState(const PipelineDescriptor*, CompilerTaskOptions*, NewRenderPipelineStateCompletionHandler)
Sourcepub fn new_render_pipeline_state_by_specialization_async<F>(
&self,
descriptor: &PipelineDescriptor,
pipeline: &RenderPipelineState,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_render_pipeline_state_by_specialization_async<F>( &self, descriptor: &PipelineDescriptor, pipeline: &RenderPipelineState, completion_handler: F, ) -> Option<CompilerTask>
Create a new render pipeline state by specialization asynchronously.
C++ equivalent: CompilerTask* newRenderPipelineStateBySpecialization(..., NewRenderPipelineStateCompletionHandler)
Sourcepub fn new_dynamic_library_from_library_async<F>(
&self,
library: &Library,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_dynamic_library_from_library_async<F>( &self, library: &Library, completion_handler: F, ) -> Option<CompilerTask>
Create a new dynamic library from a library asynchronously.
C++ equivalent: CompilerTask* newDynamicLibrary(const Library*, NewDynamicLibraryCompletionHandler)
Sourcepub unsafe fn new_dynamic_library_from_url_async<F>(
&self,
url: *const c_void,
completion_handler: F,
) -> Option<CompilerTask>
pub unsafe fn new_dynamic_library_from_url_async<F>( &self, url: *const c_void, completion_handler: F, ) -> Option<CompilerTask>
Create a new dynamic library from a URL asynchronously.
C++ equivalent: CompilerTask* newDynamicLibrary(const NS::URL*, NewDynamicLibraryCompletionHandler)
§Safety
The URL pointer must be valid.
Sourcepub fn new_compute_pipeline_state_with_dynamic_linking_async<F>(
&self,
descriptor: &ComputePipelineDescriptor,
dynamic_linking: &PipelineStageDynamicLinkingDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_compute_pipeline_state_with_dynamic_linking_async<F>( &self, descriptor: &ComputePipelineDescriptor, dynamic_linking: &PipelineStageDynamicLinkingDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new compute pipeline state with dynamic linking asynchronously.
C++ equivalent: CompilerTask* newComputePipelineState(..., dynamicLinkingDescriptor, ..., completionHandler)
Sourcepub fn new_render_pipeline_state_with_dynamic_linking_async<F>(
&self,
descriptor: &PipelineDescriptor,
dynamic_linking: &RenderPipelineDynamicLinkingDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_render_pipeline_state_with_dynamic_linking_async<F>( &self, descriptor: &PipelineDescriptor, dynamic_linking: &RenderPipelineDynamicLinkingDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new render pipeline state with dynamic linking asynchronously.
C++ equivalent: CompilerTask* newRenderPipelineState(..., dynamicLinkingDescriptor, ..., completionHandler)
Sourcepub fn new_machine_learning_pipeline_state(
&self,
descriptor: &MachineLearningPipelineDescriptor,
options: Option<&CompilerTaskOptions>,
) -> Result<MachineLearningPipelineState, Error>
pub fn new_machine_learning_pipeline_state( &self, descriptor: &MachineLearningPipelineDescriptor, options: Option<&CompilerTaskOptions>, ) -> Result<MachineLearningPipelineState, Error>
Create a new machine learning pipeline state synchronously.
C++ equivalent: MTL4::MachineLearningPipelineState* newMachineLearningPipelineState(..., NS::Error**)
Sourcepub fn new_machine_learning_pipeline_state_async<F>(
&self,
descriptor: &MachineLearningPipelineDescriptor,
options: Option<&CompilerTaskOptions>,
completion_handler: F,
) -> Option<CompilerTask>
pub fn new_machine_learning_pipeline_state_async<F>( &self, descriptor: &MachineLearningPipelineDescriptor, options: Option<&CompilerTaskOptions>, completion_handler: F, ) -> Option<CompilerTask>
Create a new machine learning pipeline state asynchronously.
C++ equivalent: CompilerTask* newMachineLearningPipelineState(..., completionHandler)