1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "ui/display/win/screen_win_display.h"
6 
7 #include "ui/display/win/display_info.h"
8 
9 namespace display {
10 namespace win {
11 namespace {
12 
CreateDisplayFromDisplayInfo(const DisplayInfo & display_info)13 Display CreateDisplayFromDisplayInfo(const DisplayInfo& display_info) {
14   Display display(display_info.id());
15   float scale_factor = display_info.device_scale_factor();
16   display.set_device_scale_factor(scale_factor);
17   display.set_work_area(gfx::ScaleToEnclosingRect(
18       display_info.screen_work_rect(), 1.0f / scale_factor));
19   display.set_bounds(gfx::ScaleToEnclosingRect(display_info.screen_rect(),
20                                                1.0f / scale_factor));
21   display.set_rotation(display_info.rotation());
22   display.set_display_frequency(display_info.display_frequency());
23   return display;
24 }
25 
26 }  // namespace
27 
28 ScreenWinDisplay::ScreenWinDisplay() = default;
29 
ScreenWinDisplay(const DisplayInfo & display_info)30 ScreenWinDisplay::ScreenWinDisplay(const DisplayInfo& display_info)
31     : ScreenWinDisplay(CreateDisplayFromDisplayInfo(display_info),
32                        display_info) {}
33 
ScreenWinDisplay(const Display & display,const DisplayInfo & display_info)34 ScreenWinDisplay::ScreenWinDisplay(const Display& display,
35                                    const DisplayInfo& display_info)
36     : display_(display),
37       pixel_bounds_(display_info.screen_rect()),
38       pixels_per_inch_(display_info.pixels_per_inch()) {}
39 }  // namespace win
40 }  // namespace display
41