#include <glad/glad.c> // glad must be loaded before GLFW #include "graphics.hpp" #include "main.hpp" #include <iostream> using namespace std; /* class ShaderProgram Implementations */ string ShaderProgram::baseName() { switch (this->base) { case Empty: return "Empty"; case Triangle: return "Triangle"; } } ShaderProgram::ShaderProgram(Base base, string vertexSource, string fragSource) {} int ShaderProgram::run() { return 255; } void framebuffer_size_callback(GLFWwindow *window, int width, int height) { glViewport(0, 0, width, height); } /* extended main function */ int mainWindow(ShaderProgram* shaderProgram) { /* graphics stuff */ glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); GLFWwindow *window = glfwCreateWindow(800, 600, "Shader Loader", NULL, NULL); if (window == NULL) { printf("Failed to create GLFW window\n"); glfwTerminate(); return -1; } glfwMakeContextCurrent(window); if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { printf("Failed to initialize GLAD\n"); return -1; } glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); int result = shaderProgram->run(); glfwTerminate(); return result; }