I want to make a texture of my current screen, including its depth and the RGBA values.
//////////// my main program
// Render to Texture
glActiveTexture(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_2D, depthToTexture);
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, WIN_WIDTH, WIN_HEIGHT, 0);
glActiveTexture(GL_TEXTURE1_ARB);
glBindTexture(GL_TEXTURE_2D, RGBAtoTexture);
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, WIN_WIDTH, WIN_HEIGHT, 0);
texLoc = glGetUniformLocationARB(p, "dTexture");
glUniform1iARB(texLoc, 0);
texLoc = glGetUniformLocationARB(p, "texture");
glUniform1iARB(texLoc, 1);
// Render Scene
/************************************ depth ****************************************/
glActiveTexture(GL_TEXTURE0_ARB);
glBindTexture(GL_TEXTURE_2D, depthToTexture);
// and draw textured quad with our rendered texture
glEnable(GL_TEXTURE_2D);
/************************************ RGBA ****************************************/
glActiveTexture(GL_TEXTURE1_ARB);
glBindTexture(GL_TEXTURE_2D, RGBAtoTexture);
// and draw textured quad with our rendered texture
glEnable(GL_TEXTURE_2D);
glBegin( GL_QUADS );
// glColor4fv(orgColor);
glMultiTexCoord2f (GL_TEXTURE0_ARB, 0, 0);
glMultiTexCoord2f (GL_TEXTURE1_ARB, 0, 0);
glVertex2f(0, 0);
glMultiTexCoord2f (GL_TEXTURE0_ARB, 0, 1);
glMultiTexCoord2f (GL_TEXTURE1_ARB, 0, 1);
glVertex2f(0, WIN_HEIGHT);
glMultiTexCoord2f (GL_TEXTURE0_ARB, 1, 1);
glMultiTexCoord2f (GL_TEXTURE1_ARB, 1, 1);
glVertex2f(WIN_WIDTH, WIN_HEIGHT);
glMultiTexCoord2f (GL_TEXTURE0_ARB, 1, 0);
glMultiTexCoord2f (GL_TEXTURE1_ARB, 1, 0);
glVertex2f(WIN_WIDTH, 0);
glEnd();
glDisable(GL_TEXTURE_2D);
//////////////// Vertex Shader
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord1;
//////////////// Fragment Shader
gl_FragColor = texture2D(dTexture, gl_TexCoord[0].st); // works
but
gl_FragColor = texture2D(texture, gl_TexCoord[1].st);
works not.
If switch the TEXTUREIndices the other texture works (here the RGBA would work then). Finally, I get only access to TEXTURE0.
I tested different combinations. Nothing will work. What do I wrong?
Thanx