Advertisement
Guest User

Stack Overflow question

a guest
Oct 18th, 2013
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. array<GLuint, 3> loadShaders(string name, string& v, string& f)
  2. {
  3.     ofstream log;
  4.     char fname [64];
  5.     strcpy(fname,"logs/");
  6.     strcat(fname,name.c_str());
  7.    
  8.     cout << fname << endl;
  9.    
  10.     log.open (fname, ios::out | ios::trunc);
  11.    
  12.     GLuint shader_vp = glCreateShader(GL_VERTEX_SHADER);
  13.     GLuint shader_fp = glCreateShader(GL_FRAGMENT_SHADER);
  14.    
  15.     const char* vsource = v.c_str();
  16.     const char* fsource = f.c_str();
  17.    
  18.  
  19.    
  20.     glShaderSource(shader_vp, 1, &vsource, 0);
  21.     glShaderSource(shader_fp, 1, &fsource, 0);
  22.  
  23.     glCompileShader(shader_vp);
  24.     glCompileShader(shader_fp);
  25.    
  26.     const unsigned int BUFFER_SIZE = 8192;
  27.     char buffer[BUFFER_SIZE];
  28.     memset(buffer, 0, BUFFER_SIZE);
  29.     GLsizei length = 0;
  30.    
  31.  
  32.     glGetShaderInfoLog(shader_vp, BUFFER_SIZE, &length, buffer);
  33.     if (length > 0) {
  34.         log << "Vertex:" << endl;
  35.         log << buffer << endl;
  36.     }
  37.    
  38.     glGetShaderInfoLog(shader_fp, BUFFER_SIZE, &length, buffer);
  39.     if (length > 0) {
  40.         log << "Fragment:" << endl;
  41.         log << buffer << endl;
  42.     }
  43.    
  44.     GLuint shader_id = glCreateProgram();
  45.    
  46.     array<GLuint, 3> out;
  47.     out[0]=shader_id;
  48.     out[1]=shader_vp;
  49.     out[2]=shader_fp;
  50.    
  51.     return out;
  52.    
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement