summaryrefslogtreecommitdiff
path: root/Runtime/BaseClasses/ClassRegistration.h
diff options
context:
space:
mode:
Diffstat (limited to 'Runtime/BaseClasses/ClassRegistration.h')
-rw-r--r--Runtime/BaseClasses/ClassRegistration.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/Runtime/BaseClasses/ClassRegistration.h b/Runtime/BaseClasses/ClassRegistration.h
new file mode 100644
index 0000000..cf016db
--- /dev/null
+++ b/Runtime/BaseClasses/ClassRegistration.h
@@ -0,0 +1,22 @@
+#pragma once
+#include "ClassIDs.h"
+
+struct ClassRegistrationContext
+{
+ void* explicitlyRegistered;
+};
+
+#if DEBUGMODE
+#define REGISTER_CLASS(x) \
+{ \
+ extern void RegisterClass_##x(); \
+ RegisterClass_##x(); \
+ ValidateRegisteredClassID(context, ClassID(x), #x); \
+}
+#else
+#define REGISTER_CLASS(x) \
+{ extern void RegisterClass_##x(); RegisterClass_##x(); }
+#endif
+
+
+EXPORT_COREMODULE void ValidateRegisteredClassID (ClassRegistrationContext& context, int classID, const char* className);