直接从设备(视频)内存在当前窗口中显示位图

时间:2011-12-29 12:53:47

标签: windows opengl cuda gdi direct3d

假设我使用cudaMalloc()cudaMemcpy()在设备(视频)内存中已经有位图(图像)。

直接在屏幕上显示此位图的最简单方法是什么?(当前窗口)?

我猜测应该有替代GDI的BitBlt() ......但任何方法(Direct3D,OpenGL甚至GDI)都可以。

CUDA SDK(OpenGL版本)中的示例使用Texture,它使用缓冲区(像素缓冲区对象)来保存数据,注册为CUDA资源,应在每个帧(glutDisplayFunc()调用时进行映射/取消映射)。所有这些似乎只是一点点复杂和不必要的。

1 个答案:

答案 0 :(得分:1)

好的,会尝试回答我自己的问题。看起来有一种更简单的方法可以通过OpenGL显示位图。我们可以使用支持纹理格式cudaGraphicsGLRegisterImage()的{​​{1}},而不是使用Texture + Pixel Buffer Object,因为CUDA Toolkit 4.0。

为简单起见,示例没有GL_RGBA8或错误检查。我对OpenGL知之甚少,很高兴听到建议。

cutilSafeCall()