Skip to main content

engage/generated/unity_engine/resource_management/resource_providers/
isceneprovider_interface.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8
9    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/resource_management/resource_providers/isceneprovider_interface/ISceneProvider_Interface.md"))]
10    #[::unity::class(namespace = "UnityEngine.ResourceManagement.ResourceProviders", name = "ISceneProvider")]
11    pub struct ISceneProvider_Interface {}
12}
13
14#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface-types")]
15pub use __types::*;
16
17#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface")]
18pub trait IISceneProvider_InterfaceMethods: IISceneProvider_Interface {
19    #[doc = "`ProvideScene(crate::unity_engine::resource_management::resourcemanager::ResourceManager, crate::unity_engine::resource_management::resource_locations::iresourcelocation::IResourceLocation, crate::unity_engine::scene_management::loadscenemode::LoadSceneMode, bool, i32)` overload"]
20    fn provide_scene(
21        self,
22        resource_manager: impl ::core::convert::Into<crate::unity_engine::resource_management::resourcemanager::ResourceManager>,
23        location: impl ::core::convert::Into<crate::unity_engine::resource_management::resource_locations::iresourcelocation::IResourceLocation>,
24        load_mode: impl ::core::convert::Into<crate::unity_engine::scene_management::loadscenemode::LoadSceneMode>,
25        activate_on_load: impl ::core::convert::Into<bool>,
26        priority: impl ::core::convert::Into<i32>,
27    ) -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
28        crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
29    > {
30        unsafe {
31            let __receiver =
32                <ISceneProvider_Interface as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
33            {
34                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
35                let __vi = *__vt.get(0usize).unwrap_or_else(|| {
36                    panic!(
37                        "unity: virtual slot {}
38 out of range (vtable len {}
39) on the runtime class behind {}
40 (method `{}
41`)",
42                        0usize,
43                        __vt.len(),
44                        <ISceneProvider_Interface as ::unity::ClassIdentity>::NAME,
45                        "ProvideScene",
46                    )
47                });
48                let __inner:extern "C" fn(ISceneProvider_Interface,crate::unity_engine::resource_management::resourcemanager::ResourceManager,crate::unity_engine::resource_management::resource_locations::iresourcelocation::IResourceLocation,crate::unity_engine::scene_management::loadscenemode::LoadSceneMode,bool,i32, ::unity::OptionalMethod,)->crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance> = ::core::mem::transmute(__vi.method_ptr);
49                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
50                __inner(
51                    __receiver,
52                    ::core::convert::Into::into(resource_manager),
53                    ::core::convert::Into::into(location),
54                    ::core::convert::Into::into(load_mode),
55                    ::core::convert::Into::into(activate_on_load),
56                    ::core::convert::Into::into(priority),
57                    __mi,
58                )
59            }
60        }
61    }
62    #[doc = "`ReleaseScene(crate::unity_engine::resource_management::resourcemanager::ResourceManager, crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance>)` overload"]
63    fn release_scene(
64        self,
65        resource_manager: impl ::core::convert::Into<crate::unity_engine::resource_management::resourcemanager::ResourceManager>,
66        scene_load_handle: impl ::core::convert::Into<
67            crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
68                crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
69            >,
70        >,
71    ) -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
72        crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
73    > {
74        unsafe {
75            let __receiver =
76                <ISceneProvider_Interface as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
77            {
78                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
79                let __vi = *__vt.get(1usize).unwrap_or_else(|| {
80                    panic!(
81                        "unity: virtual slot {}
82 out of range (vtable len {}
83) on the runtime class behind {}
84 (method `{}
85`)",
86                        1usize,
87                        __vt.len(),
88                        <ISceneProvider_Interface as ::unity::ClassIdentity>::NAME,
89                        "ReleaseScene",
90                    )
91                });
92                let __inner:extern "C" fn(ISceneProvider_Interface,crate::unity_engine::resource_management::resourcemanager::ResourceManager,crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance> , ::unity::OptionalMethod,)->crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance> = ::core::mem::transmute(__vi.method_ptr);
93                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
94                __inner(
95                    __receiver,
96                    ::core::convert::Into::into(resource_manager),
97                    ::core::convert::Into::into(scene_load_handle),
98                    __mi,
99                )
100            }
101        }
102    }
103}
104
105#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface")]
106impl<__T: IISceneProvider_Interface> IISceneProvider_InterfaceMethods for __T {}
107
108#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface")]
109impl ISceneProvider_Interface {
110    pub fn provide_scene_method_info() -> &'static ::unity::il2cpp::MethodInfo {
111        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
112    }
113
114    pub fn release_scene_method_info() -> &'static ::unity::il2cpp::MethodInfo {
115        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
116    }
117}
118
119#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface")]
120impl ISceneProvider_Interface {
121    #[doc = "Direct (non-virtual) call to `ISceneProvider_Interface`'s own `ProvideScene`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
122    pub unsafe fn provide_scene(
123        this: impl ::core::convert::Into<::unity::IlInstance>,
124        resource_manager: crate::unity_engine::resource_management::resourcemanager::ResourceManager,
125        location: crate::unity_engine::resource_management::resource_locations::iresourcelocation::IResourceLocation,
126        load_mode: crate::unity_engine::scene_management::loadscenemode::LoadSceneMode,
127        activate_on_load: bool,
128        priority: i32,
129    ) -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
130        crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
131    > {
132        let __mi = Self::provide_scene_method_info();
133        let __inner: extern "C" fn(
134            ::unity::IlInstance,
135            crate::unity_engine::resource_management::resourcemanager::ResourceManager,
136            crate::unity_engine::resource_management::resource_locations::iresourcelocation::IResourceLocation,
137            crate::unity_engine::scene_management::loadscenemode::LoadSceneMode,
138            bool,
139            i32,
140            ::unity::OptionalMethod,
141        )
142            -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
143            crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
144        > = ::core::mem::transmute(__mi.method_ptr);
145        __inner(
146            this.into(),
147            resource_manager,
148            location,
149            load_mode,
150            activate_on_load,
151            priority,
152            ::core::option::Option::None,
153        )
154    }
155
156    #[doc = "Direct (non-virtual) call to `ISceneProvider_Interface`'s own `ReleaseScene`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
157    pub unsafe fn release_scene(
158        this: impl ::core::convert::Into<::unity::IlInstance>,
159        resource_manager: crate::unity_engine::resource_management::resourcemanager::ResourceManager,
160        scene_load_handle: crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
161            crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
162        >,
163    ) -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
164        crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
165    > {
166        let __mi = Self::release_scene_method_info();
167        let __inner: extern "C" fn(
168            ::unity::IlInstance,
169            crate::unity_engine::resource_management::resourcemanager::ResourceManager,
170            crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
171                crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
172            >,
173            ::unity::OptionalMethod,
174        )
175            -> crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
176            crate::unity_engine::resource_management::resource_providers::sceneinstance::SceneInstance,
177        > = ::core::mem::transmute(__mi.method_ptr);
178        __inner(this.into(), resource_manager, scene_load_handle, ::core::option::Option::None)
179    }
180}
181
182#[cfg(feature = "unity_engine-resource_management-resource_providers-isceneprovider_interface")]
183#[doc(hidden)]
184pub mod prelude {
185    pub use super::{IISceneProvider_Interface, IISceneProvider_InterfaceMethods, ISceneProvider_Interface};
186}