#pragma once #include class Renderer; struct RenderTarget; class Camera; class DoFPass { public: DoFPass(Renderer& renderer); ~DoFPass(); void render(VkCommandBuffer commandBuffer, Camera& 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_; };