欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于directdraw的疑义

更新时间: 2014-01-05 03:11:18 责任编辑: Author_N1

 

关于Directdraw的疑问
最近正在Wince6.0上面使用directdraw绘制大量的图片数据。
之前是用GDI的方式处理,速度跟不上,听说用directdraw可以提高速度。
但是我看sample code发现,一般创建了页面以后,还是调用页面的GetDC方法得到DC,然后用gdi的方式绘制上去,这和gdi的方式有多大区别?
说directdraw可以直接使用显卡内存,难道directdraw的快是体现在可以直接从显存到屏幕,而不用从内存到显存再到屏幕?
求各位前辈指点。
--参考方法--
快,是直接操作显存

但如何操作,例如:用 DC 操作,时间还是要的
--参考方法--
my opinion:
1.形成动画用flip,直接交换buffer指针,比gdi重新填充buffer内容快。
2.显存是一块连续区域,bitblt可以加速,而gdi的blt是不连续内存区域,所以慢。
--参考方法--
引用:
引用:my opinion:
1.形成动画用flip,直接交换buffer指针,比gdi重新填充buffer内容快。
2.显存是一块连续区域,bitblt可以加速,而gdi的blt是不连续内存区域,所以慢。

gdi的blt是不连续内存区域???


据我所知,gdi 的blt 内存在物理上不一定连续哈,需要查找数据才会慢,如果是一块连续内存区域,直接搬数据就行了,这就是blt加速的原理吧。
--参考方法--
用rgb565的bmp来贴图,已经跟操作显存速度差不多
--参考方法--
其实gdi的速度并不慢,我是指bitblt,我用这个显示视频,完全没有问题。前提是你的图像数据dc的格式要和你屏幕的一致,比如都是RGB565,那么速度会灰常快。其实内存拷贝到显存,和直接操作显存,时间差不了多少。内存复制是很快的,主要的时间其实是花在图像的转换上面。另外,用ddraw可以直接显示yuv的格式,不用getdc,再bitblt。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:11:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19400/
本文WWW.DOC100.NET DOC100.NET版权所有。