首页  »   C++

GDI与DirectDraw之间的区别解决方案

网友分享于:2013-03-18  浏览:121次
GDI与DirectDraw之间的区别
如题:
  gdi的调用过程,directdraw的调用过程,各是怎么样的????????
  视频在显示器上播放,每次都刷新,那是什么原理让directdraw能画出图像覆盖在视频上?
  请高手讲解!!!!!!!!

------解决方案--------------------
DirectDraw可以提供给开发者代表了真实显示内存的绘图页面。这意味着,只要你使用了DirectDraw,你就可以直接操纵显卡上的内存,图形显示变得出奇的快速。而且这些页面代表了显存中连续的内存块,使得在页面中寻址和读写变得非常方便。

直接百度 google不是更快吗?
------解决方案--------------------
以前2D游戏区别于桌面应用主要在于有大量的位图复制操作,因为游戏里的内容都是事先生成好的位图,而桌面应用的内容往往是现画的。

GDI的硬件加速主要在画线、画圆、写字这些操作上,而画位图的时候,GDI的重大缺陷就是位图必须保存在内存里。虽然GDI画位图也是显卡加速的,但是位图数据必须通过速度相对来说很慢的前端总线传到显卡上。

而DDraw最核心的功能就是可以把位图直接保存在显存中,画位图的时候直接在显存中复制,通过带宽非常大的显卡内部总线。

比如你画一棵树,GDI每画一次就要从内存到显卡复制一次。而用DDraw之需要复制一次,以后都是在显存内操作了所以快。

但是于此同时DDraw舍弃了GDI的画线、画圆、写字乃至缩放位图等等的功能,所以渐渐被可以实现那些操作的D3D取代了。

相关解决方案

最新解决方案