2021-05-06 17:02:10 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "MinimalEngine.h"
|
|
|
|
|
#include "Math/Math.h"
|
|
|
|
|
|
|
|
|
|
namespace Seele
|
|
|
|
|
{
|
|
|
|
|
DECLARE_NAME_REF(Gfx, RenderPass)
|
|
|
|
|
DECLARE_REF(RenderGraph)
|
|
|
|
|
class RenderPass
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
RenderPass(PRenderGraph rendergraph);
|
|
|
|
|
virtual ~RenderPass();
|
|
|
|
|
virtual void beginFrame() = 0;
|
|
|
|
|
virtual void render() = 0;
|
|
|
|
|
virtual void endFrame() = 0;
|
|
|
|
|
virtual void publishOutputs() = 0;
|
|
|
|
|
virtual void createRenderPass() = 0;
|
|
|
|
|
protected:
|
2021-06-04 18:27:49 +02:00
|
|
|
_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;
|
2021-06-04 18:27:49 +02:00
|
|
|
Vector2 screenDimensions;
|
2021-05-10 23:57:55 +02:00
|
|
|
} viewParams;
|
2021-05-06 17:02:10 +02:00
|
|
|
Gfx::PRenderPass renderPass;
|
|
|
|
|
PRenderGraph renderGraph;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(RenderPass)
|
|
|
|
|
} // namespace Seele
|