0
我們有一箇舊的應用程序uisng DirectDraw 8.它直接將像素逐像素寫入視頻內存,一切都很好。 現在我需要將它移植到Windows Store應用程序中。使用direct3D渲染視頻
Media Foundation似乎是渲染視頻的推薦路徑,並通過了「媒體引擎本機C++視頻播放示例(Windows 8.1)」 但即使Media Foundation也使用DirectDraw進行視頻渲染。
ComPtr<ID3D11Texture2D> backBuffer;
DX11SwapChain->GetBuffer(0, IID_PPV_ARGS(&backBuffer));
m_spMediaEngine->TransferVideoFrame(backBuffer.Get(), nullptr, &m_rcTarget, &m_bkgColor);
DX11SwapChain->Present(1, 0);
因此,通過Direct3D樣本,我能夠得到backBuffer。但所有的樣本似乎都在處理繪製線等 而沒有設置個別像素。
我該如何掌握像素?即設置BackBuffer [somepixel] = someRGBA
Media Foundation不使用DirectDraw。即使是它的前身DirectShow,DirectDraw也只是一個選項。 Media Foundation通過EVR使用Direct3D。 –
我很欣賞這個更正。如果您能指示我如何在Direct3D中寫入「backBuffer」(現在稱爲ID3D11Texture2D),就像我們在DirectDraw中所做的那樣,我將不勝感激。 –