본문 바로가기
게임/추가 정보

XInput과 DirectInput

by 사과향잉크 2018. 10. 16.


Xinput(엑스인풋, 이하 X)과 DirectInput(다이렉트인풋, 이하 D)은 무엇이 다른가?

나온지 너무 오래된 물건이다 보니 잘 설명한 글이 있겠지만 마이크로소프트의 윈도우 개발자 센터에도 내용이 있어 옮겨봅니다. 

2018년 5월 31일에 올라온 글입니다.


설명에 따르면 X는 응용프로그램이 윈도우용 엑스박스 360 컨트롤러에서 입력을 받을 수 있게 하는 API입니다.

X는 엑스박스 360과 윈도우 XP 서비스팩 1 이상, 윈도우 비스타의 새로운 입력 표준 방식이죠.

D는 이전까지 쓰인, 조이스틱 등의 컨트롤러의 데이터를 처리하는 API입니다.

D는 레거시로 사용을 권장하지 않으며 윈도우 스토어에서는 사용할 수 없습니다.


D 대비 X의 장점은 다음과 같습니다.

- 사용이 쉽고 설정할 게 적다.

- 엑스박스 360과 윈도우에서 같은 API를 사용하므로 플랫폼 사이의 프로그래밍이 쉽다.

- X 사용 기기는 X API를 사용해야만 진동이 된다.

- 스티어링 휠 등 향후 엑스박스 콘솔용으로 출시된 컨트롤러는 윈도우에서도 작동한다.


X는 D와 같이 사용할 수 있지만 D로 사용할 경우 몇 가지 기능을 지원하지 않습니다.

- 왼쪽, 오른쪽 트리거 버튼(L2, R2)이 트리거로 작동하는 게 아니라 그냥 하나의 버튼으로 작동한다.

- 진동 불가

- 헤드셋 장치 기능 사용 불가


현재 엑스박스 컨트롤러는 X만 지원하며 소니나 닌텐도의 컨트롤러는 D만 지원합니다. 경쟁사의 API라 그런 것 같네요.

그래서 개인이 소니, 닌텐도의 컨트롤러를 X로 쓸 수 있게 바꾸는 프로그램을 만들고는 합니다.

그 외의 서드파티 컨트롤러들은 특정 콘솔용이 아니라면 대부분 D, X 전부 지원합니다.

댓글