Позвольте мне указать небольшой фон.
В настоящее время я использую программу с открытым исходным кодом для запуска моего ТВ-тюнера (DScaler). Окончательная версия программного обеспечения имеет некоторую поддержку вывода Direct3D, проблема в том, что он отстает. Я просматривал код и читал документацию по DirectX, пытаясь найти место для оптимизации кода, чтобы рендеринг был таким же плавным, как и в DirectX, как и в DirectDraw. Поскольку в программное обеспечение встроено профилирование для критических процедур отображения (блокировка буфера, разблокировка, переворот и т. Д.), Я знаю, что при использовании Direct3D проблема, с которой он сталкивается, находится в области переворачивания оверлея. Я пришел к выводу, что презентация D3Device слишком медленная, чтобы не отставать от захвата ТВ-тюнера, и в результате я теряю кадры и не отображаю их при 29fps.
Поскольку я не очень хорошо знаю DirectX, мой вопрос таков: Direct3d не является оптимальным вариантом для отображения захвата видео или проблема просто в том, что код, вероятно, не самый лучший для него? Я спрашиваю, потому что я все еще заинтересован в попытке найти способ заставить его работать так, чтобы я мог отобразить мой захват в некоторых потоках (например: Xfire).
Спасибо.