2011-06-03 1 views
0

Так что я хочу иметь 2 входных feilds, один редактируемый. Мне нужен сценарий, который превратит такой ввод шейдер текст:Редактирование ввода текста в 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 шейдерного статический символ *)

Так как создать такой простой инструмент с Javascript?

+0

итерация по каждой строке, проверьте "на старте, если не добавлять и добавлять \ п" в конце. – Fosco

ответ

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

+0

новая версия выглядит хорошо :-) – rdmueller

+0

Еще одно обновление назовем это «Big Iron» - сделанное с помощью скрипта CodeMirror для C, как выделение кода http://jsfiddle.net/t9sgA/7 / – Rella