#ifndef HYDRADEFERREDPIPELINE #define HYDRADEFERREDPIPELINE #include "../engine/HydraObject.h" #include "../windowmanager/HydraRenderSettings.h" #include "HydraPipeline.h" #include "HydraRenderStage.h" #include class HydraRenderStage; class HydraDeferredPipeline : public HydraPipeline { public: virtual void Initialise() override; virtual void Shutdown() override; virtual void Render() override; private: HydraID m_per_frame_ubo = INVALID_HYDRA_ID; HydraID m_per_frame_output_ubo = INVALID_HYDRA_ID; HydraID m_material_buffer = INVALID_HYDRA_ID; HydraID m_buffer_0 = INVALID_HYDRA_ID; //Frame buffer 0; HydraID m_depth = INVALID_HYDRA_ID; HydraID m_output_actor_id = INVALID_HYDRA_ID; HydraID m_texture_debug_actor_id = INVALID_HYDRA_ID; HydraID m_output_texture_ubo = INVALID_HYDRA_ID; HydraID m_output_light_ubo = INVALID_HYDRA_ID; HydraID m_texture_debug_ubo = INVALID_HYDRA_ID; uint32_t m_frame_buffer_id; void _UpdateUBO(); void _CreateFrameBuffer(); void _CreateColourRenderStage(); void _CreateOutputRenderStage(); void _CreateOutputActor(); void _CreateTextureDebugOutputStage(); void _CreateUBOs(); }; #endif /* HYDRADEFERREDPIPELINE */