use crate::Matrix4x4;
use objc2::runtime::AnyObject;
unsafe extern "C" {
fn metal_rust_metalfx_get_world_to_view(object: *const AnyObject, output: *mut Matrix4x4);
fn metal_rust_metalfx_set_world_to_view(object: *const AnyObject, value: Matrix4x4);
fn metal_rust_metalfx_get_view_to_clip(object: *const AnyObject, output: *mut Matrix4x4);
fn metal_rust_metalfx_set_view_to_clip(object: *const AnyObject, value: Matrix4x4);
}
pub(crate) fn world_to_view(object: &AnyObject) -> Matrix4x4 {
let mut value = Matrix4x4::identity();
unsafe { metal_rust_metalfx_get_world_to_view(object, &mut value) };
value
}
pub(crate) fn set_world_to_view(object: &AnyObject, value: Matrix4x4) {
unsafe { metal_rust_metalfx_set_world_to_view(object, value) };
}
pub(crate) fn view_to_clip(object: &AnyObject) -> Matrix4x4 {
let mut value = Matrix4x4::identity();
unsafe { metal_rust_metalfx_get_view_to_clip(object, &mut value) };
value
}
pub(crate) fn set_view_to_clip(object: &AnyObject, value: Matrix4x4) {
unsafe { metal_rust_metalfx_set_view_to_clip(object, value) };
}