File tree 3 files changed +18
-3
lines changed
3 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ pub struct Window {
46
46
#[ cfg( target_arch = "wasm32" ) ]
47
47
pub canvas : Option < String > ,
48
48
command_queue : Vec < WindowCommand > ,
49
+ scale_factor : f64 ,
49
50
}
50
51
51
52
#[ derive( Debug ) ]
@@ -110,6 +111,7 @@ impl Window {
110
111
#[ cfg( target_arch = "wasm32" ) ]
111
112
canvas : window_descriptor. canvas . clone ( ) ,
112
113
command_queue : Vec :: new ( ) ,
114
+ scale_factor : 1.0 ,
113
115
}
114
116
}
115
117
@@ -141,6 +143,16 @@ impl Window {
141
143
self . height = height;
142
144
}
143
145
146
+ #[ doc( hidden) ]
147
+ pub fn update_scale_factor_from_backend ( & mut self , scale_factor : f64 ) {
148
+ self . scale_factor = scale_factor;
149
+ }
150
+
151
+ #[ inline]
152
+ pub fn scale_factor ( & self ) -> f64 {
153
+ self . scale_factor
154
+ }
155
+
144
156
#[ inline]
145
157
pub fn title ( & self ) -> & str {
146
158
& self . title
Original file line number Diff line number Diff line change @@ -303,6 +303,7 @@ pub fn winit_runner(mut app: App) {
303
303
let window_id = winit_windows. get_window_id ( winit_window_id) . unwrap ( ) ;
304
304
let window = windows. get_mut ( window_id) . unwrap ( ) ;
305
305
let size = new_inner_size. to_logical ( scale_factor) ;
306
+ window. update_scale_factor_from_backend ( scale_factor) ;
306
307
window. update_resolution_from_backend ( size. width , size. height ) ;
307
308
}
308
309
_ => { }
@@ -344,8 +345,8 @@ fn handle_create_window_events(
344
345
let create_window_events = resources. get :: < Events < CreateWindow > > ( ) . unwrap ( ) ;
345
346
let mut window_created_events = resources. get_mut :: < Events < WindowCreated > > ( ) . unwrap ( ) ;
346
347
for create_window_event in create_window_event_reader. iter ( & create_window_events) {
347
- let window = Window :: new ( create_window_event. id , & create_window_event. descriptor ) ;
348
- winit_windows. create_window ( event_loop, & window) ;
348
+ let mut window = Window :: new ( create_window_event. id , & create_window_event. descriptor ) ;
349
+ winit_windows. create_window ( event_loop, & mut window) ;
349
350
let window_id = window. id ( ) ;
350
351
windows. add ( window) ;
351
352
window_created_events. send ( WindowCreated { id : window_id } ) ;
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ impl WinitWindows {
12
12
pub fn create_window (
13
13
& mut self ,
14
14
event_loop : & winit:: event_loop:: EventLoopWindowTarget < ( ) > ,
15
- window : & Window ,
15
+ window : & mut Window ,
16
16
) {
17
17
#[ cfg( target_os = "windows" ) ]
18
18
let mut winit_window_builder = {
@@ -100,6 +100,8 @@ impl WinitWindows {
100
100
}
101
101
}
102
102
103
+ window. update_scale_factor_from_backend ( winit_window. scale_factor ( ) ) ;
104
+
103
105
self . windows . insert ( winit_window. id ( ) , winit_window) ;
104
106
}
105
107
You can’t perform that action at this time.
0 commit comments