作者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)
推 Bencrie:C++的話看你要不要用 FTGL,用 texture 畫效能比較好 02/29 16:56
→ Bencrie:純 C 又跨平台的話可以用 pango 把字串畫到 pixmap 02/29 16:57
→ Bencrie: pango-cairo 02/29 16:58
→ Bencrie:個人推pango-cairo 的原因是它支援 pango markup 樣式 XD 02/29 16:59
推 Bencrie:不過在 Windows 上用的話 dependency 應該會肥不少 02/29 17:02