diff options
Diffstat (limited to 'yage/core')
-rw-r--r-- | yage/core/core.cpp | 37 | ||||
-rw-r--r-- | yage/core/core.h | 37 |
2 files changed, 74 insertions, 0 deletions
diff --git a/yage/core/core.cpp b/yage/core/core.cpp new file mode 100644 index 00000000..63051a49 --- /dev/null +++ b/yage/core/core.cpp @@ -0,0 +1,37 @@ +/** --------------------------------------------------------------------------- + * @file: core.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> + * MIT License, see LICENSE file for more details. + * ---------------------------------------------------------------------------- + */ + +#include "core.h" + +#include <GLFW/glfw3.h> + +#include <iostream> +#include <stdexcept> + +namespace yage +{ + +void glfwErrorCallback(int, const char *description) +{ + std::cerr << "Error: " << description; +} + +void init() +{ + glfwSetErrorCallback(glfwErrorCallback); + if (glfwInit() == GLFW_FALSE) { + throw std::runtime_error("GLFW couldn't be initialised"); + } +} + +void quit() +{ + glfwTerminate(); +} + +} // namespace yage diff --git a/yage/core/core.h b/yage/core/core.h new file mode 100644 index 00000000..2d89955f --- /dev/null +++ b/yage/core/core.h @@ -0,0 +1,37 @@ +/** --------------------------------------------------------------------------- + * @file: core.h + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> + * MIT License, see LICENSE file for more details. + * ---------------------------------------------------------------------------- + */ + +/** + * Project namespace. + * + * Avoids collision as all the classes and global functions are wrapped in. + */ +namespace yage +{ + +/** + * + */ +extern void glfwErrorCallback(int, const char *); + +/** + * Initializes YAGE. + * + * This is there to initialize GLFW, which is the current + * window manager that is used with OpenGL. + */ +extern void init(); + +/** + * Quit and cleanup YAGE. + * + * This also cleans up GLFW after it was initialized. + */ +extern void quit(); + +} // namespace yage |