diff options
Diffstat (limited to 'src/opengl')
| -rw-r--r-- | src/opengl/renderer.cpp | 10 | ||||
| -rw-r--r-- | src/opengl/renderer.hpp | 12 |
2 files changed, 17 insertions, 5 deletions
diff --git a/src/opengl/renderer.cpp b/src/opengl/renderer.cpp index 1a7166d..2e7834e 100644 --- a/src/opengl/renderer.cpp +++ b/src/opengl/renderer.cpp @@ -1,6 +1,6 @@ #include "renderer.hpp" #include <iostream> - +#include "rms.hpp" void GLAPIENTRY MessageCallback( GLenum source, GLenum type, @@ -20,7 +20,8 @@ void GLAPIENTRY MessageCallback( GLenum source, Renderer::Renderer(short width,short height, std::string shader_name): Width(width),Height(height), ClockStart(steady_clock::now()), - CurrentShader(shader_name){ + CurrentShader(shader_name), + Context(nullptr){ // Init OpenGl glewInit(); glEnable(GL_DEPTH_TEST); @@ -83,6 +84,7 @@ void Renderer::RefreshShader(){ } void Renderer::LoadShader(){ + RefreshHUD(); RayMarchingShader = CompileShader(CurrentShader); UProjection = glGetUniformLocation(RayMarchingShader, "projection"); UModel = glGetUniformLocation(RayMarchingShader, "model"); @@ -95,3 +97,7 @@ void Renderer::AjustViewport(short width,short height){ this->Width=width; this->Height=height; } + +void Renderer::RefreshHUD(){ + USE_CONTEXT(hud.m_Context->current_shader = CurrentShader) +} diff --git a/src/opengl/renderer.hpp b/src/opengl/renderer.hpp index 5cb7b3d..35650ec 100644 --- a/src/opengl/renderer.hpp +++ b/src/opengl/renderer.hpp @@ -1,5 +1,4 @@ #pragma once -#include <GL/glew.h> #include "shaders.hpp" #include <glm/glm.hpp> #include <chrono> @@ -7,6 +6,8 @@ using namespace std::chrono; +struct GLFW_CONTEXT; + /** * Bind this fonction with the following for debugging: * glEnable ( GL_DEBUG_OUTPUT ); @@ -45,13 +46,13 @@ private: steady_clock::time_point ClockCurrent; /// @brief Current loaded shader name std::string CurrentShader; - /** * Compile send CurrentShader to the graphics card */ void LoadShader(); - + GLFW_CONTEXT *Context; public: + Renderer(short width,short height,std::string shader_name); ~Renderer(); /** @@ -73,4 +74,9 @@ public: * Refresh CurrentShader code (recompile it etc..) */ void RefreshShader(); + void RefreshHUD(); + void SetGLFWContext(GLFW_CONTEXT *context){ + Context=context; + RefreshHUD(); + } }; |
