OpenGL_Clock/main.c

74 lines
1.8 KiB
C
Raw Normal View History

2018-02-05 22:28:51 +00:00
// Include standard headers
#include <stdio.h>
#include <stdlib.h>
// Include GLEW
#include <GL/glew.h>
// Include GLFW
#include <GLFW/glfw3.h>
GLFWwindow* window;
2018-02-06 23:02:56 +00:00
int main(void) {
2018-02-05 22:28:51 +00:00
// Initialise GLFW
2018-02-06 23:02:56 +00:00
if(!glfwInit()) {
fprintf(stderr, "Failed to initialize GLFW\n");
2018-02-05 22:28:51 +00:00
getchar();
return -1;
}
glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // To make MacOS happy; should not be needed
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// Open a window and create its OpenGL context
2018-02-06 23:02:56 +00:00
window = glfwCreateWindow(1024, 768, "OpenGL Clock", NULL, NULL);
if (window == NULL) {
fprintf(stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n");
2018-02-05 22:28:51 +00:00
getchar();
glfwTerminate();
return -1;
}
2018-02-06 23:02:56 +00:00
2018-02-05 22:28:51 +00:00
glfwMakeContextCurrent(window);
// Initialize GLEW
if (glewInit() != GLEW_OK) {
fprintf(stderr, "Failed to initialize GLEW\n");
getchar();
glfwTerminate();
return -1;
}
// Ensure we can capture the escape key being pressed below
glfwSetInputMode(window, GLFW_STICKY_KEYS, GL_TRUE);
// Dark grey background
glClearColor(0.15f, 0.15f, 0.15f, 0.0f);
2018-02-06 23:02:56 +00:00
do {
// Clear the screen. It's not mentioned before Tutorial 02,
// but it can cause flickering, so it's there nonetheless.
glClear(GL_COLOR_BUFFER_BIT);
2018-02-05 22:28:51 +00:00
// Draw nothing, see you in tutorial 2 !
// Swap buffers
glfwSwapBuffers(window);
glfwPollEvents();
2018-02-06 23:02:56 +00:00
// Check if the ESC key was pressed or the window was closed
} while(glfwGetKey(window, GLFW_KEY_ESCAPE) != GLFW_PRESS &&
glfwWindowShouldClose(window) == 0);
2018-02-05 22:28:51 +00:00
// Close OpenGL window and terminate GLFW
glfwTerminate();
return 0;
}