3D Font only displays first character of alphabet

Started by
-1 comments, last by evef 19 years, 6 months ago
Hi, I am trying to create a 3D font using wglUse font outlines. I have followed the tutorials from NeHe and MSDN but their code does not work in my program. When it comes to printing the text using glCallLists() only the first letter of my font "alphabet" is displayed - in this case the character "!" as I start from 33. This happens regardless of the contents of the string I wish to print. What am i doing wrong? Why won't it print my text? Here is the method I use for creating and displaying the font. void TOpenGLWidget::create3DFont() { // Get the DC for the current rendering context. HDC hdc = wglGetCurrentDC(); HFONT font; // Windows Font ID GLYPHMETRICSFLOAT gmf[256]; // Address Buffer For Font Storage // Windows Font ID GLuint base = 1000; font = CreateFont( -12, // Height Of Font 0, // Width Of Font 0, // Angle Of Escapement 0, // Orientation Angle FW_BOLD, // Font Weight FALSE, // Italic FALSE, // Underline FALSE, // Strikeout ANSI_CHARSET, // Character Set Identifier OUT_TT_PRECIS, // Output Precision CLIP_DEFAULT_PRECIS, // Clipping Precision ANTIALIASED_QUALITY, // Output Quality FF_DONTCARE|DEFAULT_PITCH, // Family And Pitch "Comic Sans MS"); // Font Name SelectObject(hdc, font); // Selects The Font We Created wglUseFontOutlines( hdc, // Select The Current DC 33, // Starting Character 96, // Number Of Display Lists To Build base, // Starting Display Lists 0.0f, // Deviation From The True Outlines 0.2f, // Font Thickness In The Z Direction WGL_FONT_POLYGONS, // Use Polygons, Not Lines gmf); // Address Of Buffer To Recieve Data // Set up transformation. glLoadIdentity(); glTranslated(0.5, 0.0, -2.0); glListBase(1000 - 33) ; glCallLists(5, GL_UNSIGNED_BYTE, "Hello") ; The only thing that i can think of is that the create3Dfont() method is called from within a method where a list of other objects is being created. Any ideas would be greatly appreciated. Thanks Eve

This topic is closed to new replies.

Advertisement