没能太明白你的意思,你是想用你的应用程序像QQ截屏那样截取整个屏幕么? 你要是截整个屏幕,这个我也不太懂,但你若要是用要对你的应用程序渲染的场景进行截屏还是没问题的,但是不是用CUDA,用OPENGL或DX,你用OPENGL的FBO将当前渲染场景保存成纹理就好,CUDA主要是用来做大规模并行计算的,它并不是图形图像的API
能够结合使用,主要用纹理内存,对纹理进行高斯之类这样的image process
说实话,我也不知道这个具体怎么做,只是刚刚花了点时间看了下,CUDA是没法直接获取整个desktop的buffer的,在网上找了下,截屏的主要方法有GDI,Direct 3D,Window Media Encoder API,mirror driver这四种,你现在用的GDI,Direct 3D这两种方法如果要优化的也只能多线程优化(系统线程那种),如果你要用CUDA的话,我觉得只能先用D3D的GetFrontBufferData获取到桌面的surface,然后再将这个surface与CUDA资源进行绑定,参见CUDA的Direct3D 11 Interoperability的手册,最后将这个资源用CUDA拷贝回CPU端进行保存。这个方法只是我个人想的,不知道是否可行,是否能提高效率,经供参考
581
社区成员
2,919
社区内容
加载中
试试用AI创作助手写篇文章吧