From b27c66cb2aaa897e4c18b3be3a0b121b6695e7e1 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 13 Nov 2022 15:44:09 +0000 Subject: Refactor shading output components SceneShader and Camera are part of SceneRenderer --- ui/sceneRenderer.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'ui/sceneRenderer.cpp') diff --git a/ui/sceneRenderer.cpp b/ui/sceneRenderer.cpp index 9432710..852f64c 100644 --- a/ui/sceneRenderer.cpp +++ b/ui/sceneRenderer.cpp @@ -1,4 +1,5 @@ #include "sceneRenderer.h" +#include "maths.h" #include #include #include @@ -10,7 +11,9 @@ static constexpr std::array displayVAOdata {{ {1.0f, 1.0f, 1.0f, 1.0f}, {1.0f, -1.0f, 1.0f, 0.0f}, }}; -SceneRenderer::SceneRenderer(glm::ivec2 size, GLuint o) : output {o}, lighting {lightingShader_vs, lightingShader_fs} +SceneRenderer::SceneRenderer(glm::ivec2 size, GLuint o) : + camera {{-1250.0F, -1250.0F, 35.0F}, quarter_pi, rdiv(size.x, size.y), 0.1F, 10000.0F}, output {o}, + lighting {lightingShader_vs, lightingShader_fs} { glBindVertexArray(displayVAO); glBindBuffer(GL_ARRAY_BUFFER, displayVBO); @@ -47,8 +50,9 @@ SceneRenderer::SceneRenderer(glm::ivec2 size, GLuint o) : output {o}, lighting { } void -SceneRenderer::render(std::function content) const +SceneRenderer::render(std::function content) const { + shader.setView(camera.GetViewProjection()); // Geometry pass glEnable(GL_BLEND); glEnable(GL_CULL_FACE); @@ -57,7 +61,7 @@ SceneRenderer::render(std::function content) const glEnable(GL_DEPTH_TEST); glBindFramebuffer(GL_FRAMEBUFFER, gBuffer); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - content(); + content(shader); glBindFramebuffer(GL_FRAMEBUFFER, output); // Lighting pass -- cgit v1.2.3