25 lines
613 B
Rust
25 lines
613 B
Rust
extern {
|
|
fn notify_on_update(f: extern fn() -> ()) -> ();
|
|
fn get_object(name: *const i8) -> i32;
|
|
fn set_transform(object: i32, x: f32, y: f32, z: f32, rx: f32, ry: f32, rz: f32, sx: f32, sy: f32, sz: f32) -> ();
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub extern "C" fn update() -> () {
|
|
unsafe {
|
|
let name = std::ffi::CString::new("Cube").unwrap();
|
|
let object = get_object(name.as_ptr());
|
|
static mut rot: f32 = 0.1;
|
|
rot += 0.01;
|
|
set_transform(object, 0.0, 0.0, 0.0, 0.0, 0.0, rot, 1.0, 1.0, 1.0);
|
|
}
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub extern "C" fn main() -> i32 {
|
|
unsafe {
|
|
notify_on_update(update);
|
|
}
|
|
return 0;
|
|
}
|