关于直接读取显存,和显存相关的一些问题

huangdongzhi1 2012-12-13 12:01:23
最近想直接读取显卡生成显示在桌面上的图像。
有几个疑惑,渴求解疑。
1:使用directx来读取frontbuffer可以吗,如果方向走错了,怎么样能达到要求,因为使用bitblt读取屏幕数据的话,会有一个显存到内存的传输过程,这样效率会不高,还会导致其他一些问题。

2:显存是用来存储处理过后和处理之前的数据的,我可不可以认为最终显示在屏幕上的一帧数据,在显示前的那一刻是在显存中的。 如果是一个R8B8G8A8格式的数据。1920×1080分辨率。 岂不是要 1920*1080*4/1024/1024 = 7.9G 的显存,这样现在的显卡完全达不到。 还是说显存里面只存储了部分屏幕的数据,然后不停的处理,输出到显示器上。如果是这样的话,那么某一刻的话 ,我就没法完全获取桌面上的数据了吗?

thanks a lot,in advance. :)
...全文
566 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿麦 2013-01-14
  • 打赏
  • 举报
回复
Bitblt速度很快啊。 该不会是想抓CS那些图像的人影来瞄准吧。
上岸の鱼 2013-01-14
  • 打赏
  • 举报
回复
引用 1 楼 huangdongzhi1 的回复:
是不是还可以认为,无论3D 还是2D,最终经过显卡处理完成,输出到显示器的前一刻。都是一个平面的图像?所谓3D无非是处理一些阴影,纹理,本质上来说和平面没什么区别?
虽然不是权威得知的,但我想如果让你去设计实现的时候,肯定都会采取这种方式的,考虑的核心肯定不在2D、3D差别上,而应该更注重实现性能上的优化处理。
xietiechi 2012-12-26
  • 打赏
  • 举报
回复
对呀,是七点九兆,不是七点九G。
BORLANDSUN 2012-12-23
  • 打赏
  • 举报
回复
1920*1080*4/1024/1024 = 7.9M,谢谢。
huangdongzhi1 2012-12-13
  • 打赏
  • 举报
回复
是不是还可以认为,无论3D 还是2D,最终经过显卡处理完成,输出到显示器的前一刻。都是一个平面的图像?所谓3D无非是处理一些阴影,纹理,本质上来说和平面没什么区别?

2,408

社区成员

发帖
与我相关
我的任务
社区描述
高性能计算
社区管理员
  • 高性能计算社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