Документація Steamworks
Знімки екрана в Steam

Огляд

Підтримка знімків екрана надається автоматично через оверлей Steam усім іграм у Steam, а Steamworks надає API для взаємодії з цією системою. API знімків екрана в Steamworks дозволяє вам робити знімки екрана й додавати їх до локальної бібліотеки користувачів із додатковими метаданими, як-от назва локації в грі чи позначення інших користувачів на знімку.
ПРИМІТКА: оверлей Steam повинен бути активним для вашої гри, щоби діяла система знімків екрана.

Користувачі можуть натискати гарячу клавішу Steam (стандартно F12), щоби зробити знімок екрана.

Користувач може змінити гарячу клавішу та інші налаштування знімків екрана для всіх своїх ігор у меню «Steam» → «Налаштування» → «У грі».

screenshot_hotkey.png

Вивантажувач знімків екрана

Після виходу з гри вивантажувач знімків екрана автоматично відкриє вікно з усіма знімками, що були зроблені під час останнього сеансу. Користувачі можуть вимкнути таку поведінку в меню «Steam» → «Налаштування» → «Steam Cloud» → «Відкривати вікно вивантаження для зроблених знімків екрана після виходу з гри».

screenshot_uploader.png

Вивантажувач знімків екрана також можна в будь-який момент відкрити у Steam в меню «Вигляд» → «Знімки екрана» чи в оверлеї Steam натисканням на «Знімки екрана».

Якщо користувач вивантажить знімки екрана, то вони показуватимуться в його профілі спільноти і в центрі спільноти гри.

API знімків екрана Steam

SDK Steamworks дає доступ до ISteamScreenshots, що дозволяє вам використовувати розширені функції й інтегрувати систему знімків екрана в гру.

Стандартно Steam контролює створення знімків екрана, але ви можете перехопити цей процес за допомогою ISteamScreenshots::HookScreenshots. Якщо ви скористаєтеся цією функцією, то отримуватиме зворотний виклик ScreenshotRequested_t, коли користувач натискає кнопку знімку екрана. ISteamScreenshots::IsScreenshotsHooked перевіряє, чи є у вас контроль на знімками екрана.

Незалежно від цього ви отримуватимете зворотний виклик ScreenshotReady_t, коли знімок екрана успішно збережено на диск. Якщо перевірка результату зворотного виклику покаже, що він був успішний, то ви можете використати ScreenshotHandle для надсилання позначок знімку екрана:

Якщо ви хочете робити знімки екрана за допомогою іншої кнопки чи автоматично в певному місці гри, наприклад, у кінці раунду, то можете робити це програмно за допомогою ISteamScreenshots::TriggerScreenshot, записавши RGB-дані знімку екрана за допомогою ISteamScreenshots::WriteScreenshot чи шляхом додавання файлу з диска за допомогою ISteamScreenshots::AddScreenshotToLibrary/ISteamScreenshots::AddVRScreenshotToLibrary.