Add RenderPass creation to RenderDriver::create_swapchain()

This commit is contained in:
2025-04-30 17:21:46 +10:00
parent 771363bbfe
commit 22f9878d38
5 changed files with 72 additions and 21 deletions

View File

@@ -45,6 +45,7 @@ namespace Nova {
std::vector<VkImageView> image_views;
std::vector<VkFramebuffer> framebuffers;
SurfaceID surface = nullptr;
RenderPassID render_pass = nullptr;
};
class VulkanRenderDriver final : public RenderDriver {
@@ -67,18 +68,19 @@ namespace Nova {
[[nodiscard]] SwapchainID create_swapchain(SurfaceID surface) override;
void resize_swapchain(SwapchainID swapchain) override;
[[nodiscard]] RenderPassID get_swapchain_render_pass(SwapchainID swapchain) const override;
void destroy_swapchain(SwapchainID swapchain) override;
[[nodiscard]] ShaderID create_shader(const std::span<u8> bytes, ShaderStage stage) override;
void destroy_shader(ShaderID shader) override;
[[nodiscard]] RenderPassID create_render_pass(RenderPassParams& params) override;
void destroy_render_pass(RenderPassID render_pass) override;
[[nodiscard]] PipelineID create_pipeline(GraphicsPipelineParams& params) override;
[[nodiscard]] PipelineID create_pipeline(ComputePipelineParams& params) override;
void destroy_pipeline(PipelineID pipeline) override;
[[nodiscard]] RenderPassID create_render_pass() override;
void destroy_render_pass(RenderPassID render_pass) override;
[[nodiscard]] VkInstance get_instance() const;
[[nodiscard]] VkAllocationCallbacks* get_allocator(VkObjectType type) const;