Add RenderPass creation to RenderDriver::create_swapchain()
This commit is contained in:
@@ -36,16 +36,17 @@ namespace Nova {
|
||||
|
||||
[[nodiscard]] virtual SwapchainID create_swapchain(SurfaceID surface) = 0;
|
||||
virtual void resize_swapchain(SwapchainID swapchain) = 0;
|
||||
[[nodiscard]] virtual RenderPassID get_swapchain_render_pass(SwapchainID swapchain) const = 0;
|
||||
virtual void destroy_swapchain(SwapchainID swapchain) = 0;
|
||||
|
||||
[[nodiscard]] virtual ShaderID create_shader(const std::span<u8> bytes, ShaderStage stage) = 0;
|
||||
virtual void destroy_shader(ShaderID shader) = 0;
|
||||
|
||||
[[nodiscard]] virtual RenderPassID create_render_pass(RenderPassParams& params) = 0;
|
||||
virtual void destroy_render_pass(RenderPassID render_pass) = 0;
|
||||
|
||||
[[nodiscard]] virtual PipelineID create_pipeline(GraphicsPipelineParams& params) = 0;
|
||||
[[nodiscard]] virtual PipelineID create_pipeline(ComputePipelineParams& params) = 0;
|
||||
virtual void destroy_pipeline(PipelineID pipeline) = 0;
|
||||
|
||||
[[nodiscard]] virtual RenderPassID create_render_pass() = 0;
|
||||
virtual void destroy_render_pass(RenderPassID render_pass) = 0;
|
||||
};
|
||||
} // namespace Nova
|
||||
|
||||
@@ -242,6 +242,7 @@ namespace Nova {
|
||||
|
||||
struct VertexAttribute;
|
||||
struct VertexBinding;
|
||||
struct RenderPassParams;
|
||||
struct GraphicsPipelineParams;
|
||||
struct ComputePipelineParams;
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@ namespace Nova {
|
||||
InputRate rate = InputRate::VERTEX;
|
||||
};
|
||||
|
||||
struct RenderPassParams {};
|
||||
|
||||
struct GraphicsPipelineParams {
|
||||
std::vector<ShaderID> shaders;
|
||||
std::vector<VertexBinding> bindings;
|
||||
@@ -52,5 +54,6 @@ namespace Nova {
|
||||
RenderPassID render_pass = nullptr;
|
||||
u32 subpass = 0;
|
||||
};
|
||||
|
||||
struct ComputePipelineParams {};
|
||||
} // namespace Nova
|
||||
|
||||
Reference in New Issue
Block a user