Documentação do Steamworks
Capturas de tela no Steam

Visão geral

O Painel Steam permite que a tela seja capturada em qualquer jogo iniciado pelo Steam e o Steamworks oferece um conjunto de APIs para interagir com esse sistema. A API de capturas de tela do Steamworks permite que faça capturas de tela e adicione-as à biblioteca local de capturas do usuário com metadados adicionais, como o nome de uma localização do jogo ou os usuários que aparecem na mesma.
AVISO: O painel Steam deve estar ativado no jogo para que o sistema de capturas de tela esteja disponível.

Usuários podem pressionar um atalho controlado pelo Steam (padrão: F12) para capturar a tela.

O usuário pode alterar o atalho e outras configurações de captura, usadas em todos os jogos iniciados pelo Steam, acessando as Configurações/Preferências -> Em jogo.

screenshot_hotkey.png

Gerenciador de capturas de tela

Ao encerrar um jogo, o gerenciador de capturas de tela será aberto com todas as telas capturadas durante a última sessão. Usuários podem desativar esse comportamento por meio das Configurações/Preferências -> Nuvem e desativar a opção "Abrir o gerenciador de capturas de tela depois de fechar um jogo com novas capturas".

screenshot_uploader.png

O gerenciador de capturas de tela também pode acessado a qualquer momento no cliente Steam pelo menu Exibição -> Capturas de tela ou ou na seção "Capturas de tela" no painel Steam.

Se o usuário enviar capturas de tela à Comunidade Steam, elas poderão ser vistas no perfil do usuário e na Central da Comunidade do jogo.

API de capturas de tela do Steam

O SDK do Steamworks oferece acesso à API ISteamScreenshots e permite acesso a recursos avançados e integração do sistema de capturas de tela ao jogo para aprimorar a experiência dos seus usuários.

Por padrão, o Steam cuidará da captura da tela, mas é possível tomar o controle por meio da função ISteamScreenshots::HookScreenshots. Nesse caso, um retorno de chamada ScreenshotRequested_t será disparado sempre que o usuário pressionar o atalho de captura. É possível verificar se está no controle da captura por meio da função ISteamScreenshots::IsScreenshotsHooked.

Independentemente de quem está no controle da captura, um retorno de chamada ScreenshotReady_t será disparado sempre que uma captura for salva em disco. Depois desse retorno de chamada, você deve verificar o resultado. Se bem-sucedido, use o handle ScreenshotHandle retornado para definir marcadores em conjunto com as funções:

Se quiser capturar a tela com um botão próprio ou automaticamente (ex: no fim de uma rodada), é possível fazê-lo programaticamente com a função ISteamScreenshots::TriggerScreenshot, passando os bytes RGB à função ISteamScreenshots::WriteScreenshot ou adicionando um arquivo do disco com as funções ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary.