KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I' trying to develop a basic game in iOS and OpenGL ES but I'm stuck on this problem with the uniforms, here is the code that passes the value to my uniform: glBindVertexArrayOES(_vertexArray); // Render the object with ES2 glUseProgram(self.shaderProgram); glUniformMatrix4fv(uniformModelViewProjection, 1, 0, modelViewProjectionMatrix.m); // Get uniform center position glUniform4fv(uniformCenterPosition, 1, centerPosition.v); // Get uniform time position glUniform1f(uniformTime, time); // Set the sampler texture unit to 0 glUniform1i(uniformTexture, 0); glDrawArrays(GL_POINTS, 0, numVertices); Notice that care has been taken to position the glUniform function preceded with glUseProgram and before the glDrawArrays call is made. The uniform locations look fine also as confirmed via tracing. Here is what I get when I run the OpenGL ES Analyzer tool in XCode: It returns a GL_INVALID_OPERATION for glUniform4fv, notice that the values represented seem to be correct. Here are the possible causes for the GL_INVALID_OPERATION error I found from the documentation : there is no current program object. the size of the uniform variable declared in the shader does not match the size indicated by the glUniform command. one of the signed or unsigned integer variants of this function is used to load a uniform variable of type float, vec2, vec3, vec4, or an array of these, or if one of the floating-point variants of this function is used to load a uniform variable of type int, ivec2, ivec3, ivec4, unsigned int, uvec2, uvec3, uvec4, or an array of these. one of the signed integer variants of this function is used to load a uniform variable of type unsigned int, uvec2, uvec3, uvec4, or an array of these. one of
Tags (comma-separated)
Save Edits
Cancel