Inicializar o Gaming Runtime Services
As XSAPIs dependem do Gaming Runtime Services (GRTS). Antes de chamar qualquer XSAPI, inicialize o GRTS, conforme mostrado a seguir.Criar um XTaskQueue (opcional)
A maioria das XSAPIs são APIs assíncronas e exigem o uso de uma fila de tarefas. Trata-se de uma API para enfileirar trabalho e os callbacks de conclusão de tarefas. Para saber mais sobre oXTaskQueue e os diferentes modos de despacho, consulte Design da fila de tarefas assíncronas.
Por exemplo, o código a seguir cria uma fila de tarefas usando um pool de threads do sistema.
nullptr quando um identificador de fila for necessário. Quando nullptr é usado, o sistema de tarefas usa ThreadPool por padrão. Isso pode ser substituído chamando XTaskQueueSetCurrentProcessTaskQueue.
Configurar o rastreamento do HttpClient (opcional)
Para ver informações adicionais de depuração em tempo de execução, configure a funcionalidade de rastreamento doHttpClient.
O código a seguir define o nível de rastreamento do HttpClient e habilita a saída de informações para o depurador.
Inicializar a XSAPI
Inicialize a XSAPI antes de chamar qualquer XSAPI.Conectar o usuário à rede XBOX
A maioria das XSAPIs exige que o usuário primeiro entre na rede XBOX. Para conectar um usuário à rede XBOX, consulte o exemplo de código da API XUserAddAsync.Criar um objeto XboxLiveContext
Um objetoXboxLiveContext representa o contexto de serviço associado a um usuário específico.
A maioria das XSAPIs exige que você passe um XboxLiveContextHandle que representa o contexto do usuário chamador.
Para criar um contexto do XBOX Live (rede), use a API XblContextCreateHandle e passe o objeto XUserHandle obtido na etapa anterior.
Fazer uma chamada de serviço aos serviços do XBOX
Agora que você tem um objetoXboxLiveContext associado ao objeto XUserHandle do usuário que entrou, pode fazer chamadas de serviço aos serviços do XBOX.
Por exemplo, para recuperar a lista de amigos do usuário, você pode fazer o seguinte:
Limpando a XSAPI
Não é necessário chamarXblCleanupAsync() em nenhum cenário.
Em um cenário de encerramento do aplicativo, no momento não há uma API síncrona XblCleanup() que você possa chamar. O encerramento do aplicativo, pela natureza do seu ciclo de vida, precisa ser tratado de forma síncrona e imediata. Como resultado, conta-se com a limpeza normal no nível do SO — que ocorre com o encerramento do processo do aplicativo —, que é suficiente para essa situação.
Em um cenário em que o aplicativo é suspenso, a XSAPI trata da liberação e, em seguida, da restauração dos recursos do sistema necessários para a operação, a fim de manter a funcionalidade após a retomada.
XblCleanupAsync() ainda pode ser usada nos casos em que seu jogo opta por liberar deliberadamente os recursos alocados para a XSAPI.