#ifndef HYDRASHADOWPIPELINE #define HYDRASHADOWPIPELINE #include "../engine/HydraObject.h" #include "../windowmanager/HydraRenderSettings.h" #include "HydraPipeline.h" #include "HydraRenderStage.h" #include class HydraRenderStage; class HydraShadowPipeline : public HydraPipeline { public: void Initialise() override; void Shutdown() override; void Render() override; private: void _CreateUBOs(); void _CreateSpotRenderStage(); void _CreateDirectionalRenderStage(); void _UpdateUBO(uint32_t shadow_idx); void _BindFrameBufferAttachments(HydraID entity_id); void _RenderDirectionalShadowMaps(); void _RenderSpotShadowMaps(); HydraID m_per_frame_ubo = INVALID_HYDRA_ID; const uint32_t DIRECTIONAL_RENDER_STAGE = 0; const uint32_t SPOT_RENDER_STAGE = 1; }; #endif /* HYDRADEFERREDPIPELINE */