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!(
/// [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<Retained<ProtocolObject<dyn MTLCounterSampleBuffer>>>;
#[cfg(feature = "MTLCounters")]
/// Setter for [`sampleBuffer`][Self::sampleBuffer].
#[unsafe(method(setSampleBuffer:))]
#[unsafe(method_family = none)]
pub fn setSampleBuffer(
&self,
sample_buffer: Option<&ProtocolObject<dyn MTLCounterSampleBuffer>>,
);
/// 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<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for MTLResourceStatePassSampleBufferAttachmentDescriptor {
#[inline]
fn default_retained() -> Retained<Self> {
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<MTLResourceStatePassSampleBufferAttachmentDescriptor>;
/// # 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<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for MTLResourceStatePassSampleBufferAttachmentDescriptorArray {
#[inline]
fn default_retained() -> Retained<Self> {
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<MTLResourceStatePassDescriptor>;
/// An array of sample buffers and associated sample indices.
#[unsafe(method(sampleBufferAttachments))]
#[unsafe(method_family = none)]
pub fn sampleBufferAttachments(
&self,
) -> Retained<MTLResourceStatePassSampleBufferAttachmentDescriptorArray>;
);
}
/// Methods declared on superclass `NSObject`.
impl MTLResourceStatePassDescriptor {
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>;
);
}
impl DefaultRetained for MTLResourceStatePassDescriptor {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}