CmTextureDataST.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "CmPrerequisitesUtil.h"
  3. #include "CmTextureData.h"
  4. #include "CmSerializableType.h"
  5. #include "CmManagedDataBlock.h"
  6. namespace CamelotEngine
  7. {
  8. class TextureDataST : public SerializableType
  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. };
  41. }