summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ref-object-reflect.cpp
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-29 14:49:26 +0800
committerGitHub <noreply@github.com>2024-10-29 14:49:26 +0800
commitf65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch)
treeea1d61342cd29368e19135000ec2948813096205 /source/slang/slang-ref-object-reflect.cpp
parenta729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff)
format
* format * Minor test fixes * enable checking cpp format in ci
Diffstat (limited to 'source/slang/slang-ref-object-reflect.cpp')
-rw-r--r--source/slang/slang-ref-object-reflect.cpp79
1 files changed, 50 insertions, 29 deletions
diff --git a/source/slang/slang-ref-object-reflect.cpp b/source/slang/slang-ref-object-reflect.cpp
index 59c948d38..303601b7b 100644
--- a/source/slang/slang-ref-object-reflect.cpp
+++ b/source/slang/slang-ref-object-reflect.cpp
@@ -1,41 +1,50 @@
-#include "slang.h"
-
#include "slang-ref-object-reflect.h"
-#include "slang-generated-obj.h"
-#include "slang-generated-obj-macro.h"
-
#include "slang-ast-support-types.h"
+#include "slang-generated-obj-macro.h"
+#include "slang-generated-obj.h"
+#include "slang.h"
-//#include "slang-serialize.h"
+// #include "slang-serialize.h"
#include "slang-serialize-ast-type-info.h"
namespace Slang
{
-static const SerialClass* _addClass(SerialClasses* serialClasses, RefObjectType type, RefObjectType super, const List<SerialField>& fields)
+static const SerialClass* _addClass(
+ SerialClasses* serialClasses,
+ RefObjectType type,
+ RefObjectType super,
+ const List<SerialField>& fields)
{
- const SerialClass* superClass = serialClasses->getSerialClass(SerialTypeKind::RefObject, SerialSubType(super));
- return serialClasses->add(SerialTypeKind::RefObject, SerialSubType(type), fields.getBuffer(), fields.getCount(), superClass);
+ const SerialClass* superClass =
+ serialClasses->getSerialClass(SerialTypeKind::RefObject, SerialSubType(super));
+ return serialClasses->add(
+ SerialTypeKind::RefObject,
+ SerialSubType(type),
+ fields.getBuffer(),
+ fields.getCount(),
+ superClass);
}
-#define SLANG_REF_OBJECT_ADD_SERIAL_FIELD(FIELD_NAME, TYPE, param) fields.add(SerialField::make(#FIELD_NAME, &obj->FIELD_NAME));
+#define SLANG_REF_OBJECT_ADD_SERIAL_FIELD(FIELD_NAME, TYPE, param) \
+ fields.add(SerialField::make(#FIELD_NAME, &obj->FIELD_NAME));
-// Note that the obj point is not nullptr, because some compilers notice this is 'indexing from null'
-// and warn/error. So we offset from 1.
+// Note that the obj point is not nullptr, because some compilers notice this is 'indexing from
+// null' and warn/error. So we offset from 1.
#define SLANG_REF_OBJECT_ADD_SERIAL_CLASS(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) \
-{ \
- NAME* obj = SerialField::getPtr<NAME>(); \
- SLANG_UNUSED(obj); \
- fields.clear(); \
- SLANG_FIELDS_RefObject_##NAME(SLANG_REF_OBJECT_ADD_SERIAL_FIELD, param) \
- _addClass(serialClasses, RefObjectType::NAME, RefObjectType::SUPER, fields); \
-}
+ { \
+ NAME* obj = SerialField::getPtr<NAME>(); \
+ SLANG_UNUSED(obj); \
+ fields.clear(); \
+ SLANG_FIELDS_RefObject_##NAME(SLANG_REF_OBJECT_ADD_SERIAL_FIELD, param) \
+ _addClass(serialClasses, RefObjectType::NAME, RefObjectType::SUPER, fields); \
+ }
struct RefObjectAccess
{
- template <typename T>
+ template<typename T>
static void* create(void* context)
{
SLANG_UNUSED(context)
@@ -45,7 +54,12 @@ struct RefObjectAccess
static void calcClasses(SerialClasses* serialClasses)
{
// Add SerialRefObject first, and specially handle so that we add a null super class
- serialClasses->add(SerialTypeKind::RefObject, SerialSubType(RefObjectType::SerialRefObject), nullptr, 0, nullptr);
+ serialClasses->add(
+ SerialTypeKind::RefObject,
+ SerialSubType(RefObjectType::SerialRefObject),
+ nullptr,
+ 0,
+ nullptr);
// Add the rest in order such that Super class is always added before its children
List<SerialField> fields;
@@ -62,21 +76,28 @@ struct RefObjectAccess
#define SLANG_GET_CREATE_FUNC_OBJ(NAME) &RefObjectAccess::create<NAME>
#define SLANG_REFLECT_CLASS_INFO(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) \
- /* static */const ReflectClassInfo NAME::kReflectClassInfo = { uint32_t(RefObjectType::NAME), uint32_t(RefObjectType::LAST), SLANG_GET_SUPER_##TYPE(SUPER), #NAME, SLANG_GET_CREATE_FUNC_##MARKER(NAME), nullptr, uint32_t(sizeof(NAME)), uint8_t(SLANG_ALIGN_OF(NAME)) };
+ /* static */ const ReflectClassInfo NAME::kReflectClassInfo = { \
+ uint32_t(RefObjectType::NAME), \
+ uint32_t(RefObjectType::LAST), \
+ SLANG_GET_SUPER_##TYPE(SUPER), \
+ #NAME, \
+ SLANG_GET_CREATE_FUNC_##MARKER(NAME), \
+ nullptr, \
+ uint32_t(sizeof(NAME)), \
+ uint8_t(SLANG_ALIGN_OF(NAME))};
SLANG_ALL_RefObject_SerialRefObject(SLANG_REFLECT_CLASS_INFO, _)
-/* static */const SerialRefObjects SerialRefObjects::g_singleton;
+ /* static */ const SerialRefObjects SerialRefObjects::g_singleton;
// Macro to set all of the entries in m_infos for SerialRefObjects
-#define SLANG_GET_REFLECT_CLASS_INFO(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) m_infos[Index(RefObjectType::NAME)] = &NAME::kReflectClassInfo;
+#define SLANG_GET_REFLECT_CLASS_INFO(NAME, SUPER, ORIGIN, LAST, MARKER, TYPE, param) \
+ m_infos[Index(RefObjectType::NAME)] = &NAME::kReflectClassInfo;
-SerialRefObjects::SerialRefObjects()
-{
- SLANG_ALL_RefObject_SerialRefObject(SLANG_GET_REFLECT_CLASS_INFO, _)
-}
+SerialRefObjects::SerialRefObjects(){
+ SLANG_ALL_RefObject_SerialRefObject(SLANG_GET_REFLECT_CLASS_INFO, _)}
-/* static */SlangResult SerialRefObjects::addSerialClasses(SerialClasses* serialClasses)
+/* static */ SlangResult SerialRefObjects::addSerialClasses(SerialClasses* serialClasses)
{
RefObjectAccess::calcClasses(serialClasses);
return SLANG_OK;