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 10namespace ui { 11 12namespace { 13 14bool 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 21DisplaySnapshotProxy::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 47DisplaySnapshotProxy::~DisplaySnapshotProxy() {} 48 49std::string DisplaySnapshotProxy::ToString() const { 50 return string_representation_; 51} 52 53} // namespace ui 54