basic glfw app setup

This commit is contained in:
Lauchmelder 2021-12-20 04:31:44 +01:00
commit eed4eec20c
8 changed files with 137 additions and 0 deletions

47
src/Application.cpp Normal file
View file

@ -0,0 +1,47 @@
#include "Application.hpp"
#include <stdexcept>
#include <sstream>
#include <GLFW/glfw3.h>
Application::~Application()
{
if (window != nullptr)
{
glfwDestroyWindow(window);
window = nullptr;
}
glfwTerminate();
}
void Application::Init(int width, int height, const std::string& title)
{
if(window == nullptr)
glfwInit();
window = glfwCreateWindow(width, height, title.c_str(), NULL, NULL);
if (window == nullptr)
{
const char* errorbuf;
int errorcode = glfwGetError(&errorbuf);
glfwTerminate();
std::stringstream errorstream;
errorstream << "Failed to create GLFWwindow (" << errorcode << "): \n" << errorbuf << std::endl;
throw std::runtime_error(errorstream.str());
}
glfwMakeContextCurrent(window);
}
void Application::Launch()
{
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
glfwSwapBuffers(window);
}
}