7

根据 opengl 规范 4.0 glDrawPixels 已被弃用。

对于 cuda 互操作性,似乎最好使用“opengl 缓冲区对象”。(替代方法可能是纹理或表面,但它们存在缓存/并发问题,因此不适用于我的 cuda 内核)。

我只是想创建一个 cuda 内核,它使用这个映射的 opengl 缓冲区对象并将其用作“像素数组”或一块保存像素的内存,稍后缓冲区未映射。

然后,我希望 opengl 程序将缓冲区对象绘制到帧缓冲区。我想使用未弃用的 opengl api。

还有哪些其他方法/api可以将缓冲区对象绘制到帧缓冲区?(也不能使用渲染缓冲区,因为它们可能与 cuda 数组/缓存问题有相同的问题,所以这排除了帧缓冲区对象/扩展?!?)。

现在 glDrawPixels 已被弃用,opengl 4.0 中是否存在差距/缺失功能?还是有替代方案?

4

1 回答 1

5

glDrawPixels已从GL 3.2 及更高版本中删除(未弃用。弃用的意思是“可用但将来会删除”)。它被删除是因为它通常不是将像素数据绘制到屏幕上的快速方法。

最好的办法是使用glTexSubImage2D其上传到纹理,然后将其绘制到屏幕上。或者使用glBlitFramebuffer.

于 2012-06-22T21:45:16.643 回答