Files
Seele/src/Engine/Graphics/RenderPass/UIPass.h
T

37 lines
1.0 KiB
C++
Raw Normal View History

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();
2021-12-02 13:00:03 +01:00
virtual void beginFrame() override;
virtual MainJob 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