다음을 통해 공유


XSAPI C 개요

2018 6월 C API 계층이 XSAPI에 추가되었습니다. API 계층은 C++ 및 WinRT API에서 발생하는 몇 가지 문제를 해결합니다.

참고:
현재 C API는 GDK 및 XDK를 사용하는 타이틀에서만 작동합니다. UWP 게임은 현재 지원하지 않습니다.

XSAPI용 C API의 장점

  • XSAPI 호출 시 타이틀이 메모리 할당을 관리할 수 있습니다.
  • XSAPI 호출 시 타이틀이 스레드 처리를 완전히 제어할 수 있습니다.
  • 게임 개발자를 위해 설계된 새로운 HTTP 라이브러리인 libHttpClient를 사용합니다.

C API를 C++ XSAPI와 함께 사용할 수 있지만, 앞에 나온 C++ API의 장점은 이용할 수 없습니다.

메모리 할당 관리

C API를 이용하면 XSAPI가 메모리를 할당할 때마다 호출하는 함수 콜백을 지정할 수 있습니다. 함수 콜백을 지정하지 않으면, XSAPI는 표준 메모리 할당 루틴을 사용합니다.

메모리 루틴을 수동으로 지정하려면 다음을 수행하세요.

  • 게임을 시작할 때:
    • XblMemSetFunctions(memAllocFunc, memFreeFunc)를 호출해, 메모리를 할당하고 해제하는 할당 콜백을 지정합니다.
    • XblInitialize()를 호출해 라이브러리 인스턴스를 초기화합니다.
  • 게임을 실행 중일 때:
    • XSAPI에서 메모리를 할당하거나 해제하는 새로운 C API를 호출하면, 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 참조

REST API 참조

HttpClient 참조