42 lines
932 B
C++
42 lines
932 B
C++
#pragma once
|
|
|
|
#include <vulkan/vulkan.h>
|
|
|
|
class Renderer;
|
|
struct RenderTarget;
|
|
struct CameraComponent;
|
|
|
|
class DoFPass {
|
|
public:
|
|
DoFPass(Renderer& renderer);
|
|
~DoFPass();
|
|
|
|
void render(VkCommandBuffer commandBuffer, CameraComponent& camera, RenderTarget* target);
|
|
|
|
void createDescriptorSet(RenderTarget* target);
|
|
|
|
VkRenderPass getRenderPass() const {
|
|
return renderPass_;
|
|
}
|
|
|
|
private:
|
|
void createRenderPass();
|
|
void createDescriptorSetLayout();
|
|
void createPipeline();
|
|
void createBokehImage();
|
|
void createDescriptorSet();
|
|
|
|
VkRenderPass renderPass_ = nullptr;
|
|
|
|
VkDescriptorSetLayout setLayout_ = nullptr;
|
|
|
|
VkPipelineLayout pipelineLayout_ = nullptr;
|
|
VkPipeline pipeline_ = nullptr;
|
|
|
|
VkImage bokehImage_ = nullptr;
|
|
VkDeviceMemory bokehMemory_ = nullptr;
|
|
VkImageView bokehImageView_ = nullptr;
|
|
VkSampler bokehSampler_ = nullptr;
|
|
|
|
Renderer& renderer_;
|
|
};
|