This commit is contained in:
2023-11-15 23:13:22 -06:00
parent d8bc1d0fe3
commit 04dbead9a2
19 changed files with 330 additions and 25 deletions

View File

@ -54,6 +54,8 @@ void RenderHost::init(std::shared_ptr<Game> game) {
assertNoGLError();
// Get the resolution and scale/dpi
backBufferRenderTarget = std::make_shared<BackBufferRenderTarget>();
int32_t fbWidth, fbHeight;
int32_t windowWidth, windowHeight;
glfwGetFramebufferSize(window, &fbWidth, &fbHeight);
@ -64,6 +66,9 @@ void RenderHost::init(std::shared_ptr<Game> game) {
assertTrue(windowWidth > 0, "Detected window width is too small?");
assertTrue(windowHeight > 0, "Detected window height is too small?");
backBufferRenderTarget->setSize(fbWidth, fbHeight);
backBufferRenderTarget->scale = (float_t)fbWidth / (float_t)windowWidth;
// Framebuffer callback
// glfwSetFramebufferSizeCallback(window, [&](
// GLFWwindow *window,
@ -88,6 +93,10 @@ bool_t RenderHost::isCloseRequested() {
return glfwWindowShouldClose(this->window);
}
std::shared_ptr<RenderTarget> RenderHost::getBackBufferRenderTarget() {
return std::static_pointer_cast<RenderTarget>(backBufferRenderTarget);
}
RenderHost::~RenderHost() {
if(this->window != nullptr) {
glfwDestroyWindow(this->window);

View File

@ -5,6 +5,7 @@
#pragma once
#include "display/IRenderHost.hpp"
#include "display/BackBufferRenderTarget.hpp"
#include <glad/glad.h>
#include <GLFW/glfw3.h>
@ -16,6 +17,7 @@ namespace Dawn {
class RenderHost : public IRenderHost {
public:
std::shared_ptr<BackBufferRenderTarget> backBufferRenderTarget;
GLFWwindow *window = nullptr;
/**
@ -24,10 +26,9 @@ namespace Dawn {
RenderHost();
void init(std::shared_ptr<Game> game) override;
void update() override;
bool_t isCloseRequested() override;
std::shared_ptr<RenderTarget> getBackBufferRenderTarget() override;
~RenderHost();
};