Files

44 lines
1.3 KiB
C++

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