기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

 

이제 리눅스를 배울러고 하는 리눅스 초짜입니다.

 

현재 커널 3.4에 directfb를 올려 공부를 하고 있습니다.

 

그런데 directfb에서 TTF를 올리고 화면에 뿌리는것까지는 했는데 폰트 outline 처리가 되지 않아서 이렇게 문의 드립니다.

 

Core:  Corretex-A7

OS: Linux 3.4

DirectFB: 1.414 (1.45로도 해봤습니다. )

 

  font_dsc.flags = DFDESC_HEIGHT|DFDESC_OUTLINE_WIDTH|DFDESC_OUTLINE_OPACITY|DFDESC_ATTRIBUTES;
  font_dsc.height = Font_size;
  font_dsc.outline_width=8;
  font_dsc.outline_opacity=8;
  font_dsc.attributes=DFFA_OUTLINED;

 

DFBCHECK (dfb->CreateFont (dfb, "./decker.ttf", &font_dsc, &font)); 

DFBCHECK (primary->SetFont (primary, font));
DFBCHECK (font->GetStringWidth (font, text, -1, &width));
DFBCHECK (primary->SetColor (primary, GET_COLOR(color)));
DFBCHECK (primary->DrawString (primary, text, -1, x_pos, y_pos, DSTF_LEFT|DSTF_OUTLINE));

 

이렇게 작성르 하고 컴파일 후 실행을 해보면

 

(#) DirectFBError [primary->DrawString (primary, text, -1, x_pos, y_pos, DSTF_LEFT|DSTF_OUTLINE)]: Not supported!

라고 에러가 발생 합니다.

 

DSTF_OUTLINE 옵션을 주지 않고 컴파일 후 실행을 해보면 화면에 정상적으로 폰트가 Display가 되어지구요.

 

도대체 제가 무엇을 잘못했는지 몇일을 방황하다가 끝내 이렇게 선배님들의 도움을 요청 드립니다.

 

directfb 1.45버젼으로 돌려봐도 동일한 에러 메세지가 발생합니다.

 

또한 헤더 파일을 살펴 보면 DSTF_OUTLINE의 코멘트에 아래와 같이 작성이 되어 있는데..

 

DSTF_OUTLINE        = 0x00000010,  /* enables outline rendering if loaded font supports it */

폰트의 아웃라인이 지원되는 폰트가 따로 있는지요?

 

제가 아는 ttf 폰트에는 아웃라인이 별도로 존재 하지 않는것으로 알고 있는데 폰트를 ttf가 아닌 다른 폰트를 사용하여야

 

하는지 당췌 이해가 가지 않습니다. ㅜㅜ

 

선배님들의 가르침 부탁 드립니다.

 

즐거운 하루 되세요.


고도리

2014.12.07 02:09:24
*.200.239.210

해당옵션이 동작하지 않는다는 의미일 듯 한데,


현재의 directFB가 사용하는 freetype version을 확인해 보시기 바랍니다.

저도 폰트 처리는 해본지 오래되어서 가물하긴 합니다만, outline은 directfb engine에서

처리하는게 아닌가 싶습니다.

프리챌

2014.12.18 02:52:25
*.38.77.5

아..Freetype은 그대로 두고 DirectFB1.6 버젼으로 업데이트 시키니되네요. 고도리님 답변 감사합니다. ^^

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인