feat(region): add SRgnDestroy

This commit is contained in:
Adam Heinermann 2026-01-26 01:24:20 -08:00 committed by fallenoak
parent 1e1f2f819f
commit 1e86f98691
5 changed files with 55 additions and 2 deletions

View file

@ -1,6 +1,7 @@
#include "test/Test.hpp"
#include "EventTest.hpp"
#include "storm/Core.hpp"
#include "storm/Region.hpp"
TEST_CASE("StormDestroy", "[core]") {
SECTION("always returns 1") {
@ -36,4 +37,19 @@ TEST_CASE("StormDestroy", "[core]") {
CHECK(SEvtDispatch(0, 0, 0, nullptr) == 1);
}
}
SECTION("SRgn") {
SECTION("destroys region handles") {
HSRGN rgn = nullptr;
SRgnCreate(&rgn);
REQUIRE(rgn != nullptr); // valid handle
CHECK(StormDestroy() == 1);
// fails to duplicate because handle is invalid
HSRGN newrgn;
SRgnDuplicate(rgn, &newrgn);
CHECK(newrgn == nullptr);
}
}
}

View file

@ -691,6 +691,36 @@ TEST_CASE("SRgnDelete", "[region]") {
}
}
#if !defined(WHOA_TEST_STORMDLL)
TEST_CASE("SRgnDestroy", "[event]") {
SECTION("destroys all region handles") {
HSRGN rgn1 = nullptr, rgn2 = nullptr, rgn3 = nullptr;
HSRGN newrgn1, newrgn2, newrgn3, testrgn1, newtestrgn1;
SRgnCreate(&rgn1);
SRgnCreate(&rgn2);
SRgnCreate(&rgn3);
REQUIRE(rgn1 != nullptr);
REQUIRE(rgn2 != nullptr);
REQUIRE(rgn3 != nullptr);
SRgnDuplicate(rgn1, &testrgn1);
CHECK(testrgn1 != nullptr);
SRgnDestroy();
SRgnDuplicate(rgn1, &newrgn1);
SRgnDuplicate(rgn2, &newrgn2);
SRgnDuplicate(rgn3, &newrgn3);
SRgnDuplicate(testrgn1, &newtestrgn1);
CHECK(newrgn1 == nullptr);
CHECK(newrgn2 == nullptr);
CHECK(newrgn3 == nullptr);
CHECK(newtestrgn1 == nullptr);
}
}
#endif
TEST_CASE("SRgnDuplicate", "[region]") {
RgnDataTest region;
RECTF baseRect = { -1.0f, 1.0f, 1.0f, 2.0f };