2011-06-03 95 views
0

所以我想要有2个输入实体,一个可编辑。我需要一些脚本,会变成这样的着色器文本输入:Javascript文本输入编辑:如何将一个文本输入中的多个字符串文本着色器变成另一个表示?

#ifdef GL_ES 
    precision highp float; 
    #endif 

    varying vec4 v_color; 

    void main (void) 
    { 
     gl_FragColor = v_color; 
    } 

到这样的输出:

"#ifdef GL_ES\n" 
    "precision highp float;\n" 
    "#endif\n" 
    "\n" 
    "varying vec4 v_color;\n" 
    "\n" 
    "void main (void)\n" 
    "{\n" 
    " gl_FragColor = v_color; \n" 
    "}" 

(如输出可以变成OpenGL着色静态的char *)

那么如何用Javascript创建这样简单的工具?

+0

迭代通过每行,检查 “启动时,如果不加一,并添加\ n” 结尾。 – Fosco 2011-06-03 16:02:28

回答

1

尝试正则表达式。

HTML:

<textarea id="text1">#ifdef GL_ES 
precision highp float; 
#endif 

varying vec4 v_color; 

void main (void) 
{ 
gl_FragColor = v_color; 
} 
</textarea> 
<textarea id="text2"></textarea> 

的javascript:

var text = document.getElementById("text1").value; 
text = text.replace(/\n/g, "\\n\"\n\""); 
document.getElementById("text2").value = "\""+text+"\\n\""; 

http://jsfiddle.net/t9sgA/1/

+0

http://jsfiddle.net/t9sgA/6/ – Rella 2011-06-03 17:36:29

+0

新版本看起来不错:-) – rdmueller 2011-06-03 17:52:02

+0

一个更新让我们称之为“大铁” - 用CodeMirror脚本制作C代码突出显示http://jsfiddle.net/t9sgA/7 / – Rella 2011-06-03 19:49:47

相关问题