Clear sprite cache when scale factor changes

This commit is contained in:
Max Brunsfeld 2021-11-22 16:47:51 -08:00
parent 23fbeaf978
commit 4002be882f
3 changed files with 31 additions and 10 deletions

View file

@ -205,7 +205,12 @@ impl Window {
synthetic_drag_counter: 0,
executor,
scene_to_render: Default::default(),
renderer: Renderer::new(device.clone(), PIXEL_FORMAT, fonts),
renderer: Renderer::new(
device.clone(),
PIXEL_FORMAT,
get_scale_factor(native_window),
fonts,
),
command_queue: device.new_command_queue(),
last_fresh_keydown: None,
layer,
@ -405,10 +410,7 @@ impl platform::WindowContext for WindowState {
}
fn scale_factor(&self) -> f32 {
unsafe {
let screen: id = msg_send![self.native_window, screen];
NSScreen::backingScaleFactor(screen) as f32
}
get_scale_factor(self.native_window)
}
fn titlebar_height(&self) -> f32 {
@ -427,6 +429,13 @@ impl platform::WindowContext for WindowState {
}
}
fn get_scale_factor(native_window: id) -> f32 {
unsafe {
let screen: id = msg_send![native_window, screen];
NSScreen::backingScaleFactor(screen) as f32
}
}
unsafe fn get_window_state(object: &Object) -> Rc<RefCell<WindowState>> {
let raw: *mut c_void = *object.get_ivar(WINDOW_STATE_IVAR);
let rc1 = Rc::from_raw(raw as *mut RefCell<WindowState>);