aboutsummaryrefslogtreecommitdiffstats
path: root/include/api-test/command-buffer.hpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2023-01-31 21:16:16 +0100
committerladevieq <ladevie.quentin@gmail.com>2023-01-31 21:16:16 +0100
commitddff2fa5d0cbae17cb819c91bad0a79105ba0ea7 (patch)
treeb2d15df13b83411bda9698be3bf1fcc6bcc687b8 /include/api-test/command-buffer.hpp
parent90a0afd18f080088cac068d92810fb630225d6be (diff)
Graphics pipeline rendering
Diffstat (limited to 'include/api-test/command-buffer.hpp')
-rw-r--r--include/api-test/command-buffer.hpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/include/api-test/command-buffer.hpp b/include/api-test/command-buffer.hpp
index ffeafc4..2cd1d75 100644
--- a/include/api-test/command-buffer.hpp
+++ b/include/api-test/command-buffer.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <cstdint>
+#include <span>
#include <vulkan/vulkan_core.h>
@@ -27,6 +28,27 @@ struct dispatch_params {
uint32_t uniforms_offset;
};
+struct renderpass_params {
+private:
+ struct rect {
+ int32_t x;
+ int32_t y;
+ uint32_t width;
+ uint32_t height;
+ };
+
+public:
+ rect render_area;
+ std::span<handle<device_texture>> color_attachments;
+ // optional viewport
+ // optional scissor
+};
+struct draw_params {
+ handle<device_pipeline> pipeline;
+ uint32_t vertex_count;
+ uint32_t instance_count;
+};
+
struct command_buffer {
void start() const;
void stop() const;
@@ -41,7 +63,11 @@ struct command_buffer {
// General purpose queue
struct graphics_command_buffer: public command_buffer {
- void dispatch(const dispatch_params& params);
+ void dispatch(const dispatch_params& params) const;
+
+ void begin_renderpass(const renderpass_params& params) const;
+ void render(const draw_params& params) const;
+ void end_renderpass() const;
};
struct compute_command_buffer: public command_buffer {