aboutsummaryrefslogtreecommitdiffstats
path: root/include/api-test/dx12-device.hpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2025-01-23 00:16:41 +0100
committerladevieq <ladevie.quentin@gmail.com>2025-01-23 00:16:57 +0100
commit0dd7e34602d0abec6442e4b63c22a8b2e760aad2 (patch)
tree99c4c5a4fb04517069b8d95ee92950e83bb3211f /include/api-test/dx12-device.hpp
parent11ede6055d54480d3b7486c5811a44f6f63e1c61 (diff)
Dx12 surface creation
Diffstat (limited to 'include/api-test/dx12-device.hpp')
-rw-r--r--include/api-test/dx12-device.hpp14
1 files changed, 11 insertions, 3 deletions
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 <d3d12.h>
-#include <dxgi.h>
+
+#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<dx12::device_surface> 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<dx12::device_surface> handle) {
+ return surfaces[handle];
+ }
+
private:
IDXGIFactory* factory;
IDXGIAdapter* adapter;
ID3D12Device* device;
- ID3D12CommandQueue queues[3U];
+ ID3D12CommandQueue* queues[3U];
+
+ freelist<dx12::device_surface> surfaces;
static dx12device render_device;
};