var Shader = require('./Shader');
/**
* @class
* @namespace PIXI
* @param gl {WebGLContext} the current WebGL drawing context
*/
function ComplexPrimitiveShader(gl)
{
Shader.call(this,
gl,
// vertex shader
[
'attribute vec2 aVertexPosition;',
// 'attribute vec2 aTextureCoord;',
// 'attribute vec4 aColor;',
'uniform mat3 translationMatrix;',
'uniform vec2 projectionVector;',
'uniform vec2 offsetVector;',
'uniform vec3 tint;',
'uniform float alpha;',
'uniform vec3 color;',
'uniform float flipY;',
'varying vec4 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 * -flipY) + flipY , 0.0, 1.0);',
' vColor = vec4(color * alpha * tint, alpha);',//" * vec4(tint * alpha, alpha);',
'}'
].join('\n'),
// fragment shader
[
'precision mediump float;',
'varying vec4 vColor;',
'void main(void){',
' gl_FragColor = vColor;',
'}'
].join('\n'),
// custom uniforms
{
tint: { type: '3f', value: [0, 0, 0] },
flipY: { type: '1f', value: 0 },
alpha: { type: '1f', value: 0 },
color: { type: '3f', value: [0,0,0] },
translationMatrix: { type: 'mat3', value: new Float32Array(9) }
}
);
}
ComplexPrimitiveShader.prototype = Object.create(Shader.prototype);
ComplexPrimitiveShader.prototype.constructor = ComplexPrimitiveShader;
module.exports = ComplexPrimitiveShader;