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

Unified Diff: ui/ozone/common/display_util.cc

Issue 1285183008: Ozone integration. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: add missing license header Created 5 years, 4 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
« no previous file with comments | « ui/ozone/common/display_util.h ('k') | ui/ozone/common/egl_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/common/display_util.cc
diff --git a/ui/ozone/common/display_util.cc b/ui/ozone/common/display_util.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ffa4670c5bc26d25d3a1701fb0981f68d94e9606
--- /dev/null
+++ b/ui/ozone/common/display_util.cc
@@ -0,0 +1,102 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/ozone/common/display_util.h"
+
+#include "base/command_line.h"
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "ui/display/types/display_mode.h"
+#include "ui/display/types/display_snapshot.h"
+#include "ui/display/util/edid_parser.h"
+#include "ui/display/util/edid_parser.h"
+#include "ui/ozone/public/ozone_switches.h"
+
+namespace ui {
+
+namespace {
+
+const int64_t kDummyDisplayId = 1;
+const int64_t kDummyProductId = 1;
+
+} // namespace
+
+FindDisplayById::FindDisplayById(int64_t display_id) : display_id_(display_id) {
+}
+
+bool FindDisplayById::operator()(const DisplaySnapshot_Params& display) const {
+ return display.display_id == display_id_;
+}
+
+DisplayMode_Params GetDisplayModeParams(const DisplayMode& mode) {
+ DisplayMode_Params params;
+ params.size = mode.size();
+ params.is_interlaced = mode.is_interlaced();
+ params.refresh_rate = mode.refresh_rate();
+
+ return params;
+}
+
+DisplaySnapshot_Params GetDisplaySnapshotParams(
+ const DisplaySnapshot& display) {
+ DisplaySnapshot_Params params;
+ params.display_id = display.display_id();
+ params.origin = display.origin();
+ params.physical_size = display.physical_size();
+ params.type = display.type();
+ params.is_aspect_preserving_scaling = display.is_aspect_preserving_scaling();
+ params.has_overscan = display.has_overscan();
+ params.display_name = display.display_name();
+ for (size_t i = 0; i < display.modes().size(); ++i)
+ params.modes.push_back(GetDisplayModeParams(*display.modes()[i]));
+
+ params.has_current_mode = display.current_mode() != NULL;
+ if (params.has_current_mode)
+ params.current_mode = GetDisplayModeParams(*display.current_mode());
+
+ params.has_native_mode = display.native_mode() != NULL;
+ if (params.has_native_mode)
+ params.native_mode = GetDisplayModeParams(*display.native_mode());
+
+ params.product_id = display.product_id();
+ params.string_representation = display.ToString();
+
+ return params;
+}
+
+bool CreateSnapshotFromCommandLine(DisplaySnapshot_Params* snapshot_out) {
+ base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
+ std::string spec =
+ cmd->GetSwitchValueASCII(switches::kOzoneInitialDisplayBounds);
+ std::string physical_spec =
+ cmd->GetSwitchValueASCII(switches::kOzoneInitialDisplayPhysicalSizeMm);
+
+ int width = 0;
+ int height = 0;
+ if (spec.empty() || sscanf(spec.c_str(), "%dx%d", &width, &height) < 2 ||
+ width == 0 || height == 0) {
+ return false;
+ }
+
+ int physical_width = 0;
+ int physical_height = 0;
+ sscanf(physical_spec.c_str(), "%dx%d", &physical_width, &physical_height);
+
+ DisplayMode_Params mode_param;
+ mode_param.size = gfx::Size(width, height);
+ mode_param.refresh_rate = 60;
+
+ snapshot_out->display_id = kDummyDisplayId;
+ snapshot_out->modes.push_back(mode_param);
+ snapshot_out->type = DISPLAY_CONNECTION_TYPE_INTERNAL;
+ snapshot_out->physical_size = gfx::Size(physical_width, physical_height);
+ snapshot_out->has_current_mode = true;
+ snapshot_out->current_mode = mode_param;
+ snapshot_out->has_native_mode = true;
+ snapshot_out->native_mode = mode_param;
+ snapshot_out->product_id = kDummyProductId;
+ return true;
+}
+
+} // namespace ui
« no previous file with comments | « ui/ozone/common/display_util.h ('k') | ui/ozone/common/egl_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698