/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Tools/Libs/ToolsFoundation/Reflection/PhantomProperty.h
120 строк
5 KB
C-Core
Const all the properties (#1032)
07 сен 2023, 14:54
Не верифицирован
07 сен 2023, 14:54
621ed17
Код
Авторство
О чём код?
#pragma once #include <Foundation/Reflection/Reflection.h> #include <ToolsFoundation/Reflection/ReflectedType.h> class ezPhantomConstantProperty : public ezAbstractConstantProperty { public: ezPhantomConstantProperty(const ezReflectedPropertyDescriptor* pDesc); ~ezPhantomConstantProperty(); virtual const ezRTTI* GetSpecificType() const override; virtual void* GetPropertyPointer() const override; virtual ezVariant GetConstant() const override { return m_Value; } private: ezVariant m_Value; ezString m_sPropertyNameStorage; const ezRTTI* m_pPropertyType; }; class ezPhantomMemberProperty : public ezAbstractMemberProperty { public: ezPhantomMemberProperty(const ezReflectedPropertyDescriptor* pDesc); ~ezPhantomMemberProperty(); virtual const ezRTTI* GetSpecificType() const override; virtual void* GetPropertyPointer(const void* pInstance) const override { return nullptr; } virtual void GetValuePtr(const void* pInstance, void* pObject) const override {} virtual void SetValuePtr(void* pInstance, const void* pObject) const override {} private: ezString m_sPropertyNameStorage; const ezRTTI* m_pPropertyType; }; class ezPhantomFunctionProperty : public ezAbstractFunctionProperty { public: ezPhantomFunctionProperty(ezReflectedFunctionDescriptor* pDesc); ~ezPhantomFunctionProperty(); virtual ezFunctionType::Enum GetFunctionType() const override; virtual const ezRTTI* GetReturnType() const override; virtual ezBitflags<ezPropertyFlags> GetReturnFlags() const override; virtual ezUInt32 GetArgumentCount() const override; virtual const ezRTTI* GetArgumentType(ezUInt32 uiParamIndex) const override; virtual ezBitflags<ezPropertyFlags> GetArgumentFlags(ezUInt32 uiParamIndex) const override; virtual void Execute(void* pInstance, ezArrayPtr<ezVariant> values, ezVariant& ref_returnValue) const override; private: ezString m_sPropertyNameStorage; ezEnum<ezFunctionType> m_FunctionType; ezFunctionArgumentDescriptor m_ReturnValue; ezDynamicArray<ezFunctionArgumentDescriptor> m_Arguments; }; class ezPhantomArrayProperty : public ezAbstractArrayProperty { public: ezPhantomArrayProperty(const ezReflectedPropertyDescriptor* pDesc); ~ezPhantomArrayProperty(); virtual const ezRTTI* GetSpecificType() const override; virtual ezUInt32 GetCount(const void* pInstance) const override { return 0; } virtual void GetValue(const void* pInstance, ezUInt32 uiIndex, void* pObject) const override {} virtual void SetValue(void* pInstance, ezUInt32 uiIndex, const void* pObject) const override {} virtual void Insert(void* pInstance, ezUInt32 uiIndex, const void* pObject) const override {} virtual void Remove(void* pInstance, ezUInt32 uiIndex) const override {} virtual void Clear(void* pInstance) const override {} virtual void SetCount(void* pInstance, ezUInt32 uiCount) const override {} private: ezString m_sPropertyNameStorage; const ezRTTI* m_pPropertyType; }; class ezPhantomSetProperty : public ezAbstractSetProperty { public: ezPhantomSetProperty(const ezReflectedPropertyDescriptor* pDesc); ~ezPhantomSetProperty(); virtual const ezRTTI* GetSpecificType() const override; virtual bool IsEmpty(const void* pInstance) const override { return true; } virtual void Clear(void* pInstance) const override {} virtual void Insert(void* pInstance, const void* pObject) const override {} virtual void Remove(void* pInstance, const void* pObject) const override {} virtual bool Contains(const void* pInstance, const void* pObject) const override { return false; } virtual void GetValues(const void* pInstance, ezDynamicArray<ezVariant>& out_keys) const override {} private: ezString m_sPropertyNameStorage; const ezRTTI* m_pPropertyType; }; class ezPhantomMapProperty : public ezAbstractMapProperty { public: ezPhantomMapProperty(const ezReflectedPropertyDescriptor* pDesc); ~ezPhantomMapProperty(); virtual const ezRTTI* GetSpecificType() const override; virtual bool IsEmpty(const void* pInstance) const override { return true; } virtual void Clear(void* pInstance) const override {} virtual void Insert(void* pInstance, const char* szKey, const void* pObject) const override {} virtual void Remove(void* pInstance, const char* szKey) const override {} virtual bool Contains(const void* pInstance, const char* szKey) const override { return false; } virtual bool GetValue(const void* pInstance, const char* szKey, void* pObject) const override { return false; } virtual void GetKeys(const void* pInstance, ezHybridArray<ezString, 16>& out_keys) const override {} private: ezString m_sPropertyNameStorage; const ezRTTI* m_pPropertyType; };