|
@@ -24,31 +24,33 @@ Game::Game(int width, int height): m_window_width(width), m_window_height(height
|
|
|
}
|
|
|
|
|
|
Game::~Game() {
|
|
|
- glfwDestroyWindow(m_window);
|
|
|
+ glfwDestroyWindow(*m_window);
|
|
|
glfwTerminate();
|
|
|
}
|
|
|
|
|
|
void Game::init() {
|
|
|
- m_window = glfwCreateWindow(m_window_width
|
|
|
+ m_window = std::make_unique<GLFWwindow *>(glfwCreateWindow(
|
|
|
+ m_window_width
|
|
|
, m_window_height
|
|
|
, "My New Window"
|
|
|
, NULL
|
|
|
- , NULL);
|
|
|
+ , NULL)
|
|
|
+ );
|
|
|
|
|
|
if (!m_window) {
|
|
|
spdlog::error("Could not create GLFW Window.");
|
|
|
glfwTerminate();
|
|
|
return;
|
|
|
}
|
|
|
- glfwMakeContextCurrent(m_window);
|
|
|
+ glfwMakeContextCurrent(*m_window);
|
|
|
|
|
|
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
|
|
|
spdlog::error("Failed to initialize GLAD");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- glfwSetKeyCallback(m_window, key_callback);
|
|
|
- glfwSetFramebufferSizeCallback(m_window, framebuffer_size_callback);
|
|
|
+ glfwSetKeyCallback(*m_window, key_callback);
|
|
|
+ glfwSetFramebufferSizeCallback(*m_window, framebuffer_size_callback);
|
|
|
|
|
|
|
|
|
glViewport(0, 0, m_window_width, m_window_height);
|
|
@@ -69,7 +71,7 @@ void Game::run() {
|
|
|
double deltaTime = 0.0f;
|
|
|
double lastFrame = 0.0f;
|
|
|
|
|
|
- while (!glfwWindowShouldClose(m_window)) {
|
|
|
+ while (!glfwWindowShouldClose(*m_window.get())) {
|
|
|
|
|
|
|
|
|
double currentFrame = glfwGetTime();
|
|
@@ -91,7 +93,7 @@ void Game::run() {
|
|
|
}
|
|
|
spdlog::warn("deltaTime {}", 1.0f/deltaTime);
|
|
|
|
|
|
- glfwSwapBuffers(m_window);
|
|
|
+ glfwSwapBuffers(*m_window.get());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -101,6 +103,6 @@ void Game::add_renderer_object(Renderer obj) {
|
|
|
}
|
|
|
|
|
|
void Game::process_input() {
|
|
|
- if (glfwGetKey(m_window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
|
|
|
- glfwSetWindowShouldClose(m_window, true);
|
|
|
+ if (glfwGetKey(*m_window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
|
|
|
+ glfwSetWindowShouldClose(*m_window, true);
|
|
|
}
|