basic glfw app setup
This commit is contained in:
commit
eed4eec20c
8 changed files with 137 additions and 0 deletions
47
src/Application.cpp
Normal file
47
src/Application.cpp
Normal 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);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue