feat(handle): improve handle macros

This commit is contained in:
fallenoak 2025-09-03 23:02:17 -05:00
parent 5121638c27
commit 595e431d92
3 changed files with 31 additions and 6 deletions

View file

@ -1,10 +1,12 @@
#ifndef STORM_HANDLE_HPP
#define STORM_HANDLE_HPP
#if !defined(DECLARE_HANDLE)
#define DECLARE_HANDLE(name) \
struct name##__; \
#define DECLARE_STORM_HANDLE(name) \
struct name##__ { int32_t unused; }; \
typedef struct name##__* name
#define DECLARE_STORM_CHILD_HANDLE(name, super) \
struct name##__ : public super##__ { int32_t unused; }; \
typedef struct name##__* name
#endif
#endif

View file

@ -4,9 +4,9 @@
#include "storm/Handle.hpp"
#include <cstdint>
DECLARE_HANDLE(HSRGN);
DECLARE_STORM_HANDLE(HSRGN);
DECLARE_HANDLE(HLOCKEDRGN);
DECLARE_STORM_HANDLE(HLOCKEDRGN);
struct RECTF {
float left;

23
test/Handle.cpp Normal file
View file

@ -0,0 +1,23 @@
#include "storm/Handle.hpp"
#include "test/Test.hpp"
TEST_CASE("DECLARE_STORM_HANDLE", "[handle]") {
SECTION("declares handle") {
DECLARE_STORM_HANDLE(HTEST);
HTEST test;
SUCCEED();
}
}
TEST_CASE("DECLARE_STORM_CHILD_HANDLE", "[handle]") {
SECTION("declares child handle") {
DECLARE_STORM_HANDLE(HPARENT);
DECLARE_STORM_CHILD_HANDLE(HCHILD, HPARENT);
HPARENT parent;
HCHILD child;
SUCCEED();
}
}