diff options
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | src/main.c | 54 |
3 files changed, 63 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..651be83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.o +migt +*.out diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2699da9 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +CC := gcc +SRC := src/main.c +LIBS := -lglfw -lGLEW + +all: + $(CC) $(SRC) $(LIBS) -o migt diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..f5941bb --- /dev/null +++ b/src/main.c @@ -0,0 +1,54 @@ +#include <stdlib.h> +#include <stdio.h> + +#include <GL/glew.h> +#include <GLFW/glfw3.h> + +int main(int argc, char** argv) { + glewExperimental = 1; + + if (!glfwInit()) { + fprintf(stderr, "bad\n"); + return 1; + } + + // Window hints. + glfwWindowHint(GLFW_SAMPLES, 4); // 4x antialiasing. + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // Version 3.3. + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + + // Create the window. + GLFWwindow* window; + window = glfwCreateWindow( 1024, 768, "Hi", NULL, NULL); + + if (!window) { + fprintf(stderr, "no window\n"); + glfwTerminate(); + return 1; + } + + // Glue. + glfwMakeContextCurrent(window); + glewExperimental = 1; + + // Is the glue OK? + if (glewInit() != GLEW_OK) { + fprintf(stderr, "glewless\n"); + return 1; + } + + glfwSetInputMode(window, GLFW_STICKY_KEYS, 1); + + do { + glfwSwapBuffers(window); + glfwPollEvents(); + } while ( + glfwGetKey(window, GLFW_KEY_ESCAPE) != GLFW_PRESS + && !glfwWindowShouldClose(window) + ); + + + return 0; +} |