Измерение растровых шрифтов с OpenGL (Windows) - PullRequest
0 голосов
/ 16 января 2011

Каков «правильный» способ определения «пиксельной» длины растровых шрифтов, отображаемых в OpenGL?Я использую 2D-орто и функцию wglUseFontBitmaps () для создания списков символов шрифтов в Windows.Если я хочу измерить размер моего результирующего текста (для центрирования, форматирования и т. Д.), Как правильно это сделать?

Должен ли я использовать API-функцию Win32 GDI GetTextExtent () или естьсредство определения текущей позиции «курсора» в OpenGL?Функции glRasterPos устанавливают выходную позицию, и при визуализации каждого символа автоматически выводится выходная позиция. Так, возможно, можно использовать glGetRasterPos?

1 Ответ

2 голосов
/ 28 июля 2011

OpenGL не владеет шрифтами;Windows GDI должна предоставить информацию.Я показал, как это сделать правильно в своем ответе на этот вопрос .Вам нужно GetCharABCWidths() для ширины на символ и GetTextMetrics() для высоты.Посмотрите на мой for цикл по formattedString.GetLength (), который вычисляет ширину строки в пикселях.Затем вы можете использовать glRasterPos2d(), чтобы поместить текст в нужное место.

...