views:

68

answers:

1

I'm using FreeType in order to allow fonts to be used in OpenGL. However, I'm having a problem where I cannot change the font colour whenever I do texture mapping. No matter what I select using glColor3f it will just come out white. The texture works fine.

glClear(GL_COLOR_BUFFER_BIT);

glLoadIdentity();

glColor3f(0.5,0.0,0.5);
glPushMatrix();
glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    glEnable(GL_TEXTURE_2D);
    glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
    glBindTexture(GL_TEXTURE_2D, texName);
    glBegin(GL_POLYGON);
        glTexCoord2f(0,1); glVertex2f(-16,-16);
        glTexCoord2f(0,0); glVertex2f(-16,16);
        glTexCoord2f(1,0); glVertex2f(16,16);
        glTexCoord2f(1,1); glVertex2f(16,-16);
    glEnd();
    glDisable(GL_TEXTURE_2D);

    glDisable(GL_BLEND);
glPopMatrix();
    glColor3f(1,0,0);
print(our_font, -300+screenWidth/2.0, screenHeight/2.0, "fifty two - %7.2f", spin);

This is the problem code, I can confirm that drawing a polygon beneath this code will indeed make it red. The text is not changing to red though which it should; if you remove the texture mapping above it will turn red again, I can only think it is a problem with enabling and disabling and I've forgotten to do something...?

+1  A: 

Fixed it. Just after I disabled texturing I forgot to set the environment back to modulate:

glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

adding this after disabling texture/blending fixes the problem.

Dororo