summaryrefslogtreecommitdiffstats
path: root/tools/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx')
-rw-r--r--tools/gfx/debug-layer/debug-transient-heap.cpp10
-rw-r--r--tools/gfx/renderer-shared.cpp9
2 files changed, 13 insertions, 6 deletions
diff --git a/tools/gfx/debug-layer/debug-transient-heap.cpp b/tools/gfx/debug-layer/debug-transient-heap.cpp
index 424a8feb1..5b0219fb7 100644
--- a/tools/gfx/debug-layer/debug-transient-heap.cpp
+++ b/tools/gfx/debug-layer/debug-transient-heap.cpp
@@ -14,7 +14,11 @@ namespace debug
SlangResult DebugTransientResourceHeap::queryInterface(SlangUUID const& uuid, void** outObject)
{
if (uuid == GfxGUID::IID_ISlangUnknown || uuid == GfxGUID::IID_ITransientResourceHeap)
+ {
*outObject = static_cast<ITransientResourceHeap*>(this);
+ addRef();
+ return SLANG_OK;
+ }
if (uuid == GfxGUID::IID_ITransientResourceHeapD3D12)
{
RefPtr<DebugTransientResourceHeapD3D12> result = new DebugTransientResourceHeapD3D12();
@@ -22,10 +26,8 @@ SlangResult DebugTransientResourceHeap::queryInterface(SlangUUID const& uuid, vo
returnComPtr((ITransientResourceHeapD3D12**)outObject, result);
return SLANG_OK;
}
- else
- {
- return baseObject->queryInterface(uuid, outObject);
- }
+
+ return baseObject->queryInterface(uuid, outObject);
}
Result DebugTransientResourceHeap::synchronizeAndReset()
diff --git a/tools/gfx/renderer-shared.cpp b/tools/gfx/renderer-shared.cpp
index cb25079fb..d68ce4ee8 100644
--- a/tools/gfx/renderer-shared.cpp
+++ b/tools/gfx/renderer-shared.cpp
@@ -405,8 +405,13 @@ SlangResult RendererBase::queryInterface(SlangUUID const& uuid, void** outObject
return SLANG_OK;
}
- *outObject = getInterface(uuid);
- return SLANG_OK;
+ if (IDevice* device_ptr = getInterface(uuid))
+ {
+ *outObject = device_ptr;
+ addRef();
+ return SLANG_OK;
+ }
+ return SLANG_E_NO_INTERFACE;
}
IDevice* gfx::RendererBase::getInterface(const Guid& guid)