main.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "renderer.h"
  2. #include <stdio.h>
  3. #include <assert.h>
  4. #include <glad/glad.h>
  5. #include <GLFW/glfw3.h>
  6. #define WINDOW_WIDTH 1200
  7. #define WINDOW_HEIGHT 800
  8. #define MAX_VERTEX_BUFFER 512 * 1024
  9. #define MAX_ELEMENT_BUFFER 128 * 1024
  10. static void error_callback(int e, const char* d) {
  11. fprintf(stderr, "ERROR: %d: %s\n", e, d);
  12. }
  13. void resize_window_callback(GLFWwindow* window, int width, int height) {
  14. glViewport(0, 0, width, height);
  15. }
  16. void key_callback(GLFWwindow *window, int key, int scancode, int action, int mods)
  17. {
  18. if(key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
  19. glfwSetWindowShouldClose(window, GLFW_TRUE);
  20. }
  21. }
  22. int main() {
  23. Renderer renderer = {0};
  24. renderer_init(&renderer, WINDOW_WIDTH, WINDOW_HEIGHT);
  25. //assert(renderer != NULL && "failed to initialize renderer");
  26. glfwSetErrorCallback(error_callback);
  27. glfwSetKeyCallback(renderer.window, key_callback);
  28. while (!glfwWindowShouldClose(renderer.window)) {
  29. glfwPollEvents();
  30. glfwGetWindowSize(renderer.window, &renderer.width, &renderer.height);
  31. glViewport(0, 0, renderer.width, renderer.height);
  32. glClear(GL_COLOR_BUFFER_BIT);
  33. glClearColor(0.8f, 0.8f, 0.8f, 1.0f);
  34. render_quad(&renderer,
  35. (vec2){ renderer.width * 0.5f, renderer.height * 0.5f },
  36. (vec2){ 50.0f, 50.0f },
  37. (vec4) { 0.4f, 1.0f, 0.8f, 1.0f });
  38. glfwSwapBuffers(renderer.window);
  39. }
  40. renderer_destroy(&renderer);
  41. return 0;
  42. }