#[macro_export] macro_rules! request_animation_frame { () => {{ #[cfg(target_arch = "wasm32")] unsafe extern "C" { pub fn wapi_requestAnimationFrame() -> i32; } #[cfg(target_arch = "wasm32")] let result = unsafe { wapi_requestAnimationFrame() }; #[cfg(not(target_arch = "wasm32"))] let result = 0; result }}; } #[macro_export] macro_rules! cancel_animation_frame { ($frame_id:expr) => { #[cfg(target_arch = "wasm32")] unsafe extern "C" { pub fn wapi_cancelAnimationFrame(frame_id: i32); } { let frame_id = $frame_id; #[cfg(target_arch = "wasm32")] unsafe { wapi_cancelAnimationFrame(frame_id) }; #[cfg(not(target_arch = "wasm32"))] let _ = frame_id; } }; } #[macro_export] macro_rules! notify_tiles_render_complete { () => {{ #[cfg(target_arch = "wasm32")] unsafe extern "C" { pub fn wapi_notifyTilesRenderComplete(); } #[cfg(target_arch = "wasm32")] unsafe { wapi_notifyTilesRenderComplete() }; }}; } pub use cancel_animation_frame; pub use notify_tiles_render_complete; pub use request_animation_frame;