CmGpuParamBlock.h 691 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmCommonEnums.h"
  4. #include "CmCoreObject.h"
  5. namespace CamelotFramework
  6. {
  7. class CM_EXPORT GpuParamBlock
  8. {
  9. public:
  10. GpuParamBlock(UINT32 size);
  11. GpuParamBlock(GpuParamBlock* otherBlock);
  12. virtual ~GpuParamBlock();
  13. void write(UINT32 offset, const void* data, UINT32 size);
  14. void read(UINT32 offset, void* data, UINT32 size);
  15. void zeroOut(UINT32 offset, UINT32 size);
  16. UINT32 getSize() const { return mSize; }
  17. UINT8* getData() const { return mData; }
  18. bool isDirty() const { return mDirty; }
  19. void setDirty() { mDirty = true; }
  20. protected:
  21. UINT8* mData;
  22. UINT32 mSize;
  23. bool mDirty;
  24. };
  25. }