0
我繼承了一個代碼,其中作者使用FreeType和OpenGL打印一些文本(不一定是等寬字體)。如何在FreeType中獲取文本寬度?
我需要計算打印的文本寬度,以便我可以正確對齊它。
這是他寫的代碼:
freetype::font_data font;
font.init(fontPath.c_str(), fontSize);
freetype::print(font, x, y, "%s", str.c_str());
Here是FreeType的源與print
功能。
我想不出任何辦法通過修改print
函數來獲取文本的寬度,我試圖編輯字體的init
功能(也提到文件)返回face->glyph->metrics.width
但有一個例外,說face->glyph
爲空。但我認爲我甚至不應該試圖編輯圖書館的來源。
由於我不知道如何獲得文本寬度,我正在考慮以某種方式打印文本,獲得打印內容的寬度以及打印內容的寬度。任何想法可能?
從我記憶中,你走在正確的軌道上。你必須打印文本,你可以使用一個屏幕緩衝區。應該有辦法以像素爲單位獲取打印的寬度。 – Jay