yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
785669c87
master
1// debug-transient-heap.cpp 2#include "debug-transient-heap.h" 3 4#include "debug-command-buffer.h" 5#include "debug-helper-functions.h" 6 7namespace gfx 8{ 9using namespace Slang ; 10 11namespace debug 12{ 13 14SlangResult DebugTransientResourceHeap ::queryInterface (SlangUUID const & uuid ,void ** outObject ) 15{ 16if (uuid == GfxGUID ::IID_ISlangUnknown || uuid == GfxGUID ::IID_ITransientResourceHeap ) 17 { 18* outObject = static_cast < ITransientResourceHeap *> (this ); 19addRef (); 20return SLANG_OK ; 21 } 22if (uuid == GfxGUID ::IID_ITransientResourceHeapD3D12 ) 23 { 24RefPtr < DebugTransientResourceHeapD3D12 > result = new DebugTransientResourceHeapD3D12 (); 25baseObject -> queryInterface (uuid , (void ** )result -> baseObject .writeRef ()); 26returnComPtr ((ITransientResourceHeapD3D12 ** )outObject ,result ); 27return SLANG_OK ; 28 } 29 30return baseObject -> queryInterface (uuid ,outObject ); 31} 32 33Result DebugTransientResourceHeap ::synchronizeAndReset () 34{ 35SLANG_GFX_API_FUNC ; 36return baseObject -> synchronizeAndReset (); 37} 38 39Result DebugTransientResourceHeap ::finish () 40{ 41SLANG_GFX_API_FUNC ; 42return baseObject -> finish (); 43} 44 45Result DebugTransientResourceHeap ::createCommandBuffer (ICommandBuffer ** outCommandBuffer ) 46{ 47SLANG_GFX_API_FUNC ; 48RefPtr < DebugCommandBuffer > outObject = new DebugCommandBuffer (); 49outObject -> m_transientHeap = this ; 50auto result = baseObject -> createCommandBuffer (outObject -> baseObject .writeRef ()); 51if (SLANG_FAILED (result )) 52return result ; 53outObject -> queryInterface (SlangUUID SLANG_UUID_ICommandBuffer , (void ** )outCommandBuffer ); 54return result ; 55} 56 57SlangResult DebugTransientResourceHeapD3D12 ::queryInterface (SlangUUID const & uuid ,void ** outObject ) 58{ 59if (uuid == GfxGUID ::IID_ISlangUnknown || uuid == GfxGUID ::IID_ITransientResourceHeapD3D12 ) 60* outObject = static_cast < ITransientResourceHeapD3D12 *> (this ); 61if (uuid == GfxGUID ::IID_ITransientResourceHeap ) 62 { 63RefPtr < DebugTransientResourceHeap > result = new DebugTransientResourceHeap (); 64baseObject -> queryInterface (uuid , (void ** )result -> baseObject .writeRef ()); 65returnComPtr ((ITransientResourceHeap ** )outObject ,result ); 66return SLANG_OK ; 67 } 68else 69 { 70return baseObject -> queryInterface (uuid ,outObject ); 71 } 72} 73 74Result DebugTransientResourceHeapD3D12 ::allocateTransientDescriptorTable ( 75DescriptorType type , 76GfxCount count , 77Offset & outDescriptorOffset , 78void ** outD3DDescriptorHeapHandle ) 79{ 80SLANG_GFX_API_FUNC ; 81 82return baseObject -> allocateTransientDescriptorTable ( 83type , 84count , 85outDescriptorOffset , 86outD3DDescriptorHeapHandle ); 87} 88 89}// namespace debug 90}// namespace gfx