Desenhar texto em OpenGL e QT

361 views
Skip to first unread message

Lucas Nunes de Lima

unread,
May 7, 2011, 8:09:25 PM5/7/11
to ccppbrasil
Olá!

Estou com um probleminha em um programa. Estou usando QT e OpenGL e quero exibir um texto que em um QGLWidget via OpenGL.
Eu tentei o renderText do QGLWidget, mas me pareceu bem lento (pois são vários textos), parece que não dá para criar um display list com essa função
e nem transladar (só consegui mudar a cor, usando glColor()).

Agora estou tendo dificultado. Como posso exibir um texto em QT e OpenGL?
Estou quase partindo para alguma biblioteca externa (mas, não quero fazer isso, só em último caso).

Alguém pode me dar uma ajuda?

P.S: Apesar desse grupo ser de C++, acredito que OpenGL está mais ligado ao C\C++ do que a qualquer outra linguagem.

Obrigado.

Rodrigo Kumpera

unread,
May 7, 2011, 8:50:35 PM5/7/11
to ccppb...@googlegroups.com
Não tem não, texto com anti-aliasing é difícil pacas. Desenhe em uma textura usando algo
como cairo, cacheie e faça blending dela.



2011/5/7 Lucas Nunes de Lima <lucas...@gmail.com>
--
Antes de enviar um e-mail para o grupo leia:
http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] Colabore com a Pesquisa de Preferência de Conteúdo
para Eventos do Grupo C & C++ Brasil:
http://www.surveymonkey.com/s/GBBGTXN
------~----~-------~---~---~---~---~----------------~------------~---------~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira: vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en

Thiago A. Corrêa

unread,
May 7, 2011, 8:56:19 PM5/7/11
to ccppb...@googlegroups.com
Não sei o que vc está querendo fazer, mas talvez GraphicsView em
OpenGL seja o que vc procura. Vc pode colocar widgets na cena para o
texto ou outros controles que venha a precisar.

Att.
Thiago A. Correa

2011/5/7 Lucas Nunes de Lima <lucas...@gmail.com>:

Lucas Nunes de Lima

unread,
May 7, 2011, 8:56:55 PM5/7/11
to ccppb...@googlegroups.com
Nem precisa de AA não. Pode ser o texto quadradão mesmo (é até bom para o que eu to fazendo).

Rodrigo Kumpera

unread,
May 7, 2011, 10:57:40 PM5/7/11
to ccppb...@googlegroups.com

Use uma bitmap font então.

Lucas Nunes de Lima

unread,
May 8, 2011, 9:01:07 AM5/8/11
to ccppb...@googlegroups.com
Como faço isso. Se não me engano, eu bitmap font é carregar cada caractere em um display list e depois exibir.
Eu sei que não pode ser redimensionado e tal. Mas, como faço isso? Tem alguma função do QT ou é de outra lib?

Obrigado.

André Santee

unread,
May 9, 2011, 8:48:21 AM5/9/11
to ccppbrasil
Não sei se QT possui algo pronto para isso, mas a implementação é bem
trivial. Você pode usar uma textura para armazenar as fontes e mapear
cada caractere como um sprite 2D. Você pode usar o formato FNT de
bitmap fonts.
Alguns links:

BMFont (gerador de bitmap fonts): http://www.angelcode.com/products/bmfont/
Pequeno exemplo/tutorial: http://www.gamedev.net/topic/330742-quick-tutorial-variable-width-bitmap-fonts/

Implementação funcionando (dê uma olhada na classe BitmapFont):
http://ethanon.svn.sourceforge.net/viewvc/ethanon/trunk/toolkit/Source/src/gs2d/src/gs2d.h?revision=999&view=markup
http://ethanon.svn.sourceforge.net/viewvc/ethanon/trunk/toolkit/Source/src/gs2d/src/gs2d.cpp?revision=966&view=markup



