如何直接写显卡内存达到显示图片的目的?

ytpen   2009-3-25 10:17 楼主
请问各位高人:如何直接对显卡显存来进行读写操作?由于我接收的是256*256的灰度数据,现在的处理方式是建立一个bmp文件,将数据填入进去,然后displaybmp,这样显得画面有些显示不及时,有覆盖或者错位的情况。后听人说起可以直接写显存,可是资料实在太少,特请教各位高手。请提供链接、实现流程、实现原理以致源程序,哪怕只是顶贴,本人在此先行谢过了!谢谢!

回复评论 (21)

如何直接对显卡显存来进行读写操作?
点赞  2009-3-25 10:17
wince标准是不建议直接操作显存的。
你得确认驱动层是否提供了接口以获得显存的地址。曾经用过GetBuffer之类的,不过都是lcd驱动里面的IOControl支持的。
当然,如果设备你们自己做,那你们当然知道显存的物理及虚拟地址,那你可以直接映射到应用层使用。
点赞  2009-3-25 11:33
把图像数据按像素格式直接写到FrameBuffer地址就行了
点赞  2009-3-25 12:37
多谢回复!我们肯定要买现成的,看来只有买的时候留意一下您说的问题了。
引用: 引用 2 楼 shuiyan 的回复:
wince标准是不建议直接操作显存的。
你得确认驱动层是否提供了接口以获得显存的地址。曾经用过GetBuffer之类的,不过都是lcd驱动里面的IOControl支持的。
当然,如果设备你们自己做,那你们当然知道显存的物理及虚拟地址,那你可以直接映射到应用层使用。
点赞  2009-3-26 08:22
我的图像数据就是像素形式的,不过,不知道写到哪里?这个FrameBuffer地址如何获得?
引用: 引用 3 楼 xajhuang 的回复:
把图像数据按像素格式直接写到FrameBuffer地址就行了
点赞  2009-3-26 08:23
自己顶一下。
点赞  2009-3-27 11:01
ddraw里lock后可以得到framebuff
点赞  2009-3-27 12:23
能说的具体一些吗?我完全不懂这方面的知识,谢谢!
引用: 引用 7 楼 zjh824 的回复:
ddraw里lock后可以得到framebuff
点赞  2009-3-27 13:53
ding
点赞  2009-3-28 08:12
用directdraw直接写显存
点赞  2009-3-29 02:03
能再具体一些吗?
引用: 引用 10 楼 liangxd09 的回复:
用directdraw直接写显存
点赞  2009-3-30 08:19
在wince6下面,应用程序是不能直接操作显存的,不能操作物理内存,操作显存最好用directdraw,
去我的blog找找  相关的ddraw的操作,或者看看wince下面微软的例子程序代码,上面就有显示图片到显存
以及简单的ddraw动画。
点赞  2009-3-30 08:37
去你的blog看看去。我只想显示图片,谢谢!
引用: 引用 12 楼 jinlking 的回复:
在wince6下面,应用程序是不能直接操作显存的,不能操作物理内存,操作显存最好用directdraw,
去我的blog找找  相关的ddraw的操作,或者看看wince下面微软的例子程序代码,上面就有显示图片到显存
以及简单的ddraw动画。
点赞  2009-3-31 08:15
看看注册表里面的配置,要是你是s3c2440芯片的话,FrameBuffer的物理地址是0x30100000.
点赞  2009-3-31 11:54
我觉得 不管在什么系统下都可以直接操作显存。显存无非就是一段内存地址,总能访问到的。
点赞  2009-3-31 11:55
学习
点赞  2009-3-31 12:12
谢谢!我再看看,2440肯定不是。
引用: 引用 15 楼 xajhuang 的回复:
我觉得 不管在什么系统下都可以直接操作显存。显存无非就是一段内存地址,总能访问到的。
点赞  2009-3-31 12:22
用GDI繪圖 在內存中繪個bmp來顯示不行嗎?
点赞  2009-3-31 14:57
引用: 引用 18 楼 zhanzongru 的回复:
用GDI繪圖 在內存中繪個bmp來顯示不行嗎?


GDI绘图,没有ddraw里面flip的概念,在内存中绘好了就拷贝到显存,这个显存的操作是很慢的,相对于flip
在draw中两个页面都在显存中,一个准备好了,直接flip就行了。
点赞  2009-3-31 18:02
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复