diff --git a/src/refl/ClassMeta.cs b/src/refl/ClassMeta.cs index 62939c2..0c4e8ea 100644 --- a/src/refl/ClassMeta.cs +++ b/src/refl/ClassMeta.cs @@ -73,7 +73,7 @@ namespace refl CppClass? parent = type as CppClass; if (parent != null) { - parentName = parent.Name; + parentName = parent.FullName; } } ClassMeta cls_meta = new ClassMeta(cppClass.Name, parentName); diff --git a/src/refl/cpp/macro.h b/src/refl/cpp/macro.h index 968967e..9e75781 100644 --- a/src/refl/cpp/macro.h +++ b/src/refl/cpp/macro.h @@ -1,6 +1,7 @@ #pragma once #if !defined(__cppast) #define __cppast(...) +#else #endif #define __Meta(...) __cppast(Meta=__VA_ARGS__) @@ -27,6 +28,17 @@ #define USING_OVERLOAD_FUNC(R, ...) using USING_FUNC_NAME = R(*)(__VA_ARGS__); #define USING_OVERLOAD_CLASS_FUNC(R, Class, ...) using USING_FUNC_NAME = R(Class::*)(__VA_ARGS__); +#define REGISTER_META_TABLE(Class) refl::UClass::MetaTable.emplace(type_name().View(), &refl::TypeInfo::StaticClass); + +#define REFL_FRIEND(Class) friend class refl_impl::_Static;\ +friend class refl_impl::_Meta; +/* +struct vec3{ + USING_OVERLOAD_CTOR(vec3) + UFUNCTION({},ref = USING_CTOR_NAME) + vec3(){} +} +*/ namespace refl_impl { struct Meta {}; struct vkMeta {};