6

いくつかの WebGL コードを利用する単純な Javascript ライブラリを作成しています。シェーダー ソースを .js ファイルにインラインで含めたいと考えています。これは、代替手段として、シェーダー ソースを各ページにスクリプト タグとして含めるか、AJAX として読み込まれる個別のファイルとして含めることです。これらのオプションはどちらも特にモジュール化されていません。ただし、javascript には複数行の文字列がないため、WebGL コードをインライン化する方法について良いアイデアがありません。私が考えていないアプローチはありますか?

4

4 に答える 4

3

1 行に 1 つの文字列を使用し、それらを結合します。

var shader = [
   "// line1 ",
   "// line2 ",
].join('\n');

PS 一般的な問題は以前にここで議論されました。JavaScript で複数行の文字列を作成するを参照してください。

于 2012-06-19T19:22:20.803 に答える
1

Language.GLSL.Prettyのすべてのインスタンスを置き換えることにより、 http: //github.com/noteed/language-glsl/をコード コンパクターにハッキングしました。ファイルにあるシェーダー コードの 1 行バージョンを取得し、それを文字列に貼り付けるだけです。これを投稿したときに、すでに行われている同様の解決策を見つけたいと思っていました。vcathsep

于 2012-06-20T16:44:25.200 に答える
0

これは、NetBeans がケースを処理する方法です。

var shader = 
"firstLine\n\
secondLine\n\
thirdLine";

この方法は、行ごとに配列項目を作成するよりも効率的に編集できることがわかりました。

于 2013-03-06T16:51:19.767 に答える