| Index: media/video/capture/screen/differ_unittest.cc
|
| diff --git a/media/video/capture/screen/differ_unittest.cc b/media/video/capture/screen/differ_unittest.cc
|
| index 0210123bcc5ae29e0d3ff2da8fab3a97737f7a55..5a443157a32d95e1894a53c3f0c6cb7be4671d44 100644
|
| --- a/media/video/capture/screen/differ_unittest.cc
|
| +++ b/media/video/capture/screen/differ_unittest.cc
|
| @@ -49,14 +49,15 @@ class DifferTest : public testing::Test {
|
| differ_->MarkDirtyBlocks(prev_buffer, curr_buffer);
|
| }
|
|
|
| - void MergeBlocks(SkRegion* dirty) {
|
| + void MergeBlocks(webrtc::DesktopRegion* dirty) {
|
| differ_->MergeBlocks(dirty);
|
| }
|
|
|
| // Convenience method to count rectangles in a region.
|
| - int RegionRectCount(const SkRegion& region) {
|
| + int RegionRectCount(const webrtc::DesktopRegion& region) {
|
| int count = 0;
|
| - for(SkRegion::Iterator iter(region); !iter.done(); iter.next()) {
|
| + for (webrtc::DesktopRegion::Iterator iter(region);
|
| + !iter.IsAtEnd(); iter.Advance()) {
|
| ++count;
|
| }
|
| return count;
|
| @@ -144,15 +145,17 @@ class DifferTest : public testing::Test {
|
| // Verify that |region| contains a rectangle defined by |x|, |y|, |width| and
|
| // |height|.
|
| // |x|, |y|, |width| and |height| are specified in block (not pixel) units.
|
| - bool CheckDirtyRegionContainsRect(const SkRegion& region, int x, int y,
|
| + bool CheckDirtyRegionContainsRect(const webrtc::DesktopRegion& region,
|
| + int x, int y,
|
| int width, int height) {
|
| - SkIRect r = SkIRect::MakeXYWH(x * kBlockSize, y * kBlockSize,
|
| - width * kBlockSize, height * kBlockSize);
|
| - bool found = false;
|
| - for (SkRegion::Iterator i(region); !found && !i.done(); i.next()) {
|
| - found = (i.rect() == r);
|
| + webrtc::DesktopRect r =
|
| + webrtc::DesktopRect::MakeXYWH(x * kBlockSize, y * kBlockSize,
|
| + width * kBlockSize, height * kBlockSize);
|
| + for (webrtc::DesktopRegion::Iterator i(region); !i.IsAtEnd(); i.Advance()) {
|
| + if (i.rect().equals(r))
|
| + return true;
|
| }
|
| - return found;
|
| + return false;
|
| }
|
|
|
| // Mark the range of blocks specified and then verify that they are
|
| @@ -163,15 +166,19 @@ class DifferTest : public testing::Test {
|
| ClearDiffInfo();
|
| MarkBlocks(x_origin, y_origin, width, height);
|
|
|
| - SkRegion dirty;
|
| + webrtc::DesktopRegion dirty;
|
| MergeBlocks(&dirty);
|
|
|
| - bool is_good = dirty.isRect();
|
| - if (is_good) {
|
| - is_good = CheckDirtyRegionContainsRect(dirty, x_origin, y_origin,
|
| - width, height);
|
| - }
|
| - return is_good;
|
| +
|
| + webrtc::DesktopRect expected_rect = webrtc::DesktopRect::MakeXYWH(
|
| + x_origin * kBlockSize, y_origin * kBlockSize,
|
| + width * kBlockSize, height * kBlockSize);
|
| +
|
| + // Verify that the region contains expected_rect and it's the only
|
| + // rectangle.
|
| + webrtc::DesktopRegion::Iterator it(dirty);
|
| + return !it.IsAtEnd() && expected_rect.equals(it.rect()) &&
|
| + (it.Advance(), it.IsAtEnd());
|
| }
|
|
|
| // The differ class we're testing.
|
| @@ -369,10 +376,10 @@ TEST_F(DifferTest, MergeBlocks_Empty) {
|
| // +---+---+---+---+
|
| ClearDiffInfo();
|
|
|
| - SkRegion dirty;
|
| + webrtc::DesktopRegion dirty;
|
| MergeBlocks(&dirty);
|
|
|
| - EXPECT_TRUE(dirty.isEmpty());
|
| + EXPECT_TRUE(dirty.is_empty());
|
| }
|
|
|
| TEST_F(DifferTest, MergeBlocks_SingleBlock) {
|
| @@ -525,7 +532,7 @@ TEST_F(DifferTest, MergeBlocks_BlockRect) {
|
| // may need to be updated if we modify how we merge blocks.
|
| TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| InitDiffer(kScreenWidth, kScreenHeight);
|
| - SkRegion dirty;
|
| + webrtc::DesktopRegion dirty;
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | X | | _ | | | 0 | |
|
| @@ -541,7 +548,7 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| MarkBlocks(0, 1, 1, 1);
|
| MarkBlocks(2, 2, 1, 1);
|
|
|
| - dirty.setEmpty();
|
| + dirty.Clear();
|
| MergeBlocks(&dirty);
|
|
|
| ASSERT_EQ(3, RegionRectCount(dirty));
|
| @@ -551,10 +558,10 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | | X | _ | | | | 0 |
|
| - // +---+---+---+---+ +---+---+---+
|
| - // | X | X | X | _ | | 1 1 1 |
|
| - // +---+---+---+---+ => + +
|
| - // | X | X | X | _ | | 1 1 1 |
|
| + // +---+---+---+---+ +---+---+ +
|
| + // | X | X | X | _ | | 1 1 | 0 |
|
| + // +---+---+---+---+ => + | +
|
| + // | X | X | X | _ | | 1 1 | 0 |
|
| // +---+---+---+---+ +---+---+---+
|
| // | _ | _ | _ | _ |
|
| // +---+---+---+---+
|
| @@ -562,19 +569,19 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| MarkBlocks(2, 0, 1, 1);
|
| MarkBlocks(0, 1, 3, 2);
|
|
|
| - dirty.setEmpty();
|
| + dirty.Clear();
|
| MergeBlocks(&dirty);
|
|
|
| ASSERT_EQ(2, RegionRectCount(dirty));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 0, 1, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 3, 2));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 0, 1, 3));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 2, 2));
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | | | | _ | | | | |
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | | X | _ | | 0 | | 1 |
|
| // +---+---+---+---+ => + +---+ +
|
| - // | X | X | X | _ | | 2 | 2 | 2 |
|
| + // | X | X | X | _ | | 0 | 2 | 1 |
|
| // +---+---+---+---+ +---+---+---+
|
| // | _ | _ | _ | _ |
|
| // +---+---+---+---+
|
| @@ -583,20 +590,20 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| MarkBlocks(2, 1, 1, 1);
|
| MarkBlocks(0, 2, 3, 1);
|
|
|
| - dirty.setEmpty();
|
| + dirty.Clear();
|
| MergeBlocks(&dirty);
|
|
|
| ASSERT_EQ(3, RegionRectCount(dirty));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 2, 3, 1));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 2));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 2));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 1, 2, 1, 1));
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | X | X | _ | | 0 0 0 |
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | | X | _ | | 1 | | 2 |
|
| // +---+---+---+---+ => + +---+ +
|
| - // | X | X | X | _ | | 3 | 3 | 3 |
|
| + // | X | X | X | _ | | 1 | 3 | 2 |
|
| // +---+---+---+---+ +---+---+---+
|
| // | _ | _ | _ | _ |
|
| // +---+---+---+---+
|
| @@ -606,14 +613,14 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| MarkBlocks(2, 1, 1, 1);
|
| MarkBlocks(0, 2, 3, 1);
|
|
|
| - dirty.setEmpty();
|
| + dirty.Clear();
|
| MergeBlocks(&dirty);
|
|
|
| ASSERT_EQ(4, RegionRectCount(dirty));
|
| ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 0, 3, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 1));
|
| - ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 2, 3, 1));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 0, 1, 1, 2));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 2, 1, 1, 2));
|
| + ASSERT_TRUE(CheckDirtyRegionContainsRect(dirty, 1, 2, 1, 1));
|
|
|
| // +---+---+---+---+ +---+---+---+
|
| // | X | X | | _ | | 0 0 | |
|
| @@ -628,7 +635,7 @@ TEST_F(DifferTest, MergeBlocks_MultiRect) {
|
| MarkBlocks(0, 0, 2, 2);
|
| MarkBlocks(1, 2, 1, 1);
|
|
|
| - dirty.setEmpty();
|
| + dirty.Clear();
|
| MergeBlocks(&dirty);
|
|
|
| ASSERT_EQ(2, RegionRectCount(dirty));
|
|
|