D3D渲染YUV,窗口改变后,参数设置

来源:互联网 发布:yum jenkins 安装配置 编辑:程序博客网 时间:2024/06/09 15:46

原来:

hr = GetDevice()->BeginScene();
IDirect3DSurface9 * pBackBuffer = NULL;
hr = GetDevice()->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
hr = GetDevice()->StretchRect((IDirect3DSurface9*)data->Data.MemId,NULL,pBackBuffer,
&client_rect,D3DTEXF_LINEAR);   
hr = GetDevice()->EndScene();
hr = GetDevice()->Present( NULL, NULL, NULL, NULL );
pBackBuffer->Release();


此时的 client_rect 的值已经改变了,但是输出不正常,只是停留在原来的画面,画面不刷新,播放


改变后:

hr = GetDevice()->BeginScene();
IDirect3DSurface9 * pBackBuffer = NULL;
hr = GetDevice()->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
hr = GetDevice()->StretchRect((IDirect3DSurface9*)data->Data.MemId,NULL,pBackBuffer,
NULL,D3DTEXF_LINEAR);   
hr = GetDevice()->EndScene();
hr = GetDevice()->Present( NULL, NULL, NULL, NULL );
pBackBuffer->Release();


这是问的QQ群里面的人:

    

 我再问一下哈,我之前的rect也是相应的全屏大小,为什么就不行呢
-------------------------------------------------------------------------------------------
我也没找到原因
-------------------------------------------------------------------------------------------
你看看你的渲染大小
-------------------------------------------------------------------------------------------
貌似你窗口大小改变后
-------------------------------------------------------------------------------------------
GetScissorRect
-------------------------------------------------------------------------------------------
这个获取到的渲染大小没变
-------------------------------------------------------------------------------------------
我尝试进行Reset,提示失败


0 0