use core::cell::UnsafeCell;
use core::ffi::*;
use core::marker::{PhantomData, PhantomPinned};
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
use crate::*;
#[doc(alias = "GLKMatrixStackRef")]
#[repr(C)]
pub struct GLKMatrixStack {
inner: [u8; 0],
_p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}
#[cfg(feature = "objc2-core-foundation")]
cf_type!(
unsafe impl GLKMatrixStack {}
);
cf_objc2_type!(
unsafe impl RefEncode<"_GLKMatrixStack"> for GLKMatrixStack {}
);
impl GLKMatrixStack {
#[doc(alias = "GLKMatrixStackCreate")]
#[cfg(feature = "objc2-core-foundation")]
#[inline]
pub unsafe fn new(alloc: Option<&CFAllocator>) -> Option<CFRetained<GLKMatrixStack>> {
extern "C-unwind" {
fn GLKMatrixStackCreate(alloc: Option<&CFAllocator>)
-> Option<NonNull<GLKMatrixStack>>;
}
let ret = unsafe { GLKMatrixStackCreate(alloc) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
}
#[cfg(feature = "objc2-core-foundation")]
unsafe impl ConcreteType for GLKMatrixStack {
#[doc(alias = "GLKMatrixStackGetTypeID")]
#[inline]
fn type_id() -> CFTypeID {
extern "C-unwind" {
fn GLKMatrixStackGetTypeID() -> CFTypeID;
}
unsafe { GLKMatrixStackGetTypeID() }
}
}
impl GLKMatrixStack {
#[doc(alias = "GLKMatrixStackPush")]
#[inline]
pub unsafe fn push(&self) {
extern "C-unwind" {
fn GLKMatrixStackPush(stack: &GLKMatrixStack);
}
unsafe { GLKMatrixStackPush(self) }
}
#[doc(alias = "GLKMatrixStackPop")]
#[inline]
pub unsafe fn pop(&self) {
extern "C-unwind" {
fn GLKMatrixStackPop(stack: &GLKMatrixStack);
}
unsafe { GLKMatrixStackPop(self) }
}
#[doc(alias = "GLKMatrixStackSize")]
#[inline]
pub unsafe fn size(&self) -> c_int {
extern "C-unwind" {
fn GLKMatrixStackSize(stack: &GLKMatrixStack) -> c_int;
}
unsafe { GLKMatrixStackSize(self) }
}
#[doc(alias = "GLKMatrixStackLoadMatrix4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn load_matrix4(&self, matrix: GLKMatrix4) {
extern "C-unwind" {
fn GLKMatrixStackLoadMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
}
unsafe { GLKMatrixStackLoadMatrix4(self, matrix) }
}
#[doc(alias = "GLKMatrixStackGetMatrix4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix4(&self) -> GLKMatrix4 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix4(stack: &GLKMatrixStack) -> GLKMatrix4;
}
unsafe { GLKMatrixStackGetMatrix4(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix3")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix3(&self) -> GLKMatrix3 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix3(stack: &GLKMatrixStack) -> GLKMatrix3;
}
unsafe { GLKMatrixStackGetMatrix3(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix2")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix2(&self) -> GLKMatrix2 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix2(stack: &GLKMatrixStack) -> GLKMatrix2;
}
unsafe { GLKMatrixStackGetMatrix2(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix4Inverse")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix4_inverse(&self) -> GLKMatrix4 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix4Inverse(stack: &GLKMatrixStack) -> GLKMatrix4;
}
unsafe { GLKMatrixStackGetMatrix4Inverse(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix4InverseTranspose")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix4_inverse_transpose(&self) -> GLKMatrix4 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix4InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix4;
}
unsafe { GLKMatrixStackGetMatrix4InverseTranspose(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix3Inverse")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix3_inverse(&self) -> GLKMatrix3 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix3Inverse(stack: &GLKMatrixStack) -> GLKMatrix3;
}
unsafe { GLKMatrixStackGetMatrix3Inverse(self) }
}
#[doc(alias = "GLKMatrixStackGetMatrix3InverseTranspose")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn matrix3_inverse_transpose(&self) -> GLKMatrix3 {
extern "C-unwind" {
fn GLKMatrixStackGetMatrix3InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix3;
}
unsafe { GLKMatrixStackGetMatrix3InverseTranspose(self) }
}
#[doc(alias = "GLKMatrixStackMultiplyMatrix4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn multiply_matrix4(&self, matrix: GLKMatrix4) {
extern "C-unwind" {
fn GLKMatrixStackMultiplyMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
}
unsafe { GLKMatrixStackMultiplyMatrix4(self, matrix) }
}
#[doc(alias = "GLKMatrixStackMultiplyMatrixStack")]
#[inline]
pub unsafe fn multiply_matrix_stack(&self, stack_right: &GLKMatrixStack) {
extern "C-unwind" {
fn GLKMatrixStackMultiplyMatrixStack(
stack_left: &GLKMatrixStack,
stack_right: &GLKMatrixStack,
);
}
unsafe { GLKMatrixStackMultiplyMatrixStack(self, stack_right) }
}
#[doc(alias = "GLKMatrixStackTranslate")]
#[inline]
pub unsafe fn translate(&self, tx: c_float, ty: c_float, tz: c_float) {
extern "C-unwind" {
fn GLKMatrixStackTranslate(
stack: &GLKMatrixStack,
tx: c_float,
ty: c_float,
tz: c_float,
);
}
unsafe { GLKMatrixStackTranslate(self, tx, ty, tz) }
}
#[doc(alias = "GLKMatrixStackTranslateWithVector3")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn translate_with_vector3(&self, translation_vector: GLKVector3) {
extern "C-unwind" {
fn GLKMatrixStackTranslateWithVector3(
stack: &GLKMatrixStack,
translation_vector: GLKVector3,
);
}
unsafe { GLKMatrixStackTranslateWithVector3(self, translation_vector) }
}
#[doc(alias = "GLKMatrixStackTranslateWithVector4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn translate_with_vector4(&self, translation_vector: GLKVector4) {
extern "C-unwind" {
fn GLKMatrixStackTranslateWithVector4(
stack: &GLKMatrixStack,
translation_vector: GLKVector4,
);
}
unsafe { GLKMatrixStackTranslateWithVector4(self, translation_vector) }
}
#[doc(alias = "GLKMatrixStackScale")]
#[inline]
pub unsafe fn scale(&self, sx: c_float, sy: c_float, sz: c_float) {
extern "C-unwind" {
fn GLKMatrixStackScale(stack: &GLKMatrixStack, sx: c_float, sy: c_float, sz: c_float);
}
unsafe { GLKMatrixStackScale(self, sx, sy, sz) }
}
#[doc(alias = "GLKMatrixStackScaleWithVector3")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn scale_with_vector3(&self, scale_vector: GLKVector3) {
extern "C-unwind" {
fn GLKMatrixStackScaleWithVector3(stack: &GLKMatrixStack, scale_vector: GLKVector3);
}
unsafe { GLKMatrixStackScaleWithVector3(self, scale_vector) }
}
#[doc(alias = "GLKMatrixStackScaleWithVector4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn scale_with_vector4(&self, scale_vector: GLKVector4) {
extern "C-unwind" {
fn GLKMatrixStackScaleWithVector4(stack: &GLKMatrixStack, scale_vector: GLKVector4);
}
unsafe { GLKMatrixStackScaleWithVector4(self, scale_vector) }
}
#[doc(alias = "GLKMatrixStackRotate")]
#[inline]
pub unsafe fn rotate(&self, radians: c_float, x: c_float, y: c_float, z: c_float) {
extern "C-unwind" {
fn GLKMatrixStackRotate(
stack: &GLKMatrixStack,
radians: c_float,
x: c_float,
y: c_float,
z: c_float,
);
}
unsafe { GLKMatrixStackRotate(self, radians, x, y, z) }
}
#[doc(alias = "GLKMatrixStackRotateWithVector3")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn rotate_with_vector3(&self, radians: c_float, axis_vector: GLKVector3) {
extern "C-unwind" {
fn GLKMatrixStackRotateWithVector3(
stack: &GLKMatrixStack,
radians: c_float,
axis_vector: GLKVector3,
);
}
unsafe { GLKMatrixStackRotateWithVector3(self, radians, axis_vector) }
}
#[doc(alias = "GLKMatrixStackRotateWithVector4")]
#[cfg(feature = "GLKMathTypes")]
#[inline]
pub unsafe fn rotate_with_vector4(&self, radians: c_float, axis_vector: GLKVector4) {
extern "C-unwind" {
fn GLKMatrixStackRotateWithVector4(
stack: &GLKMatrixStack,
radians: c_float,
axis_vector: GLKVector4,
);
}
unsafe { GLKMatrixStackRotateWithVector4(self, radians, axis_vector) }
}
#[doc(alias = "GLKMatrixStackRotateX")]
#[inline]
pub unsafe fn rotate_x(&self, radians: c_float) {
extern "C-unwind" {
fn GLKMatrixStackRotateX(stack: &GLKMatrixStack, radians: c_float);
}
unsafe { GLKMatrixStackRotateX(self, radians) }
}
#[doc(alias = "GLKMatrixStackRotateY")]
#[inline]
pub unsafe fn rotate_y(&self, radians: c_float) {
extern "C-unwind" {
fn GLKMatrixStackRotateY(stack: &GLKMatrixStack, radians: c_float);
}
unsafe { GLKMatrixStackRotateY(self, radians) }
}
#[doc(alias = "GLKMatrixStackRotateZ")]
#[inline]
pub unsafe fn rotate_z(&self, radians: c_float) {
extern "C-unwind" {
fn GLKMatrixStackRotateZ(stack: &GLKMatrixStack, radians: c_float);
}
unsafe { GLKMatrixStackRotateZ(self, radians) }
}
}
#[cfg(feature = "objc2-core-foundation")]
#[deprecated = "renamed to `GLKMatrixStack::new`"]
#[inline]
pub unsafe extern "C-unwind" fn GLKMatrixStackCreate(
alloc: Option<&CFAllocator>,
) -> Option<CFRetained<GLKMatrixStack>> {
extern "C-unwind" {
fn GLKMatrixStackCreate(alloc: Option<&CFAllocator>) -> Option<NonNull<GLKMatrixStack>>;
}
let ret = unsafe { GLKMatrixStackCreate(alloc) };
ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::push`"]
pub fn GLKMatrixStackPush(stack: &GLKMatrixStack);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::pop`"]
pub fn GLKMatrixStackPop(stack: &GLKMatrixStack);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::size`"]
pub fn GLKMatrixStackSize(stack: &GLKMatrixStack) -> c_int;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::load_matrix4`"]
pub fn GLKMatrixStackLoadMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix4`"]
pub fn GLKMatrixStackGetMatrix4(stack: &GLKMatrixStack) -> GLKMatrix4;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix3`"]
pub fn GLKMatrixStackGetMatrix3(stack: &GLKMatrixStack) -> GLKMatrix3;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix2`"]
pub fn GLKMatrixStackGetMatrix2(stack: &GLKMatrixStack) -> GLKMatrix2;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix4_inverse`"]
pub fn GLKMatrixStackGetMatrix4Inverse(stack: &GLKMatrixStack) -> GLKMatrix4;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix4_inverse_transpose`"]
pub fn GLKMatrixStackGetMatrix4InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix4;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix3_inverse`"]
pub fn GLKMatrixStackGetMatrix3Inverse(stack: &GLKMatrixStack) -> GLKMatrix3;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::matrix3_inverse_transpose`"]
pub fn GLKMatrixStackGetMatrix3InverseTranspose(stack: &GLKMatrixStack) -> GLKMatrix3;
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::multiply_matrix4`"]
pub fn GLKMatrixStackMultiplyMatrix4(stack: &GLKMatrixStack, matrix: GLKMatrix4);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::multiply_matrix_stack`"]
pub fn GLKMatrixStackMultiplyMatrixStack(
stack_left: &GLKMatrixStack,
stack_right: &GLKMatrixStack,
);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::translate`"]
pub fn GLKMatrixStackTranslate(stack: &GLKMatrixStack, tx: c_float, ty: c_float, tz: c_float);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::translate_with_vector3`"]
pub fn GLKMatrixStackTranslateWithVector3(
stack: &GLKMatrixStack,
translation_vector: GLKVector3,
);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::translate_with_vector4`"]
pub fn GLKMatrixStackTranslateWithVector4(
stack: &GLKMatrixStack,
translation_vector: GLKVector4,
);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::scale`"]
pub fn GLKMatrixStackScale(stack: &GLKMatrixStack, sx: c_float, sy: c_float, sz: c_float);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::scale_with_vector3`"]
pub fn GLKMatrixStackScaleWithVector3(stack: &GLKMatrixStack, scale_vector: GLKVector3);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::scale_with_vector4`"]
pub fn GLKMatrixStackScaleWithVector4(stack: &GLKMatrixStack, scale_vector: GLKVector4);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::rotate`"]
pub fn GLKMatrixStackRotate(
stack: &GLKMatrixStack,
radians: c_float,
x: c_float,
y: c_float,
z: c_float,
);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::rotate_with_vector3`"]
pub fn GLKMatrixStackRotateWithVector3(
stack: &GLKMatrixStack,
radians: c_float,
axis_vector: GLKVector3,
);
}
extern "C-unwind" {
#[cfg(feature = "GLKMathTypes")]
#[deprecated = "renamed to `GLKMatrixStack::rotate_with_vector4`"]
pub fn GLKMatrixStackRotateWithVector4(
stack: &GLKMatrixStack,
radians: c_float,
axis_vector: GLKVector4,
);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::rotate_x`"]
pub fn GLKMatrixStackRotateX(stack: &GLKMatrixStack, radians: c_float);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::rotate_y`"]
pub fn GLKMatrixStackRotateY(stack: &GLKMatrixStack, radians: c_float);
}
extern "C-unwind" {
#[deprecated = "renamed to `GLKMatrixStack::rotate_z`"]
pub fn GLKMatrixStackRotateZ(stack: &GLKMatrixStack, radians: c_float);
}