Documentação do Steamworks
Capturas de ecrã no Steam

Vista geral

O sistema de capturas de ecrã funciona através do Painel Steam em todos os jogos iniciados pelo Steam e o Steamworks oferece um conjunto de APIs concebidas para interagir com este sistema. A API de capturas de ecrã do Steamworks permite que utilizadores tirem capturas de ecrã, sendo estas adicionadas a uma biblioteca local de capturas de ecrã com metadados adicionais, como o nome de um local no seu jogo ou dos utilizadores que aparecem na captura.
ATENÇÃO: O Painel Steam tem de estar ativo no seu jogo para que o sistema de capturas de ecrã esteja disponível.

Os utilizadores podem pressionar uma tecla de atalho controlada pelo Steam (predefinição: F12) para capturar o ecrã.

Em "Definições" -> "Durante o jogo", os utilizadores podem alterar o atalho e outras definições de captura que serão usadas em todos os jogos iniciados pelo Steam.

screenshot_hotkey.png

Gestor de capturas de ecrã

Ao sair de um jogo, o gestor de capturas de ecrã será aberto automaticamente com todas as capturas de ecrã tiradas durante a última sessão. Os utilizadores podem desativar este comportamento em "Definições" -> "Cloud" -> "Abrir o gestor de capturas de ecrã depois de fechar um jogo, se alguma foi tirada".

screenshot_uploader.png

É também possível aceder ao gestor de capturas de ecrã a qualquer momento em "Ver" -> "Capturas de ecrã" na aplicação Steam ou ao clicar em "Capturas de ecrã" no Painel Steam.

Se o utilizador enviar capturas de ecrã com visibilidade pública, estas serão visíveis no perfil do utilizador e na Central Comunitária do seu jogo.

API de capturas de ecrã do Steam

O SDK do Steamworks concede acesso à API ISteamScreenshots, permitindo-lhe usar funcionalidades avançadas e integrar o sistema de capturas de ecrã no seu jogo para melhorar a experiência dos seus utilizadores.

Por predefinição, o Steam irá tratar da captura do ecrã, mas é possível assumir o controlo através da função ISteamScreenshots::HookScreenshots. Se assumir o controlo, irá ocorrer um callback ScreenshotRequested_t sempre que o utilizador pressionar o atalho de captura. Use a função ISteamScreenshots::IsScreenshotsHooked para verificar se está a controlar a captura do ecrã.

Em qualquer caso, irá ocorrer um callback ScreenshotReady_t sempre que uma captura de ecrã for guardada no disco. Depois de receber este callback, deve verificar o resultado e, caso tenha sido bem-sucedido, poderá usar o handle ScreenshotHandle retornado para definir marcadores com as funções:

Se quiser capturar o ecrã com um botão escolhido por si ou automaticamente num determinado momento (como no fim de uma ronda, por exemplo), é possível fazê-lo programaticamente com a função ISteamScreenshots::TriggerScreenshot, ao passar os bytes RGB à função ISteamScreenshots::WriteScreenshot ou ao adicionar um ficheiro do disco com as funções ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary.