title: Opengl fragment shader only drawing in white
body: <p>My fragment shader is not working , it is only drawing in white.
  I think the shader all together is not work.I tried changing the colorO multiple times and have had no luck.</p>
  
  <pre><code>#include &lt;glew.h&gt;
  #include &lt;glfw3.h&gt;
  
  GLuint compileshaders() {
  GLuint vshader, fshader, program;
  
  static const GLchar * vshadersource[] = {
      "#version 450 core                \n"
      " layout (location=0) in vec3 position;\n"
      " layout (location=1) in vec3 color;\n"
      "void main()                  \n"
      "{                                \n"
      "gl_Position = position;          \n"
      "}                                \n"
  };
  
  static const GLchar * fshadersource[] = {
      "#version 450 core                \n"
      "out vec4 colorO;                  \n"
      "void main()                  \n"
      "{                                \n"
      " colorO = vec4(1.0,1.0,0.0,1.0);  \n"
      "}                                \n"
  };
  
  vshader = glCreateShader(GL_VERTEX_SHADER);
  glShaderSource(vshader, 1, vshadersource, NULL);
  glCompileShader(vshader);
  
  fshader = glCreateShader(GL_FRAGMENT_SHADER);
  glShaderSource(fshader, 1, fshadersource, NULL);
  glCompileShader(fshader);
  
  program = glCreateProgram();
  glAttachShader(program, vshader);
  glAttachShader(program, fshader);
  glLinkProgram(program);
  
  glDeleteShader(vshader);
  glDeleteShader(fshader);
  
  return program;
  }
  
  int main(void)
  {
  GLFWwindow* window;
  GLuint program;
  GLuint vertex_array_object;
  GLuint buffers[2];
  
  if (!glfwInit())
      return -1;
  
  window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
  if (!window)
  {
      glfwTerminate();
      return -1;
  }
  
  glfwMakeContextCurrent(window);
  
  glewInit();
  
  static const GLfloat positions[] =      {0.25,-0.25,0.5,0.25,0.25,0.5,-0.25,-0.25,0.5};
  static const GLfloat colors[] = {1.0,0.0,1.0,1.0};
  
  program = compileshaders();
  glUseProgram(program);
  glCreateVertexArrays(1, &amp;vertex_array_object);
  glCreateBuffers(2, &amp;buffers[0]);
  glNamedBufferStorage(buffers[0], sizeof(positions), positions, 0);
  glVertexArrayVertexBuffer(vertex_array_object, 0, buffers[0], 0, sizeof(GLfloat) * 3);
  glVertexArrayAttribFormat(vertex_array_object, 0, 3, GL_FLOAT, GL_FALSE, 0);
  glVertexArrayAttribBinding(vertex_array_object, 0, 0);
  glEnableVertexArrayAttrib(vertex_array_object, 0);
  glNamedBufferStorage(buffers[1], sizeof(colors), colors, 0);
  glVertexArrayVertexBuffer(vertex_array_object, 1, buffers[1], 0, sizeof(GLfloat) * 3);
  glVertexArrayAttribFormat(vertex_array_object, 1, 3, GL_FLOAT, GL_FALSE, 0);
  glVertexArrayAttribBinding(vertex_array_object, 1, 1);
  glEnableVertexArrayAttrib(vertex_array_object, 1);
  glBindVertexArray(vertex_array_object);
  
  
  GLfloat clearcolor[4] = { 0.0,0.0,0.4,1.0 };
  glPointSize(40);
  
  while (!glfwWindowShouldClose(window))
  {
      glClearBufferfv(GL_COLOR, 0, clearcolor);
  
      glDrawArrays(GL_TRIANGLES, 0, 3);
  
      glfwSwapBuffers(window);
      glfwPollEvents();
  }
  
  glDeleteVertexArrays(1,&amp;vertex_array_object);
  glDeleteProgram(program);
  
  glfwTerminate();
  return 0;
  }
  </code></pre>
  
  <p>Can someone help me I am still trying to get the hang of opengl.</p>