我正在写一个简单的JavaScript库,它利用了一些WebGL的代码。 我想包括内嵌在.js文件着色器源,因为我的替代品,包括他们在每个页面的脚本标签,或让他们成为其加载为AJAX单独的文件。 这两种方法都不是特别模块化。 然而,由于缺乏在JavaScript多行字符串的,我没有对如何内联WebGL的代码什么好主意。 有没有一种方法我没有想到的?
Answer 1:
使用一个字符串每行,然后它们连接起来,如
var shader = [
"// line1 ",
"// line2 ",
].join('\n');
在这里讨论的PS的一般问题之前,看到在JavaScript创建多行字符串
Answer 2:
我结束了这个黑客: http://github.com/noteed/language-glsl/到代码压实,通过替换的所有实例vcat
与hsep
在Language.GLSL.Pretty。 我得到的shader代码我有一个文件的一个行版本,我可以那么就粘贴到一个字符串。 我希望能找到我的时候发布这个已经做了类似的解决方案。
Answer 3:
自2009年左右的JavaScript已在IE之外的所有浏览器多字符串。
var shader = `
code
goes
here
`;
Answer 4:
这是NetBeans的办案方式:
var shader =
"firstLine\n\
secondLine\n\
thirdLine";
我发现用于编辑这种方式更有效不必为每一行建立一个数组项。
文章来源: Inline webgl shader code in javascript