playdate
playdate copied to clipboard
use userdata
use userdata https://github.com/boozook/playdate/blob/a8785842ba04674c8eba6a52391cb041ccdcfd59/api/sound/src/player/sp/mod.rs#L209
Source of this issue
// But with cost of memory - one static for each `F`*`Self`, so so much.
pub fn set_finish_callback_raw(&self, callback: sndCallbackProc) -> Result<(), Error> {
let f = self.api().set_finish_callback();
// TODO: use userdata
Ok(unsafe { f(self.0, callback, core::ptr::null_mut()) })
}
/// Equivalent to [setLoopCallback](sys::ffi::playdate_sound_sampleplayer::setLoopCallback)
#[doc(alias = "sys::ffi::playdate_sound_sampleplayer::setLoopCallback")]
pub fn set_loop_callback_raw(&self, callback: sndCallbackProc) -> Result<(), Error> {
let f = self.api().set_loop_callback();
// TODO: use userdata
Ok(unsafe { f(self.0, callback, core::ptr::null_mut()) })
}
}