Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graph/include/smaapass.h

60 lines
1.2 KiB
C
Raw Normal View History

2018-12-19 13:11:27 -05:00
#pragma once
#include <vulkan/vulkan.h>
class Renderer;
struct RenderTarget;
class SMAAPass {
public:
SMAAPass(Renderer& renderer);
~SMAAPass();
void render(VkCommandBuffer commandBuffer, RenderTarget* target);
void createDescriptorSets(RenderTarget* target);
VkRenderPass getEdgeRenderPass() const {
return edgeRenderPass;
}
VkRenderPass getBlendRenderPass() const {
return blendRenderPass;
}
private:
void loadResources();
void setupDescriptorLayouts();
void createOffscreenResources();
void createRenderPasses();
void createPipelines();
VkImage areaImage;
VkDeviceMemory areaMemory;
VkImageView areaImageView;
VkSampler areaSampler;
VkImage searchImage;
VkDeviceMemory searchMemory;
VkImageView searchImageView;
VkSampler searchSampler;
VkSampler edgeSampler;
VkSampler blendSampler;
VkRenderPass edgeRenderPass, blendRenderPass;
// edge
VkDescriptorSetLayout edgeDescriptorSetLayout;
VkPipelineLayout edgePipelineLayout;
VkPipeline edgePipeline;
// blend
VkDescriptorSetLayout blendDescriptorSetLayout;
VkPipelineLayout blendPipelineLayout;
VkPipeline blendPipeline;
Renderer& renderer;
};