Newer
Older
pixi.js / src / core / sprites / webgl / texture.frag
@Mat Groves Mat Groves on 16 Jan 2016 1 KB new multi texture render
precision lowp float;

vec4 getSampleFromArray16(sampler2D textures[16], int ndx, vec2 uv) {

vec4 color;

if(ndx == 0)
{
    color = texture2D(textures[0], uv);
}
else if(ndx == 1)
{
    color = texture2D(textures[1], uv);
}
else if(ndx == 2)
{
    color = texture2D(textures[2], uv);
}
else if(ndx == 3)
{
    color = texture2D(textures[3], uv);
}
else if(ndx == 4)
{
    color = texture2D(textures[4], uv);
}
else if(ndx == 5)
{
    color = texture2D(textures[5], uv);
}
else if(ndx == 6)
{
    color = texture2D(textures[6], uv);
}
else if(ndx == 7)
{
    color = texture2D(textures[7], uv);
}
else if(ndx == 8)
{
    color = texture2D(textures[8], uv);
}
else if(ndx == 9)
{
    color = texture2D(textures[9], uv);
}
else if(ndx == 10)
{
    color = texture2D(textures[10], uv);
}
else if(ndx == 11)
{
    color = texture2D(textures[11], uv);
}
else if(ndx == 12)
{
    color = texture2D(textures[12], uv);
}
else if(ndx == 13)
{
    color = texture2D(textures[13], uv);
}
else if(ndx == 14)
{
    color = texture2D(textures[14], uv);
}
else 
{
    color = texture2D(textures[15], uv);
}

return color;
}

varying vec2 vTextureCoord;
varying vec4 vColor;
varying float vTextureId;
uniform sampler2D uSamplers[16];
void main(void){
gl_FragColor = getSampleFromArray16(uSamplers, int(vTextureId), vTextureCoord) * vColor;
}