Probleme mit wglUseFontBitmaps()



  • Hallo,

    ich debugge gerade im Code von QT herum und habe immer wieder Probleme an dieser Stelle:

    wglUseFontBitmaps(tmp_dc, 0, 256, listBase)
    

    Ich versuche verschiedene Texte mit diversen Schriftenarten auszugeben.
    Einige davon werden gezeigt, andere nicht. Die scheitern dann an der obigen Zeile.
    listBase ist meist eine Zahl über 2000, 2256, 2512 ...
    tmp_dc müßte eigentlich hinhauen.
    Aber gelegentlich kommt "false" zurück und es wird keine Liste erzeugt.

    Braucht wglUseFontBitmaps irgendwelche Nebenbedingungen, die erfüllt sein müssen?

    Danke,
    Stimpleton



  • Ist das der NeHe Font Code? Texturen sollten zum Zeitpunkt der Textausgabe deaktiviert sein. Ausserdem würde ich den Depth-Test abschalten.



  • Das gehört zu QT von Trolltech, den Open-Source-Code kann man auch runterladen.
    Texturen und Depth-Test sind ausgeschaltet:

    makeCurrent();
        glPushAttrib(GL_ALL_ATTRIB_BITS);
    
        glDisable(GL_TEXTURE_1D);
        glDisable(GL_TEXTURE_2D);
        glDisable(GL_DEPTH_TEST);
        glDisable(GL_CULL_FACE);
    
        glMatrixMode(GL_PROJECTION);
        glPushMatrix();
        glLoadIdentity();
        glOrtho(0, width(), height(), 0, -1, 1);
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();
        glLoadIdentity();
    
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        glEnable(GL_BLEND);
        glRasterPos2i(0, 0);
        glBitmap(0, 0, 0, 0, x, -y, NULL);
        glListBase(fontDisplayListBase(fnt, listBase));
    ...
    

    ... und in fontDisplayListBase wird wglUseFontBitmaps() aufgerufen.
    Tja, und manchmal klappts nicht. Ich vermute, daß irgendwie der Zustand der OpenGL-Maschine nicht richtig gesetzt ist.
    Nur ist der Zustand an der Stelle wichtig, um eine Display-Liste nur zu erzeugen?


Anmelden zum Antworten