| Index: remoting/host/screen_resolution.cc
|
| diff --git a/remoting/host/screen_resolution.cc b/remoting/host/screen_resolution.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a8a7e682155d4cd44e6dedbc860d0c87f0cd72fa
|
| --- /dev/null
|
| +++ b/remoting/host/screen_resolution.cc
|
| @@ -0,0 +1,43 @@
|
| +// Copyright (c) 2013 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 "remoting/host/screen_resolution.h"
|
| +
|
| +#include <algorithm>
|
| +#include <limits>
|
| +
|
| +namespace remoting {
|
| +
|
| +ScreenResolution::ScreenResolution()
|
| + : dimensions_(SkISize::Make(0, 0)),
|
| + dpi_(SkIPoint::Make(0, 0)) {
|
| +}
|
| +
|
| +ScreenResolution::ScreenResolution(const SkISize& dimensions,
|
| + const SkIPoint& dpi)
|
| + : dimensions_(dimensions),
|
| + dpi_(dpi) {
|
| +}
|
| +
|
| +SkISize ScreenResolution::ScaleDimensionsToDpi(const SkIPoint& new_dpi) const {
|
| + int64 width = dimensions_.width();
|
| + int64 height = dimensions_.height();
|
| +
|
| + // Scale the screen dimensions to new DPI.
|
| + width = std::min(width * new_dpi.x() / dpi_.x(),
|
| + static_cast<int64>(std::numeric_limits<int32>::max()));
|
| + height = std::min(height * new_dpi.y() / dpi_.y(),
|
| + static_cast<int64>(std::numeric_limits<int32>::max()));
|
| + return SkISize::Make(static_cast<int32>(width), static_cast<int32>(height));
|
| +}
|
| +
|
| +bool ScreenResolution::IsEmpty() const {
|
| + return dimensions_.isEmpty() || dpi_.x() <= 0 || dpi_.y() <= 0;
|
| +}
|
| +
|
| +bool ScreenResolution::IsValid() const {
|
| + return !IsEmpty() || dimensions_.isZero();
|
| +}
|
| +
|
| +} // namespace remoting
|
|
|