Files
HydraV3/HydraEngine/source/pipeline/HydraShadowPipeline.h
T
2026-08-04 22:40:48 +01:00

39 lines
944 B
C++

#ifndef HYDRASHADOWPIPELINE
#define HYDRASHADOWPIPELINE
#include "../engine/HydraObject.h"
#include "../windowmanager/HydraRenderSettings.h"
#include "HydraPipeline.h"
#include "HydraRenderStage.h"
#include <vector>
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 */