创建一个主显示表面:
1、填充一个DDSURFACEDESC2数据结构,描述你所希望创建的显示表面(此结构很重要,详细说明见P210或MSDN)。
2、调用IDirectDraw7::CreateSurface()来创建显示表面(注:同创建调色板相似,不需调用QueryInterface()来改变接口)
具体设置:
LPDIRECTDRAWSURFACE7 lpddsprimary;
DSURFACEDESC2 ddsd;
memset(&ddsd, 0 , sizeof (ddsd));
ddsd.dwSize = sizeof (DDSURFACEDESC2);
// enable valid fields
dwFlags------这个域用来指示DirectDraw 你会把有效数据填充到哪个区域,或者是当你要把这个结构用在一个查询操作时你希望接收哪个域(详细标志值见P211或MSDN)
ddsd.dwFlags = DDSD_CAPS;///说明ddsCaps成员有效
// request primary surface
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; ///说明创建的是主表面
// create the primary surface
if (FAILED(lpdd->CreateSurface(&ddsd, &lpddsprimary, NULL)))
{
// error
return(0);
} // end if
创建从显示表面:
未完............................