我正在爲OpenGL編寫一個簡單的位圖字體渲染器,我也想渲染一些Unicode。但是,在許多字體中,某些字符丟失並呈現爲正方形。這些因此浪費了我紋理的空間,我想擺脫它們。是否有WinAPI函數來檢測某個字符是否會以某種字體呈現爲豆腐廣場?在Windows中,如何檢測Unicode字符是否呈現爲方形(豆腐)?
我使用GDI,我讓使用CreateDIBSection
一個屏幕外的位圖,然後用CreateFontIndirect
得到字體和使用ExtTextOutW
呈現字形。
到目前爲止,我正在考慮檢測光柵化形式的豆腐(通過比較像素)哪種作品,但我猜這不是很好。它還要求我獲得某些Unicode字符,以確保給定的字體沒有,以便獲得「模板」進行比較。我想我早晚會遇到麻煩。
問[GetFontUnicodeRanges()](https://msdn.microsoft.com/en-us/library/windows/desktop/dd144887(v = vs.85).aspx)? –
@AlexK。它支持非BMP字符嗎? 'WCRANGE'結構不會爲代理對保留... – andlabs
你如何準備紋理? GDI? GDI +? DirectWrite的?手動處理TTF/OTF文件? – andlabs