diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-10-29 14:49:26 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-29 14:49:26 +0800 |
| commit | f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch) | |
| tree | ea1d61342cd29368e19135000ec2948813096205 /source/slang/slang-ref-object-reflect.cpp | |
| parent | a729c15e9dce9f5116a38afc66329ab2ca4cea54 (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.cpp | 79 |
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; |
