BsGpuProgramImportOptionsRTTI.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //__________________________ Banshee Project - A modern game development toolkit _________________________________//
  2. //_____________________________________ www.banshee-project.com __________________________________________________//
  3. //________________________ Copyright (c) 2014 Marko Pintera. All rights reserved. ________________________________//
  4. #pragma once
  5. #include "BsCorePrerequisites.h"
  6. #include "BsRTTIType.h"
  7. #include "BsGpuProgramImportOptions.h"
  8. namespace BansheeEngine
  9. {
  10. class BS_CORE_EXPORT GpuProgramImportOptionsRTTI : public RTTIType<GpuProgramImportOptions, IReflectable, GpuProgramImportOptionsRTTI>
  11. {
  12. private:
  13. String& getEntryPoint(GpuProgramImportOptions* obj) { return obj->mEntryPoint; }
  14. void setEntryPoint(GpuProgramImportOptions* obj, String& value) { obj->mEntryPoint = value; }
  15. String& getLanguage(GpuProgramImportOptions* obj) { return obj->mLanguage; }
  16. void setLanguage(GpuProgramImportOptions* obj, String& value) { obj->mLanguage = value; }
  17. GpuProgramProfile& getProfile(GpuProgramImportOptions* obj) { return obj->mProfile; }
  18. void setProfile(GpuProgramImportOptions* obj, GpuProgramProfile& value) { obj->mProfile = value; }
  19. GpuProgramType& getType(GpuProgramImportOptions* obj) { return obj->mType; }
  20. void setType(GpuProgramImportOptions* obj, GpuProgramType& value) { obj->mType = value; }
  21. HGpuProgInclude& getInclude(GpuProgramImportOptions* obj, UINT32 arrIdx) { return obj->mIncludes[arrIdx]; }
  22. void setInclude(GpuProgramImportOptions* obj, UINT32 arrIdx, HGpuProgInclude& value) { obj->mIncludes[arrIdx] = value; }
  23. UINT32 getNumIncludes(GpuProgramImportOptions* obj) { return (UINT32)obj->mIncludes.size(); }
  24. void setNumIncludes(GpuProgramImportOptions* obj, UINT32 num) { obj->mIncludes.clear(); obj->mIncludes.resize(num); }
  25. public:
  26. GpuProgramImportOptionsRTTI()
  27. {
  28. addPlainField("mEntryPoint", 0, &GpuProgramImportOptionsRTTI::getEntryPoint, &GpuProgramImportOptionsRTTI::setEntryPoint);
  29. addPlainField("mLanguage", 1, &GpuProgramImportOptionsRTTI::getLanguage, &GpuProgramImportOptionsRTTI::setLanguage);
  30. addPlainField("mProfile", 2, &GpuProgramImportOptionsRTTI::getProfile, &GpuProgramImportOptionsRTTI::setProfile);
  31. addPlainField("mType", 3, &GpuProgramImportOptionsRTTI::getType, &GpuProgramImportOptionsRTTI::setType);
  32. addReflectableArrayField("mIncludes", 4, &GpuProgramImportOptionsRTTI::getInclude, &GpuProgramImportOptionsRTTI::getNumIncludes,
  33. &GpuProgramImportOptionsRTTI::setInclude, &GpuProgramImportOptionsRTTI::setNumIncludes);
  34. }
  35. virtual const String& getRTTIName()
  36. {
  37. static String name = "GpuProgramImportOptions";
  38. return name;
  39. }
  40. virtual UINT32 getRTTIId()
  41. {
  42. return TID_GpuProgramImportOptions;
  43. }
  44. virtual std::shared_ptr<IReflectable> newRTTIObject()
  45. {
  46. return bs_shared_ptr<GpuProgramImportOptions, PoolAlloc>();
  47. }
  48. };
  49. }