diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 19:56:47 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 19:56:47 +0000 |
commit | 5d99ee6aabc1dc165374898d0fcd4d114e4e1698 (patch) | |
tree | f6dd48eb0397711a04300a62210eeb3e8be5046f /ash/display | |
parent | 1d07e92b5484360b2bbf8855c2ed29f5684c114c (diff) | |
download | chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.zip chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.tar.gz chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.tar.bz2 |
chromeos: Include mode details in OutputSnapshot.
This updates OutputConfigurator to include modes'
resolutions and interlaced-ness in OutputSnapshot structs,
and to pass OutputSnapshots to observers after the display
mode is changed.
A following change will update ash's
DisplayChangeObserverX11 class to use OutputSnapshots
instead of asking the X server for the same information via
XRandR.
BUG=266113
Review URL: https://chromiumcodereview.appspot.com/22871010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display')
-rw-r--r-- | ash/display/display_change_observer_x11.cc | 9 | ||||
-rw-r--r-- | ash/display/display_change_observer_x11.h | 4 | ||||
-rw-r--r-- | ash/display/display_util_x11.cc | 2 | ||||
-rw-r--r-- | ash/display/output_configurator_animation.cc | 3 | ||||
-rw-r--r-- | ash/display/output_configurator_animation.h | 4 |
5 files changed, 16 insertions, 6 deletions
diff --git a/ash/display/display_change_observer_x11.cc b/ash/display/display_change_observer_x11.cc index 860a5ea..2802e6c 100644 --- a/ash/display/display_change_observer_x11.cc +++ b/ash/display/display_change_observer_x11.cc @@ -27,6 +27,9 @@ namespace ash { namespace internal { + +using chromeos::OutputConfigurator; + namespace { // The DPI threshold to detect high density screen. @@ -89,7 +92,9 @@ bool DisplayChangeObserverX11::GetResolutionForDisplayId(int64 display_id, return true; } -void DisplayChangeObserverX11::OnDisplayModeChanged() { +void DisplayChangeObserverX11::OnDisplayModeChanged( + const std::vector<OutputConfigurator::OutputSnapshot>& outputs) { + // TODO(derat): Use |outputs| instead of re-fetching information. XRRScreenResources* screen_resources = XRRGetScreenResources(xdisplay_, x_root_window_); std::map<XID, XRRCrtcInfo*> crtc_info_map; @@ -131,7 +136,7 @@ void DisplayChangeObserverX11::OnDisplayModeChanged() { continue; } const XRRModeInfo* mode = - chromeos::FindModeInfo(screen_resources, crtc_info->mode); + chromeos::FindXRRModeInfo(screen_resources, crtc_info->mode); if (!mode) { LOG(WARNING) << "Could not find a mode for the output: output_index=" << output_index; diff --git a/ash/display/display_change_observer_x11.h b/ash/display/display_change_observer_x11.h index 6781151..33fafb3 100644 --- a/ash/display/display_change_observer_x11.h +++ b/ash/display/display_change_observer_x11.h @@ -36,7 +36,9 @@ class DisplayChangeObserverX11 int* height) const OVERRIDE; // Overriden from chromeos::OutputConfigurator::Observer: - virtual void OnDisplayModeChanged() OVERRIDE; + virtual void OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) + OVERRIDE; // Overriden from ShellObserver: virtual void OnAppTerminating() OVERRIDE; diff --git a/ash/display/display_util_x11.cc b/ash/display/display_util_x11.cc index e662ce2..984ed53 100644 --- a/ash/display/display_util_x11.cc +++ b/ash/display/display_util_x11.cc @@ -63,7 +63,7 @@ std::vector<Resolution> GetResolutionList( for (int i = 0; i < output_info->nmode; i++) { RRMode mode = output_info->modes[i]; - const XRRModeInfo* info = chromeos::FindModeInfo(screen_resources, mode); + const XRRModeInfo* info = chromeos::FindXRRModeInfo(screen_resources, mode); DCHECK(info); // Just ignore bad entry on Release build. if (!info) diff --git a/ash/display/output_configurator_animation.cc b/ash/display/output_configurator_animation.cc index 6161bef..5e58497 100644 --- a/ash/display/output_configurator_animation.cc +++ b/ash/display/output_configurator_animation.cc @@ -203,7 +203,8 @@ void OutputConfiguratorAnimation::StartFadeInAnimation() { } } -void OutputConfiguratorAnimation::OnDisplayModeChanged() { +void OutputConfiguratorAnimation::OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) { if (!hiding_layers_.empty()) StartFadeInAnimation(); } diff --git a/ash/display/output_configurator_animation.h b/ash/display/output_configurator_animation.h index 3fefe92..42a66ef 100644 --- a/ash/display/output_configurator_animation.h +++ b/ash/display/output_configurator_animation.h @@ -42,7 +42,9 @@ class ASH_EXPORT OutputConfiguratorAnimation protected: // chromeos::OutputConfigurator::Observer overrides: - virtual void OnDisplayModeChanged() OVERRIDE; + virtual void OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) + OVERRIDE; virtual void OnDisplayModeChangeFailed( chromeos::OutputState failed_new_state) OVERRIDE; |