OpenGl текстуры наложения блокируют цвета на FreeType? - PullRequest
0 голосов
/ 26 апреля 2010

Я использую FreeType, чтобы разрешить использование шрифтов в OpenGL. Однако у меня проблема, когда я не могу изменить цвет шрифта всякий раз, когда я делаю наложение текстуры. Неважно, что я выберу, используя glColor3f, он просто получится белым. Текстура работает отлично.

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);

Это код проблемы, я могу подтвердить, что рисование многоугольника под этим кодом действительно сделает его красным. Текст не меняется на красный, хотя это должно быть; если вы удалите текстурное отображение выше, оно снова станет красным, я могу только думать, что это проблема с включением и отключением, и я забыл что-то сделать ...?

1 Ответ

1 голос
/ 26 апреля 2010

Исправлено. Сразу после того, как я отключил текстурирование, я забыл вернуть модулю обратно среду:

glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

добавление этого после отключения текстуры / смешивания решает проблему.

...