dora_ssr/dora/
director.rs1extern "C" {
10 fn director_set_clear_color(val: i32);
11 fn director_get_clear_color() -> i32;
12 fn director_get_ui() -> i64;
13 fn director_get_ui_3d() -> i64;
14 fn director_get_entry() -> i64;
15 fn director_get_post_node() -> i64;
16 fn director_get_current_camera() -> i64;
17 fn director_set_frustum_culling(val: i32);
18 fn director_is_frustum_culling() -> i32;
19 fn director_schedule(func0: i32, stack0: i64);
20 fn director_schedule_posted(func0: i32, stack0: i64);
21 fn director_push_camera(camera: i64);
22 fn director_pop_camera();
23 fn director_remove_camera(camera: i64) -> i32;
24 fn director_clear_camera();
25 fn director_cleanup();
26}
27pub struct Director { }
29impl Director {
30 pub fn set_clear_color(val: &crate::dora::Color) {
32 unsafe { director_set_clear_color(val.to_argb() as i32) };
33 }
34 pub fn get_clear_color() -> crate::dora::Color {
36 return unsafe { crate::dora::Color::from(director_get_clear_color()) };
37 }
38 pub fn get_ui() -> crate::dora::Node {
40 return unsafe { crate::dora::Node::from(director_get_ui()).unwrap() };
41 }
42 pub fn get_ui_3d() -> crate::dora::Node {
44 return unsafe { crate::dora::Node::from(director_get_ui_3d()).unwrap() };
45 }
46 pub fn get_entry() -> crate::dora::Node {
48 return unsafe { crate::dora::Node::from(director_get_entry()).unwrap() };
49 }
50 pub fn get_post_node() -> crate::dora::Node {
52 return unsafe { crate::dora::Node::from(director_get_post_node()).unwrap() };
53 }
54 pub fn get_current_camera() -> crate::dora::Camera {
56 return unsafe { crate::dora::Camera::from(director_get_current_camera()).unwrap() };
57 }
58 pub fn set_frustum_culling(val: bool) {
60 unsafe { director_set_frustum_culling(if val { 1 } else { 0 }) };
61 }
62 pub fn is_frustum_culling() -> bool {
64 return unsafe { director_is_frustum_culling() != 0 };
65 }
66 pub fn schedule(mut update_func: Box<dyn FnMut(f64) -> bool>) {
72 let mut stack0 = crate::dora::CallStack::new();
73 let stack_raw0 = stack0.raw();
74 let func_id0 = crate::dora::push_function(Box::new(move || {
75 let result = update_func(stack0.pop_f64().unwrap());
76 stack0.push_bool(result);
77 }));
78 unsafe { director_schedule(func_id0, stack_raw0); }
79 }
80 pub fn schedule_posted(mut update_func: Box<dyn FnMut(f64) -> bool>) {
86 let mut stack0 = crate::dora::CallStack::new();
87 let stack_raw0 = stack0.raw();
88 let func_id0 = crate::dora::push_function(Box::new(move || {
89 let result = update_func(stack0.pop_f64().unwrap());
90 stack0.push_bool(result);
91 }));
92 unsafe { director_schedule_posted(func_id0, stack_raw0); }
93 }
94 pub fn push_camera(camera: &dyn crate::dora::ICamera) {
100 unsafe { director_push_camera(camera.raw()); }
101 }
102 pub fn pop_camera() {
104 unsafe { director_pop_camera(); }
105 }
106 pub fn remove_camera(camera: &dyn crate::dora::ICamera) -> bool {
116 unsafe { return director_remove_camera(camera.raw()) != 0; }
117 }
118 pub fn clear_camera() {
120 unsafe { director_clear_camera(); }
121 }
122 pub fn cleanup() {
124 unsafe { director_cleanup(); }
125 }
126}