#include "renderer.h" #include #include #include #include #define WINDOW_WIDTH 1200 #define WINDOW_HEIGHT 800 #define MAX_VERTEX_BUFFER 512 * 1024 #define MAX_ELEMENT_BUFFER 128 * 1024 static void error_callback(int e, const char* d) { fprintf(stderr, "ERROR: %d: %s\n", e, d); } void resize_window_callback(GLFWwindow* window, int width, int height) { glViewport(0, 0, width, height); } void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods) { if(key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) { glfwSetWindowShouldClose(window, GLFW_TRUE); } } int main() { Renderer renderer = {0}; renderer_init(&renderer, WINDOW_WIDTH, WINDOW_HEIGHT); //assert(renderer != NULL && "failed to initialize renderer"); glfwSetErrorCallback(error_callback); glfwSetKeyCallback(renderer.window, key_callback); while (!glfwWindowShouldClose(renderer.window)) { glfwPollEvents(); glfwGetWindowSize(renderer.window, &renderer.width, &renderer.height); glViewport(0, 0, renderer.width, renderer.height); glClear(GL_COLOR_BUFFER_BIT); glClearColor(0.8f, 0.8f, 0.8f, 1.0f); render_quad(&renderer, (vec2){ renderer.width * 0.5f, renderer.height * 0.5f }, (vec2){ 50.0f, 50.0f }, (vec4) { 0.4f, 1.0f, 0.8f, 1.0f }); glfwSwapBuffers(renderer.window); } renderer_destroy(&renderer); return 0; }