2010-06-07 3 views
1

Я хотел бы получить данные необработанного изображения, как указано в массиве байтов или что-то в этом роде, из изображения, полученного из приложения direct3d, без фактического отображения его на мониторе.Получить данные изображения для потока рендеринга Direct3d

мне нужно сделать это так, что я могу оказать Direct3D в качестве источника DirectShow фильтр

Visual Studio 2008 C++

ответ

1

Создайте поверхность, на которую вы собираетесь оказывать как экземпляр IDirect3DSurface9. Установите его как цель для вашего рендеринга с помощью IDirect3DDevice9::SetRenderTarget.

+0

Так что в двух словах я бы назвал setrendertarget в инициализации, а затем после каждого кадра. LockRect, чтобы получить D3DLOCKED_RECT, который предоставит мне указатель на байты изображения? Это в двух словах? –

+0

О, и вызов setrendertarget не позволит отображать его на экране, да? –

0

Вы также можете заблокировать задний буфер.

+0

Я не очень хорошо знаком с d3d. Как заблокировать задний буфер, чтобы получить данные о пикселях? –

+0

http://msdn.microsoft.com/en-us/library/bb174379(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/bb205896(v=VS. 85) .aspx – Puppy

Смежные вопросы