Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. // Local Headers
  2. #include "glitter.hpp"
  3.  
  4. // System Headers
  5. #include <glad/glad.h>
  6. #include <GLFW/glfw3.h>
  7.  
  8. // Standard Headers
  9. #include <cstdio>
  10. #include <cstdlib>
  11.  
  12. int main(int argc, char * argv[]) {
  13.  
  14.     // Load GLFW and Create a Window
  15.     glfwInit();
  16.     glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
  17.     glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
  18.     glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  19.     glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
  20.     glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
  21.     auto mWindow = glfwCreateWindow(mWidth, mHeight, "OpenGL", nullptr, nullptr);
  22.  
  23.     // Check for Valid Context
  24.     if (mWindow == nullptr) {
  25.         fprintf(stderr, "Failed to Create OpenGL Context");
  26.         return EXIT_FAILURE;
  27.     }
  28.  
  29.     // Create Context and Load OpenGL Functions
  30.     glfwMakeContextCurrent(mWindow);
  31.     gladLoadGL();
  32.     fprintf(stderr, "OpenGL %s\n", glGetString(GL_VERSION));
  33.  
  34.     // Rendering Loop
  35.     while (glfwWindowShouldClose(mWindow) == false) {
  36.         if (glfwGetKey(mWindow, GLFW_KEY_ESCAPE) == GLFW_PRESS)
  37.             glfwSetWindowShouldClose(mWindow, true);
  38.  
  39.         // Background Fill Color
  40.         glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
  41.         glClear(GL_COLOR_BUFFER_BIT);
  42.        
  43.         float vertices[] = {
  44.           0.0f, 0.5f, // Vertex 1 (X, Y)
  45.           0.5f, -0.5f, // Vertex 2 (X, Y)
  46.           -0.5f, -0.5f // Vertex 3 (X, Y)
  47.         };
  48.        
  49.         GLuint vbo;
  50.         glGenBuffers(1, &vbo); // Generate 1 buffer
  51.  
  52.         glBindBuffer(GL_ARRAY_BUFFER, vbo);
  53.        
  54.         glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices,
  55.             GL_STATIC_DRAW);
  56.  
  57.         const GLchar* vShader = "#version 150\n"\
  58.                   "in vec2 position;\n"\
  59.                   "void main()\n"\
  60.                   "{\n"\
  61.                     "gl_Position = vec4(position, 0.0, 1.0);\n"\
  62.                   "}\0";
  63.         GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);
  64.         glShaderSource(vertexShader, 1, &vShader, NULL);
  65.         glCompileShader(vertexShader);
  66.        
  67.         const GLchar * fShader = "#version 150\n"\
  68.                                   "out vec4 outColor;\n"\
  69.                                   "void main()\n"\
  70.                                   "{\n"\
  71.                                   "outColor = vec4(1.0, 1.0, 1.0, 1.0)\n"\
  72.                                   "}\0";
  73.  
  74.         GLuint fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
  75.         glShaderSource(fragmentShader, 1, &fShader, NULL);
  76.         glCompileShader(fragmentShader);
  77.        
  78.         GLint status;
  79.         glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &status);
  80.         //if (status == GL_TRUE)
  81.         //  printf("1");
  82.        
  83.         glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &status);
  84.         printf("%d",status);
  85.      
  86.         //char buffer[512];
  87.         //glGetShaderInfoLog(vertexShader, 512, NULL, buffer);
  88.         //printf("%s", buffer);
  89.        
  90.         //Flip Buffers and Draw
  91.         glfwSwapBuffers(mWindow);
  92.         glfwPollEvents();
  93.     }   glfwTerminate();
  94.     return EXIT_SUCCESS;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement