#pragma once
#include "common.hpp"
class Scene;
class GFX;
class GFXCommandBuffer;
class GFXFramebuffer;
class GFXPipeline;
class GFXRenderPass;
class GFXTexture;
class RenderTarget;
namespace prism {
class renderer;
}
class SMAAPass {
public:
explicit SMAAPass(GFX* gfx);
void create_render_target_resources(RenderTarget& target);
void render(GFXCommandBuffer* command_buffer, RenderTarget& target);
private:
void create_textures();
void create_render_pass();
void create_pipelines();
GFXTexture* area_image = nullptr;
GFXTexture* search_image = nullptr;
GFXRenderPass* render_pass = nullptr;
GFXPipeline* edge_pipeline = nullptr;
GFXPipeline* blend_pipeline = nullptr;
};