我很久以前就看到过使用 hlsl/glsl 着色器代码完成此操作——#include
在源代码文件上使用 a 将代码粘贴到 achar*
中,以便在运行时不会发生文件 IO。
如果我将它表示为伪代码,它看起来有点像这样:
#define CLSourceToString(filename) " #include "filename" "
const char* kernel = CLSourceToString("kernel.cl");
现在这当然#define
行不通,因为它只会尝试使用这些引号来开始字符串。