2021-09-23 10:10:39 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "RenderPass.h"
|
|
|
|
|
#include "UI/RenderHierarchy.h"
|
|
|
|
|
#include "Graphics/GraphicsResources.h"
|
|
|
|
|
|
|
|
|
|
namespace Seele
|
|
|
|
|
{
|
|
|
|
|
DECLARE_NAME_REF(Gfx, Texture2D)
|
|
|
|
|
DECLARE_NAME_REF(Gfx, RenderTargetAttachment)
|
2021-09-29 22:12:56 +02:00
|
|
|
struct UIPassData
|
|
|
|
|
{
|
|
|
|
|
const UI::RenderHierarchy hierarchy;
|
|
|
|
|
};
|
2021-10-01 19:55:04 +02:00
|
|
|
class UIPass : public RenderPass<UIPassData>
|
2021-09-23 10:10:39 +02:00
|
|
|
{
|
|
|
|
|
public:
|
2021-10-01 19:55:04 +02:00
|
|
|
UIPass(Gfx::PGraphics graphics, Gfx::PViewport viewport, Gfx::PRenderTargetAttachment renderTarget);
|
2021-09-23 10:10:39 +02:00
|
|
|
virtual ~UIPass();
|
2022-04-15 23:45:44 +02:00
|
|
|
virtual void beginFrame() override;
|
|
|
|
|
virtual void render() override;
|
|
|
|
|
virtual void endFrame() override;
|
2021-09-23 10:10:39 +02:00
|
|
|
virtual void publishOutputs() override;
|
|
|
|
|
virtual void createRenderPass() override;
|
|
|
|
|
private:
|
|
|
|
|
Gfx::PRenderTargetAttachment renderTarget;
|
|
|
|
|
Gfx::PRenderTargetAttachment depthAttachment;
|
|
|
|
|
Gfx::PTexture2D depthBuffer;
|
|
|
|
|
|
|
|
|
|
Gfx::PVertexDeclaration declaration;
|
|
|
|
|
Gfx::PVertexShader vertexShader;
|
|
|
|
|
Gfx::PFragmentShader fragmentShader;
|
|
|
|
|
Gfx::PPipelineLayout pipelineLayout;
|
|
|
|
|
Gfx::PGraphicsPipeline pipeline;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(UIPass);
|
|
|
|
|
} // namespace Seele
|