diff options
Diffstat (limited to 'tools/gfx/cpu/cpu-buffer.h')
| -rw-r--r-- | tools/gfx/cpu/cpu-buffer.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/gfx/cpu/cpu-buffer.h b/tools/gfx/cpu/cpu-buffer.h new file mode 100644 index 000000000..6273b18b9 --- /dev/null +++ b/tools/gfx/cpu/cpu-buffer.h @@ -0,0 +1,36 @@ +// cpu-buffer.h +#pragma once +#include "cpu-base.h" + +namespace gfx +{ +using namespace Slang; + +namespace cpu +{ + +class BufferResourceImpl : public BufferResource +{ +public: + BufferResourceImpl(const Desc& _desc) + : BufferResource(_desc) + {} + + ~BufferResourceImpl(); + + Result init(); + + Result setData(size_t offset, size_t size, void const* data); + + void* m_data = nullptr; + + virtual SLANG_NO_THROW DeviceAddress SLANG_MCALL getDeviceAddress() override; + + virtual SLANG_NO_THROW Result SLANG_MCALL + map(MemoryRange* rangeToRead, void** outPointer) override; + + virtual SLANG_NO_THROW Result SLANG_MCALL unmap(MemoryRange* writtenRange) override; +}; + +} // namespace cpu +} // namespace gfx |
