Depository of News

Как программа для записи ужимается в 40 МБ ОЗУ, пока OBS ест полгига

newsdepo.com · tech

<img src="https://habrastorage.org/getpro/habr/upload_files/a97/822/42a/a9782242a9aa3735f2499f01ef767677.png" /><p>На Windows для захвата экрана есть два классических пути: <strong>GDI </strong>(медленно и печально) и <strong>DXGI </strong>Desktop Duplication API. HomRec использует второй вариант.</p><p>Смысл <strong>DXGI </strong>Desktop Duplication в том, что видеокарта сама отдаёт вам текстуру рабочего стола - не нужно постранично вычитывать пиксели через <strong>GDI</strong>. Вызов <code>AcquireNextFrame</code> возвращает GPU-текстуру с очередным кадром, а если на экране ничего не изменилось - честно говорит "нечего отдавать" (таймаут), и можно просто повторно использовать прошлый кадр вместо лишней работы.</p><p>Проблема в том, что эта GPU-текстура недоступна напрямую из CPU-памяти - её сначала нужно скопировать в "staging-текстуру" и замапить. А вот тут прячется первая интересная деталь.</p> <a href="https://habr.com/ru/articles/1080898/?utm_source=habrahabr&amp;utm_medium=rss&amp;utm_campaign=1080898#habracut">Читать далее</a>

Read full article →