Post Lists

2019년 1월 14일 월요일

DirectX Tutorial Lesson 4 : Going Fullscreen

http://www.directxtutorial.com/Lesson.aspx?lessonid=11-4-4

Lesson Overview
너의 게임을 풀스크린으로 만드는 것은 쉽지만, 그 프로그램의 몇 가지 세부사항을 바꾸는 것을 요구한다. 뿐만 아니라 몇 가지 코드 라인도 추가해야 한다.

이 강의에서, 우리는 두 가지 것을 다룰 것이다. 첫 번째로, 우리는 너의 screen resolution을 globalize할 것이고, 왜 너가 이것을 해야하는지를 다룰 것이다. 두 번째로, 우리는 widnow를 fullscreen mode로 가게하거나 되돌리는 것의 방법을 다룰 것이다.

~~~~~~~~~~

Changing to Fullscreen Mode
거의 대부분 모든 게임들이 풀스크린 모드로 플레이 되고 있고, 많은 게임들은 풀스크린과 윈도우 모드 사이를 전환하는 능력을 포함한다. 우리가 기본적으로 풀스크린을 원할지라도, 우리는 또한 사용자가 쉽게 전환하는 능력을 갖게 하길 원한다. 이것은 항상 Alt-Enter 키를 사용하여 된다.

풀 스크린으로 업그레이드 할 때, 우리가 할 필요가 있는 몇 가지것 이 있다:


  1. 그 window가 어떠한 background도 갖지 않도록 수정해라
  2. 그 back buffer의 구체적 사이즈를 설정해라
  3. DirectX가 자동으로 Alt-Enter가 사용될 때 전환되도록 설정해라
  4. CleanD3D() 함수가 종료될 때 fullscreen을 끄도록 수정해라.
1. Modify the window to have no background.
그 윈도우 background를 제거하기 위해, 우리가 할 필요가 있는 모든 것은 그 WINDOWCLASSEX 구조체의 멤버 중 하나를 주석 처리하는 것이다. 그것은 background color를 설정하는데 사용된다. 이것을 하는 것은 그 background color가 손 닿지 않도록 만든다. 그리고 이것은 그것이 게임이 시작하기전에 1~2초 동안 윈도우로서 보이지 않게 만들 것이다.

2. Set the back buffer to a specific size
다음으로, 우리는 DirectX에게 우리의 새로운 스크린 해상도를 말해야 한다. 우리는 우리가 지난 강의에서 구성한 scd struct에 몇 가지 변화를 해서 이것을 한다.

3. Set DirectX to automatically switch when Alt-Enter is used.
이 단계는 꽤 간단하다. 우리가 할 필요가 있는 모든 것은 그 scd struct에 flag를 추가하는 것이다. 그 나머지는 우리를 위해 처리된다. 우리는 DXGI_SWAP_CHAIN_DESC의 Flags 멤버에 이 flag를 넣을 수 있다.

4. Modify the CleanD3D() function tu turn off fullscreen when closing.
Direct3D는 실제로 fullscreen mode일 때 닫을 수 없다. 이것은 scenes 뒤에 발생하는 어떤 쓰레딩 문제에 의한 것이다. 정확히 종료하기 위해서, 우리는 windowed mode에 있도록 해야만 한다. 우리는 이것을 위해 SetFullscreenState()를 사용할 수 있다. 여기에 그 새로운 ClearD3D() 함수가 다음처럼 보이는 것이 있다:


~~

















댓글 없음:

댓글 쓰기