diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 05:42:19 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-10-12 05:42:19 +0000 |
commit | 81e9af664a30a4aef130c63b3119b67ad21f3069 (patch) | |
tree | bf0be2a73e1a106d98011fde75ec5d1442ca0f4d | |
parent | 952eedd8fb698ef10c2195e93a4914f2ef7a8b50 (diff) | |
download | chromium_src-81e9af664a30a4aef130c63b3119b67ad21f3069.zip chromium_src-81e9af664a30a4aef130c63b3119b67ad21f3069.tar.gz chromium_src-81e9af664a30a4aef130c63b3119b67ad21f3069.tar.bz2 |
Add gfx::ToRoundedSize() method to round a floating point size to an integer size.
R=sky
BUG=147395
Review URL: https://chromiumcodereview.appspot.com/11096034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161502 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/gfx/size_conversions.cc | 6 | ||||
-rw-r--r-- | ui/gfx/size_conversions.h | 3 | ||||
-rw-r--r-- | ui/gfx/size_unittest.cc | 106 |
3 files changed, 115 insertions, 0 deletions
diff --git a/ui/gfx/size_conversions.cc b/ui/gfx/size_conversions.cc index 7fb3d24..eacbeb4 100644 --- a/ui/gfx/size_conversions.cc +++ b/ui/gfx/size_conversions.cc @@ -20,5 +20,11 @@ Size ToCeiledSize(const SizeF& size) { return Size(w, h); } +Size ToRoundedSize(const SizeF& size) { + int w = ToRoundedInt(size.width()); + int h = ToRoundedInt(size.height()); + return Size(w, h); +} + } // namespace gfx diff --git a/ui/gfx/size_conversions.h b/ui/gfx/size_conversions.h index 03197b3..494f483 100644 --- a/ui/gfx/size_conversions.h +++ b/ui/gfx/size_conversions.h @@ -16,6 +16,9 @@ UI_EXPORT Size ToFlooredSize(const SizeF& size); // Returns a Size with each component from the input SizeF ceiled. UI_EXPORT Size ToCeiledSize(const SizeF& size); +// Returns a Size with each component from the input SizeF rounded. +UI_EXPORT Size ToRoundedSize(const SizeF& size); + } // namespace gfx #endif // UI_GFX_RECT_CONVERSIONS_H_ diff --git a/ui/gfx/size_unittest.cc b/ui/gfx/size_unittest.cc index 65d58ca..119764f 100644 --- a/ui/gfx/size_unittest.cc +++ b/ui/gfx/size_unittest.cc @@ -6,6 +6,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/gfx/size.h" +#include "ui/gfx/size_conversions.h" #include "ui/gfx/size_f.h" namespace ui { @@ -28,4 +29,109 @@ TEST(SizeTest, ToSizeF) { EXPECT_EQ(true, equals); } +TEST(SizeTest, ToFlooredSize) { + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToFlooredSize(gfx::SizeF(0, 0))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToFlooredSize(gfx::SizeF(0.0001f, 0.0001f))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToFlooredSize(gfx::SizeF(0.4999f, 0.4999f))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToFlooredSize(gfx::SizeF(0.5f, 0.5f))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToFlooredSize(gfx::SizeF(0.9999f, 0.9999f))); + + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToFlooredSize(gfx::SizeF(10, 10))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToFlooredSize(gfx::SizeF(10.0001f, 10.0001f))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToFlooredSize(gfx::SizeF(10.4999f, 10.4999f))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToFlooredSize(gfx::SizeF(10.5f, 10.5f))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToFlooredSize(gfx::SizeF(10.9999f, 10.9999f))); + + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToFlooredSize(gfx::SizeF(-10, -10))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToFlooredSize(gfx::SizeF(-10.0001f, -10.0001f))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToFlooredSize(gfx::SizeF(-10.4999f, -10.4999f))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToFlooredSize(gfx::SizeF(-10.5f, -10.5f))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToFlooredSize(gfx::SizeF(-10.9999f, -10.9999f))); +} + +TEST(SizeTest, ToCeiledSize) { + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToCeiledSize(gfx::SizeF(0, 0))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToCeiledSize(gfx::SizeF(0.0001f, 0.0001f))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToCeiledSize(gfx::SizeF(0.4999f, 0.4999f))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToCeiledSize(gfx::SizeF(0.5f, 0.5f))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToCeiledSize(gfx::SizeF(0.9999f, 0.9999f))); + + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToCeiledSize(gfx::SizeF(10, 10))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToCeiledSize(gfx::SizeF(10.0001f, 10.0001f))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToCeiledSize(gfx::SizeF(10.4999f, 10.4999f))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToCeiledSize(gfx::SizeF(10.5f, 10.5f))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToCeiledSize(gfx::SizeF(10.9999f, 10.9999f))); + + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToCeiledSize(gfx::SizeF(-10, -10))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToCeiledSize(gfx::SizeF(-10.0001f, -10.0001f))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToCeiledSize(gfx::SizeF(-10.4999f, -10.4999f))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToCeiledSize(gfx::SizeF(-10.5f, -10.5f))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToCeiledSize(gfx::SizeF(-10.9999f, -10.9999f))); +} + +TEST(SizeTest, ToRoundedSize) { + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToRoundedSize(gfx::SizeF(0, 0))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToRoundedSize(gfx::SizeF(0.0001f, 0.0001f))); + EXPECT_EQ(gfx::Size(0, 0), + gfx::ToRoundedSize(gfx::SizeF(0.4999f, 0.4999f))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToRoundedSize(gfx::SizeF(0.5f, 0.5f))); + EXPECT_EQ(gfx::Size(1, 1), + gfx::ToRoundedSize(gfx::SizeF(0.9999f, 0.9999f))); + + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToRoundedSize(gfx::SizeF(10, 10))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToRoundedSize(gfx::SizeF(10.0001f, 10.0001f))); + EXPECT_EQ(gfx::Size(10, 10), + gfx::ToRoundedSize(gfx::SizeF(10.4999f, 10.4999f))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToRoundedSize(gfx::SizeF(10.5f, 10.5f))); + EXPECT_EQ(gfx::Size(11, 11), + gfx::ToRoundedSize(gfx::SizeF(10.9999f, 10.9999f))); + + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToRoundedSize(gfx::SizeF(-10, -10))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToRoundedSize(gfx::SizeF(-10.0001f, -10.0001f))); + EXPECT_EQ(gfx::Size(-10, -10), + gfx::ToRoundedSize(gfx::SizeF(-10.4999f, -10.4999f))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToRoundedSize(gfx::SizeF(-10.5f, -10.5f))); + EXPECT_EQ(gfx::Size(-11, -11), + gfx::ToRoundedSize(gfx::SizeF(-10.9999f, -10.9999f))); +} + } // namespace ui |