私は、FreeTypeとOpenGLを使用して、著者が何らかのテキスト(モノスペースフォントである必要はない)を印刷するコードを継承しました。FreeTypeでテキストの幅を取得する方法は?
私はそれを正しく整列させるために、印刷されたテキストの幅を計算する必要があります。ここで
は、彼が書いたコードです:
freetype::font_data font;
font.init(fontPath.c_str(), fontSize);
freetype::print(font, x, y, "%s", str.c_str());
Hereはprint
機能付きFreeTypeの源です。
私はprint
機能を変更することで、テキストの幅を取得する方法を考えることができませんでしたし、私はface->glyph->metrics.width
を返すために(も言及したファイル内の)編集フォントのinit
機能を試してみましたが、face->glyph
がnullであるという例外がありました。しかし、私は、図書館のソースを編集しようとするべきではないと思う。
テキスト幅を取得する方法がわからないので、テキストを印刷し、印刷されたものの幅を取得して、何かを印刷することを検討しています。それについてのアイデアは?
私が覚えていることから、あなたは正しい方向にあります。テキストを印刷する必要があります。これにはオフスクリーンバッファを使用できます。プリントの幅をピクセル単位で取得する方法があるはずです。 – Jay