atm959

main.cpp

Jun 6th, 2017
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #include <GL\glew.h>
  4. #include <GLFW\glfw3.h>
  5.  
  6. int main(int argc, char** argv) {
  7.     if (!glfwInit()) { //Init GLFW
  8.         fprintf(stderr, "GLFW failed to init.");
  9.         return -1;
  10.     }
  11.  
  12.     glfwWindowHint(GLFW_SAMPLES, 4);
  13.     glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
  14.     glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
  15.     glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  16.  
  17.     GLFWwindow* window;
  18.     window = glfwCreateWindow(640, 480, "3D Game", NULL, NULL);
  19.     if (!window) {
  20.         fprintf(stderr, "Failed to create window.");
  21.         glfwTerminate();
  22.         return -1;
  23.     }
  24.     glfwMakeContextCurrent(window);
  25.  
  26.     glewExperimental = true;
  27.     if (glewInit() != GLEW_OK) {
  28.         fprintf(stderr, "GLEW failed to init.");
  29.         glfwTerminate();
  30.         return -1;
  31.     }
  32.  
  33.     GLuint vaoID;
  34.     glGenVertexArrays(1, &vaoID);
  35.     glBindVertexArray(vaoID);
  36.  
  37.     static const GLfloat verts[] = {
  38.         //X,     Y,    Z
  39.         -1.0f, -1.0f, 0.0f,
  40.          1.0f, -1.0f, 0.0f,
  41.          0.0f,  1.0f, 0.0f
  42.     };
  43.  
  44.     GLuint vboID;
  45.     glGenBuffers(1, &vboID);
  46.     glBindBuffer(GL_ARRAY_BUFFER, vboID);
  47.     glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
  48.  
  49.     while (!glfwWindowShouldClose(window)) {
  50.         glEnableVertexAttribArray(0);
  51.         glBindBuffer(GL_ARRAY_BUFFER, vboID);
  52.         glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
  53.         glDrawArrays(GL_TRIANGLES, 0, 3);
  54.         glDisableVertexAttribArray(0);
  55.  
  56.         glfwSwapBuffers(window);
  57.         glfwPollEvents();
  58.     }
  59.  
  60.     glfwTerminate(); //Terminate GLFW.
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment