Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#ActualDarkHorseKnight

Posted 14 April 2012 - 05:27 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
	string Line = "";
	while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
	VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
	string Line = "";
	while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
	FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}

this function ^^
EDIT: It crashes after that function ^^

not being executed after I call  
hRC = wglCreateContext(hDC);

or any other time

I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.



Thanks in advance

#5DarkHorseKnight

Posted 14 April 2012 - 05:27 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
	string Line = "";
	while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
	VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
	string Line = "";
	while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
	FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}

this function ^^
EDIT: It crashes after that function ^^

not being executed after I call  
hRC = wglCreateContext(hDC);

or any other time

I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.



Thanks in advance

#4DarkHorseKnight

Posted 14 April 2012 - 05:27 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
	string Line = "";
	while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
	VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
	string Line = "";
	while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
	FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}

this function ^^
EDIT: It crashes after that function "

not being executed after I call  
hRC = wglCreateContext(hDC);

or any other time

I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.



Thanks in advance

#3DarkHorseKnight

Posted 14 April 2012 - 05:26 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
	string Line = "";
	while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
	VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
	string Line = "";
	while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
	FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}

this function ^^

not being executed after I call  
hRC = wglCreateContext(hDC);

or any other time

I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.

Thanks in advance

#2DarkHorseKnight

Posted 14 April 2012 - 05:19 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
	string Line = "";
	while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
	VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
	string Line = "";
	while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
	FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}

this function ^^

not being executed after I call  
hRC = wglCreateContext(hDC);

or any other time

I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.

Thanks in advance

#1DarkHorseKnight

Posted 14 April 2012 - 05:12 AM

Hello I was just trying to use GLSL shaders in win32 but having issues with my function:

//LOAD SHADER FUNCTION
GLuint LoadProgram(const char * vertex_file_path, const char * Fragment_file_path)
{
  GLuint VertexShaderID = glCreateShader(GL_VERTEX_SHADER);
  cout << "Vertex Shader Creation" << endl;
  GLuint FragmentShaderID = glCreateShader(GL_FRAGMENT_SHADER);
  cout << "Fragment Shader Creation" << endl;
  //READ THE VERTEX SHADER CODE
  string VertexShaderCode;
  ifstream VertexShaderStream(vertex_file_path, std::ios::in);
  cout << "Reading Vertex Shader" << endl;
  if(VertexShaderStream.is_open())
  {
    string Line = "";
    while(getline(VertexShaderStream, Line))
	  VertexShaderCode += "\n" + Line;
    VertexShaderStream.close();
  }
  //READ THE FRAGMENT SHADER CODE
  string FragmentShaderCode;
  ifstream FragmentShaderStream(Fragment_file_path, std::ios::in);
  if(FragmentShaderStream.is_open())
  {
    string Line = "";
    while(getline(FragmentShaderStream, Line))
	  FragmentShaderCode += "\n" + Line;
    FragmentShaderStream.close();
  }
  GLint Result = GL_FALSE;
  int InfoLogLength;
  //Compile Vertex Shader
  printf("Compiling Shader : %s\n", vertex_file_path);
  char const * VertexSourcePointer = VertexShaderCode.c_str();
  glShaderSource(VertexShaderID,  1,  &VertexSourcePointer,  NULL);
  glCompileShader(VertexShaderID);
  //Check Vertex Shader
  glGetShaderiv(VertexShaderID, GL_COMPILE_STATUS,  &Result);
  glGetShaderiv(VertexShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> VertexShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(VertexShaderID, InfoLogLength, NULL, &VertexShaderErrorMessage[0]);
  fprintf(stdout, "%s\n",  &VertexShaderErrorMessage[0]);
  //Compile Fragment Shader
  printf("Compiling Shader : %s\n",  Fragment_file_path);
  char const * FragmentSourcePointer = FragmentShaderCode.c_str();
  glShaderSource(FragmentShaderID, 1, &FragmentSourcePointer, NULL);
  glCompileShader(FragmentShaderID);
  //Check Fragment Shader
  glGetShaderiv(FragmentShaderID, GL_COMPILE_STATUS, &Result);
  glGetShaderiv(FragmentShaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> FragmentShaderErrorMessage(InfoLogLength);
  glGetShaderInfoLog(FragmentShaderID, InfoLogLength, NULL, &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "%s\n",  &FragmentShaderErrorMessage[0]);
  fprintf(stdout,  "Linking Program\n");
  GLuint ProgramID = glCreateProgram();
  //Bind Attribute
  glBindAttribLocation(ProgramID, 0, "position");
  glBindAttribLocation(ProgramID, 1, "Texcoord0");
  //Link The Program
  glAttachShader(ProgramID, VertexShaderID);
  glAttachShader(ProgramID, FragmentShaderID);
  glLinkProgram(ProgramID);
  texture1 = glGetUniformLocation(ProgramID, "myTextureSampler");
  matrixuniform =  glGetUniformLocation(ProgramID, "myMatrix");

  //Check The Program
  glGetProgramiv(ProgramID,  GL_LINK_STATUS, &Result);
  glGetProgramiv(ProgramID, GL_INFO_LOG_LENGTH, &InfoLogLength);
  vector<char> ProgramErrorMessage( max(InfoLogLength, int(1)) );
  fprintf(stdout,  "%s\n", &ProgramErrorMessage[0]);
  //Delete Shader
  glDeleteShader(VertexShaderID);
  glDeleteShader(FragmentShaderID);
  glUseProgram(ProgramID);
  //Return ProgramID
  return ProgramID;
}


not being executed after I call  
hRC = wglCreateContext(hDC);


I have no idea why? could someone tell me what the common errors are for this function not working in win32? it works in SDL/C++? so why shouldn't it work with this ???.

Thanks in advance

PARTNERS