2009-02-12 35 views
9

Estoy intentando dibujar texto en la pantalla usando GLUT en 2d.¿Cómo uso glutBitmapString() en C++ para dibujar texto en la pantalla?

Quiero usar glutBitmapString(), ¿alguien puede mostrarme un ejemplo simple de lo que debe hacer para configurar y utilizar este método correctamente en C++ para poder dibujar una cadena arbitraria en una posición (X, Y)?

glutBitmapString(void *font, const unsigned char *string); 

estoy usando Linux, y sé que necesito para crear un objeto de fuente, aunque no estoy seguro exactamente cómo y yo puede suministrar con la cadena como el segundo argumento. Sin embargo, ¿cómo especifico también la posición x/y?

Un ejemplo rápido de esto me sería de gran ayuda. Si me puedes mostrar desde la creación de la fuente, hasta llamar al método que sería mejor.

Respuesta

11

Debe usar glRasterPos para establecer la posición del ráster antes de llamar al glutBitmapString(). Tenga en cuenta que cada llamada al glutBitmapString() avanza la posición del ráster, por lo que varias llamadas consecutivas imprimirán las cadenas una tras otra. También puede establecer el color del texto usando glColor(). El conjunto de fuentes disponibles se enumera here.

// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the 
// screen in an 18-point Helvetica font 
glRasterPos2i(100, 120); 
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); 
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render"); 
+2

Gracias por la Ayuda de ADAM. Además, durante mucho tiempo me siguió diciendo que glutBitmapString no estaba definido, y finalmente lo encontré con el nombre de "_glutBitmapString" en GL/glui.h. ¿Alguna idea de por qué? – KingNestor

+0

'glutBitmapString' es una extensión implementada en' freeglut', no presente en el antiguo 'glut',' GL/freeglut.h' debe incluirse en lugar de 'GL/glut.h' – Alex

0

Agregando a la respuesta de Adán,

glColor4f(0.0f, 0.0f, 1.0f, 1.0f); //RGBA values of text color 
glRasterPos2i(100, 120);   //Top left corner of text 
const unsigned char* t = reinterpret_cast<const unsigned char *>("text to render"); 
// Since 2nd argument of glutBitmapString must be const unsigned char* 
glutBitmapString(GLUT_BITMAP_HELVETICA_18,t); 

Salida https://www.opengl.org/resources/libraries/glut/spec3/node76.html para más opciones de fuente

Cuestiones relacionadas