DirectX - концепция BackBuffer

Я новичок в DirectX, и потратив некоторое время на чтение документации, я узнал, что есть два видеобуфера, FrontBuffer и BackBuffer. Я выполняю POC, чтобы проверить самый быстрый метод захвата экрана, и BackBuffer, согласно некоторым источникам, может сделать это. (Доступ к FrontBuffer слишком медленный для меня)

Но, к сожалению, в Интернете не так много хороших статей, которые бы подробно объясняли теорию. У меня есть некоторые вопросы, которые также могут помочь другим, если ответят.

  1. Является ли обратный буфер просто поверхностью, на которую может писать приложение?
  2. Является ли приложение обратного буфера конкретным? т.е. отдельный обратный буфер для каждого приложения DX?
  3. Если я запускаю какое-то приложение, которое показывает некоторые данные на экране, используя DirectX, могу ли я перехватить его задний буфер? (Согласно анализу FRAPS, DLL может быть подключена к приложению, чтобы сделать это. Но какие-нибудь рекомендации?)

1 ответ

Решение
  1. Да. В зависимости от того, какую версию DirectX вы используете, задним буфером является поверхность или текстура, созданная в качестве цели рендеринга.
  2. Да. Каждое приложение имеет свой собственный задний и передний буфер. Приложение даже не ограничено использованием одного обратного буфера. Вместо этого он мог бы использовать три или более буферов или вообще не использовать обратный буфер.
  3. Ну, я не эксперт по подключению приложений DirectX, но это должно быть возможно. По сути, вы бы заменили Present Метод с методом, который захватывает буфер перед его представлением. Смотрите здесь для получения дополнительной информации.
Другие вопросы по тегам