Современная библиотека текста Opengl рендеринг для Opentk.
Разветвлен из библиотеки Swax/QuickFont. Оригинальная библиотека Qfont
Вы можете установить эту библиотеку через Nuget.
QuickFont был протестирован и работает в Windows, Linux и OSX.
Минимальная поддерживаемая версия OpenGL - 3.0
ПРИМЕЧАНИЕ. Пример проекта должен быть изменен, чтобы правильно построить на OSX, поскольку по умолчанию Apple возвращает контекст OpenGL 2.1, если определенная версия не указана.
Просто замените конструктор Game.cs на:
public Game ( )
: base ( 800 , 600 , GraphicsMode . Default , "QuickFont Example" , GameWindowFlags . Default , DisplayDevice . Default , 3 , 2 , GraphicsContextFlags . Default )Это выберет версию OpenGL> = 3.2 (обычно 4.1).
FreeTypeFontQFontDrawing , не реализуя IDisposableQVertexArrayObject В некотором методе onload () Создайте Qfont и QfontDrawing
_myFont = new QFont ( "Fonts/HappySans.ttf" , 72 , new QFontBuilderConfiguration ( true ) ) ;
_myFont2 = new QFont ( "basics.qfont" , new QFontBuilderConfiguration ( true ) ) ;
_drawing = new QFontDrawing ( ) ;Назовите некоторые методы печати или сами создайте примитивы рисования. Добавьте их на рисунок.
_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 ( ) ;Тогда в вашей петле Draw Do:
_drawing . ProjectionMatrix = proj ;
_drawing . Draw ( ) ;
SwapBuffers ( ) ;В конце программы утилизируют ресурсы QuickFont:
protected virtual void Dispose ( bool disposing )
{
_drawing . Dispose ( ) ;
_myFont . Dispose ( ) ;
_myFont2 . Dispose ( ) ;
}Смотрите включенный пример проекта для получения дополнительной информации!
Ниже приведен неэкгартный список людей, которые внесли свой вклад в QuickFont:
Джеймс Лор - создатель оригинальной библиотеки (http://www.opentk.com/project/quickfont)
Джон (Свакс) Маршалл - добавлена поддержка буфера вершины
Патрик (opcon) Йейтс - текущий сопровождающий
Робертофон - рефакторированный монолитный класс Qfont
Martinay - поддержка OpenGL ES 2.0
Ян Полак
Джонатан
Лицензировано в соответствии с MIT, см. File License.txt в каталоге Project Root