2020-05-05 01:51:13 +02:00
|
|
|
#pragma once
|
2023-10-26 18:37:29 +02:00
|
|
|
#include "Enums.h"
|
2023-11-15 17:42:57 +01:00
|
|
|
#include "Graphics/Pipeline.h"
|
2020-05-05 01:51:13 +02:00
|
|
|
|
|
|
|
|
namespace Seele
|
|
|
|
|
{
|
|
|
|
|
namespace Vulkan
|
|
|
|
|
{
|
2024-01-19 09:49:42 +01:00
|
|
|
class VertexInput : public Gfx::VertexInput
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
VertexInput(VertexInputStateCreateInfo createInfo);
|
|
|
|
|
virtual ~VertexInput();
|
|
|
|
|
private:
|
|
|
|
|
};
|
2021-04-01 16:40:14 +02:00
|
|
|
DECLARE_REF(PipelineLayout)
|
|
|
|
|
DECLARE_REF(Graphics)
|
2020-05-05 01:51:13 +02:00
|
|
|
class GraphicsPipeline : public Gfx::GraphicsPipeline
|
|
|
|
|
{
|
|
|
|
|
public:
|
2024-04-23 08:11:44 +02:00
|
|
|
GraphicsPipeline(PGraphics graphics, VkPipeline handle, Gfx::PPipelineLayout pipelineLayout);
|
2020-05-05 01:51:13 +02:00
|
|
|
virtual ~GraphicsPipeline();
|
|
|
|
|
void bind(VkCommandBuffer handle);
|
|
|
|
|
VkPipelineLayout getLayout() const;
|
|
|
|
|
private:
|
|
|
|
|
PGraphics graphics;
|
2021-04-01 16:40:14 +02:00
|
|
|
VkPipeline pipeline;
|
2020-05-05 01:51:13 +02:00
|
|
|
};
|
2021-04-01 16:40:14 +02:00
|
|
|
DEFINE_REF(GraphicsPipeline)
|
2021-05-06 17:02:10 +02:00
|
|
|
class ComputePipeline : public Gfx::ComputePipeline
|
|
|
|
|
{
|
|
|
|
|
public:
|
2024-04-23 08:11:44 +02:00
|
|
|
ComputePipeline(PGraphics graphics, VkPipeline handle, Gfx::PPipelineLayout pipelineLayout);
|
2021-05-06 17:02:10 +02:00
|
|
|
virtual ~ComputePipeline();
|
|
|
|
|
void bind(VkCommandBuffer handle);
|
|
|
|
|
VkPipelineLayout getLayout() const;
|
|
|
|
|
private:
|
|
|
|
|
PGraphics graphics;
|
|
|
|
|
VkPipeline pipeline;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(ComputePipeline)
|
2020-05-05 01:51:13 +02:00
|
|
|
} // namespace Vulkan
|
|
|
|
|
} // namespace Seele
|