Add proper queue init and fetch functionality to RenderDriver

This commit is contained in:
2025-05-04 02:54:06 +10:00
parent 7039fdf93e
commit 49a0a4b78a
4 changed files with 99 additions and 18 deletions

View File

@@ -30,7 +30,9 @@ namespace Nova {
[[nodiscard]] virtual bool get_device_supports_surface(u32 index, SurfaceID surface) const = 0;
virtual void select_device(u32 index) = 0;
[[nodiscard]] virtual QueueID get_queue() = 0;
[[nodiscard]] virtual u32 choose_queue_family(QueueType type, SurfaceID surface) = 0;
[[nodiscard]] virtual QueueID get_queue(u32 queue_family) = 0;
virtual void free_queue(QueueID queue) = 0;
[[nodiscard]] virtual SurfaceID create_surface(WindowID window) = 0;
virtual void destroy_surface(SurfaceID surface) = 0;

View File

@@ -12,6 +12,7 @@ namespace Nova {
enum class InputRate { VERTEX, INSTANCE };
enum class PipelineType { GRAPHICS, COMPUTE };
enum class PrimitiveTopology { POINT_LIST, LINE_LIST, LINE_STRIP, TRIANGLE_LIST, TRIANGLE_STRIP };
enum class QueueType { UNDEFINED, GRAPHICS, COMPUTE, TRANSFER };
enum class RenderAPI { DX12, VULKAN };
enum class ShaderStage { VERTEX, FRAGMENT, GEOMETRY, TESS_CONTROL, TESS_EVAL, COMPUTE, MESH, TASK };