是否可以使用C ++ 11原始字符串文字在编译时将文本文件的全部内容作为字符串获取?
基本上,我希望能够嵌入GLSL着色器源文件而无需修改它们。
建议采用以下方法here:
const std::string shaderSource = R"glsl(
#include "my_shader.glsl"
)glsl";
这很hacky,但对我的应用程序来说没问题。但是,由于在包含文件之前评估原始字符串文字,这似乎不起作用。
我想我可以将'R"glsl('
和')glsl"'
部分移动到每个着色器源文件的开头和结尾,然后执行此操作:
const std::string shaderSource =
#include "my_shader.glsl"
;
但就像我说的那样,我真的不想修改着色器源文件,因为这会使相同文件的运行时加载变得复杂,从而使它们的可移植性降低。