Use the --device-pixel-ratio in opt instead of /components/servo/

This commit is contained in:
Paul Rouget 2018-03-20 19:38:03 +08:00
parent aa72b8783d
commit abea15d419
2 changed files with 13 additions and 13 deletions

View file

@ -160,16 +160,6 @@ impl<Window> Servo<Window> where Window: WindowMethods + 'static {
let coordinates = window.get_coordinates();
let (mut webrender, webrender_api_sender) = {
let device_pixel_ratio = match opts.device_pixels_per_px {
Some(device_pixels_per_px) => device_pixels_per_px,
None => match opts.output_file {
Some(_) => 1.0,
// TODO(gw): Duplicates device_pixels_per_screen_px from compositor.
// Tidy up!
None => coordinates.hidpi_factor.get(),
}
};
let renderer_kind = if opts::get().should_use_osmesa() {
RendererKind::OSMesa
} else {
@ -190,7 +180,7 @@ impl<Window> Servo<Window> where Window: WindowMethods + 'static {
let render_notifier = Box::new(RenderNotifier::new(compositor_proxy.clone()));
webrender::Renderer::new(window.gl(), render_notifier, webrender::RendererOptions {
device_pixel_ratio: device_pixel_ratio,
device_pixel_ratio: coordinates.hidpi_factor.get(),
resource_override_path: Some(resource_path),
enable_aa: opts.enable_text_antialiasing,
debug_flags: debug_flags,

View file

@ -601,8 +601,18 @@ impl Window {
self.event_queue.borrow_mut().push(WindowEvent::MouseWindowEventClass(event));
}
#[cfg(not(target_os = "windows"))]
fn hidpi_factor(&self) -> TypedScale<f32, DeviceIndependentPixel, DevicePixel> {
match opts::get().device_pixels_per_px {
Some(device_pixels_per_px) => TypedScale::new(device_pixels_per_px),
None => match opts::get().output_file {
Some(_) => TypedScale::new(1.0),
None => self.platform_hidpi_factor()
}
}
}
#[cfg(not(target_os = "windows"))]
fn platform_hidpi_factor(&self) -> TypedScale<f32, DeviceIndependentPixel, DevicePixel> {
match self.kind {
WindowKind::Window(ref window, ..) => {
TypedScale::new(window.hidpi_factor())
@ -614,7 +624,7 @@ impl Window {
}
#[cfg(target_os = "windows")]
fn hidpi_factor(&self) -> TypedScale<f32, DeviceIndependentPixel, DevicePixel> {
fn platform_hidpi_factor(&self) -> TypedScale<f32, DeviceIndependentPixel, DevicePixel> {
let hdc = unsafe { user32::GetDC(::std::ptr::null_mut()) };
let ppi = unsafe { gdi32::GetDeviceCaps(hdc, winapi::wingdi::LOGPIXELSY) };
TypedScale::new(ppi as f32 / 96.0)