From 0dd7e34602d0abec6442e4b63c22a8b2e760aad2 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Thu, 23 Jan 2025 00:16:41 +0100 Subject: Dx12 surface creation --- include/api-test/dx12-device-types.hpp | 26 ++++++++++++++++++++++++++ include/api-test/dx12-device.hpp | 14 +++++++++++--- include/api-test/freelist.hpp | 1 - 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 include/api-test/dx12-device-types.hpp (limited to 'include') diff --git a/include/api-test/dx12-device-types.hpp b/include/api-test/dx12-device-types.hpp new file mode 100644 index 0000000..dee1811 --- /dev/null +++ b/include/api-test/dx12-device-types.hpp @@ -0,0 +1,26 @@ +#include +#include + +namespace dx12 { + struct texture_desc { + }; + + struct device_texture { + }; + + struct surface_desc { + HWND window_handle; + DXGI_FORMAT surface_format; + DXGI_SWAP_EFFECT present_mode; + // VkImageUsageFlags usages; + DXGI_USAGE usages; + uint32_t image_count = surface_desc::default_image_count; + + static constexpr uint32_t max_image_count = 3U; + static constexpr uint32_t default_image_count = 3U; + }; + + struct device_surface { + IDXGISwapChain* swapchain; + }; +} diff --git a/include/api-test/dx12-device.hpp b/include/api-test/dx12-device.hpp index 8d8d1c3..5f48f95 100644 --- a/include/api-test/dx12-device.hpp +++ b/include/api-test/dx12-device.hpp @@ -1,5 +1,7 @@ #include -#include + +#include "freelist.hpp" +#include "dx12-device-types.hpp" class dx12device { public: @@ -9,7 +11,7 @@ class dx12device { return render_device; } - void create_surface(const surface_desc& desc); + handle create_surface(const dx12::surface_desc& desc); void create_buffer() {}; @@ -25,12 +27,18 @@ class dx12device { void get_texture() {}; + [[nodiscard]] inline dx12::device_surface& get_surface(handle handle) { + return surfaces[handle]; + } + private: IDXGIFactory* factory; IDXGIAdapter* adapter; ID3D12Device* device; - ID3D12CommandQueue queues[3U]; + ID3D12CommandQueue* queues[3U]; + + freelist surfaces; static dx12device render_device; }; diff --git a/include/api-test/freelist.hpp b/include/api-test/freelist.hpp index ffefdff..3d0324d 100644 --- a/include/api-test/freelist.hpp +++ b/include/api-test/freelist.hpp @@ -1,5 +1,4 @@ #pragma once -#include #include #include -- cgit v1.3