DirectX - концепция BackBuffer
Я новичок в DirectX, и потратив некоторое время на чтение документации, я узнал, что есть два видеобуфера, FrontBuffer и BackBuffer. Я выполняю POC, чтобы проверить самый быстрый метод захвата экрана, и BackBuffer, согласно некоторым источникам, может сделать это. (Доступ к FrontBuffer слишком медленный для меня)
Но, к сожалению, в Интернете не так много хороших статей, которые бы подробно объясняли теорию. У меня есть некоторые вопросы, которые также могут помочь другим, если ответят.
- Является ли обратный буфер просто поверхностью, на которую может писать приложение?
- Является ли приложение обратного буфера конкретным? т.е. отдельный обратный буфер для каждого приложения DX?
- Если я запускаю какое-то приложение, которое показывает некоторые данные на экране, используя DirectX, могу ли я перехватить его задний буфер? (Согласно анализу FRAPS, DLL может быть подключена к приложению, чтобы сделать это. Но какие-нибудь рекомендации?)
1 ответ
Решение
- Да. В зависимости от того, какую версию DirectX вы используете, задним буфером является поверхность или текстура, созданная в качестве цели рендеринга.
- Да. Каждое приложение имеет свой собственный задний и передний буфер. Приложение даже не ограничено использованием одного обратного буфера. Вместо этого он мог бы использовать три или более буферов или вообще не использовать обратный буфер.
- Ну, я не эксперт по подключению приложений DirectX, но это должно быть возможно. По сути, вы бы заменили
Present
Метод с методом, который захватывает буфер перед его представлением. Смотрите здесь для получения дополнительной информации.