调用DirectDraw接口和调DirectDraw7接口的不同点对比

调用DirectDraw接口步骤:


1.       包含链接库ddraw.lib


2.       初始化窗口类型(全屏独占时类型用popup)。


3.       在初始化窗口后初始化DirectDraw(使用函数DirectDrawCreate)


4.       创建DirectDraw实例指针lpDD。


5.       lpDD->SetCooperativeLevel设置显示全屏独占还是窗体。


6.        lpDD->SetDisplayMode(640,480,8)设置显示模式。


7.       DDSURFACEDESC ddsd的信息配置。


8.       lpDD->CreateSurface创建主页面。


9.       lpDDSPrimary->GetAttachedSurface ( &ddscaps, &lpDDSBack
)提取后台缓冲页面。


10.    利用DirectDraw的函数对一些bmp处理,或者获取hdc对页面操作lpDDSBack->GetDC(&hdc)。


11.    lpDDSPrimary->Flip(NULL,0) 一经Flip,两个表面的指针互换。lpDDSPrimary指向后台表面,
而lpDDSBack指向了原来的前台主表面.(窗口模式不能进行换页,要使用位块传送来将内容传送到主页面)。


12.    释放所用资源。


 


调用DirectDraw7接口步骤:


1.       包含链接库ddraw.lib、dxguid.lib


2.       初始化窗口类型(全屏独占时类型用popup)。


3.       在初始化窗口后初始化DirectDraw7(使用函数DirectDrawCreateEx或者通过已创建的DirectDraw接口通过QueryInterface方法来获得)


4.       创建DirectDraw7实例指针lpDD。


5.       lpDD->SetCooperativeLevel设置显示全屏独占还是窗体。


6.       lpDD->SetDisplayMode(640,480,8,0,0)设置显示模式(这里比DirectDraw接口多了两个参数)最后两个参数描述分别是:


dwRefreshRate


Refresh rate of the new mode. Set this value to 0 to request the default
refresh rate for the driver.
大意是:用于设置显示时的刷新频率,(就是65MHZ、75MHZ、85MHZ),如果设为0使用当前默认设置。


dwFlags


Flags describing additional options. Currently, the only valid flag is
DDSDM_STANDARDVGAMODE, which causes the method to set Mode 13 instead of Mode X
320x200x8 mode. If you are setting another resolution, bit depth, or a Mode X
mode, do not use this flag and set the parameter to 0


 


7.         DDSURFACEDESC2
ddsd的信息配置(声明完页面描述后,应该立即用ZeroMemory函数使对象的值为0,否则不能成功创建页面)


8.       lpDD->CreateSurface创建主页面。


9.       lpDDSPrimary->GetAttachedSurface ( &ddscaps, &lpDDSBack
)提取后台缓冲页面。


10.    利用DirectDraw的函数对一些bmp处理,或者获取hdc对页面操作lpDDSBack->GetDC(&hdc)。


11.    lpDDSPrimary->Flip(NULL,0) 一经Flip,两个表面的指针互换。lpDDSPrimary指向后台表面,
而lpDDSBack指向了原来的前台主表面.(窗口模式不能进行换页,要使用位块传送来将内容传送到主页面)。

    12. 释放所用资源。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值