diff --git a/src/pixi/renderers/WebGLShaders.js b/src/pixi/renderers/WebGLShaders.js index e97d3d7..100c9aa 100644 --- a/src/pixi/renderers/WebGLShaders.js +++ b/src/pixi/renderers/WebGLShaders.js @@ -2,68 +2,53 @@ /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ - -PIXI.shaderFragmentSrc = [ "precision mediump float;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "uniform sampler2D uSampler;", - "void main(void) {", - "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));", - "gl_FragColor = gl_FragColor * vColor;", - "}"]; -PIXI.shaderVertexSrc = [ "attribute vec2 aVertexPosition;", - "attribute vec2 aTextureCoord;", - "attribute float aColor;", - "uniform mat4 uMVMatrix;", - "varying vec2 vTextureCoord;", - "varying float vColor;", - "void main(void) {", - "gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);", - "vTextureCoord = aTextureCoord;", - "vColor = aColor;", - "}"] +PIXI.shaderFragmentSrc = [ + "precision mediump float;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "uniform sampler2D uSampler;", + "void main(void) {", + "gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));", + "gl_FragColor = gl_FragColor * vColor;", + "}" +]; + +PIXI.shaderVertexSrc = [ + "attribute vec2 aVertexPosition;", + "attribute vec2 aTextureCoord;", + "attribute float aColor;", + "uniform mat4 uMVMatrix;", + "varying vec2 vTextureCoord;", + "varying float vColor;", + "void main(void) {", + "gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);", + "vTextureCoord = aTextureCoord;", + "vColor = aColor;", + "}" +]; PIXI.CompileVertexShader = function(gl, shaderSrc) { - var src = ""; - - for (var i=0; i < shaderSrc.length; i++) { - src += shaderSrc[i]; - }; - - var shader; - shader = gl.createShader(gl.VERTEX_SHADER); - - gl.shaderSource(shader, src); - gl.compileShader(shader); - - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - alert(gl.getShaderInfoLog(shader)); - return null; - } - - return shader; + return PIXI._CompileShader(gl, shaderSrc, gl.VERTEX_SHADER); } PIXI.CompileFragmentShader = function(gl, shaderSrc) { - var src = ""; - - for (var i=0; i < shaderSrc.length; i++) { - src += shaderSrc[i]; - }; - - var shader; - shader = gl.createShader(gl.FRAGMENT_SHADER); - - gl.shaderSource(shader, src); - gl.compileShader(shader); - - if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { - alert(gl.getShaderInfoLog(shader)); - return null; - } - - return shader; -} \ No newline at end of file + return PIXI._CompileShader(gl, shaderSrc, gl.FRAGMENT_SHADER); +} + +PIXI._CompileShader = function(gl, shaderSrc, shaderType) +{ + var src = shaderSrc.join("\n"); + var shader = gl.createShader(shaderType); + gl.shaderSource(shader, src); + gl.compileShader(shader); + + if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { + alert(gl.getShaderInfoLog(shader)); + return null; + } + + return shader; +}