| 123456789101112131415161718192021222324252627282930313233343536 |
- #pragma once
- #include "CmPrerequisites.h"
- #include "CmCommonEnums.h"
- #include "CmCoreObject.h"
- namespace CamelotFramework
- {
- class CM_EXPORT GpuParamBlock
- {
- public:
- GpuParamBlock(UINT32 size);
- GpuParamBlock(GpuParamBlock* otherBlock);
- virtual ~GpuParamBlock();
- void write(UINT32 offset, const void* data, UINT32 size);
- void zeroOut(UINT32 offset, UINT32 size);
- /**
- * @brief Uploads the current data to the specified buffer, and marks the block a non-dirty.
- * Should only be called from the core thread.
- */
- void uploadToBuffer(GpuParamBlockBufferPtr buffer);
- UINT32 getSize() const { return mSize; }
- UINT8* getData() const { return mData; }
- bool isDirty() const { return mDirty; }
- void setDirty() { mDirty = true; }
- protected:
- UINT8* mData;
- UINT32 mSize;
- bool mDirty;
- };
- }
|