Index: ui/gfx/rect_conversions.cc |
diff --git a/ui/gfx/rect_conversions.cc b/ui/gfx/rect_conversions.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0d8fdb5e09cdd9979b11495fb8542eb06e58a04d |
--- /dev/null |
+++ b/ui/gfx/rect_conversions.cc |
@@ -0,0 +1,32 @@ |
+// Copyright (c) 2012 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/rect_conversions.h" |
+ |
+#include "ui/gfx/safe_floor_ceil.h" |
+ |
+namespace gfx { |
+ |
+Rect ToEnclosingRect(const RectF& rect) { |
+ int min_x = ToFlooredInt(rect.origin().x()); |
+ int min_y = ToFlooredInt(rect.origin().y()); |
+ float max_x = rect.origin().x() + rect.size().width(); |
+ float max_y = rect.origin().y() + rect.size().height(); |
+ int width = std::max(ToCeiledInt(max_x) - min_x, 0); |
+ int height = std::max(ToCeiledInt(max_y) - min_y, 0); |
+ return Rect(min_x, min_y, width, height); |
+} |
+ |
+Rect ToEnclosedRect(const RectF& rect) { |
+ int min_x = ToCeiledInt(rect.origin().x()); |
+ int min_y = ToCeiledInt(rect.origin().y()); |
+ float max_x = rect.origin().x() + rect.size().width(); |
+ float max_y = rect.origin().y() + rect.size().height(); |
+ int width = std::max(ToFlooredInt(max_x) - min_x, 0); |
+ int height = std::max(ToFlooredInt(max_y) - min_y, 0); |
+ return Rect(min_x, min_y, width, height); |
+} |
+ |
+} // namespace gfx |
+ |