DirectDraw 学习: 一、创建Primary Surface

Primary Surface,顾名思义,就是我们能时刻在屏幕上看到的界面,它通过DDSAPS_PRIMARYSURFACE属性来标识。对于每一个DirectDraw对象,你只能拥有一个Primary Surface。

创建Primary Surface时要注意,显示区域和像素格式都默认的匹配当前的显示模式,所以,这里就不需要你去设置表面区域和像素格式;如果你一定要设置的话,程序将创建失败并返回DDERR_INVALIDPARAMS,即使你提供的信息与当前的显示模式相匹配。

下面这段代码展示了当创建primary surface时如何填充DDSURFACEDESC2结构体的:

DDSURFACEDESC2 ddsd;
ddsd.dwSize = sizeof(ddsd);

// Tell DirectDraw which members are valid.
ddsd.dwFlag = DDSD_CAPS;

// Request a primary surface.
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;


当你创建primary surface后,你就可以通过method(IDirectDrawSurface5::GetSurfaceDesc)来获取此surface的区域和像素格式信息。

posted on 2011-09-09 20:38 EmbeddedBoy_jsu_xtw 阅读(129) 评论(0) 编辑 收藏