Hello,

I am attempting to get a simple program to work which passes two textures to a shader, and will allow me to switch between the two. Unfortunately, the shader only draws the texture that is bound to GL_TEXTURE0, regardless of the uniform assignment in the shader. The code is as follows:

The Fragment shader:
Code :
#version 400
 
in vec2 TexCoord;
uniform sampler2D Tex1;
uniform sampler2D Tex2;
 
layout (location = 0) out vec4 FragColor;
 
void main()
{
    vec4 col2 = texture( Tex2, TexCoord );
    vec4 col1 = texture( Tex1, TexCoord );
    FragColor = (col1 + col2)*0.5;
}

And the C++ code:
Code :
displayShader.Use();
 
    glActiveTexture(GL_TEXTURE0);
    glEnable(GL_TEXTURE_2D);
    displayShader.SetUniform("Tex2",0);
    glBindTexture(GL_TEXTURE_2D, swfInter.GetRenderTexture());
 
 
    glActiveTexture(GL_TEXTURE1);
    glEnable(GL_TEXTURE_2D);
    displayShader.SetUniform("Tex1",1);
    glBindTexture(GL_TEXTURE_2D, TheScenes[0].Maps[0].TextureHandle);
 
    m_MLAACorrector.DrawQuad(-1, displayShader, 100, 100, true );
 
    glActiveTexture(GL_TEXTURE1);  
    glBindTexture(GL_TEXTURE_2D, 0);  
 
    glActiveTexture(GL_TEXTURE0);  
    glBindTexture(GL_TEXTURE_2D, 0);

And the DrawQuad function makes no texture calls. This code successfully draws a quad with texture swfInter.GetRenderTexture() (this textures has large sections of Alpha), yet does not display TheScenes[0].Maps[0].TextureHandle. Additionally, if I swap the glBindTexture calls, then the converse is true. Please let me know if you have any ideas.

Thanks