Моя программа будет декодировать и визуализировать видео из 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()
выше?
Спасибо:)