#pragma once #include "Component/Transform.h" #include "Graphics/Descriptor.h" #include "Graphics/Initializer.h" #include "Graphics/RenderPass/RenderPass.h" #include "MinimalEngine.h" class FluidRenderPass : public Seele::RenderPass { public: FluidRenderPass(Seele::Gfx::PGraphics graphics); virtual ~FluidRenderPass() override; virtual void beginFrame(const Seele::Component::Camera &camera, const Seele::Component::Transform &transform) override; virtual void render() override; virtual void endFrame() override; virtual void publishOutputs() override; virtual void createRenderPass() override; private: Seele::Gfx::RenderTargetAttachment colorAttachment; Seele::Gfx::RenderTargetAttachment depthAttachment; Seele::Gfx::OTexture2D depthTexture; Seele::Gfx::ODescriptorSet viewParamsSet; Seele::Gfx::OPipelineLayout pipelineLayout; Seele::Gfx::ODescriptorLayout descriptorLayout; Seele::Gfx::ODescriptorSet descriptorSet; Seele::Gfx::OVertexShader vertexShader; Seele::Gfx::OFragmentShader fragmentShader; Seele::Gfx::PGraphicsPipeline pipeline; Seele::Gfx::PShaderBuffer vertexBuffer; Seele::Gfx::PShaderBuffer indexBuffer; Seele::Gfx::PShaderBuffer surfaceCounts; }; DEFINE_REF(FluidRenderPass)