BsScriptSerializableProperty.h 1.1 KB

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BE_EXPORT ScriptSerializableProperty : public ScriptObject<ScriptSerializableProperty>
  7. {
  8. public:
  9. SCRIPT_OBJ(BansheeEngineAssemblyName, "BansheeEngine", "SerializableProperty")
  10. static ScriptSerializableProperty* create(const ManagedSerializableTypeInfoPtr& typeInfo);
  11. ~ScriptSerializableProperty() {}
  12. private:
  13. static MonoObject* internal_createObject(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  14. static MonoObject* internal_createArray(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  15. static MonoObject* internal_createManagedObjectInstance(ScriptSerializableProperty* nativeInstance);
  16. static MonoObject* internal_createManagedArrayInstance(ScriptSerializableProperty* nativeInstance, MonoArray* sizes);
  17. static MonoObject* internal_cloneManagedInstance(ScriptSerializableProperty* nativeInstance, MonoObject* original);
  18. ScriptSerializableProperty(MonoObject* instance, const ManagedSerializableTypeInfoPtr& typeInfo);
  19. ManagedSerializableTypeInfoPtr mTypeInfo;
  20. };
  21. }