cocos2d/OpenGL multitexturing problem
- by Gajoo
I've got a simple shader to test multitextureing the problem is both samplers are using same image as their reference.
the shader code is basically just this :
vec4 mid = texture2D(u_texture,v_texCoord);
float g = texture2D(u_guide,v_guideCoord);
gl_FragColor = vec4(g , mid.g,0,1);
and this is how I'm calling draw function :
int last_State;
glGetIntegerv(GL_ACTIVE_TEXTURE, &last_State);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, getTexture()->getName());
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, mGuideTexture->getName());
ccGLEnableVertexAttribs( kCCVertexAttribFlag_TexCoords |kCCVertexAttribFlag_Position);
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, vertices);
glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, texCoord);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisable(GL_TEXTURE_2D);
I've already check mGuideTexture->getName() and getTexture()->getName() are returning correct textures. but looking at the result I can tell, both samplers are reading from getTexture()->getName().
here are some screen shots showing what is happening :
The image rendered Using above codes
The image rendered when I change textures passed to samples
I'm expecting to see green objects from the first picture with red objects hanging from the top.