ID3D10Font로 문자열을 출력하려니 되긴 되는데 3D 도형이 안 그려지는 경우를 만나게 되었다.

 

폰트를 그리게 되면 이전까지의 장치 상태를 덮어쓰기 때문에 이전에 계산한(렌더한) 도형 등은 보여지지 못하게 된다고 한다.

따라서 DX10에서 폰트를 출력할 때는 Sprite의 Begin함수에 인자로 상태를 저장하라는 메시지를 전해줘야한다.

설명할 때 필요한 최소한의 변수들.

위와 같이 폰트 관련 설정을 초기화해줘야 함. DX9와의 차이점은 D3DX10CreateSprite를 이용해서 폰트 전용 Sprite를 가지고 있어야 한다는거…

그리고 아래와 같이 텍스트를 출력하면 된다.

아래는 실행 결과 ㅎㅅㅎ

DX10[참고 사이트]

  • StackOverflow. “DirectX 10 Draw Text to texture”. [Link]
  • XBOX forum. “DirectX 10 2D text issue”. [Link]
  • StackOverflow. “DirectX 10 3D scene disappears with 2D drawing”. [Link]

One thought on “[DirectX 10] DirectX 10에서 텍스트 제대로 출력하기

  1. 참고로 ID3DXFONT 계열은 DirectX 11에서 없어졌슴당… 폰트를 직접 이미지 스프라이트로 만들어서 출력하는 방법밖에 없어보이네요 ㅠ

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.