#c #opengl #directx #obs
Вопрос:
У OBS есть возможность не показывать сторонние наложения (например, наложение steam) при использовании метода захвата игры, и я бы очень хотел, чтобы части моего приложения аналогичным образом не отображались при потоковой передаче.
Какие вещи я должен искать в Google, чтобы получить лучшее представление о том, как OBS может определить, что является наложением, а что нет?
Комментарии:
1. Вам не нужно ничего гуглить, это с открытым исходным кодом: github.com/obsproject/obs-studio
2. Первоначально мой вопрос указывал, что я просмотрел исходный код, но, поскольку я совершенно новичок в C и создании скомпилированных приложений в целом, я очень мало представлял, на что именно я смотрел. К счастью, кто-то щедро отредактировал эту часть / части
Ответ №1:
Похоже, что этот параметр конфигурации передается по каналу в capture_overlay
переменную, которая используется для задержки захвата OBS до конца замены, после того, как любые сторонние наложения сделали свое дело:
static inline void gl_swap_begin(HDC hdc)
{
const bool first = swap_recurse == 0;
swap_recurse;
if (first amp;amp; !global_hook_info->capture_overlay)
gl_capture(hdc);
}
static inline void gl_swap_end(HDC hdc)
{
--swap_recurse;
const bool first = swap_recurse == 0;
if (first amp;amp; global_hook_info->capture_overlay)
gl_capture(hdc);
}
Комментарии:
1. Извините, в моем первоначальном комментарии говорилось, что я уже просмотрел исходный код, но я не знаю C и вообще не знаком со скомпилированными приложениями, но кто-то удалил это из моего вопроса. Моя проблема в том, что я не знаю, чего я не знаю. Что такое замена? Что такое «их вещь», которую делают сторонние наложения?