Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GLFW/glfw3.h>
- #include <cstdio>
- void errorcallback(int error, const char *desc) {
- fprintf(stderr, "ERROR %d: %s\n", error, desc);
- fflush(stderr);
- }
- void keycallback(GLFWwindow *window, int key, int scancode, int action, int mods) {
- if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) glfwSetWindowShouldClose(window, true);
- }
- int main() {
- glfwSetErrorCallback(errorcallback);
- if (!glfwInit()) return 1;
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
- glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, true);
- glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
- auto window = glfwCreateWindow(800, 600, "Portal2d w/ shader", 0, 0);
- if (!window) return glfwTerminate(), 2;
- glfwMakeContextCurrent(window);
- glfwSetKeyCallback(window, keycallback);
- while (!glfwWindowShouldClose(window)) {
- float ratio;
- int width, height;
- glfwGetFramebufferSize(window, &width, &height);
- ratio = width / (float) height;
- glViewport(0, 0, width, height);
- glClearColor(0, .1, .2, 1);
- glClear(GL_COLOR_BUFFER_BIT);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f);
- glBegin(GL_TRIANGLES);
- glColor3f(1.f, 0.f, 0.f);
- glVertex3f(-0.6f, -0.4f, 0.f);
- glColor3f(0.f, 1.f, 0.f);
- glVertex3f(0.6f, -0.4f, 0.f);
- glColor3f(0.f, 0.f, 1.f);
- glVertex3f(0.f, 0.6f, 0.f);
- glEnd();
- glfwSwapBuffers(window);
- glfwPollEvents();
- }
- glfwDestroyWindow(window);
- glfwTerminate();
- }
Advertisement
Add Comment
Please, Sign In to add comment