Refactor UniformBuffers and DescriptorSets

- Refactor UniformBuffers to keep track of the uniforms it contains
- Refactor DescriptorSets to initialize UniformsBuffers and keep track
  of all its bindings
- DescriptorSets can now be created from the Pipeline
- Add custom DescriptorSets to Renderer
This commit is contained in:
Thraix
2023-03-24 22:27:03 +01:00
parent fbf53234f3
commit 9faec15fd6
22 changed files with 469 additions and 173 deletions
+3 -4
View File
@@ -22,19 +22,19 @@ namespace Copium
private:
std::unique_ptr<Vulkan> vulkan;
std::unique_ptr<Instance> instance;
std::unique_ptr<Renderer> renderer;
std::unique_ptr<Framebuffer> framebuffer;
std::unique_ptr<Texture2D> texture2D;
std::unique_ptr<Texture2D> texture2D2;
std::unique_ptr<UniformBuffer> shaderUniformBuffer;
std::unique_ptr<DescriptorPool> descriptorPool;
std::unique_ptr<DescriptorSet> descriptorSet;
std::unique_ptr<DescriptorSet> descriptorSetPassthrough;
std::unique_ptr<DescriptorSet> descriptorSetRenderer;
std::unique_ptr<Pipeline> graphicsPipeline;
std::unique_ptr<Pipeline> graphicsPipelinePassthrough;
std::unique_ptr<Mesh> mesh;
std::unique_ptr<Mesh> meshPassthrough;
std::unique_ptr<CommandBuffer> commandBuffer;
std::unique_ptr<Renderer> renderer;
public:
Application();
@@ -44,13 +44,12 @@ namespace Copium
private:
void InitializeVulkan();
void InitializeFrameBuffer();
void InitializeRenderer();
void InitializeTextureSampler();
void InitializeUniformBuffer();
void InitializeDescriptorSets();
void InitializeGraphicsPipeline();
void InitializeMesh();
void InitializeCommandBuffer();
void InitializeRenderer();
void RecordCommandBuffer();
void UpdateUniformBuffer();