Browse Source

refactoring

Kajetan Johannes Hammerle 3 years ago
parent
commit
0f76e14024

+ 7 - 9
client/rendering/Engine.cpp

@@ -1,5 +1,6 @@
 #include "client/rendering/Engine.h"
 #include "client/rendering/wrapper/GLFWWrapper.h"
+#include "client/rendering/wrapper/GLWrapper.h"
 
 Engine::Engine(Shaders& shaders, Framebuffers& fb, Camera& camera, const WindowSize& size,
         RenderSettings& renderSettings) :
@@ -30,7 +31,7 @@ void Engine::renderTick(float lag, const Game& game) {
 
 void Engine::renderShadow(float lag, const Game& game) {
     fb.shadow.bind();
-    glEnable(GL_DEPTH_TEST);
+    GLWrapper::enableDepthTesting();
     shaders.shadow.use();
     worldShadowProjView.set(worldShadowProj).mul(worldShadowView);
     shaders.shadow.setMatrix("projView", worldShadowProjView.getValues());
@@ -40,7 +41,7 @@ void Engine::renderShadow(float lag, const Game& game) {
 
 void Engine::renderWorld(float lag, const Game& game) {
     fb.world.bind();
-    glEnable(GL_DEPTH_TEST);
+    GLWrapper::enableDepthTesting();
     shaders.world.use();
 
     Matrix rWorldShadowProjView;
@@ -82,8 +83,7 @@ void Engine::renderSSAO() {
 }
 
 void Engine::renderPostWorld() {
-    glBindFramebuffer(GL_FRAMEBUFFER, 0);
-    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+    GLWrapper::prepareMainFramebuffer();
     shaders.postWorld.use();
     fb.world.bindColorTexture(0);
     fb.ssaoBlur.bindRedTexture(1);
@@ -94,7 +94,7 @@ void Engine::renderPostWorld() {
 }
 
 void Engine::renderTextOverlay(float lag, const Game& game) {
-    glDisable(GL_DEPTH_TEST);
+    GLWrapper::disableDepthTesting();
     shaders.text.use();
 
     Matrix m;
@@ -105,12 +105,10 @@ void Engine::renderTextOverlay(float lag, const Game& game) {
     model.get().scale(2.0f, 2.0f, 2.0f);
     shaders.text.setMatrix("model", model.get().getValues());
 
-    glEnable(GL_BLEND);
-    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    glBlendEquation(GL_FUNC_ADD);
+    GLWrapper::enableBlending();
     Renderer renderer(shaders.text, model);
     game.renderTextOverlay(lag, renderer, fontRenderer);
-    glDisable(GL_BLEND);
+    GLWrapper::disableBlending();
 }
 
 void Engine::updateWorldProjection() {

+ 0 - 2
client/rendering/FileTexture.h

@@ -1,8 +1,6 @@
 #ifndef FILE_TEXTURE_H
 #define FILE_TEXTURE_H
 
-#include <GL/glew.h>
-
 #include "client/rendering/wrapper/Texture.h"
 
 class FileTexture final {

+ 0 - 3
client/rendering/NoiseTexture.h

@@ -1,9 +1,6 @@
 #ifndef NOISETEXTURE_H
 #define NOISETEXTURE_H
 
-#include <GL/glew.h>
-#include <GLFW/glfw3.h>
-
 #include "client/rendering/wrapper/Texture.h"
 #include "common/utils/Types.h"
 

+ 1 - 1
client/rendering/RenderSettings.cpp

@@ -1,4 +1,4 @@
-#include "RenderSettings.h"
+#include "client/rendering/RenderSettings.h"
 
 RenderSettings::RenderSettings() : useSSAO(true), testRadius(0.0005f), testBias(0.0005), ortho(false) {
 }

+ 1 - 1
client/rendering/Renderer.cpp

@@ -1,4 +1,4 @@
-#include "Renderer.h"
+#include "client/rendering/Renderer.h"
 
 Renderer::Renderer(Shader& shader, MatrixStack& stack) : shader(shader), stack(stack) {
 }

+ 23 - 0
client/rendering/wrapper/GLWrapper.cpp

@@ -33,4 +33,27 @@ bool GLWrapper::checkAndPrintError(const char* message) {
             std::cout << message << ": unknown OpenGL error: " << error << "\n";
     }
     return true;
+}
+
+void GLWrapper::enableDepthTesting() {
+    glEnable(GL_DEPTH_TEST);
+}
+
+void GLWrapper::disableDepthTesting() {
+    glDisable(GL_DEPTH_TEST);
+}
+
+void GLWrapper::prepareMainFramebuffer() {
+    glBindFramebuffer(GL_FRAMEBUFFER, 0);
+    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+}
+
+void GLWrapper::enableBlending() {
+    glEnable(GL_BLEND);
+    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    glBlendEquation(GL_FUNC_ADD);
+}
+
+void GLWrapper::disableBlending() {
+    glDisable(GL_BLEND);
 }

+ 5 - 0
client/rendering/wrapper/GLWrapper.h

@@ -3,6 +3,11 @@
 
 namespace GLWrapper {
     bool checkAndPrintError(const char* message);
+    void enableDepthTesting();
+    void disableDepthTesting();
+    void prepareMainFramebuffer();
+    void enableBlending();
+    void disableBlending();
 }
 
 #endif