Make Window::on_next_frame work in tests

This commit is contained in:
Max Brunsfeld 2023-12-05 13:34:12 -08:00
parent 863222edc5
commit f2faa70f73
2 changed files with 17 additions and 9 deletions

View file

@ -7,6 +7,7 @@ use std::{
use crate::DisplayId; use crate::DisplayId;
use collections::HashMap; use collections::HashMap;
use parking_lot::Mutex; use parking_lot::Mutex;
pub use sys::CVSMPTETime as SmtpeTime;
pub use sys::CVTimeStamp as VideoTimestamp; pub use sys::CVTimeStamp as VideoTimestamp;
pub(crate) struct MacDisplayLinker { pub(crate) struct MacDisplayLinker {
@ -153,7 +154,7 @@ mod sys {
kCVTimeStampTopField | kCVTimeStampBottomField; kCVTimeStampTopField | kCVTimeStampBottomField;
#[repr(C)] #[repr(C)]
#[derive(Clone, Copy)] #[derive(Clone, Copy, Default)]
pub struct CVSMPTETime { pub struct CVSMPTETime {
pub subframes: i16, pub subframes: i16,
pub subframe_divisor: i16, pub subframe_divisor: i16,

View file

@ -147,18 +147,25 @@ impl Platform for TestPlatform {
fn set_display_link_output_callback( fn set_display_link_output_callback(
&self, &self,
_display_id: DisplayId, _display_id: DisplayId,
_callback: Box<dyn FnMut(&crate::VideoTimestamp, &crate::VideoTimestamp) + Send>, mut callback: Box<dyn FnMut(&crate::VideoTimestamp, &crate::VideoTimestamp) + Send>,
) { ) {
unimplemented!() let timestamp = crate::VideoTimestamp {
version: 0,
video_time_scale: 0,
video_time: 0,
host_time: 0,
rate_scalar: 0.0,
video_refresh_period: 0,
smpte_time: crate::SmtpeTime::default(),
flags: 0,
reserved: 0,
};
callback(&timestamp, &timestamp)
} }
fn start_display_link(&self, _display_id: DisplayId) { fn start_display_link(&self, _display_id: DisplayId) {}
unimplemented!()
}
fn stop_display_link(&self, _display_id: DisplayId) { fn stop_display_link(&self, _display_id: DisplayId) {}
unimplemented!()
}
fn open_url(&self, _url: &str) { fn open_url(&self, _url: &str) {
unimplemented!() unimplemented!()