BsBuildDataRTTI.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 "BsRTTIType.h"
  6. #include "BsBuildManager.h"
  7. namespace BansheeEngine
  8. {
  9. class BuildDataRTTI : public RTTIType <BuildData, IReflectable, BuildDataRTTI>
  10. {
  11. private:
  12. SPtr<PlatformInfo> getPlatformInfo(BuildData* obj, UINT32 idx) { return obj->platformData[idx]; }
  13. void setPlatformInfo(BuildData* obj, UINT32 idx, SPtr<PlatformInfo> val) { obj->platformData[idx] = val; }
  14. UINT32 getPlatformInfoArraySize(BuildData* obj) { return (UINT32)obj->platformData.size(); }
  15. void setPlatformInfoArraySize(BuildData* obj, UINT32 size) { obj->platformData.resize(size); }
  16. PlatformType& getActivePlatform(BuildData* obj) { return obj->activePlatform; }
  17. void setActivePlatform(BuildData* obj, PlatformType& val) { obj->activePlatform = val; }
  18. public:
  19. BuildDataRTTI()
  20. {
  21. addReflectablePtrArrayField("platformData", 0, &BuildDataRTTI::getPlatformInfo, &BuildDataRTTI::getPlatformInfoArraySize,
  22. &BuildDataRTTI::setPlatformInfo, &BuildDataRTTI::setPlatformInfoArraySize);
  23. addPlainField("activePlatform", 1, &BuildDataRTTI::getActivePlatform, &BuildDataRTTI::setActivePlatform);
  24. }
  25. virtual const String& getRTTIName()
  26. {
  27. static String name = "BuildData";
  28. return name;
  29. }
  30. virtual UINT32 getRTTIId()
  31. {
  32. return TID_BuildData;
  33. }
  34. virtual std::shared_ptr<IReflectable> newRTTIObject()
  35. {
  36. return bs_shared_ptr_new<BuildData>();
  37. }
  38. };
  39. }