Ddraw--DirectDraw与GDI

DirectDraw与GDI区别如下:

1 DirectDraw是在GDI的基础上做的,是GDI的升级版。

        GDI(Graphics Deveice Interface,图形设备接口),利用GDI编程,可以不考虑硬件的具体特性,直接调用Windows API中的图形处理函数处理当前DC即可。这的确很方便,但却是以降低处理速度为代价。因为它不能直接访问硬件,需要通过操作系统间接访问。
Microfost 为迎合市场需求,推出了DirectX。它既能像Windows GDI一样使用方便,又可以直接对硬件抽象层HALL(Hardware Abstranaction Layer)操作,速度比GDI快得多。DirectX 主要包括 DirectDraw Direct3D DirectMusic DirectPaly DirectInput DirectSetup七部分。也就是说DirectX是GDI的升级。

2 DirectDraw比GDI的速度快很多。

        以前2D游戏区别于桌面应用主要在于有大量的位图复制操作,因为游戏里的内容都是事先生成好的位图,而桌面应用的内容往往是现画的。
        GDI的硬件加速主要在画线、画圆、写字这些操作上,而画位图的时候,GDI的重大缺陷就是位图必须保存在内存里。虽然GDI画位图也是显卡加速的,但是位图数据必须通过速度相对来说很慢的前端总线传到显卡上。而DDraw最核心的功能就是可以把位图直接保存在显存中,画位图的时候直接在显存中复制,通过带宽非常大的显卡内部总线。
        比如你画一棵树,GDI每画一次就要从内存到显卡复制一次。而用DDraw只需要复制一次,以后都是在显存内操作了所以快。

使用DirectDraw

1. 初始化.
2. 设置显示模式.
3. 在内存里建立PageFlipping所需要的两个页, 前页和后页.
4. 给显示的区域加个画框以免画到外面来.
5. 在后页画图, 然后"刷"的一下子换到前页来.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值