정상적인 코드를 만들어놓고 이상하게 안된다 싶었는데 FTGL이 폰트를 조금 가리네요.

윈도우에 기본으로 있는 굴림.ttc 로 바꾸니 해결되었습니다.

 

이전 포스팅에 이어 제대로 세팅하고 코딩했는데도 한글이 깨질때 생각해 볼 수 있는 문제점.

 

1. 폰트

 - 이전에 쓰던 무료배포 폰트에서c:\Windows\Fonts 폴더에 있던 기본 폰트로 교환하자 최종적으로 제대로 된 한글이 출력되었습니다. 다른 문제점이 더이상 보이지 않는데도 한글이 안나오실땐 폰트를 바꿔보시길 추천해 드립니다.

 

2. 동적할당

 - FTFont형 포인터를 new로 생성하실때, FTFont를 상속하는 여러가지 클래스로 생성이 가능한데요, 제 경우 FTPixmapFont 외에는 한글 출력에 문제가 조금 있었습니다. 저 개인의 문제인지 아님 원래 이런건지는 모르겠지만 입체로 출력하실게 아니라면 FTPixmapFont(폰트경로) 로 생성해보시기 바랍니다.

 

3. 출력 문자열

 - 그냥 캐릭터배열로 쓰면 안되더라구요. 아마 FTGL 검색하셔서 레퍼런스를 많이 훑어보신 분들이면 다들 아시겠지만서도^^;;

저는 MultiByteToWideChar()를 이용해 멀티바이트를 와이드캐릭터로 변환하여 출력했습니다.

 

 Application.h

...

 

#define FONT_FILE "C:\\Windows\\Fonts\\gulim.ttc"

 

 ...

 

public:

  char m_strMsg[256];

  FTFont* m_String;
  wchar_t* m_wszString;

...

 


 Application.cpp

 ...

  // glInit() 함수 내부.. 사실 어디있든 별 상관은 없음;;

  m_String = new FTPixmapFont(FONT_FILE);

  m_wszString = new wchar_t[260];

 

...

 

  // DrawGLScene() 함수 내부

 

  strcpy(m_strMsg,"한글 나와라 뿅!!");

  int nLen = MultiByteToWideChar(0, 0, m_strMsg, -1, NULL, NULL);
  MultiByteToWideChar(0, 0, m_strMsg, -1, m_wszString, nLen)

 

  m_String->FaceSize(20);
  glColor4f(1.0, 1.0, 1.0, 1);
  glRasterPos3f( 0.0, 0.0, 0.12f );
  m_String->Render(m_wszString );

 

...

 

 

진작에 제대로 돌아가는 소스코드는 다 만들어놓고 폰트파일이 병맛일꺼라곤 생각도 못했습니다 =ㅂ= ;;

저처럼 바보같은 실수 안하시길 빕니다 여러분ㅎㅎ;;