use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
#[unsafe(super(GLKBaseEffect, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "GLKBaseEffect")]
pub struct GLKReflectionMapEffect;
);
#[cfg(all(feature = "GLKBaseEffect", feature = "GLKNamedEffect"))]
extern_conformance!(
unsafe impl GLKNamedEffect for GLKReflectionMapEffect {}
);
#[cfg(feature = "GLKBaseEffect")]
extern_conformance!(
unsafe impl NSObjectProtocol for GLKReflectionMapEffect {}
);
#[cfg(feature = "GLKBaseEffect")]
impl GLKReflectionMapEffect {
extern_methods!(
#[unsafe(method(prepareToDraw))]
#[unsafe(method_family = none)]
pub unsafe fn prepareToDraw(&self);
#[cfg(all(feature = "GLKEffectProperty", feature = "GLKEffectPropertyTexture"))]
#[unsafe(method(textureCubeMap))]
#[unsafe(method_family = none)]
pub unsafe fn textureCubeMap(&self) -> Retained<GLKEffectPropertyTexture>;
#[cfg(feature = "GLKMathTypes")]
#[unsafe(method(matrix))]
#[unsafe(method_family = none)]
pub unsafe fn matrix(&self) -> GLKMatrix3;
#[cfg(feature = "GLKMathTypes")]
#[unsafe(method(setMatrix:))]
#[unsafe(method_family = none)]
pub unsafe fn setMatrix(&self, matrix: GLKMatrix3);
);
}
#[cfg(feature = "GLKBaseEffect")]
impl GLKReflectionMapEffect {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}