我正在编写一个使用一些 WebGL 代码的简单 Javascript 库。我想在 .js 文件中包含内联着色器源,因为我的替代方法是将它们作为脚本标签包含在每个页面中,或者将它们作为单独的文件作为 AJAX 加载。这些选项都不是特别模块化。但是,由于 javascript 中缺少多行字符串,我对如何内联 WebGL 代码没有任何好的想法。有没有我没有想到的方法?
问问题
1646 次
4 回答
3
每行使用一个字符串,然后将它们连接在一起,例如
var shader = [
"// line1 ",
"// line2 ",
].join('\n');
PS 之前这里讨论过一般问题,见Creating multiline strings in JavaScript
于 2012-06-19T19:22:20.803 回答
3
自 2009 年左右以来,JavaScript 在除 IE 之外的所有浏览器中都有多行字符串。
var shader = `
code
goes
here
`;
于 2018-03-18T01:45:59.167 回答
1
我最终破解了这个:http: //github.com/noteed/language-glsl/进入代码压缩器,通过替换 Language.GLSL.Pretty 中的所有vcat
实例hsep
。我得到了一个文件中的着色器代码的单行版本,然后我可以将其粘贴到一个字符串中。当我发布这个时,我希望找到一个类似的解决方案。
于 2012-06-20T16:44:25.200 回答
0
这是 NetBeans 处理这种情况的方式:
var shader =
"firstLine\n\
secondLine\n\
thirdLine";
我发现这种编辑方式比为每一行创建一个数组项更有效。
于 2013-03-06T16:51:19.767 回答