Screw rendergraphs (for now)

This commit is contained in:
Dynamitos
2021-10-01 19:55:04 +02:00
parent bd739068d6
commit 5dfc8300c5
25 changed files with 222 additions and 226 deletions
+17 -6
View File
@@ -7,18 +7,26 @@ namespace Seele
DECLARE_NAME_REF(Gfx, Viewport)
DECLARE_NAME_REF(Gfx, Graphics)
DECLARE_NAME_REF(Gfx, RenderPass)
DECLARE_REF(RenderGraph)
DECLARE_REF(RenderGraphResources)
template<typename RenderPassDataType>
class RenderPass
{
public:
RenderPass(PRenderGraph rendergraph, Gfx::PGraphics graphics, Gfx::PViewport viewport);
virtual ~RenderPass();
virtual void updateViewFrame(PViewFrame viewFrame) = 0;
RenderPass(Gfx::PGraphics graphics, Gfx::PViewport viewport)
: graphics(graphics)
, viewport(viewport)
{}
virtual ~RenderPass()
{}
void updateViewFrame(RenderPassDataType viewFrame) {
passData = std::move(viewFrame);
}
virtual void beginFrame() = 0;
virtual void render() = 0;
virtual void endFrame() = 0;
virtual void publishOutputs() = 0;
virtual void createRenderPass() = 0;
void setResources(PRenderGraphResources resources) { this->resources = resources; }
protected:
_declspec(align(16)) struct ViewParameter
{
@@ -28,10 +36,13 @@ protected:
Vector4 cameraPosition;
Vector2 screenDimensions;
} viewParams;
PRenderGraphResources resources;
RenderPassDataType passData;
Gfx::PRenderPass renderPass;
PRenderGraph renderGraph;
Gfx::PGraphics graphics;
Gfx::PViewport viewport;
};
DEFINE_REF(RenderPass)
template<typename T>
concept RenderPassType = true;
} // namespace Seele