Una moderna biblioteca de renderizado de texto OpenGL para Opentk.
Bifurcado de la biblioteca Swax/QuickFont. Biblioteca original qfont
Puede instalar esta biblioteca a través de Nuget.
QuickFont ha sido probado y se ejecuta en Windows, Linux y OSX.
La versión mínima compatible con OpenGL es 3.0
Nota El proyecto de ejemplo deberá cambiarse para construir correctamente en OSX, ya que, de forma predeterminada, Apple devuelve un contexto OpenGL 2.1 si no se especifica una versión específica.
Simplemente reemplace el constructor de juegos. CS con:
public Game ( )
: base ( 800 , 600 , GraphicsMode . Default , "QuickFont Example" , GameWindowFlags . Default , DisplayDevice . Default , 3 , 2 , GraphicsContextFlags . Default )Esto seleccionará una versión OpenGL> = 3.2 (generalmente 4.1).
FreeTypeFontQFontDrawing fijo no implementando IDisposableQVertexArrayObject En algún método Onload () crea su Qfont y su QfontDrawing
_myFont = new QFont ( "Fonts/HappySans.ttf" , 72 , new QFontBuilderConfiguration ( true ) ) ;
_myFont2 = new QFont ( "basics.qfont" , new QFontBuilderConfiguration ( true ) ) ;
_drawing = new QFontDrawing ( ) ;Llame a algunos métodos de impresión o cree primitivas de dibujo por sí mismos. Agrégalos al dibujo.
_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 ( ) ;Luego en tu bucle de dibujo do:
_drawing . ProjectionMatrix = proj ;
_drawing . Draw ( ) ;
SwapBuffers ( ) ;Al final del programa, deseche los recursos QuickFont:
protected virtual void Dispose ( bool disposing )
{
_drawing . Dispose ( ) ;
_myFont . Dispose ( ) ;
_myFont2 . Dispose ( ) ;
}¡Vea el proyecto de ejemplo incluido para más!
La siguiente es una lista no exhaustiva de personas que han contribuido a QuickFont:
James Lohr - Creador de la biblioteca original (http://www.opentk.com/project/quickfont)
John (Swax) Marshall: soporte de búfer de vértice agregado
Patrick (Opcon) Yates - Current Sostener
Robertofon - Clase Qfont Monolítica Refactored
Martinay - OpenGL ES 2.0 Soporte
Jan Polak
Jonathan
Licenciado en MIT, consulte el archivo License.txt en el directorio de Project Root