Windows – 从GPU获取完整的桌面屏幕截图
我一直在使用
Windows API的BitBlt功能来执行屏幕抓取.
但是有很多缺点: > DWM和Aero导致了巨大的减速(3ms – > 35ms只是调用BitBlt) – 要解决这个问题,这将需要禁用我宁愿不做的Aero.屏幕闪烁,事情转移. 我已经在使用OpenGL显示和操纵捕获的屏幕数据. BitBlt给出了像素数据,并且将其加载到纹理中相对容易.然而,这是稍微荒谬的,因为当GPU开始使用时,我手动将数据重新发送回GPU.数据绝对是有的,但试图访问它是一个不同的事情. 我认为这个功能在供应商的待办事项列表中(或可能在任何列表中)可能不是很高,但是我想询问那些知道AMD(ATI)或NVidia在他们的驱动程序中读取屏幕缓冲区(例如,进入OpenGL上下文).我根本不了解现代GPU架构,知道从哪里开始挖掘答案.
OpenGL只能读取上下文framebuffer(一个窗口),以及您创建的任何帧缓冲区或pbuffers. OpenGL无法触摸桌面或任何其他窗口.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Win32下session和window station以及desktop一些介绍和应用
- Windows安装解压版Mysql
- windows-7 – 简单的问题:x86应用程序可以利用x64操作系统
- 服务器安全设置技术实例系列教程--MSSQL安全设置
- windows – 如何连接Azure存储以从blob存储中读取.txt文件
- windows – 没有PgAdmin3的PostgreSQL win32 / 64无窗口安装
- windows-server-2003 – 安装Google Apps Password Sync后,
- Windows 8中的视觉样式
- 是否可以在Dos系统下运行Java-GUI程序
- windows – 如何识别哪个bitlocker保护器处于活动状态?
- 解析DELL R710服务器迁移操作内容
- windows – postgreSQL数据库服务
- windows-server-2008 – 为什么捕获的异常会导致
- win10下的ramdisk
- 在Windows 7上安装Python MySQLdb时出错
- batch-file – .bat文件,用于创建具有特殊字符的
- windows-server-2003 – 如何控制默认管理共享的
- windows-installer – Techsmith Snagit的Window
- Windows server 2008R2升级到Windows server 201
- get-event-store – Windows Azure上的事件存储无