objc2_metal_performance_shaders/generated/MPSRayIntersector/
MPSAccelerationStructureGroup.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4use objc2::__framework_prelude::*;
5use objc2_metal::*;
6
7use crate::*;
8
9extern_class!(
10    /// A group of acceleration structures which may be used together in an instance acceleration
11    /// structure.
12    ///
13    ///
14    /// All acceleration structures in an instance acceleration structures must be created
15    /// with the same group, although they do not all need to be used in the same instance acceleration
16    /// structure. The acceleration structures in a group share internal GPU memory allocations, so
17    /// the total number and size of acceleration structures that can be created with the same group is
18    /// limited by the Metal device's buffer size limits. Therefore, do not group acceleration
19    /// structures unless they are likely to be used in the same instance acceleration structure.
20    ///
21    /// See also [Apple's documentation](https://developer.apple.com/documentation/metalperformanceshaders/mpsaccelerationstructuregroup?language=objc)
22    #[unsafe(super(NSObject))]
23    #[derive(Debug, PartialEq, Eq, Hash)]
24    #[deprecated]
25    pub struct MPSAccelerationStructureGroup;
26);
27
28extern_conformance!(
29    unsafe impl NSObjectProtocol for MPSAccelerationStructureGroup {}
30);
31
32impl MPSAccelerationStructureGroup {
33    extern_methods!(
34        /// The Metal device this acceleration structure group was created with
35        #[deprecated]
36        #[unsafe(method(device))]
37        #[unsafe(method_family = none)]
38        pub unsafe fn device(&self) -> Retained<ProtocolObject<dyn MTLDevice>>;
39
40        #[deprecated]
41        #[unsafe(method(init))]
42        #[unsafe(method_family = init)]
43        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
44
45        #[deprecated]
46        #[unsafe(method(initWithDevice:))]
47        #[unsafe(method_family = init)]
48        pub unsafe fn initWithDevice(
49            this: Allocated<Self>,
50            device: &ProtocolObject<dyn MTLDevice>,
51        ) -> Retained<Self>;
52    );
53}
54
55/// Methods declared on superclass `NSObject`.
56impl MPSAccelerationStructureGroup {
57    extern_methods!(
58        #[unsafe(method(new))]
59        #[unsafe(method_family = new)]
60        pub unsafe fn new() -> Retained<Self>;
61    );
62}