//! 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!( /// [Apple's documentation](https://developer.apple.com/documentation/metal/mtlresourcestatepasssamplebufferattachmentdescriptor?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct MTLResourceStatePassSampleBufferAttachmentDescriptor; ); extern_conformance!( unsafe impl NSCopying for MTLResourceStatePassSampleBufferAttachmentDescriptor {} ); unsafe impl CopyingHelper for MTLResourceStatePassSampleBufferAttachmentDescriptor { type Result = Self; } extern_conformance!( unsafe impl NSObjectProtocol for MTLResourceStatePassSampleBufferAttachmentDescriptor {} ); impl MTLResourceStatePassSampleBufferAttachmentDescriptor { extern_methods!( #[cfg(feature = "MTLCounters")] /// The sample buffer to store samples for the resourceState-pass defined samples. /// If sampleBuffer is non-nil, the sample indices will be used to store samples into /// the sample buffer. If no sample buffer is provided, no samples will be taken. /// If any of the sample indices are specified as MTLCounterDontSample, no sample /// will be taken for that action. #[unsafe(method(sampleBuffer))] #[unsafe(method_family = none)] pub fn sampleBuffer(&self) -> Option>>; #[cfg(feature = "MTLCounters")] /// Setter for [`sampleBuffer`][Self::sampleBuffer]. #[unsafe(method(setSampleBuffer:))] #[unsafe(method_family = none)] pub fn setSampleBuffer( &self, sample_buffer: Option<&ProtocolObject>, ); /// The sample index to use to store the sample taken at the start of /// command encoder processing. Setting the value to MTLCounterDontSample will cause /// this sample to be omitted. /// /// On devices where MTLCounterSamplingPointAtStageBoundary is unsupported, /// this sample index is invalid and must be set to MTLCounterDontSample or creation of a resourceState pass will fail. #[unsafe(method(startOfEncoderSampleIndex))] #[unsafe(method_family = none)] pub fn startOfEncoderSampleIndex(&self) -> NSUInteger; /// Setter for [`startOfEncoderSampleIndex`][Self::startOfEncoderSampleIndex]. /// /// # Safety /// /// This might not be bounds-checked. #[unsafe(method(setStartOfEncoderSampleIndex:))] #[unsafe(method_family = none)] pub unsafe fn setStartOfEncoderSampleIndex( &self, start_of_encoder_sample_index: NSUInteger, ); /// The sample index to use to store the sample taken at the end of /// Command encoder processing. Setting the value to MTLCounterDontSample will cause /// this sample to be omitted. /// /// On devices where MTLCounterSamplingPointAtStageBoundary is unsupported, /// this sample index is invalid and must be set to MTLCounterDontSample or creation of a resourceState pass will fail. #[unsafe(method(endOfEncoderSampleIndex))] #[unsafe(method_family = none)] pub fn endOfEncoderSampleIndex(&self) -> NSUInteger; /// Setter for [`endOfEncoderSampleIndex`][Self::endOfEncoderSampleIndex]. /// /// # Safety /// /// This might not be bounds-checked. #[unsafe(method(setEndOfEncoderSampleIndex:))] #[unsafe(method_family = none)] pub unsafe fn setEndOfEncoderSampleIndex(&self, end_of_encoder_sample_index: NSUInteger); ); } /// Methods declared on superclass `NSObject`. impl MTLResourceStatePassSampleBufferAttachmentDescriptor { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for MTLResourceStatePassSampleBufferAttachmentDescriptor { #[inline] fn default_retained() -> Retained { Self::new() } } extern_class!( /// [Apple's documentation](https://developer.apple.com/documentation/metal/mtlresourcestatepasssamplebufferattachmentdescriptorarray?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct MTLResourceStatePassSampleBufferAttachmentDescriptorArray; ); extern_conformance!( unsafe impl NSObjectProtocol for MTLResourceStatePassSampleBufferAttachmentDescriptorArray {} ); impl MTLResourceStatePassSampleBufferAttachmentDescriptorArray { extern_methods!( /// # Safety /// /// `attachmentIndex` might not be bounds-checked. #[unsafe(method(objectAtIndexedSubscript:))] #[unsafe(method_family = none)] pub unsafe fn objectAtIndexedSubscript( &self, attachment_index: NSUInteger, ) -> Retained; /// # Safety /// /// `attachmentIndex` might not be bounds-checked. #[unsafe(method(setObject:atIndexedSubscript:))] #[unsafe(method_family = none)] pub unsafe fn setObject_atIndexedSubscript( &self, attachment: Option<&MTLResourceStatePassSampleBufferAttachmentDescriptor>, attachment_index: NSUInteger, ); ); } /// Methods declared on superclass `NSObject`. impl MTLResourceStatePassSampleBufferAttachmentDescriptorArray { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for MTLResourceStatePassSampleBufferAttachmentDescriptorArray { #[inline] fn default_retained() -> Retained { Self::new() } } extern_class!( /// MTLResourceStatePassDescriptor represents a collection of attachments to be used to create a concrete resourceState command encoder /// /// See also [Apple's documentation](https://developer.apple.com/documentation/metal/mtlresourcestatepassdescriptor?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct MTLResourceStatePassDescriptor; ); extern_conformance!( unsafe impl NSCopying for MTLResourceStatePassDescriptor {} ); unsafe impl CopyingHelper for MTLResourceStatePassDescriptor { type Result = Self; } extern_conformance!( unsafe impl NSObjectProtocol for MTLResourceStatePassDescriptor {} ); impl MTLResourceStatePassDescriptor { extern_methods!( /// Create an autoreleased default frame buffer descriptor #[unsafe(method(resourceStatePassDescriptor))] #[unsafe(method_family = none)] pub fn resourceStatePassDescriptor() -> Retained; /// An array of sample buffers and associated sample indices. #[unsafe(method(sampleBufferAttachments))] #[unsafe(method_family = none)] pub fn sampleBufferAttachments( &self, ) -> Retained; ); } /// Methods declared on superclass `NSObject`. impl MTLResourceStatePassDescriptor { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for MTLResourceStatePassDescriptor { #[inline] fn default_retained() -> Retained { Self::new() } }