mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-04 00:49:08 +00:00
feat(region): add SRgnGetRectsf
This commit is contained in:
parent
f6d4a93652
commit
e1587a932c
3 changed files with 257 additions and 0 deletions
|
|
@ -94,3 +94,72 @@ TEST_CASE("SRgnCombineRectf", "[region]") {
|
|||
SRgnDelete(region);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("SRgnGetRectsf", "[region]") {
|
||||
SECTION("retrieves empty list if nothing put in") {
|
||||
HSRGN rgn;
|
||||
SRgnCreate(&rgn, 0);
|
||||
|
||||
uint32_t numrects = 1;
|
||||
RECTF buffer[1];
|
||||
|
||||
SRgnGetRectsf(rgn, &numrects, buffer);
|
||||
|
||||
CHECK(numrects == 0);
|
||||
|
||||
SRgnDelete(rgn);
|
||||
}
|
||||
|
||||
SECTION("retrieves all rects that were put in") {
|
||||
HSRGN rgn;
|
||||
SRgnCreate(&rgn, 0);
|
||||
|
||||
RECTF rct1 = { 5, 5, 10, 10 };
|
||||
RECTF rct2 = { 0, 0, 1, 1 };
|
||||
SRgnCombineRectf(rgn, &rct1, nullptr, SRGN_OR);
|
||||
SRgnCombineRectf(rgn, &rct2, nullptr, SRGN_OR);
|
||||
|
||||
uint32_t numrects = 0;
|
||||
RECTF buffer[2];
|
||||
SRgnGetRectsf(rgn, &numrects, nullptr);
|
||||
|
||||
REQUIRE(numrects == 2);
|
||||
SRgnGetRectsf(rgn, &numrects, buffer);
|
||||
|
||||
CHECK(buffer[0].left == rct2.left);
|
||||
CHECK(buffer[0].bottom == rct2.bottom);
|
||||
CHECK(buffer[0].right == rct2.right);
|
||||
CHECK(buffer[0].top == rct2.top);
|
||||
|
||||
CHECK(buffer[1].left == rct1.left);
|
||||
CHECK(buffer[1].bottom == rct1.bottom);
|
||||
CHECK(buffer[1].right == rct1.right);
|
||||
CHECK(buffer[1].top == rct1.top);
|
||||
|
||||
SRgnDelete(rgn);
|
||||
}
|
||||
|
||||
SECTION("automatically merges overlapping rects") {
|
||||
HSRGN rgn;
|
||||
SRgnCreate(&rgn, 0);
|
||||
|
||||
RECTF rct1 = { -10, -10, 10, 10 };
|
||||
RECTF rct2 = { 0, 0, 1, 1 };
|
||||
SRgnCombineRectf(rgn, &rct1, nullptr, SRGN_OR);
|
||||
SRgnCombineRectf(rgn, &rct2, nullptr, SRGN_OR);
|
||||
|
||||
uint32_t numrects = 0;
|
||||
RECTF buffer[1];
|
||||
SRgnGetRectsf(rgn, &numrects, nullptr);
|
||||
|
||||
REQUIRE(numrects == 1);
|
||||
SRgnGetRectsf(rgn, &numrects, buffer);
|
||||
|
||||
CHECK(buffer[0].left == -10);
|
||||
CHECK(buffer[0].bottom == -10);
|
||||
CHECK(buffer[0].right == 10);
|
||||
CHECK(buffer[0].top == 10);
|
||||
|
||||
SRgnDelete(rgn);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue