【发布时间】:2014-09-07 17:29:55
【问题描述】:
我想使用 TrueType 字体使用 OpenGL 在屏幕上绘制一些字符串。但是当我尝试渲染它们时出现了问题。
字体大小和位置不正确。并且参数似乎没有被使用。
这是我使用 OpenGL 渲染的窗口:
这些是我的代码:
调用 CreateFont 函数。
hFont = CreateFont(10, 0, 0, 0, FW_LIGHT, 0, 0, 0, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_LH_ANGLES, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, L"Consolas");
glBindTexture(GL_TEXTURE_2D, NULL);
glColor3f(0.1f, 0.45f, 0.75f);
我希望它在 (0, 0) 位置呈现。
glRasterPos2f(0, 0);
一些变量。
int length = lstrlen(text);
if (length < 1)
return;
HDC hDC = wglGetCurrentDC();
GLYPHMETRICSFLOAT metric[1];
DWORD dwchar;
int list;
绘制每种字体。
SelectObject(hDC, hFont);
for (int i = 0; i < length; i++)
{
dwchar = text[i];
list = glGenLists(1);
wglUseFontOutlines(hDC, dwchar, 1, list, 0.01f, 0.0f, WGL_FONT_POLYGONS, metric);
glCallList(list);
glDeleteLists(list, 1);
}
glListBase(list);
DeleteObject(hFont);
接下来我该怎么做?一切似乎都很好。
【问题讨论】: