mirror of
https://github.com/servo/servo.git
synced 2025-08-12 08:55:32 +01:00
Upgrade to egui@0.29.1
and winit@0.30.5
(#33751)
* update egui dependencies Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * update glow to 0.14.1 Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * update winit to 0.30.5 Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * update servo-tidy.toml Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * Use more imports to avoid qualified usage, fix build, and silence warnings about deprecated methods Signed-off-by: Martin Robinson <mrobinson@igalia.com> --------- Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
6b3a316e1b
commit
fd19409f31
12 changed files with 339 additions and 182 deletions
|
@ -30,7 +30,7 @@ use winit::keyboard::{Key as LogicalKey, ModifiersState, NamedKey};
|
|||
#[cfg(any(target_os = "linux", target_os = "windows"))]
|
||||
use winit::window::Icon;
|
||||
|
||||
use super::events_loop::{EventsLoop, WakerEvent};
|
||||
use super::events_loop::WakerEvent;
|
||||
use super::geometry::{winit_position_to_euclid_point, winit_size_to_euclid_size};
|
||||
use super::keyutils::keyboard_event_from_winit;
|
||||
use super::window_trait::{WindowPortsMethods, LINE_HEIGHT};
|
||||
|
@ -60,7 +60,7 @@ pub struct Window {
|
|||
impl Window {
|
||||
pub fn new(
|
||||
win_size: Size2D<u32, DeviceIndependentPixel>,
|
||||
events_loop: &EventsLoop,
|
||||
event_loop: &winit::event_loop::EventLoop<WakerEvent>,
|
||||
no_native_titlebar: bool,
|
||||
device_pixel_ratio_override: Option<f32>,
|
||||
) -> Window {
|
||||
|
@ -72,15 +72,16 @@ impl Window {
|
|||
// #9996.
|
||||
let visible = opts.output_file.is_none() && !no_native_titlebar;
|
||||
|
||||
let window_builder = winit::window::WindowBuilder::new()
|
||||
let window_attr = winit::window::Window::default_attributes()
|
||||
.with_title("Servo".to_string())
|
||||
.with_decorations(!no_native_titlebar)
|
||||
.with_transparent(no_native_titlebar)
|
||||
.with_inner_size(LogicalSize::new(win_size.width, win_size.height))
|
||||
.with_visible(visible);
|
||||
|
||||
let winit_window = window_builder
|
||||
.build(events_loop.as_winit())
|
||||
#[allow(deprecated)]
|
||||
let winit_window = event_loop
|
||||
.create_window(window_attr)
|
||||
.expect("Failed to create window.");
|
||||
|
||||
#[cfg(any(target_os = "linux", target_os = "windows"))]
|
||||
|
@ -89,8 +90,7 @@ impl Window {
|
|||
winit_window.set_window_icon(Some(load_icon(icon_bytes)));
|
||||
}
|
||||
|
||||
let primary_monitor = events_loop
|
||||
.as_winit()
|
||||
let primary_monitor = winit_window
|
||||
.available_monitors()
|
||||
.nth(0)
|
||||
.expect("No monitor detected");
|
||||
|
@ -377,7 +377,7 @@ impl WindowPortsMethods for Window {
|
|||
return;
|
||||
},
|
||||
};
|
||||
self.winit_window.set_cursor_icon(winit_cursor);
|
||||
self.winit_window.set_cursor(winit_cursor);
|
||||
self.winit_window.set_cursor_visible(true);
|
||||
}
|
||||
|
||||
|
@ -460,7 +460,7 @@ impl WindowPortsMethods for Window {
|
|||
.borrow_mut()
|
||||
.push(EmbedderEvent::Touch(phase, id, point));
|
||||
},
|
||||
winit::event::WindowEvent::TouchpadMagnify { delta, .. } => {
|
||||
winit::event::WindowEvent::PinchGesture { delta, .. } => {
|
||||
let magnification = delta as f32 + 1.0;
|
||||
self.event_queue
|
||||
.borrow_mut()
|
||||
|
@ -489,17 +489,17 @@ impl WindowPortsMethods for Window {
|
|||
|
||||
fn new_glwindow(
|
||||
&self,
|
||||
event_loop: &winit::event_loop::EventLoopWindowTarget<WakerEvent>,
|
||||
event_loop: &winit::event_loop::ActiveEventLoop,
|
||||
) -> Box<dyn webxr::glwindow::GlWindow> {
|
||||
let size = self.winit_window.outer_size();
|
||||
|
||||
let window_builder = winit::window::WindowBuilder::new()
|
||||
let window_attr = winit::window::Window::default_attributes()
|
||||
.with_title("Servo XR".to_string())
|
||||
.with_inner_size(size)
|
||||
.with_visible(true);
|
||||
|
||||
let winit_window = window_builder
|
||||
.build(event_loop)
|
||||
let winit_window = event_loop
|
||||
.create_window(window_attr)
|
||||
.expect("Failed to create window.");
|
||||
|
||||
let pose = Rc::new(XRWindowPose {
|
||||
|
@ -531,15 +531,15 @@ impl WindowMethods for Window {
|
|||
let viewport_origin = DeviceIntPoint::zero(); // bottom left
|
||||
let viewport_size = winit_size_to_euclid_size(self.winit_window.inner_size()).to_f32();
|
||||
let viewport = DeviceIntRect::from_origin_and_size(viewport_origin, viewport_size.to_i32());
|
||||
let screen = self.screen_size.to_i32();
|
||||
let screen_size = self.screen_size.to_i32();
|
||||
|
||||
EmbedderCoordinates {
|
||||
viewport,
|
||||
framebuffer: viewport.size(),
|
||||
window_rect: DeviceIntRect::from_origin_and_size(window_origin, window_size),
|
||||
screen_size: screen,
|
||||
screen_size,
|
||||
// FIXME: Winit doesn't have API for available size. Fallback to screen size
|
||||
available_screen_size: screen,
|
||||
available_screen_size: screen_size,
|
||||
hidpi_factor: self.hidpi_factor(),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue