入门者问,在DirectDraw中如何得到BACKBUFFER?
牧童027 2002-11-26 09:23:08 小子最近刚开始学,在看一本名为《DirectX7速成教程》的书,书里面第三章讲制作一个双缓冲来刷屏,我照着做了一下,总是在要得到lpBackBuf时候出错。以下是部分代码。
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
hRet = lpDD->CreateSurface(&ddsd, &lpDDSPrimary, NULL);//创建界面对象
if (hRet != DD_OK)
return FALSE;
ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
hRet = lpDDSPrimary->GetAttachedSurface(&ddscaps,&lpDDSBack);//!!就是这句,总返回错误!!
if(hRet != DD_OK)
return FALSE;