Uma moderna biblioteca de renderização de texto do OpenGL para o Opentk.
Bifurcado da biblioteca Swax/Quickfont. Biblioteca original qfont
Você pode instalar esta biblioteca via NuGet.
O QuickFont foi testado e executa no Windows, Linux e OSX.
A versão OpenGL mínima suportada é 3.0
Nota O projeto de exemplo precisará ser alterado para construir corretamente no OSX, pois, por padrão, a Apple retorna um contexto OpenGL 2.1 se uma versão específica não for especificada.
Basta substituir o construtor Game.CS por:
public Game ( )
: base ( 800 , 600 , GraphicsMode . Default , "QuickFont Example" , GameWindowFlags . Default , DisplayDevice . Default , 3 , 2 , GraphicsContextFlags . Default )Isso selecionará uma versão OpenGL> = 3.2 (geralmente 4.1).
FreeTypeFont for usadoQFontDrawing corrigido não implementando IDisposableQVertexArrayObject Em algum método onload (), crie seu qfont e seu qfontdrawing
_myFont = new QFont ( "Fonts/HappySans.ttf" , 72 , new QFontBuilderConfiguration ( true ) ) ;
_myFont2 = new QFont ( "basics.qfont" , new QFontBuilderConfiguration ( true ) ) ;
_drawing = new QFontDrawing ( ) ;Chame alguns métodos de impressão ou crie primitivos de desenho sozinhos. Adicione -os ao desenho.
_drawing . DrawingPrimitives . Clear ( ) ;
_drawing . Print ( _myFont , "text1" , pos , FontAlignment . Left ) ;
// draw with options
var textOpts = new QFontRenderOptions ( )
{
Colour = Color . FromArgb ( new Color4 ( 0.8f , 0.1f , 0.1f , 1.0f ) . ToArgb ( ) ) ,
DropShadowActive = true
} ;
SizeF size = _drawing . Print ( _myFont , "text2" , pos2 , FontAlignment . Left , textOpts ) ;
var dp = new QFontDrawingPrimitive ( _myFont2 ) ;
size = dp . Print ( text , new Vector3 ( bounds . X , Height - yOffset , 0 ) , new SizeF ( maxWidth , float . MaxValue ) , alignment ) ;
drawing . DrawingPrimitives . Add ( dp ) ;
// after all changes do update buffer data and extend it's size if needed.
_drawing . RefreshBuffers ( ) ;Então, em seu loop de empate, faça:
_drawing . ProjectionMatrix = proj ;
_drawing . Draw ( ) ;
SwapBuffers ( ) ;No final do programa, descarte os Recursos QuickFont:
protected virtual void Dispose ( bool disposing )
{
_drawing . Dispose ( ) ;
_myFont . Dispose ( ) ;
_myFont2 . Dispose ( ) ;
}Veja o projeto de exemplo incluído para mais!
A seguir, é apresentada uma lista não exaustiva de pessoas que contribuíram para o QuickFont:
James Lohr - Criador da biblioteca original (http://www.opentk.com/project/quickfont)
John (Swax) Marshall - Adicionado suporte ao buffer de vértice
Patrick (Opcon) Yates - mantenedor atual
RobertOfon - Classe qfont monolítica refatorada
Martinay - Suporte OpenGL ES 2.0
Jan Polak
Jonathan
Licenciado no MIT, consulte o arquivo License.txt no diretório raiz do projeto