私はOpenGLのためのシンプルなビットマップフォントレンダラーを書いています。私はUnicodeも同様にレンダリングしたいと思います。しかし、多くのフォントでは、一部の文字が欠けており、四角形としてレンダリングされています。これらは結果的に私のテクスチャの空間を無駄にし、それらを取り除きたいのです。特定の文字を特定のフォントを使用して豆腐の四角形としてレンダリングするかどうかを検出するWinAPI関数はありますか?私はGDIを使用していWindowsでは、Unicode文字が正方形(tofu)としてレンダリングされるかどうかを検出する方法はありますか?
、私はCreateFontIndirect
を使用してフォントを取得し、ExtTextOutW
を使用してグリフの描画、その後、CreateDIBSection
を使用してオフスクリーンビットマップを作ります。
これまでのところ、私は豆腐をラスタライズされた形で(ピクセルを比較して)検出することを考えていましたが、それはあまり良くないと思います。また、私は、 "テンプレート"を比較するために、与えられたフォントにはない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