기존에 폰트를 렌더링 할 시 baseline을 계산하기 위해 ascender를 계산 한 후 face->glyph->bitmap_top을 이용하여 baseline과 합하여 폰트가 그려질 0,0을 찾았다.

그런데 이것이 일정 크기가 넘어가면 baseline이 안맞는 현상이 발생했다.

조사해보니 bitmap_top이 문제였다. 이 값이 계속 0이 나와서 매뉴얼을 다시 뒤져보니..

이 값은 FT_GLYPH_FORMAT_BITMAP일 때만 유효하다더라..

즉.. 일정 크기가 넘어가면 트루타입 폰트는 스케일이 가능한 FT_GLYPH_FORMAT_OUTLINE으로 리턴을 한다. 따라서 bitmap_top을 이용해서는 안되고..

face->glyph->metrics.horiBearingY를 이용하여야 한다. 이 값은 FT_GLYPH_FORMAT_BITMAP일 때도 유효하니 무조건 이거만 써도 무방하다. 이 값을 픽셀값으로 변환할려면 64로 나누어야한다.

ps. freetype 튜토리얼 개나 주세요.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/05/14 17:51 2009/05/14 17:51

트랙백 주소 :: http://dcple.com/blog/trackback/585

댓글을 달아 주세요

[로그인][오픈아이디란?]