用directX 实现缩放的问题
我用如下代码将后台表面的图像显示到前台。
如果是1:1或者自动缩放和窗口一样大小的显示,多大的图都没有问题,显示位置也正确。
但是 如果图像尺寸稍大比如512x512当放大成1:2的时候,显示位置就乱了,窗口裁剪也不起作用了。非常奇怪的是如果是1024x1024的图按1:1显示就没有问题,好像
不是显存大小的问题。
我用的是directx9 sdk.
多指教,谢谢。
void CDirectDrawWindow::DisplayPrimary()
{
HRESULT ddrval;
while( 1 )
{
ddrval = m_lpddPrimary->Blt( &m_rcDst, m_lpddBack,NULL , DDBLT_WAIT,NULL);
TRACE(" The primary draw is %d \n",ddrval);
if( ddrval == DD_OK )
{
break;
}
if( ddrval == DDERR_SURFACELOST )
{
if(!RestoreSurfaces())
{
return;
}
}
if( ddrval != DDERR_WASSTILLDRAWING )
{
return;
}
}
}