On 8 maio, 09:01, Lucas Nunes de Lima <lucasnun...@gmail.com> wrote:
> Como faço isso. Se não me engano, eu bitmap font é carregar cada caractere
> em um display list e depois exibir.
> Eu sei que não pode ser redimensionado e tal. Mas, como faço isso? Tem
> alguma função do QT ou é de outra lib?
>
> Obrigado.
>
> Em 7 de maio de 2011 23:57, Rodrigo Kumpera <kump...@gmail.com> escreveu:
>
>
>
>
>
>
>
> > Use uma bitmap font então.
> > On May 7, 2011 9:56 PM, "Lucas Nunes de Lima" <lucasnun...@gmail.com>
> > wrote:
> > > Nem precisa de AA não. Pode ser o texto quadradão mesmo (é até bom para o
> > > que eu to fazendo).
>
> > > Em 7 de maio de 2011 21:50, Rodrigo Kumpera <kump...@gmail.com>
> > escreveu:
>
> > >> Não tem não, texto com anti-aliasing é difícil pacas. Desenhe em uma
> > >> textura usando algo
> > >> como cairo, cacheie e faça blending dela.
>
> > >> 2011/5/7 Lucas Nunes de Lima <lucasnun...@gmail.com>
> > >>> [&] C & C++ Brasil -http://www.ccppbrasil.org/
> > >>> Para sair dessa lista, envie um e-mail para
> > >>> ccppbrasil-...@googlegroups.com
> > >>> Para mais opções, visitehttp://groups.google.com/group/ccppbrasil
>
> > --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> > >>> Emprego & carreira: vaga...@ccppbrasil.org
> > >>>http://groups.google.com/group/dev-guys?hl=en
>
> > >> --
> > >> Antes de enviar um e-mail para o grupo leia:
> > >>http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
>
> > --~--~---------~--~----~---------------------------------~----------~--~----~
> > >> [&] Colabore com a Pesquisa de Preferência de Conteúdo
> > >> para Eventos do Grupo C & C++ Brasil:
> > >>http://www.surveymonkey.com/s/GBBGTXN
>
> > ------~----~-------~---~---~---~---~----------------~------------~---------~
> > >> [&] C & C++ Brasil -http://www.ccppbrasil.org/
> > >> Para sair dessa lista, envie um e-mail para
> > >> ccppbrasil-...@googlegroups.com
> > >> Para mais opções, visitehttp://groups.google.com/group/ccppbrasil
>
> > --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> > >> Emprego & carreira: vaga...@ccppbrasil.org
> > >>http://groups.google.com/group/dev-guys?hl=en
>
> > > --
> > > Antes de enviar um e-mail para o grupo leia:
> > >http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
>
> > --~--~---------~--~----~---------------------------------~----------~--~----~
> > > [&] Colabore com a Pesquisa de Preferência de Conteúdo
> > > para Eventos do Grupo C & C++ Brasil:
> > >http://www.surveymonkey.com/s/GBBGTXN
>
> > ------~----~-------~---~---~---~---~----------------~------------~---------~
> > > [&] C & C++ Brasil -http://www.ccppbrasil.org/
> > > Para sair dessa lista, envie um e-mail para
> > ccppbrasil-...@googlegroups.com
> > > Para mais opções, visitehttp://groups.google.com/group/ccppbrasil
> > > --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> > > Emprego & carreira: vaga...@ccppbrasil.org
> > >http://groups.google.com/group/dev-guys?hl=en
> > --
> > Antes de enviar um e-mail para o grupo leia:
> >http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
>
> > --~--~---------~--~----~---------------------------------~----------~--~----~
> > [&] Colabore com a Pesquisa de Preferência de Conteúdo
> > para Eventos do Grupo C & C++ Brasil:
> >http://www.surveymonkey.com/s/GBBGTXN
>
> > ------~----~-------~---~---~---~---~----------------~------------~---------~
> > [&] C & C++ Brasil -http://www.ccppbrasil.org/
> > Para sair dessa lista, envie um e-mail para
> > ccppbrasil-...@googlegroups.com
> > Para mais opções, visitehttp://groups.google.com/group/ccppbrasil
> > --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> > Emprego & carreira: vaga...@ccppbrasil.org
> >http://groups.google.com/group/dev-guys?hl=en

Lucas Nunes de Lima

unread,
May 13, 2011, 5:45:38 PM5/13/11
to ccppb...@googlegroups.com
Obrigado pela ajuda.
E deculpe a demora em responder.

Isso vai me ajudar.
Obrigado.

[&] C & C++ Brasil - http://www.ccppbrasil.org/

Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira:  vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en

Reply all
Reply to author
Forward
0 new messages