summaryrefslogtreecommitdiff
path: root/tools/gfx/d3d11/d3d11-buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/d3d11/d3d11-buffer.h')
-rw-r--r--tools/gfx/d3d11/d3d11-buffer.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/gfx/d3d11/d3d11-buffer.h b/tools/gfx/d3d11/d3d11-buffer.h
new file mode 100644
index 000000000..f5462b029
--- /dev/null
+++ b/tools/gfx/d3d11/d3d11-buffer.h
@@ -0,0 +1,37 @@
+// d3d11-buffer.h
+#pragma once
+
+#include "d3d11-base.h"
+
+namespace gfx
+{
+
+using namespace Slang;
+
+namespace d3d11
+{
+
+class BufferResourceImpl : public BufferResource
+{
+public:
+ typedef BufferResource Parent;
+
+ BufferResourceImpl(const IBufferResource::Desc& desc) :
+ Parent(desc)
+ {
+ }
+
+ MapFlavor m_mapFlavor;
+ D3D11_USAGE m_d3dUsage;
+ ComPtr<ID3D11Buffer> m_buffer;
+ ComPtr<ID3D11Buffer> m_staging;
+ List<uint8_t> m_uploadStagingBuffer;
+
+ 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 d3d11
+} // namespace gfx