aboutsummaryrefslogtreecommitdiff
path: root/src/opengl
diff options
context:
space:
mode:
Diffstat (limited to 'src/opengl')
-rw-r--r--src/opengl/renderer.cpp10
-rw-r--r--src/opengl/renderer.hpp12
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();
+ }
};