#

API Docs for: 1.5.0
Show: Inherited Protected Private Deprecated

# File: src/pixi/renderers/webgl/shaders/StripShader.js

    /**
     * @author Mat Groves http://matgroves.com/ @Doormat23
     */

    PIXI.StripShader = function()
    {
        /**
        * @property {any} program - The WebGL program.
        */
        this.program = null;

        /**
         * @property {array} fragmentSrc - The fragment shader.
         */
        this.fragmentSrc = [
            'precision mediump float;',
            'varying vec2 vTextureCoord;',
            'varying float vColor;',
            'uniform float alpha;',
            'uniform sampler2D uSampler;',

            'void main(void) {',
            '   gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));',
            '   gl_FragColor = gl_FragColor * alpha;',
            '}'
        ];

        /**
        * @property {array} fragmentSrc - The fragment shader.
        */
        this.vertexSrc = [
            'attribute vec2 aVertexPosition;',
            'attribute vec2 aTextureCoord;',
            'attribute float aColor;',
            'uniform mat3 translationMatrix;',
            'uniform vec2 projectionVector;',
            'varying vec2 vTextureCoord;',
            'uniform vec2 offsetVector;',
            'varying float vColor;',

            'void main(void) {',
            '   vec3 v = translationMatrix * vec3(aVertexPosition, 1.0);',
            '   v -= offsetVector.xyx;',
            '   gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / projectionVector.y + 1.0 , 0.0, 1.0);',
            '   vTextureCoord = aTextureCoord;',
            '   vColor = aColor;',
            '}'
        ];
    };

    /**
    * Initialises the shader
    * @method init
    *
    */
    PIXI.StripShader.prototype.init = function()
    {

        var gl = PIXI.gl;

        var program = PIXI.compileProgram(gl, this.vertexSrc, this.fragmentSrc);
        gl.useProgram(program);

        // get and store the uniforms for the shader
        this.uSampler = gl.getUniformLocation(program, 'uSampler');
        this.projectionVector = gl.getUniformLocation(program, 'projectionVector');
        this.offsetVector = gl.getUniformLocation(program, 'offsetVector');
        this.colorAttribute = gl.getAttribLocation(program, 'aColor');
        //this.dimensions = gl.getUniformLocation(this.program, 'dimensions');

        // get and store the attributes
        this.aVertexPosition = gl.getAttribLocation(program, 'aVertexPosition');
        this.aTextureCoord = gl.getAttribLocation(program, 'aTextureCoord');

        this.translationMatrix = gl.getUniformLocation(program, 'translationMatrix');
        this.alpha = gl.getUniformLocation(program, 'alpha');

        this.program = program;
    };