gxLib에서 폰트 처리가 매끄럽지 못해 버전업했습니다. 폰트를 하나 사용했을 때에는 문제없는데, 여러 개의 폰트를 사용하면 새로 지정한 폰트가 적용이 안 되는 문제가 있습니다.

다운로드gxlib_0.5.5.tar.gz         3MB

아래의 화면은 서로 다른 모양의 폰트를 이용하여 문자열을 출력했지만, 모두 같은 폰트로 출력되었습니다. 이는 폰트를 지정하고 문자열을 출력하면, 출력되는 각 문자에 대해 화면에 출력할 이미지를 만들게 되는데, 만들어진 이미지는 다음에 사용할 수 있도록 캐시 변수에 저장됩니다. 그리고 다음 문자열을 출력할 때, 이미 만들어 놓은 이미지가 있다면, 폰트가 변경되었더라도 이전에 만들어진 이미지를 사용하게 되어 변경된 폰트 설정이 적용되지 않게 됩니다.

출력하지 않은 문자열을 출력해 보겠습니다. 보시면 이전 폰트로 만들어지지 않은 새로운 문자열 "포럼" 글자만 새로 지정한 포트로 출력되었습니다.

이렇게 이미 출력된 문자에 대한 이미지는 gxbdf.c 내용 중에 bdfFontCache gx_fontcache; 변수에 저장됩니다. 새로 업그레이드된 gxLib는 폰트를 지정하면 캐시를 초기화하여 새로 지정된 폰트로 문자열이 출력될 수 있도록 했습니다.

아울러 폰트 지정을 Device Context에서 폰트 핸들을 지정하는 방법에서 gxSetFont() 함수를 추가하여 폰트 이름만 넘겨 주면 폰트가 변경되고 지정이 되도록 수정했습니다.

   gxSetFont( "gulim.bdf");
   gxTextOut( dc, 0 ,  20, "안녕하세요. 여기는 Falinux Forum 입니다."  );

폰트를 여러 개 사용하신다면 꼭, 최신 버전으로 업그레이드하세요. ^^