BsSavedResourceDataRTTI.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsCorePrerequisites.h"
  5. #include "BsRTTIType.h"
  6. #include "BsSavedResourceData.h"
  7. namespace BansheeEngine
  8. {
  9. /** @cond RTTI */
  10. /** @addtogroup RTTI-Impl-Core
  11. * @{
  12. */
  13. class BS_CORE_EXPORT SavedResourceDataRTTI : public RTTIType <SavedResourceData, IReflectable, SavedResourceDataRTTI>
  14. {
  15. private:
  16. String& getDependency(SavedResourceData* obj, UINT32 arrayIdx) { return obj->mDependencies[arrayIdx]; }
  17. void setDependency(SavedResourceData* obj, UINT32 arrayIdx, String& val) { obj->mDependencies[arrayIdx] = val; }
  18. UINT32 getNumDependencies(SavedResourceData* obj) { return (UINT32)obj->mDependencies.size(); }
  19. void setNumDependencies(SavedResourceData* obj, UINT32 numEntries) { obj->mDependencies = Vector<String>(numEntries); }
  20. bool& getAllowAsyncLoading(SavedResourceData* obj) { return obj->mAllowAsync; }
  21. void setAllowAsyncLoading(SavedResourceData* obj, bool& value) { obj->mAllowAsync = value; }
  22. public:
  23. SavedResourceDataRTTI()
  24. {
  25. addPlainArrayField("mDependencies", 0, &SavedResourceDataRTTI::getDependency, &SavedResourceDataRTTI::getNumDependencies,
  26. &SavedResourceDataRTTI::setDependency, &SavedResourceDataRTTI::setNumDependencies);
  27. addPlainField("mAllowAsync", 1, &SavedResourceDataRTTI::getAllowAsyncLoading, &SavedResourceDataRTTI::setAllowAsyncLoading);
  28. }
  29. const String& getRTTIName() override
  30. {
  31. static String name = "ResourceDependencies";
  32. return name;
  33. }
  34. UINT32 getRTTIId() override
  35. {
  36. return TID_ResourceDependencies;
  37. }
  38. std::shared_ptr<IReflectable> newRTTIObject() override
  39. {
  40. return bs_shared_ptr_new<SavedResourceData>();
  41. }
  42. };
  43. /** @} */
  44. /** @endcond */
  45. }