作者xtxml (赤木巧☠)
看板GameDesign
标题[请益] 有关openGL的文字输出
时间Tue Feb 28 12:00:59 2012
函式大概长这样
void DrawTextW(...){
.....
for(....){
wglUseFontBitmapsW(hDC, w_string[i], 1, list);
glCallList(list);
}
.....
}
//////main.cpp
.......(矩阵转换).....
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glRasterPos2f(0.0f, 0.0f);
DrawTextW(L"繁体字测试");
贴出文字没什麽大问题,但问题在於glRasterPos2f这函数,
给值如果有负数或者大於视野范围,就会整串贴不出来,而非正确的保留部分文字。
换言之,变成文字只能从左下座标0,0贴起,
要做往左跑马灯离开的效果就会失败(整串字瞬间消失,而非跑出)。
我知道这硬一点就用RTT的方式把文字转成texture再偏移座标可以达成,
但碰到宽度大於萤幕宽的字串也不太好处理,
想确认一下是否有更简单的方式可以达成。
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.146.19
※ 编辑: xtxml 来自: 123.194.146.19 (02/28 12:01)
1F:推 Bencrie:C++的话看你要不要用 FTGL,用 texture 画效能比较好 02/29 16:56
2F:→ Bencrie:纯 C 又跨平台的话可以用 pango 把字串画到 pixmap 02/29 16:57
3F:→ Bencrie: pango-cairo 02/29 16:58
4F:→ Bencrie:个人推pango-cairo 的原因是它支援 pango markup 样式 XD 02/29 16:59
5F:推 Bencrie:不过在 Windows 上用的话 dependency 应该会肥不少 02/29 17:02