BsSavedResourceDataRTTI.h 1.7 KB

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