From 14a87b0f8b7d782b8fb4b5ac27f373205ffdb8dc Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Tue, 25 Nov 2025 14:41:29 -0800 Subject: Clean up on exit --- hello/main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'hello') diff --git a/hello/main.c b/hello/main.c index 44f8a90..1f0b4ed 100644 --- a/hello/main.c +++ b/hello/main.c @@ -277,6 +277,21 @@ static void d3d_init(D3D* d3d, Window* pWindow, const D3DSettings* pSettings) { } } +void d3d_destroy(D3D* d3d) { + assert(d3d); + SafeRelease(d3d->pCommandList); + SafeRelease(d3d->pCommandAllocator); + SafeRelease(d3d->pCommandQueue); + // Swap chain buffers are owned by the swap chain. + SafeRelease(d3d->pDepthStencilBuffer); + SafeRelease(d3d->pSwapChain); + SafeRelease(d3d->pRtvHeap); + SafeRelease(d3d->pDsvHeap); + SafeRelease(d3d->pFence); + SafeRelease(d3d->pDevice); + SafeRelease(d3d->pDxgiFactory); +} + static D3D12_CPU_DESCRIPTOR_HANDLE d3d_get_current_back_buffer_view(const D3D* d3d) { assert(d3d); assert(d3d->pSwapChain); @@ -437,6 +452,7 @@ int main(int argc, const char** argv) { Sleep(10); } + d3d_destroy(&d3d); window_global_quit(); return 0; } -- cgit v1.2.3