BsBuildDataRTTI.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsEditorPrerequisites.h"
  5. #include "Reflection/BsRTTIType.h"
  6. #include "Build/BsBuildManager.h"
  7. namespace bs
  8. {
  9. /** @cond RTTI */
  10. /** @addtogroup RTTI-Impl-Editor
  11. * @{
  12. */
  13. class BuildDataRTTI : public RTTIType <BuildData, IReflectable, BuildDataRTTI>
  14. {
  15. private:
  16. SPtr<PlatformInfo> getPlatformInfo(BuildData* obj, UINT32 idx) { return obj->platformData[idx]; }
  17. void setPlatformInfo(BuildData* obj, UINT32 idx, SPtr<PlatformInfo> val) { obj->platformData[idx] = val; }
  18. UINT32 getPlatformInfoArraySize(BuildData* obj) { return (UINT32)obj->platformData.size(); }
  19. void setPlatformInfoArraySize(BuildData* obj, UINT32 size) { obj->platformData.resize(size); }
  20. PlatformType& getActivePlatform(BuildData* obj) { return obj->activePlatform; }
  21. void setActivePlatform(BuildData* obj, PlatformType& val) { obj->activePlatform = val; }
  22. public:
  23. BuildDataRTTI()
  24. {
  25. addReflectablePtrArrayField("platformData", 0, &BuildDataRTTI::getPlatformInfo, &BuildDataRTTI::getPlatformInfoArraySize,
  26. &BuildDataRTTI::setPlatformInfo, &BuildDataRTTI::setPlatformInfoArraySize);
  27. addPlainField("activePlatform", 1, &BuildDataRTTI::getActivePlatform, &BuildDataRTTI::setActivePlatform);
  28. }
  29. const String& getRTTIName() override
  30. {
  31. static String name = "BuildData";
  32. return name;
  33. }
  34. UINT32 getRTTIId() override
  35. {
  36. return TID_BuildData;
  37. }
  38. SPtr<IReflectable> newRTTIObject() override
  39. {
  40. return bs_shared_ptr_new<BuildData>();
  41. }
  42. };
  43. /** @} */
  44. /** @endcond */
  45. }