Skip to main content

engage/generated/unity_engine/ui/
imaterialmodifier.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "unity_engine-ui-imaterialmodifier-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/ui/imaterialmodifier/IMaterialModifier.md"))]
10    #[::unity::class(namespace = "UnityEngine.UI", name = "IMaterialModifier")]
11    pub struct IMaterialModifier {}
12}
13
14#[cfg(feature = "unity_engine-ui-imaterialmodifier-types")]
15pub use __types::*;
16
17#[cfg(feature = "unity_engine-ui-imaterialmodifier")]
18pub trait IIMaterialModifierMethods: IIMaterialModifier {
19    #[doc = "`GetModifiedMaterial(crate::unity_engine::material::Material)` overload"]
20    fn get_modified_material(
21        self,
22        base_material: impl ::core::convert::Into<crate::unity_engine::material::Material>,
23    ) -> crate::unity_engine::material::Material {
24        unsafe {
25            let __receiver = <IMaterialModifier as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
26            {
27                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
28                let __vi = *__vt.get(0usize).unwrap_or_else(|| {
29                    panic!(
30                        "unity: virtual slot {}
31 out of range (vtable len {}
32) on the runtime class behind {}
33 (method `{}
34`)",
35                        0usize,
36                        __vt.len(),
37                        <IMaterialModifier as ::unity::ClassIdentity>::NAME,
38                        "GetModifiedMaterial",
39                    )
40                });
41                let __inner: extern "C" fn(
42                    IMaterialModifier,
43                    crate::unity_engine::material::Material,
44                    ::unity::OptionalMethod,
45                ) -> crate::unity_engine::material::Material = ::core::mem::transmute(__vi.method_ptr);
46                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
47                __inner(__receiver, ::core::convert::Into::into(base_material), __mi)
48            }
49        }
50    }
51}
52
53#[cfg(feature = "unity_engine-ui-imaterialmodifier")]
54impl<__T: IIMaterialModifier> IIMaterialModifierMethods for __T {}
55
56#[cfg(feature = "unity_engine-ui-imaterialmodifier")]
57impl IMaterialModifier {
58    pub fn get_modified_material_method_info() -> &'static ::unity::il2cpp::MethodInfo {
59        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
60    }
61}
62
63#[cfg(feature = "unity_engine-ui-imaterialmodifier")]
64impl IMaterialModifier {
65    #[doc = "Direct (non-virtual) call to `IMaterialModifier`'s own `GetModifiedMaterial`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
66    pub unsafe fn get_modified_material(
67        this: impl ::core::convert::Into<::unity::IlInstance>,
68        base_material: crate::unity_engine::material::Material,
69    ) -> crate::unity_engine::material::Material {
70        let __mi = Self::get_modified_material_method_info();
71        let __inner: extern "C" fn(
72            ::unity::IlInstance,
73            crate::unity_engine::material::Material,
74            ::unity::OptionalMethod,
75        ) -> crate::unity_engine::material::Material = ::core::mem::transmute(__mi.method_ptr);
76        __inner(this.into(), base_material, ::core::option::Option::None)
77    }
78}
79
80#[cfg(feature = "unity_engine-ui-imaterialmodifier")]
81#[doc(hidden)]
82pub mod prelude {
83    pub use super::{IIMaterialModifier, IIMaterialModifierMethods, IMaterialModifier};
84}