#pragma once #include "Gal.hpp" class Gbuffer { std::shared_ptr lightFramebuffer; std::shared_ptr lightBuffer; std::shared_ptr lightPipeline; std::shared_ptr lightPipelineInstance; std::shared_ptr color; std::shared_ptr normal; std::shared_ptr depthStencil; std::shared_ptr geomFramebuffer; std::shared_ptr finalColor; public: Gbuffer(size_t geomW, size_t geomH, size_t lightW, size_t lightH); std::shared_ptr GetGeometryTarget() { return geomFramebuffer; } std::shared_ptr GetFinalTexture() { return finalColor; } void Render() { lightPipeline->Activate(); lightPipelineInstance->Activate(); lightPipelineInstance->Render(0, 6); } void Clear() { geomFramebuffer->Clear(); lightFramebuffer->Clear(); } };