1 // Copyright 2014 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/ozone/common/chromeos/display_snapshot_proxy.h"
6
7 #include "ui/ozone/common/chromeos/display_mode_proxy.h"
8 #include "ui/ozone/common/gpu/ozone_gpu_message_params.h"
9
10 namespace ui {
11
12 namespace {
13
SameModes(const DisplayMode_Params & lhs,const DisplayMode_Params & rhs)14 bool SameModes(const DisplayMode_Params& lhs, const DisplayMode_Params& rhs) {
15 return lhs.size == rhs.size && lhs.is_interlaced == rhs.is_interlaced &&
16 lhs.refresh_rate == rhs.refresh_rate;
17 }
18
19 } // namespace
20
DisplaySnapshotProxy(const DisplaySnapshot_Params & params)21 DisplaySnapshotProxy::DisplaySnapshotProxy(const DisplaySnapshot_Params& params)
22 : DisplaySnapshot(params.display_id,
23 params.has_proper_display_id,
24 params.origin,
25 params.physical_size,
26 params.type,
27 params.is_aspect_preserving_scaling,
28 params.has_overscan,
29 params.display_name,
30 std::vector<const DisplayMode*>(),
31 NULL,
32 NULL),
33 string_representation_(params.string_representation) {
34 for (size_t i = 0; i < params.modes.size(); ++i) {
35 modes_.push_back(new DisplayModeProxy(params.modes[i]));
36
37 if (params.has_current_mode &&
38 SameModes(params.modes[i], params.current_mode))
39 current_mode_ = modes_.back();
40
41 if (params.has_native_mode &&
42 SameModes(params.modes[i], params.native_mode))
43 native_mode_ = modes_.back();
44 }
45 }
46
~DisplaySnapshotProxy()47 DisplaySnapshotProxy::~DisplaySnapshotProxy() {}
48
ToString() const49 std::string DisplaySnapshotProxy::ToString() const {
50 return string_representation_;
51 }
52
53 } // namespace ui
54