入门者问,在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;
...全文
9 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
In355Hz 2002-11-30
调用 GetAttachedSurface 前注意先清空 ddscaps 结构:
ZeroMemory(&ddscaps, sizeof(ddscaps));
回复
相关推荐
发帖
图形处理/算法
创建于2007-09-28

1.9w+

社区成员

VC/MFC 图形处理/算法
申请成为版主
帖子事件
创建了帖子
2002-11-26 09:23
社区公告
暂无公告