Hi,

I have a very simple pair of shaders. After creating a program with them, 
glGetProgramInfoLog gives this warning:
WARNING: Could not find vertex shader attribute 'webgl_178fd81400000002' to 
match BindAttributeLocation request.

Here are the shaders:


#version 100
precision mediump float;
attribute vec3 in_position;

void main() {
 gl_Position = vec4(in_position, 1);
}




#version 100
precision mediump float;

void main() {
 gl_FragColor = vec4(0, 0, 1, 1);
}


This is how I load the shaders:


GLuint gr_loadShader(const char* filePath, GLenum shaderType) {
 FILE* file = resources::openFile(filePath, "rb");
 if (!file) {
 DLOG("Failed to open shader %s\n", filePath);
 return 0;
 }
 fseek(file, 0, SEEK_END);
 long fileSize = ftell(file);
 fseek(file, 0, SEEK_SET);
 char* shaderSource = (char*)malloc(fileSize + 1);
 fread(shaderSource, fileSize, 1, file);
 fclose(file);
 shaderSource[fileSize] = '\0';


 GLuint shaderID = glCreateShader(shaderType);

 error("glCreateShader");
 GLint result = GL_FALSE;
 int InfoLogLength;
 glShaderSource(shaderID, 1, (const GLchar**)&shaderSource, NULL);

 glCompileShader(shaderID);



  // Check the shader
 glGetShaderiv(shaderID, GL_COMPILE_STATUS, &result);
 glGetShaderiv(shaderID, GL_INFO_LOG_LENGTH, &InfoLogLength);
 char errorMessage[InfoLogLength];
 glGetShaderInfoLog(shaderID, InfoLogLength, NULL, errorMessage);
 DLOG("%s\n", errorMessage);


 return shaderID;

}


GLuint gr_createProgram(const char* vs, const char* fs) {

 char vsFilePath[128];
 char fsFilePath[128];
 sprintf(vsFilePath, "assets/shaders/gles1/%s.vs", vs);
 sprintf(fsFilePath, "assets/shaders/gles1/%s.fs", fs);
 GLuint vsID = gr_loadShader(vsFilePath, GL_VERTEX_SHADER);
 GLuint fsID = gr_loadShader(fsFilePath, GL_FRAGMENT_SHADER);
 GLuint programID = glCreateProgram();
 error("glCreateProgran");
 glAttachShader(programID, vsID);
 error("glAttachShader vs");
 glAttachShader(programID, fsID);
 error("glAttachShader fs");
 glLinkProgram(programID);
 error("glLinkProgram");

 glDeleteShader(vsID);
 glDeleteShader(fsID);


 GLint result = GL_FALSE;
 int InfoLogLength;
 glGetProgramiv(programID, GL_LINK_STATUS, &result);
  glGetProgramiv(programID, GL_INFO_LOG_LENGTH, &InfoLogLength);
 char errorMessage[512]{'\0'};
 glGetProgramInfoLog(programID, InfoLogLength, NULL, errorMessage);
 DLOG("Program Info: %s\n", errorMessage);
 return programID;
}


Same code doesn't cause issues on desktop (OpenGL 2 at least)

Why am I seeing this warning?

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to