참고: 현재 C API는 GDK 및 XDK를 사용하는 타이틀에서만 작동합니다. 현재 UWP 게임은 지원하지 않습니다.
XSAPI용 C API의 이점
- 타이틀이 XSAPI 호출 시 메모리 할당을 제어할 수 있도록 합니다.
- 타이틀이 XSAPI 호출 시 스레드 처리를 완전히 제어할 수 있도록 합니다.
- 게임 개발자를 위해 설계된 새로운 HTTP 라이브러리인 libHttpClient를 사용합니다.
메모리 할당 관리
C API를 사용하면 이제 XSAPI가 메모리를 할당하려고 할 때마다 호출할 함수 콜백을 지정할 수 있습니다. 함수 콜백을 지정하지 않으면 XSAPI는 표준 메모리 할당 루틴을 사용합니다. 메모리 루틴을 수동으로 지정하려면 다음을 수행할 수 있습니다.- 게임 시작 시:
- 메모리 할당 및 해제를 위한 할당 콜백을 지정하려면
XblMemSetFunctions(memAllocFunc, memFreeFunc)를 호출합니다. - 라이브러리 인스턴스를 초기화하려면
XblInitialize()를 호출합니다.
- 메모리 할당 및 해제를 위한 할당 콜백을 지정하려면
- 게임 실행 중:
- 메모리를 할당하거나 해제하는 XSAPI의 새 C API 중 하나를 호출하면 XSAPI가 지정된 메모리 처리 콜백을 호출합니다.
- 게임 종료 시:
- XSAPI 라이브러리와 연결된 모든 리소스를 회수하려면
XblCleanup()을 호출합니다. - 게임의 사용자 지정 메모리 관리자를 정리합니다.
- XSAPI 라이브러리와 연결된 모든 리소스를 회수하려면
비동기 스레드 관리
C API는 개발자가 스레드 모델을 완전히 제어할 수 있는 새로운 비동기 스레드 호출 패턴을 도입합니다. 자세한 내용은 XSAPI C 계층 비동기 호출을 위한 호출 패턴을 참조하세요.C XSAPI를 사용하도록 코드 마이그레이션
XSAPI C API는 프로젝트에서 XSAPI C++ API와 함께 사용할 수 있으므로 한 번에 하나씩 기능을 마이그레이션하는 것이 좋습니다. C API와 C++ API는 실제로 공통 코어를 감싸는 얇은 래퍼일 뿐이며, 진입점만 다를 뿐 기능은 변경되지 않습니다. 그러나 사용자 지정 메모리 및 스레드 관리 기능은 C API만 활용할 수 있습니다.중요: XSAPI WinRT API를 C API와 혼용할 수 없습니다.
유용한 리소스
- XSAPI C API를 사용하는 샘플
- libHttpClient GitHub 리포지토리
- C API를 보려면 XSAPI C 헤더 파일을 참조하세요. 이는 GDK의 일부인 XBOX 서비스 SDK에 있습니다.
