Eine moderne OpenGL -Texte -Rendering -Bibliothek für Openentk.
Aus der SWAX/QuickFont -Bibliothek gegabelt. Originalbibliothek QFONT
Sie können diese Bibliothek über Nuget installieren.
QuickFont wurde getestet und läuft unter Windows, Linux und OSX.
Die minimal unterstützte OpenGL -Version ist 3.0
Beachten Sie, dass das Beispielprojekt geändert werden muss, um in OSX korrekt zu erstellen, da Apple standardmäßig einen OpenGL 2.1 -Kontext zurückgibt, wenn eine bestimmte Version nicht angegeben ist.
Ersetzen Sie einfach den Konstruktor von Game.cs durch:
public Game ( )
: base ( 800 , 600 , GraphicsMode . Default , "QuickFont Example" , GameWindowFlags . Default , DisplayDevice . Default , 3 , 2 , GraphicsContextFlags . Default )Dadurch wird eine OpenGL -Version> = 3.2 (normalerweise 4.1) ausgewählt.
FreeTypeFont verwendet wirdQFontDrawing nicht implementieren IDisposableQVertexArrayObject Erstellen Sie in einer Onload () -Methode Ihre QFONT und Ihr QFontdrawing
_myFont = new QFont ( "Fonts/HappySans.ttf" , 72 , new QFontBuilderConfiguration ( true ) ) ;
_myFont2 = new QFont ( "basics.qfont" , new QFontBuilderConfiguration ( true ) ) ;
_drawing = new QFontDrawing ( ) ;Rufen Sie einige Druckmethoden an oder erstellen Sie selbst Zeichnungsprimitive. Fügen Sie sie zur Zeichnung hinzu.
_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 ( ) ;Dann in Ihrer Ziehschleife tun Sie:
_drawing . ProjectionMatrix = proj ;
_drawing . Draw ( ) ;
SwapBuffers ( ) ;Am Ende des Programms entsorgen Sie die QuickFont -Ressourcen:
protected virtual void Dispose ( bool disposing )
{
_drawing . Dispose ( ) ;
_myFont . Dispose ( ) ;
_myFont2 . Dispose ( ) ;
}Weitere Informationen finden Sie im enthaltenen Beispielprojekt!
Das Folgende ist eine nicht exexhustive Liste von Personen, die zu QuickFont beigetragen haben:
James Lohr - Schöpfer der Originalbibliothek (http://www.opentk.com/project/quickfont)
John (Swax) Marshall - Unterstützung von Scheitelpunktpuffer hinzugefügt
Patrick (OPCON) Yates - aktueller Betreuer
Robertofon - Refactored Monolithic Qfont Klasse
Martinay - OpenGL ES 2.0 -Unterstützung
Jan Polak
Jonathan
Lizenziert unter MIT, siehe die Datei License.txt im Projektroot -Verzeichnis