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

38 lines
1008 B
C++
Raw Normal View History

2021-05-06 17:02:10 +02:00
#pragma once
#include "MinimalEngine.h"
#include "Math/Math.h"
namespace Seele
{
2021-09-23 10:10:39 +02:00
DECLARE_NAME_REF(Gfx, Viewport)
DECLARE_NAME_REF(Gfx, Graphics)
2021-05-06 17:02:10 +02:00
DECLARE_NAME_REF(Gfx, RenderPass)
DECLARE_REF(RenderGraph)
class RenderPass
{
public:
2021-09-23 10:10:39 +02:00
RenderPass(PRenderGraph rendergraph, Gfx::PGraphics graphics, Gfx::PViewport viewport);
2021-05-06 17:02:10 +02:00
virtual ~RenderPass();
2021-09-29 22:12:56 +02:00
virtual void updateViewFrame(PViewFrame viewFrame) = 0;
2021-05-06 17:02:10 +02:00
virtual void beginFrame() = 0;
virtual void render() = 0;
virtual void endFrame() = 0;
virtual void publishOutputs() = 0;
virtual void createRenderPass() = 0;
protected:
_declspec(align(16)) struct ViewParameter
2021-05-06 17:02:10 +02:00
{
Matrix4 viewMatrix;
Matrix4 projectionMatrix;
Matrix4 inverseProjectionMatrix;
2021-05-10 23:57:55 +02:00
Vector4 cameraPosition;
Vector2 screenDimensions;
2021-05-10 23:57:55 +02:00
} viewParams;
2021-05-06 17:02:10 +02:00
Gfx::PRenderPass renderPass;
PRenderGraph renderGraph;
2021-09-23 10:10:39 +02:00
Gfx::PGraphics graphics;
Gfx::PViewport viewport;
2021-05-06 17:02:10 +02:00
};
DEFINE_REF(RenderPass)
} // namespace Seele