You can now change resolution without any apparent bugs.

This commit is contained in:
Tleety
2016-02-18 18:00:26 +01:00
parent 3e7936ef00
commit e15a7b9485
11 changed files with 108 additions and 34 deletions
+15 -1
View File
@@ -1,5 +1,7 @@
#include "Rendering/Renderer.h"
std::unordered_map<GLFWwindow*, Renderer*> Renderer::m_WindowToRenderer;
void Renderer::Initialize()
{
InitializeWindow();
@@ -12,7 +14,6 @@ void Renderer::Initialize()
m_TextPass = new TextPass();
m_TextPass->Initialize();
/* m_ScreenQuad = ResourceManager::Load<Model>("Models/Core/ScreenQuad.obj");
m_UnitQuad = ResourceManager::Load<Model>("Models/Core/UnitQuad.obj");
m_UnitSphere = ResourceManager::Load<Model>("Models/Core/UnitSphere.obj");*/
@@ -20,6 +21,16 @@ void Renderer::Initialize()
m_ImGuiRenderPass = new ImGuiRenderPass(this, m_EventBroker);
}
void Renderer::glfwFrameBufferCallback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
Renderer* currentRenderer = m_WindowToRenderer[window];
currentRenderer->m_ViewportSize = Rectangle(width, height);
currentRenderer->m_DrawFinalPass->OnWindowResize();
currentRenderer->m_LightCullingPass->OnWindowResize();
currentRenderer->m_PickingPass->OnWindowResize();
}
void Renderer::InitializeWindow()
{
// Initialize GLFW
@@ -39,6 +50,7 @@ void Renderer::InitializeWindow()
LOG_ERROR("GLFW: Failed to create window");
exit(EXIT_FAILURE);
}
glfwSetFramebufferSizeCallback(m_Window, &glfwFrameBufferCallback);
glfwMakeContextCurrent(m_Window);
// GL version info
@@ -59,6 +71,8 @@ void Renderer::InitializeWindow()
exit(EXIT_FAILURE);
}
m_WindowToRenderer[m_Window] = this;
int windowSize[2];
glfwGetFramebufferSize(m_Window, &windowSize[0], &windowSize[1]);
m_ViewportSize = Rectangle(windowSize[0], windowSize[1]);