aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2014-08-27 10:39:42 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-27 10:39:42 -0700
commit533eb782edaa0b6fece6166d3001edf72ec39f11 (patch)
treea4d863ff13725c8c8c33c9b50d63ec74c54deff1 /tests
parent3031350e05d8ef8c67a5e9ce8e5c428c8560eb50 (diff)
Convert BBH APIs to use SkRect.
Still TODO: convert internals of SkTileGrid.cpp and SkRTree.cpp to work in floats too. NOTREECHECKS=true BUG=skia:1021 R=robertphillips@google.com, reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/511613002
Diffstat (limited to 'tests')
-rw-r--r--tests/BBoxHierarchyTest.cpp25
-rw-r--r--tests/PictureTest.cpp4
-rw-r--r--tests/RTreeTest.cpp24
-rw-r--r--tests/RecordDrawTest.cpp8
-rw-r--r--tests/TileGridTest.cpp38
5 files changed, 53 insertions, 46 deletions
diff --git a/tests/BBoxHierarchyTest.cpp b/tests/BBoxHierarchyTest.cpp
index 305543b7eb..b9cbbc4f9a 100644
--- a/tests/BBoxHierarchyTest.cpp
+++ b/tests/BBoxHierarchyTest.cpp
@@ -17,20 +17,20 @@ static const int NUM_RECTS = 200;
static const size_t NUM_ITERATIONS = 100;
static const size_t NUM_QUERIES = 50;
-static const int MAX_SIZE = 1000;
+static const SkScalar MAX_SIZE = 1000.0f;
struct DataRect {
- SkIRect rect;
+ SkRect rect;
void* data;
};
-static SkIRect random_rect(SkRandom& rand) {
- SkIRect rect = {0,0,0,0};
+static SkRect random_rect(SkRandom& rand) {
+ SkRect rect = {0,0,0,0};
while (rect.isEmpty()) {
- rect.fLeft = rand.nextS() % MAX_SIZE;
- rect.fRight = rand.nextS() % MAX_SIZE;
- rect.fTop = rand.nextS() % MAX_SIZE;
- rect.fBottom = rand.nextS() % MAX_SIZE;
+ rect.fLeft = rand.nextRangeF(0, MAX_SIZE);
+ rect.fRight = rand.nextRangeF(0, MAX_SIZE);
+ rect.fTop = rand.nextRangeF(0, MAX_SIZE);
+ rect.fBottom = rand.nextRangeF(0, MAX_SIZE);
rect.sort();
}
return rect;
@@ -43,12 +43,15 @@ static void random_data_rects(SkRandom& rand, DataRect out[], int n) {
}
}
-static bool verify_query(SkIRect query, DataRect rects[],
+static bool verify_query(SkRect query, DataRect rects[],
SkTDArray<void*>& found) {
+ // TODO(mtklein): no need to do this after everything's SkRects
+ query.roundOut();
+
SkTDArray<void*> expected;
// manually intersect with every rectangle
for (int i = 0; i < NUM_RECTS; ++i) {
- if (SkIRect::IntersectsNoEmptyCheck(query, rects[i].rect)) {
+ if (SkRect::Intersects(query, rects[i].rect)) {
expected.push(rects[i].data);
}
}
@@ -73,7 +76,7 @@ static void run_queries(skiatest::Reporter* reporter, SkRandom& rand, DataRect r
SkBBoxHierarchy& tree) {
for (size_t i = 0; i < NUM_QUERIES; ++i) {
SkTDArray<void*> hits;
- SkIRect query = random_rect(rand);
+ SkRect query = random_rect(rand);
tree.search(query, &hits);
REPORTER_ASSERT(reporter, verify_query(query, rects, hits));
}
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index 98ebf6a01e..3535e8e3bf 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -1808,12 +1808,12 @@ struct CountingBBH : public SkBBoxHierarchy {
CountingBBH() : searchCalls(0) {}
- virtual void search(const SkIRect& query, SkTDArray<void*>* results) const {
+ virtual void search(const SkRect& query, SkTDArray<void*>* results) const {
this->searchCalls++;
}
// All other methods unimplemented.
- virtual void insert(void* data, const SkIRect& bounds, bool defer) {}
+ virtual void insert(void* data, const SkRect& bounds, bool defer) {}
virtual void flushDeferredInserts() {}
virtual void clear() {}
virtual int getCount() const { return 0; }
diff --git a/tests/RTreeTest.cpp b/tests/RTreeTest.cpp
index ae8c005170..087f19a7ef 100644
--- a/tests/RTreeTest.cpp
+++ b/tests/RTreeTest.cpp
@@ -18,17 +18,17 @@ static const size_t NUM_ITERATIONS = 100;
static const size_t NUM_QUERIES = 50;
struct DataRect {
- SkIRect rect;
+ SkRect rect;
void* data;
};
-static SkIRect random_rect(SkRandom& rand) {
- SkIRect rect = {0,0,0,0};
+static SkRect random_rect(SkRandom& rand) {
+ SkRect rect = {0,0,0,0};
while (rect.isEmpty()) {
- rect.fLeft = rand.nextS() % 1000;
- rect.fRight = rand.nextS() % 1000;
- rect.fTop = rand.nextS() % 1000;
- rect.fBottom = rand.nextS() % 1000;
+ rect.fLeft = rand.nextRangeF(0, 1000);
+ rect.fRight = rand.nextRangeF(0, 1000);
+ rect.fTop = rand.nextRangeF(0, 1000);
+ rect.fBottom = rand.nextRangeF(0, 1000);
rect.sort();
}
return rect;
@@ -41,12 +41,16 @@ static void random_data_rects(SkRandom& rand, DataRect out[], int n) {
}
}
-static bool verify_query(SkIRect query, DataRect rects[],
+static bool verify_query(SkRect query, DataRect rects[],
SkTDArray<void*>& found) {
+ // TODO(mtklein): no need to do this after everything's SkRects
+ query.roundOut();
+
SkTDArray<void*> expected;
+
// manually intersect with every rectangle
for (int i = 0; i < NUM_RECTS; ++i) {
- if (SkIRect::IntersectsNoEmptyCheck(query, rects[i].rect)) {
+ if (SkRect::Intersects(query, rects[i].rect)) {
expected.push(rects[i].data);
}
}
@@ -71,7 +75,7 @@ static void run_queries(skiatest::Reporter* reporter, SkRandom& rand, DataRect r
SkRTree& tree) {
for (size_t i = 0; i < NUM_QUERIES; ++i) {
SkTDArray<void*> hits;
- SkIRect query = random_rect(rand);
+ SkRect query = random_rect(rand);
tree.search(query, &hits);
REPORTER_ASSERT(reporter, verify_query(query, rects, hits));
}
diff --git a/tests/RecordDrawTest.cpp b/tests/RecordDrawTest.cpp
index 91ed2f06a9..b9ab2dce25 100644
--- a/tests/RecordDrawTest.cpp
+++ b/tests/RecordDrawTest.cpp
@@ -97,7 +97,7 @@ DEF_TEST(RecordDraw_SetMatrixClobber, r) {
}
struct TestBBH : public SkBBoxHierarchy {
- virtual void insert(void* data, const SkIRect& bounds, bool defer) SK_OVERRIDE {
+ virtual void insert(void* data, const SkRect& bounds, bool defer) SK_OVERRIDE {
Entry e = { (uintptr_t)data, bounds };
entries.push(e);
}
@@ -105,14 +105,14 @@ struct TestBBH : public SkBBoxHierarchy {
virtual void flushDeferredInserts() SK_OVERRIDE {}
- virtual void search(const SkIRect& query, SkTDArray<void*>* results) const SK_OVERRIDE {}
+ virtual void search(const SkRect& query, SkTDArray<void*>* results) const SK_OVERRIDE {}
virtual void clear() SK_OVERRIDE {}
virtual void rewindInserts() SK_OVERRIDE {}
virtual int getDepth() const SK_OVERRIDE { return -1; }
struct Entry {
uintptr_t data;
- SkIRect bounds;
+ SkRect bounds;
};
SkTDArray<Entry> entries;
};
@@ -137,6 +137,6 @@ DEF_TEST(RecordDraw_BBH, r) {
for (int i = 0; i < bbh.entries.count(); i++) {
REPORTER_ASSERT(r, bbh.entries[i].data == (uintptr_t)i);
- REPORTER_ASSERT(r, bbh.entries[i].bounds == SkIRect::MakeWH(400, 480));
+ REPORTER_ASSERT(r, bbh.entries[i].bounds == SkRect::MakeWH(400, 480));
}
}
diff --git a/tests/TileGridTest.cpp b/tests/TileGridTest.cpp
index f6a9f876eb..81f383d97e 100644
--- a/tests/TileGridTest.cpp
+++ b/tests/TileGridTest.cpp
@@ -31,7 +31,7 @@ public:
SkTDArray<SkRect> fRects;
};
-static void verifyTileHits(skiatest::Reporter* reporter, SkIRect rect,
+static void verifyTileHits(skiatest::Reporter* reporter, SkRect rect,
uint32_t tileMask, int borderPixels = 0) {
SkTileGridFactory::TileGridInfo info;
info.fMargin.set(borderPixels, borderPixels);
@@ -223,29 +223,29 @@ DEF_TEST(TileGrid_OverlapOffsetQueryAlignment, reporter) {
DEF_TEST(TileGrid, reporter) {
// Out of bounds
- verifyTileHits(reporter, SkIRect::MakeXYWH(30, 0, 1, 1), 0);
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, 30, 1, 1), 0);
- verifyTileHits(reporter, SkIRect::MakeXYWH(-10, 0, 1, 1), 0);
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, -10, 1, 1), 0);
+ verifyTileHits(reporter, SkRect::MakeXYWH(30, 0, 1, 1), 0);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, 30, 1, 1), 0);
+ verifyTileHits(reporter, SkRect::MakeXYWH(-10, 0, 1, 1), 0);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, -10, 1, 1), 0);
// Dilation for AA consideration
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 9, 9), kTopLeft_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 10, 10), kAll_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1), kAll_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1), kAll_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(11, 11, 1, 1), kBottomRight_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, 0, 9, 9), kTopLeft_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, 0, 10, 10), kAll_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(9, 9, 1, 1), kAll_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(10, 10, 1, 1), kAll_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(11, 11, 1, 1), kBottomRight_Tile);
// BorderPixels
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 6, 6), kTopLeft_Tile, 1);
- verifyTileHits(reporter, SkIRect::MakeXYWH(0, 0, 7, 7), kAll_Tile, 1);
- verifyTileHits(reporter, SkIRect::MakeXYWH(9, 9, 1, 1), kAll_Tile, 1);
- verifyTileHits(reporter, SkIRect::MakeXYWH(10, 10, 1, 1), kBottomRight_Tile, 1);
- verifyTileHits(reporter, SkIRect::MakeXYWH(17, 17, 1, 1), kBottomRight_Tile, 1);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, 0, 6, 6), kTopLeft_Tile, 1);
+ verifyTileHits(reporter, SkRect::MakeXYWH(0, 0, 7, 7), kAll_Tile, 1);
+ verifyTileHits(reporter, SkRect::MakeXYWH(9, 9, 1, 1), kAll_Tile, 1);
+ verifyTileHits(reporter, SkRect::MakeXYWH(10, 10, 1, 1), kBottomRight_Tile, 1);
+ verifyTileHits(reporter, SkRect::MakeXYWH(17, 17, 1, 1), kBottomRight_Tile, 1);
// BBoxes that overlap tiles
- verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 1), kTopLeft_Tile | kTopRight_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 1, 10), kTopLeft_Tile |
+ verifyTileHits(reporter, SkRect::MakeXYWH(5, 5, 10, 1), kTopLeft_Tile | kTopRight_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(5, 5, 1, 10), kTopLeft_Tile |
kBottomLeft_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(5, 5, 10, 10), kAll_Tile);
- verifyTileHits(reporter, SkIRect::MakeXYWH(-10, -10, 40, 40), kAll_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(5, 5, 10, 10), kAll_Tile);
+ verifyTileHits(reporter, SkRect::MakeXYWH(-10, -10, 40, 40), kAll_Tile);
}