关于openGl与CUDA协作的具体实现
共享缓冲区的使用:
一个在空白openGL屏幕中绘制的例子:
先声明两个全局变量:
//缓冲区对象的ID, 另一个用于保存GL_PIXEL_UNPACK_BUFFER(传递给openGL的)数据
GLuintbuffer;
//接下来是CUDA对共享缓冲区的“名字”
cudaGraphicsResource*resource;
在初始化时的操作:
//为CUDA运行时使用OpenGL驱动程序做准备
cudaGLSetGLDevice(设备标识符);
//接下分配cuda的设备内存,用于启动kernel函数,执行你自己的操作
cudaMalloc((void**)&src,bitmap_width*bitmap_height*3);
<