diff options
-rw-r--r-- | src/glfw_guard.h | 20 | ||||
-rw-r--r-- | src/main.cc | 16 | ||||
-rw-r--r-- | src/window.h | 3 |
3 files changed, 30 insertions, 9 deletions
diff --git a/src/glfw_guard.h b/src/glfw_guard.h new file mode 100644 index 0000000..37d3ffb --- /dev/null +++ b/src/glfw_guard.h @@ -0,0 +1,20 @@ +#pragma once + +#include <GL/glew.h> +#include <GLFW/glfw3.h> + +class GlfwGuard { +private: + bool _good = false; +public: + GlfwGuard() { + _good = glfwInit(); + } + ~GlfwGuard() { + glfwTerminate(); + } + + bool isGood() const { + return _good; + } +}; diff --git a/src/main.cc b/src/main.cc index 7446609..b2262e6 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,6 +1,3 @@ -#include <GL/glew.h> -#include <GLFW/glfw3.h> - #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> @@ -8,6 +5,7 @@ #include <memory> #include <algorithm> +#include "glfw_guard.h" #include "window.h" #include "particle_vertex_buffer.h" @@ -33,13 +31,13 @@ float getWorldHeight(int window_width, int window_height, float world_width) { } glm::mat4 getMVP(float world_width, float world_height) { - glm::mat4 projection = glm::ortho( + const glm::mat4 projection = glm::ortho( -(world_width /2), world_width/2, -(world_height/2), world_height/2, 0.1f, 100.0f ); - glm::mat4 view = glm::lookAt( + const glm::mat4 view = glm::lookAt( glm::vec3(0,0,1), glm::vec3(0,0,0), glm::vec3(0,1,0) @@ -75,8 +73,10 @@ std::string getShaderFunction(const std::string& fx, const std::string& fy) { } int main() { - if( !glfwInit() ) { - std::cerr << "Failed to initialize GLFW." << std::endl; + GlfwGuard glfw; + + if( !glfw.isGood() ) { + std::cerr << "Failed to initialize GLFW." << std::endl; return -1; } @@ -84,7 +84,6 @@ int main() { if ( !window.isGood() ) { std::cerr << "Failed to open window." << std::endl; - glfwTerminate(); return -1; } @@ -191,6 +190,5 @@ int main() { } }); - glfwTerminate(); return 0; } diff --git a/src/window.h b/src/window.h index 76f1e6a..794dd5f 100644 --- a/src/window.h +++ b/src/window.h @@ -1,5 +1,8 @@ #pragma once +#include <GL/glew.h> +#include <GLFW/glfw3.h> + class Window { private: bool _good = false; |