44 lines
918 B
C++
44 lines
918 B
C++
![]() |
#pragma once
|
||
|
|
||
|
#include "common.hpp"
|
||
|
|
||
|
class Scene;
|
||
|
class GFX;
|
||
|
class GFXCommandBuffer;
|
||
|
class GFXFramebuffer;
|
||
|
class GFXPipeline;
|
||
|
class GFXRenderPass;
|
||
|
class GFXTexture;
|
||
|
class Renderer;
|
||
|
|
||
|
class SMAAPass {
|
||
|
public:
|
||
|
SMAAPass(GFX* gfx, Renderer* renderer);
|
||
|
|
||
|
void render(GFXCommandBuffer* command_buffer);
|
||
|
|
||
|
GFXTexture* edge_texture = nullptr;
|
||
|
GFXTexture* blend_texture = nullptr;
|
||
|
|
||
|
private:
|
||
|
void create_textures();
|
||
|
void create_render_pass();
|
||
|
void create_pipelines();
|
||
|
void create_offscreen_resources();
|
||
|
|
||
|
Extent extent;
|
||
|
Renderer* renderer = nullptr;
|
||
|
|
||
|
GFXTexture* area_image = nullptr;
|
||
|
GFXTexture* search_image = nullptr;
|
||
|
|
||
|
GFXRenderPass* render_pass = nullptr;
|
||
|
|
||
|
GFXPipeline* edge_pipeline = nullptr;
|
||
|
GFXPipeline* blend_pipeline = nullptr;
|
||
|
|
||
|
GFXFramebuffer* edge_framebuffer = nullptr;
|
||
|
|
||
|
GFXFramebuffer* blend_framebuffer = nullptr;
|
||
|
};
|