DirectInput DirectInput 의 개요   [목차열람] [주소복사] [슬롯비우기]
DirectInput 의 개요
 
Microsoft DirectX 9.0

DirectInput 의 개요


Microsoft® DirectInput® 는, 마우스, 키보드, 조이스틱, 및 그 외의 게임 콘트롤러의 입력 장치에 가세해 force feedback (입출력) 장치도 지원 하는 애플리케이션 프로그래밍 인터페이스 (API)이다.

이 주제에서는, DirectInput 의 기능과 애플리케이션에서의 설정 방법법에 대해, 간단한 개요를 설명한다. 이하의 설명이 포함된다.

DirectInput 의 기능의 종합적인 설명에 대해서는, 「DirectInput 에 대하며」를 참조할것.

DirectInput API 의 사용법을 스텝바이스텝 방식에서 설명하는 가이드에 대해서는, 다음 주제를 참조할것.

DirectInput 의 파워

DirectInput 는, Microsoft Win32®  API 가 지원 하고 있지 않는 장치에 새로운 서비스를 제공하는 것에 가세해 Microsoft Windows® 메시지에 의존하지 않고 하드웨어 드라이버와 직접 통신하는 것으로써, 입력 데이터에의 액세스를 고속화하고 있다.

DirectInput 를 사용하면 애플리케이션이 백그라운드에 있는 경우에서도, 입력 장치에 대한 액세스권을 취득할 수 있다. 또, force feedback외, 모든 타입의 입력 장치를 완전하게 지원 하고 있다.

액션 맵을 개입시켜, 애플리케이션은, 데이터가 어떤 장치로 생성되었는지를 몰라도, 입력 데이터를 취득할 수 있다.

DirectInput 의 확장 서비스와 성능의 개선에 의해, DirectInput 는, Windows 로 동작하는 게임, 시뮬레이션, 및 그 외의 리얼타임 대화형 애플리케이션에 대한 유용한 툴이 되고 있다.

DirectInput 에서는, 텍스트 입력에 키보드를 사용하거나 이동에 마우스를 사용하는 애플리케이션이 유리하게 될 것은 없다. 더 자세한 정보는, 「Windows 와의 상호작용」을 참조할것.

DirectInput 의 기초지식

여기에서는, 단순한 애플리케이션에서의 DirectInput 의 설정 방법법과 사용법의 개요를 설명한다.

이러한 순서의 상세와 예에 대해서는, 「DirectInput 의 사용법」 및 「DirectInput C/C++ 튜토리얼」을 참조할것.

   DirectInput 를 이해하려면 , 이하의 용어를 이해할 필요가 있다.

이하의 순서는, 애플리케이션에 대해, 어느 장치 개체 (버튼, 축등)가 데이터 항목을 생성했는지를 확인하기 위한 DirectInput 의 단순한 처리을 나타내고 있다.

  1. DirectInput 개체를 생성 한다. 이 개체의 메서드를 사용해 장치를 열거해, DirectInput 장치 개체를 생성 한다.
  2. 장치를 열거한다. 시스템 마우스 또는 키보드만을 사용하는 경우는, 이 순서는 반드시 필요하지 않다. 사용자의 시스템상에서 그 밖에 어떤 입력 장치를 사용할 수 있는지를 확인하려면 , DirectInput 에 장치를 열거시킨다. DirectInput 는, 설정 기준과 일치하는 장치를 찾아낼 때마다, 그 능력을 체크할 수 있다. 또, 그 장치를 나타내는 DirectInput 장치 개체를 생성하기 위한 고유의 식별자도 얻어온다.
  3. 사용하는 장치 마다 DirectInputDevice 개체를 생성 한다. 이것에는, 열거중에 취득된 고유의 식별자가 필요하게 된다. 시스템 마우스 또는 키보드에 대해서는, 표준의 글로벌 일의 식별자 (GUID)를 사용할 수 있다.
  4. 장치를 설정한다. 장치 마다, 우선 협조 레벨을 설정해, 다른 애플리케이션이나 시스템과 그 장치를 공유하는 방법을 지정한다. 또, 데이터 패킷내에서, 버튼이나 축 등 그 장치 개체를 식별하기 위한 데이터 형식을 설정한다. 버퍼링 데이터를 얻어온다 경우 (스테이트는 아니고 이벤트를 얻어온다 경우)는, 버퍼 사이즈도 설정할 필요가 있다. 옵션으로서 이 단계에서 장치에 관한 정보를 취득해, 애플리케이션의 동작을 거기에 응해 조정한다. 또, 조이스틱의 축이 돌려주는 값의 범위등의 프로파테이를 설정할 수도 있다.
  5. 장치를 얻어온다. 이 단계에서, DirectInput 에 대해, 장치로부터 데이터를 받을 준비를 할 수 있던 것을 통지한다.
  6. 데이터를 얻어온다. 일정한 간격으로, 보통은 메시지 루프 또는 렌더링 루프를 1 회 반복할 때마다, 각 장치의 현재 상태나 전회 취득 후에 발생한 이벤트의 기록의 어느쪽이든을 얻어온다. 필요에 따라서, 이벤트가 발생하면 DirectInput 로부터 통지시킬 수도 있다.
  7. 데이터를 처리한다. 애플리케이션은, 버튼이나 축 상태인가, 키가 밀리고 있을까 떼어 놓아지고 있을까 등의 이벤트의 어느 쪽인가에 반응할 수 있다.
  8. DirectInput 를 종료한다. 종료하기 전에, 애플리케이션은 모든 장치의 취득을 해제해 릴리즈 해, DirectInput 개체를 릴리즈 해야 한다.

DirectInput 를 처리 하는 방법은, 이만큼은 아니다. 현재 사용되고 있는지, 또는 향후 사용되는 다양한 입력 장치를 활용해, 사용자의 환경 설정을 간소화하기 위해서, 액션 맵을 사용할 수 있다.

장치에 액션 맵을 설정하는 것으로써, 애플리케이션의 각 액션에 사용하는 장치 개체를 DirectInput 로 결정하게 할 수가 있다. 예를 들어, 레이싱 게임에서, 스롯톨이 항상 y 축으로야는 제어되도록(듯이) 지정하는 대신에, AXIS_THROTTLE 라고 하는 액션을 생성 해, 장치상에서 가장 적절한 축으로 DirectInput 가 액션을 할당하도록 할 수 있다. 이벤트를 취득했을 때는, 그 이벤트를 생성한 장치 개체는 아니고, 그 이벤트에 관련지을 수 있는 액션에 의해 이벤트를 식별한다.

더 자세한 정보는, 「액션 맵」을 참조할것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP