我的程序将解码并渲染RTSP Stream中的视频。
我已经解码并创建了IDirect3DSurface9
,然后渲染此表面成功。
现在,我想缩放和拖动视频,我使用D3DXMATRIX
来完成,但这是行不通的。
VOID RenderFrame(LPDIRECT3DSURFACE9 surface)
{
IDirect3DDevice9* pDevice = ctx->d3d9device;
pDevice->BeginScene();
IDirect3DSurface9 * pBackBuffer = NULL;
pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &pBackBuffer);
pDevice->StretchRect(surface, NULL, pBackBuffer, NULL, D3DTEXF_LINEAR);
//This code for transform **************
D3DXMATRIX matScale;
D3DXMATRIX matTranslate;
D3DXMatrixTranslation(&matTranslate, 12.0f, 4.0f, 0.0f);
D3DXMatrixScaling(&matScale, 2.0f, 2.0f, 2.0f);
pDevice->SetTransform(D3DTS_WORLD, &(matTranslate * matScale));
pDevice->EndScene();
pDevice->Present(NULL, NULL, NULL, NULL);
}
视频仍然可以正常显示,但没有应用变换的效果。
我认为我以错误的方式使用了D3DXMATRIX
。有人可以告诉我在上面的Render()
函数中应用转换的方法吗?
谢谢:)