다음을 통해 공유


GameInput API 버전 관리

참고 항목

Xbox용으로 개발하는 경우 버전 v.0은 본체에서 사용할 수 있는 유일한 버전이며 GDK 설치 관리자에 포함되어 있습니다. GameInput v.1 및 v.2 API는 현재 PC 전용이며 Microsoft.GameInput NuGet 패키지를 통해 배포됩니다.

GameInput은 새로운 기능이 추가되고 불필요한 기능이 제거됨에 따라 시간이 지남에 따라 계속 진화하는 살아있는 API입니다. GameInput의 최신 버전은 공식 NuGet 패키지에서 찾을 수 있습니다. 이 패키지에는 항상 타이틀에 포함할 최신 GameInput 헤더, 이진 파일 및 재배포 가능 패키지가 포함됩니다.

최신 버전의 GameInput으로 업그레이드하는 것은 빠르고 고통이 없도록 설계되었습니다. 또한 최신 GameInput 헤더에 설명된 API에 관계없이 이전 버전의 GameInput에 대해 컴파일된 애플리케이션에 대해 이진 및 기능 호환성이 유지됩니다. 이 모델에서 제공된 게임은 GameInput의 향상된 기능을 즐길 수 있으며, 필요한 경우 새로운 기능을 활용하기 위해 최신 버전의 GameInput으로 전환할 수 있습니다.

런타임 및 API 버전 업그레이드

GameInput의 다른 버전에는 비슷한 이름과 메서드가 있지만 고유한 네임스페이스(예: GameInput::v1)에서 정의되는 다른 UUID 및 (GameInput API v.1부터)로 명확하게 버전이 지정됩니다. 이러한 인터페이스는 GameInput의 동일한 기본 개체에 의해 구현되며, QueryInterface 를 사용하여 버전 간에 전환할 수 있으므로 원하는 경우 게임에서 API 사용량을 혼합할 수 있습니다.

API가 전역 네임스페이스에 정의된 GameInput v.0에서 업그레이드하는 경우 문을 추가 using namespace GameInput::v1 하면 v.1 API 채택을 위해 업데이트해야 하는 GameInput 호출 사이트 수를 줄이는 데 도움이 될 수 있습니다.

런타임 버전 검사 외에도 프로세서 정의를 확인하여 조건부 컴파일이 GAMEINPUT_API_VERSION 가능합니다. 이 정의는 현재 사용 중인 GameInput API 버전과 GameInput 주 버전에 해당합니다. v.0 API는 이 정의를 제공하지 않았으므로 이 버전을 조건부로 테스트하려는 경우 GameInput 헤더가 포함된 후 다음 코드 조각을 추가할 수 있습니다.

#ifndef GAMEINPUT_API_VERSION
#define GAMEINPUT_API_VERSION 0
#endif

런타임만 업그레이드

GameInput을 사용하면 API 사용량을 강제로 업데이트하지 않고도 최신 버그픽스를 가져올 수 있습니다. 이렇게 하려면 최신 Microsoft.GameInput NuGet 패키지에 번들로 제공되는 GameInput 재배포 가능 패키지를 설치하기만 하면됩니다. GameInput은 이전 버전의 API와 호환되는 이진 상태로 유지되므로 새 런타임과 함께 기존 헤더를 계속 사용할 수 있습니다. 테스트 환경의 기능이 프로덕션과 일치하도록 타이틀과 최신 GameInput 이진 파일을 재배포해야 합니다.

참고 항목

GameInput NuGet 패키지