NarcEngine 0.1.1
C++ Vulkan game engine
 
Loading...
Searching...
No Matches
RenderTask.h
1#pragma once
2
3#include "CommandBuffer.h"
4#include "DescriptorPool.h"
5#include "GraphicsPipeline.h"
6#include "SwapChain.h"
7#include "buffers/UniformBuffer.h"
8#include "models/Material.h"
9
10namespace narc_engine
11{
12 class Renderer;
13
14 class RenderTask : public DeviceComponent
15 {
16 public:
17 RenderTask(const SwapChain* swapChain, const VkDescriptorSetLayout* descriptorSetLayout,
18 const Material* material);
19 ~RenderTask();
20
21 void recordTask(const CommandBuffer* commandBuffer, const VkDescriptorSet* m_descriptorSet) const;
22 void updateDescriptorSet(VkDescriptorSet descriptorSets, const UniformBuffer* uniformBuffers) const;
23
24 void bindRenderer(const Renderer* renderer) { m_renderers.push_back(renderer); }
25 void unbindRenderer(const Renderer* renderer) { std::erase(m_renderers, renderer); }
26
27 DEPRECATED GETTER std::vector<const Renderer*>* getRenderers() { return &m_renderers; }
28
29 private:
30 std::unique_ptr<GraphicsPipeline> m_pipeline;
31 std::vector<const Renderer*> m_renderers;
32
33 const Material* m_material;
34 };
35} // narc_engine
Definition CommandBuffer.h:6
Definition Material.h:12
Definition Renderer.h:13
Definition SwapChain.h:13
Definition UniformBuffer.h:8