CmTextureDataST.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "CmPrerequisitesUtil.h"
  3. #include "CmTextureData.h"
  4. #include "CmRTTIType.h"
  5. #include "CmManagedDataBlock.h"
  6. namespace CamelotEngine
  7. {
  8. class CM_UTILITY_EXPORT TextureDataST : public RTTIType<TextureData, IReflectable, TextureDataST>
  9. {
  10. CM_SETGET_MEMBER(mNumMipmaps, UINT32, TextureData)
  11. CM_SETGET_MEMBER(mWidth, UINT32, TextureData)
  12. CM_SETGET_MEMBER(mHeight, UINT32, TextureData)
  13. CM_SETGET_MEMBER(mSize, UINT32, TextureData)
  14. CM_SETGET_MEMBER(mDepth, UINT32, TextureData)
  15. CM_SETGET_MEMBER(mFlags, INT32, TextureData)
  16. CM_SETGET_MEMBER(mBPP, UINT8, TextureData)
  17. CM_SETGET_MEMBER(mFormat, PixelFormat, TextureData)
  18. ManagedDataBlock getData(TextureData* obj)
  19. {
  20. return ManagedDataBlock(obj->mData, obj->mSize, false);
  21. }
  22. void setData(TextureData* obj, ManagedDataBlock val)
  23. {
  24. obj->mData = val.getData();
  25. obj->mSize = val.getSize();
  26. }
  27. public:
  28. TextureDataST()
  29. {
  30. CM_ADD_PLAINFIELD(mNumMipmaps, 0, TextureDataST);
  31. CM_ADD_PLAINFIELD(mWidth, 1, TextureDataST);
  32. CM_ADD_PLAINFIELD(mHeight, 2, TextureDataST);
  33. CM_ADD_PLAINFIELD(mSize, 3, TextureDataST);
  34. CM_ADD_PLAINFIELD(mDepth, 4, TextureDataST);
  35. CM_ADD_PLAINFIELD(mFlags, 5, TextureDataST);
  36. CM_ADD_PLAINFIELD(mBPP, 6, TextureDataST);
  37. CM_ADD_PLAINFIELD(mFormat, 7, TextureDataST);
  38. addDataBlockField("Data", 8, &TextureDataST::getData, &TextureDataST::setData);
  39. }
  40. virtual const String& getRTTIName()
  41. {
  42. static String name = "TextureData";
  43. return name;
  44. }
  45. virtual UINT32 getRTTIId()
  46. {
  47. return 102;
  48. }
  49. virtual std::shared_ptr<IReflectable> newRTTIObject()
  50. {
  51. return std::shared_ptr<TextureData>(new TextureData());
  52. }
  53. };
  54. }