Como faço para usar glutBitmapString () em C ++ para desenhar o texto para a tela?
Pergunta
Eu estou tentando desenhar o texto para a tela usando GLUT em 2D.
Eu quero usar glutBitmapString (), alguém pode me mostrar um exemplo simples do que você tem que fazer para configurar e usar corretamente este método em C ++ para que eu possa desenhar uma cadeia arbitrária em uma posição (X, Y) / p>
glutBitmapString(void *font, const unsigned char *string);
Eu estou usando linux, e eu sei que eu preciso para criar um objeto Font, embora eu não sei exatamente como e posso fornecê-lo com a corda como o segundo argumento. No entanto, como eu também especificar o x / y posição?
Um rápido exemplo de isso iria me ajudar muito. Se você pode me mostrar de criar a fonte, ao chamar o método que seria melhor.
Solução
Você tem que usar glRasterPos
para definir a posição raster antes de chamar glutBitmapString()
. Note-se que cada chamada para glutBitmapString()
avança a posição raster, assim várias chamadas consecutivas irá imprimir as cordas um após o outro. Você também pode definir a cor do texto usando glColor()
. O conjunto de fontes disponíveis são listados aqui .
// 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");
Outras dicas
Adicionando a resposta de Adão,
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);
Confira https://www.opengl.org/resources /libraries/glut/spec3/node76.html para mais opções de fonte