1.
为了说明OpenGL与CUDA C之间的互操作机制,我们将编写一个包含两个步骤的应用程序。第一个步骤是使用CUDA C核函数来生成图像数据。在第二步骤中,应用程序将这个数据传递给OpenGL驱动程序进行渲染。
2.
首先,我们要包含OpenGL和CUDA的头文件从而确保定义了正确的函数和枚举类型。我们还定义了渲染窗口的大小。
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
// OpenGL Graphics includes
#include <glew.h>
#include <glut.h>
#include "cuda_gl_interop.h"
const int DIM = 1024;
此外,我们声明两个全局变量来保存句柄,这些句柄指向将要在OpenGL和CUDA C之间共享的数据。他们将保存指向同一个缓冲区的不同句柄。之所以需要两个独立的变量,是因为OpenGL和CUDA对于这个缓冲区有着不同的“名字”。