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}