Problem with wglUseFontOutlines: state changes


I’m rendering outlined polygons (just like in Nehe tutorial). When the application starts I create a bunch of fonts like this:

myFont = CreatFont(…)
SelectObject( myFont );

then I create the solid object using this Windows API

wglUseFontOutlines( hDC,0, 255, DLbase, 0.0f, 0.2f, WGL_FONT_POLYGONS, gmf );

then I render the geometry in my scene, and finally I render a 3D text object in front of everything.
The rendering is done like this:

// Pushes The Display List Bits
glPushAttrib( GL_LIST_BIT );	

// Sets The Base Character to 0
glListBase( DLbase );

// Draws The Display List Text
glCallLists( m_sText.size(), GL_UNSIGNED_BYTE, m_sText.c_str() );	

// Pops The Display List Bits
glPopAttrib( );	

As soon as I call the first display list for the text, everything else in the 3D environment gets wrong.

It looks like if the texture were being attached to the back polygon, and only the back polygon is rendered.

I tryed to set this state variables before rendering everything but the text. I tryed these modes.

glEnable( GL_CULL_FACE );
glCullFace( GL_BACK );
glPolygonMode( GL_FRONT, GL_FILL );

but nothing changes…

Do you have any idea about that? Did it ever happened to you?
Could it be a driver bug? I have an NVIDIA Quadro4 750 XGL.

Please, any feedback is really appreciated.


I remember having problems with this too, I think that the problem is that the display list created by wglUseFontOutlines modifies the current modelview matrix as well as other OpenGL state. Try pushing and poping it before and after calling the lists.

Try glFrontFace(GL_CCW) after rendering the text