原来:
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群里面的人:
-------------------------------------------------------------------------------------------
我也没找到原因
-------------------------------------------------------------------------------------------
你看看你的渲染大小
-------------------------------------------------------------------------------------------
貌似你窗口大小改变后
-------------------------------------------------------------------------------------------
GetScissorRect
这个获取到的渲染大小没变
-------------------------------------------------------------------------------------------
我尝试进行Reset,提示失败