我使用FreeType2進行字體渲染,並且我需要爲所有字體獲取全局邊界框,以便我可以將它們對齊到一個漂亮的網格中。我叫FT_Set_Char_Size
接着用FreeType2:以像素爲單位獲取全局字體邊界框?
int pixels_x = ::FT_MulFix((face->bbox.xMax - face->bbox.xMin), face->size->metrics.x_scale);
int pixels_y = ::FT_MulFix((face->bbox.yMax - face->bbOx.yMin), face->size->metrics.y_scale);
return Size (pixels_x/64, pixels_y/64);
其中工程提取了全球範圍,但它是相當多的過大。我也試圖計算使用雙打(as described in the FreeType2 tutorial),但結果幾乎相同。即使只使用也會導致太寬的邊界框。我做的是正確的事,還是隻有一些巨大的字形在我的字體(Arial.ttf在這種情況下?)有什麼辦法來檢查哪個字形被認爲是那麼大?
我不知道哪些字符/要求多少。也就是說,當我初始化網格時,我還沒有渲染任何東西。每個新角色都被添加到網格上的下一個空閒位置。 – Anteru 2011-03-11 14:01:22
一旦檢測到較大的字符,就不可能重新放置已放置的字符? – 2011-03-11 19:32:17
如果屏幕網格開始重新調整,那看起來會很醜陋。 – Anteru 2011-03-12 06:56:10