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

简介: 调用DirectDraw接口步骤:1.       包含链接库ddraw.lib2.       初始化窗口类型(全屏独占时类型用popup)。3.       在初始化窗口后初始化DirectDraw(使用函数DirectDrawCreate)4.       创建DirectDraw实例指针lpDD。

调用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. 释放所用资源。
目录
相关文章
C4.
|
1月前
|
Python
Phython函数封装
Phython函数封装
C4.
6 0
|
4月前
08 # 接口:函数类型接口
08 # 接口:函数类型接口
14 0
|
12月前
|
C++
C++函数适配器和函数包装器:让你的函数更灵活
前言:这次给大家带来的是C++函数适配器和函数包装器,它可以让你的让你的函数更灵活,更加易用
|
Java
CheerpJ调用的两种方式
CheerpJ调用的两种方式
200 0
|
小程序
小程序调用接口不生效?
小程序调用接口不生效?
309 0
重复动作要封装,封装前找大家的共同特性或者说共同需求(例如都实现某个接口,都实现该接口的某个方法),然后利用这个共同特性封装起来
重复动作要封装,封装前找大家的共同特性或者说共同需求(例如都实现某个接口,都实现该接口的某个方法),然后利用这个共同特性封装起来
105 0
|
数据安全/隐私保护
利用函数指针实现C的回调函数,实现调用者和底层驱动的解耦 第二种方式
利用函数指针实现C的回调函数,实现调用者和底层驱动的解耦 第二种方式
106 0
利用函数指针实现C的回调函数,实现调用者和底层驱动的解耦 第二种方式
家用电器使用,一个功能接口几台设备一起实现,控制器成为对象后逐个调用设备功能.
一个家庭影院似的程序.我把main所在的类命名为Home Theater(家庭影院)将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起,现实通往二进制的大门即将被打开。
864 0
接口,实现类,对象方法的调用关系.(查看程序输出)
分析的术语可能不是那么准确!有待加强~~~ 划线法真的不错.不过其实这个程序仔细看看也能很好分析. 只不过脑子容量还是有限的~好脑子不如画个图~将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。
1009 0
|
Java Spring
接口动态调用
spring配置文件配置 调用方法 private ServiceOutput doClazzByBeanName(String beanName, ServiceInput input) throws ServiceException { ServiceOutput output = .
1584 0