글꼴 렌더링에 FreeType2를 사용하고 있으며 모든 글꼴에 대해 전역 경계 상자를 가져와 멋진 격자에 정렬 할 수 있어야합니다. 나는 작동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);
를 사용하여 글로벌 경계를 추출하여 다음 FT_Set_Char_Size
를 호출하지만 꽤 너무 큰입니다. 나는 double (as described in the FreeType2 tutorial)을 사용하여 계산하려고 시도했지만 결과는 거의 동일합니다. 심지어 face->bbox.xMax
을 사용하더라도 너무 큰 경계 상자가 생깁니다. 나는 옳은 일을하고 있는가, 아니면 단순히 내 글꼴 (Arial.ttf이 경우?)에 거대한 글리프가 있는가? 어떤 글리프가 그렇게 크지 않은지 확인하는 방법은 무엇입니까?
요청할 문자/개수를 알 수 없습니다. 즉, 그리드를 초기화 할 때 아직 렌더링 된 것이 없습니다. 각각의 새 문자는 그리드의 다음 빈 위치에 추가됩니다. – Anteru
더 큰 문자를 감지하면 이미 배치 된 문자를 다시 배치 할 수 없습니까? –
화면 격자가 재조정을 시작하면 추한 것처럼 보일 것입니다. – Anteru