Minor refactoring
This commit is contained in:
@@ -9,23 +9,40 @@
|
||||
#include "ShaderProgramBuilder.hpp"
|
||||
#include "TimestampLog.hpp"
|
||||
|
||||
namespace ugly {
|
||||
|
||||
int App::main(std::vector<std::string> &args) {
|
||||
auto cerrLog = ugly::TimestampLog{std::cerr, "ugly::log"};
|
||||
ugly::log = ugly::LogAlias{&cerrLog};
|
||||
ugly::log("hello, world! app started.");
|
||||
auto cerrLog = TimestampLog{"ugly::log", std::cerr};
|
||||
log = LogAlias{&cerrLog};
|
||||
log("hello, world! app started.");
|
||||
|
||||
auto app = App{};
|
||||
glfwSetErrorCallback(error_callback_s);
|
||||
glfwInit();
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
|
||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
||||
|
||||
auto window = glfwCreateWindow(640, 480, "uGLy", NULL, NULL);
|
||||
glfwMakeContextCurrent(window);
|
||||
glewExperimental = GL_TRUE;
|
||||
if(glewInit() != GLEW_OK) {
|
||||
log("glewInit() failed!");
|
||||
}
|
||||
|
||||
auto app = App{window};
|
||||
app.game_loop();
|
||||
|
||||
ugly::log("app quitting.");
|
||||
glfwTerminate();
|
||||
glfwSetErrorCallback(NULL);
|
||||
log("app quitting.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void App::error_callback_s(int error, const char *description)
|
||||
{
|
||||
ugly::log("(glfw error): {}", description);
|
||||
log("(glfw error): {}", description);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,26 +52,11 @@ void App::key_callback_s(GLFWwindow *window, int key, int scancode, int action,
|
||||
}
|
||||
|
||||
|
||||
App::App():
|
||||
mpWindow{NULL} {
|
||||
glfwSetErrorCallback(error_callback_s);
|
||||
glfwInit();
|
||||
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
|
||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
||||
|
||||
mpWindow = glfwCreateWindow(640, 480, "uGLy", NULL, NULL);
|
||||
App::App(GLFWwindow *window):
|
||||
mpWindow{window} {
|
||||
glfwSetWindowUserPointer(mpWindow, this);
|
||||
glfwSetKeyCallback(mpWindow, key_callback_s);
|
||||
|
||||
glfwMakeContextCurrent(mpWindow);
|
||||
glewExperimental = GL_TRUE;
|
||||
if(glewInit() != GLEW_OK) {
|
||||
ugly::log("glewInit() failed!");
|
||||
}
|
||||
|
||||
float vertices[] = {
|
||||
.0f, .5f, 1.f, 0.f, 0.f,
|
||||
.5f, -.5f, 0.f, 1.f, 0.f,
|
||||
@@ -66,7 +68,7 @@ App::App():
|
||||
glBindBuffer(GL_ARRAY_BUFFER, vbo);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||
|
||||
GLuint shaderProgram = ugly::ShaderProgramBuilder{}
|
||||
GLuint shaderProgram = ShaderProgramBuilder{}
|
||||
.attachFromFile(GL_VERTEX_SHADER, "assets/shaders/shader.vert")
|
||||
.attachFromFile(GL_FRAGMENT_SHADER, "assets/shaders/shader.frag")
|
||||
.link();
|
||||
@@ -82,12 +84,6 @@ App::App():
|
||||
}
|
||||
|
||||
|
||||
App::~App() {
|
||||
glfwTerminate();
|
||||
glfwSetErrorCallback(NULL);
|
||||
}
|
||||
|
||||
|
||||
void App::game_loop() {
|
||||
while(!glfwWindowShouldClose(mpWindow)) {
|
||||
glfwPollEvents();
|
||||
@@ -105,3 +101,5 @@ void App::key_callback(int key, int scancode, int action, int mods) {
|
||||
glfwSetWindowShouldClose(mpWindow, GLFW_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user