Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: ash/display/display_info.cc

Issue 138903025: Read compositor VSync information from platform, when possible (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 041e3518 Cleaned up. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/display/display_info.cc
diff --git a/ash/display/display_info.cc b/ash/display/display_info.cc
index d35f0fc0329895e10544afb84d9f64d7bdb6d190..aa04ef161bddb98c16ac814ec91331cafad2aa0b 100644
--- a/ash/display/display_info.cc
+++ b/ash/display/display_info.cc
@@ -23,10 +23,12 @@
namespace ash {
namespace internal {
-Resolution::Resolution(const gfx::Size& size, bool interlaced)
- : size(size),
- interlaced(interlaced) {
-}
+Resolution::Resolution() : refresh_rate(0.0f), interlaced(false) {}
+
+Resolution::Resolution(const gfx::Size& size,
+ float refresh_rate,
+ bool interlaced)
+ : size(size), refresh_rate(refresh_rate), interlaced(interlaced) {}
// satic
DisplayInfo DisplayInfo::CreateFromSpec(const std::string& spec) {
@@ -112,8 +114,14 @@ DisplayInfo DisplayInfo::CreateFromSpecWithID(const std::string& spec,
for (size_t i = 0; i < count; ++i) {
std::string resolution = parts[i];
int width, height;
- if (sscanf(resolution.c_str(), "%dx%d", &width, &height) == 2)
- resolutions.push_back(Resolution(gfx::Size(width, height), false));
+ float refresh_rate = 0.0f;
+ if (sscanf(resolution.c_str(),
+ "%dx%d%%%f",
+ &width,
+ &height,
+ &refresh_rate) >= 2)
+ resolutions.push_back(
+ Resolution(gfx::Size(width, height), refresh_rate, false));
}
}
@@ -239,9 +247,19 @@ gfx::Insets DisplayInfo::GetOverscanInsetsInPixel() const {
std::string DisplayInfo::ToString() const {
int rotation_degree = static_cast<int>(rotation_) * 90;
+ std::string resolutions;
+ std::vector<Resolution>::const_iterator iter;
+ for (iter = resolutions_.begin(); iter != resolutions_.end(); ++iter) {
+ base::StringAppendF(&resolutions,
+ "(%dx%d@%f%c), ",
+ iter->size.width(),
+ iter->size.height(),
+ iter->refresh_rate,
+ iter->interlaced ? 'I' : 'P');
+ }
return base::StringPrintf(
"DisplayInfo[%lld] native bounds=%s, size=%s, scale=%f, "
- "overscan=%s, rotation=%d, ui-scale=%f, touchscreen=%s",
+ "overscan=%s, rotation=%d, ui-scale=%f, touchscreen=%s, resolutions=[%s]",
static_cast<long long int>(id_),
bounds_in_native_.ToString().c_str(),
size_in_pixel_.ToString().c_str(),
@@ -249,9 +267,12 @@ std::string DisplayInfo::ToString() const {
overscan_insets_in_dip_.ToString().c_str(),
rotation_degree,
configured_ui_scale_,
- touch_support_ == gfx::Display::TOUCH_SUPPORT_AVAILABLE ? "yes" :
- touch_support_ == gfx::Display::TOUCH_SUPPORT_UNAVAILABLE ? "no" :
- "unknown");
+ touch_support_ == gfx::Display::TOUCH_SUPPORT_AVAILABLE
+ ? "yes"
+ : touch_support_ == gfx::Display::TOUCH_SUPPORT_UNAVAILABLE
+ ? "no"
+ : "unknown",
+ resolutions.c_str());
}
std::string DisplayInfo::ToFullString() const {

Powered by Google App Engine
This is Rietveld 408576698