| Index: ui/gfx/geometry/dip_util.cc
|
| diff --git a/ui/gfx/geometry/dip_util.cc b/ui/gfx/geometry/dip_util.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..21465e0bfedd8f6e1043e1f48abd9e7626b9ca6a
|
| --- /dev/null
|
| +++ b/ui/gfx/geometry/dip_util.cc
|
| @@ -0,0 +1,57 @@
|
| +// 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/gfx/geometry/dip_util.h"
|
| +
|
| +#include "ui/gfx/geometry/point_f.h"
|
| +#include "ui/gfx/point.h"
|
| +#include "ui/gfx/point_conversions.h"
|
| +#include "ui/gfx/rect.h"
|
| +#include "ui/gfx/rect_conversions.h"
|
| +#include "ui/gfx/size.h"
|
| +#include "ui/gfx/size_conversions.h"
|
| +
|
| +namespace gfx {
|
| +
|
| +gfx::Point ConvertPointToDIP(float scale_factor,
|
| + const gfx::Point& point_in_pixel) {
|
| + return gfx::ToFlooredPoint(
|
| + gfx::ScalePoint(point_in_pixel, 1.0f / scale_factor));
|
| +}
|
| +
|
| +gfx::PointF ConvertPointToDIP(float scale_factor,
|
| + const gfx::PointF& point_in_pixel) {
|
| + return gfx::ScalePoint(point_in_pixel, 1.0f / scale_factor);
|
| +}
|
| +
|
| +gfx::Size ConvertSizeToDIP(float scale_factor, const gfx::Size& size_in_pixel) {
|
| + return gfx::ToFlooredSize(gfx::ScaleSize(size_in_pixel, 1.0f / scale_factor));
|
| +}
|
| +
|
| +gfx::Rect ConvertRectToDIP(float scale_factor, const gfx::Rect& rect_in_pixel) {
|
| + return gfx::ToFlooredRectDeprecated(
|
| + gfx::ScaleRect(rect_in_pixel, 1.0f / scale_factor));
|
| +}
|
| +
|
| +gfx::Point ConvertPointToPixel(float scale_factor,
|
| + const gfx::Point& point_in_dip) {
|
| + return gfx::ToFlooredPoint(gfx::ScalePoint(point_in_dip, scale_factor));
|
| +}
|
| +
|
| +gfx::Size ConvertSizeToPixel(float scale_factor, const gfx::Size& size_in_dip) {
|
| + return gfx::ToFlooredSize(gfx::ScaleSize(size_in_dip, scale_factor));
|
| +}
|
| +
|
| +gfx::Rect ConvertRectToPixel(float scale_factor, const gfx::Rect& rect_in_dip) {
|
| + // Use ToEnclosingRect() to ensure we paint all the possible pixels
|
| + // touched. ToEnclosingRect() floors the origin, and ceils the max
|
| + // coordinate. To do otherwise (such as flooring the size) potentially
|
| + // results in rounding down and not drawing all the pixels that are
|
| + // touched.
|
| + return gfx::ToEnclosingRect(
|
| + gfx::RectF(gfx::ScalePoint(rect_in_dip.origin(), scale_factor),
|
| + gfx::ScaleSize(rect_in_dip.size(), scale_factor)));
|
| +}
|
| +
|
| +} // namespace gfx
|
|
|