engage/generated/unity_engine/ui/
imaterialmodifier.rs1#[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}