//! 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::*; #[cfg(feature = "objc2-core-foundation")] use objc2_core_foundation::*; use objc2_foundation::*; use crate::*; /// Defines the block signature for a callback Metal invokes to provide your app feedback after completing a workload. /// /// You register a commit feedback block with Metal by providing an instance of ``MTL4CommitOptions`` to /// the command queue's commit method, ``MTL4CommandQueue/commit:count:options:``. The commit options instance /// references your commit feedback handler after you add it via its ``MTL4CommitOptions/addFeedbackHandler:`` /// method. /// /// - Parameter commitFeedback: a commit feedback instance containing information about the workload. /// /// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtl4commitfeedbackhandler?language=objc) #[cfg(feature = "block2")] pub type MTL4CommitFeedbackHandler = *mut block2::DynBlock>)>; extern_protocol!( /// Describes an object containing debug information from Metal to your app after completing a workload. /// /// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtl4commitfeedback?language=objc) pub unsafe trait MTL4CommitFeedback: NSObjectProtocol { /// A description of an error when the GPU encounters an issue as it runs the committed command buffers. #[unsafe(method(error))] #[unsafe(method_family = none)] fn error(&self) -> Option>; #[cfg(feature = "objc2-core-foundation")] /// The host time, in seconds, when the GPU starts execution of the committed command buffers. #[unsafe(method(GPUStartTime))] #[unsafe(method_family = none)] fn GPUStartTime(&self) -> CFTimeInterval; #[cfg(feature = "objc2-core-foundation")] /// The host time, in seconds, when the GPU finishes execution of the committed command buffers. #[unsafe(method(GPUEndTime))] #[unsafe(method_family = none)] fn GPUEndTime(&self) -> CFTimeInterval; } );