summaryrefslogtreecommitdiffstats
path: root/tools/gfx/immediate-renderer-base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/immediate-renderer-base.cpp')
-rw-r--r--tools/gfx/immediate-renderer-base.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/tools/gfx/immediate-renderer-base.cpp b/tools/gfx/immediate-renderer-base.cpp
index 9402f7834..97bc63634 100644
--- a/tools/gfx/immediate-renderer-base.cpp
+++ b/tools/gfx/immediate-renderer-base.cpp
@@ -1,5 +1,6 @@
#include "immediate-renderer-base.h"
#include "simple-render-pass-layout.h"
+#include "simple-transient-resource-heap.h"
#include "command-writer.h"
#include "core/slang-basic.h"
#include "core/slang-blob.h"
@@ -402,15 +403,6 @@ public:
virtual SLANG_NO_THROW const Desc& SLANG_MCALL getDesc() override { return m_desc; }
- virtual SLANG_NO_THROW Result SLANG_MCALL
- createCommandBuffer(ICommandBuffer** outCommandBuffer) override
- {
- RefPtr<CommandBufferImpl> newCmdBuffer = new CommandBufferImpl();
- newCmdBuffer->init(m_renderer);
- *outCommandBuffer = newCmdBuffer.detach();
- return SLANG_OK;
- }
-
virtual SLANG_NO_THROW void SLANG_MCALL
executeCommandBuffers(uint32_t count, ICommandBuffer* const* commandBuffers) override
{
@@ -425,12 +417,26 @@ public:
m_renderer->waitForGpu();
}
};
+
+using TransientResourceHeapImpl =
+ SimpleTransientResourceHeap<ImmediateRendererBase, CommandBufferImpl>;
+
}
ImmediateRendererBase::ImmediateRendererBase() {
m_queue = new CommandQueueImpl(this);
}
+SLANG_NO_THROW Result SLANG_MCALL ImmediateRendererBase::createTransientResourceHeap(
+ const ITransientResourceHeap::Desc& desc,
+ ITransientResourceHeap** outHeap)
+{
+ RefPtr<TransientResourceHeapImpl> result = new TransientResourceHeapImpl();
+ SLANG_RETURN_ON_FAIL(result->init(this, desc));
+ *outHeap = result.detach();
+ return SLANG_OK;
+}
+
SLANG_NO_THROW Result SLANG_MCALL ImmediateRendererBase::createCommandQueue(
const ICommandQueue::Desc& desc,
ICommandQueue** outQueue)