2019-06-05 20:20:12 -04:00
|
|
|
#version {{version}}
|
2019-06-05 17:35:46 -04:00
|
|
|
// Automatically generated from files in pathfinder/shaders/. Do not edit!
|
|
|
|
|
2019-06-05 20:20:12 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#extension GL_GOOGLE_include_directive : enable
|
|
|
|
|
|
|
|
precision highp float;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-25 14:32:39 -04:00
|
|
|
uniform mat4 uTransform;
|
2019-06-05 20:20:12 -04:00
|
|
|
uniform vec2 uTileSize;
|
|
|
|
uniform vec2 uStencilTextureSize;
|
|
|
|
|
2019-06-05 17:35:46 -04:00
|
|
|
in uvec2 aTessCoord;
|
2019-06-05 20:20:12 -04:00
|
|
|
in uvec3 aTileOrigin;
|
|
|
|
in int aBackdrop;
|
2019-06-05 17:35:46 -04:00
|
|
|
in int aTileIndex;
|
2019-06-05 20:20:12 -04:00
|
|
|
|
|
|
|
out vec2 vTexCoord;
|
|
|
|
out float vBackdrop;
|
|
|
|
out vec4 vColor;
|
|
|
|
|
|
|
|
vec4 getColor();
|
|
|
|
|
|
|
|
vec2 computeTileOffset(uint tileIndex, float stencilTextureWidth){
|
|
|
|
uint tilesPerRow = uint(stencilTextureWidth / uTileSize . x);
|
|
|
|
uvec2 tileOffset = uvec2(tileIndex % tilesPerRow, tileIndex / tilesPerRow);
|
|
|
|
return vec2(tileOffset)* uTileSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
void computeVaryings(){
|
|
|
|
vec2 origin = vec2(aTileOrigin . xy)+ vec2(aTileOrigin . z & 15u, aTileOrigin . z >> 4u)* 256.0;
|
2019-06-25 14:32:39 -04:00
|
|
|
vec2 position =(origin + vec2(aTessCoord))* uTileSize;
|
2019-06-05 17:35:46 -04:00
|
|
|
vec2 maskTexCoordOrigin = computeTileOffset(uint(aTileIndex), uStencilTextureSize . x);
|
2019-06-05 20:20:12 -04:00
|
|
|
vec2 maskTexCoord = maskTexCoordOrigin + aTessCoord * uTileSize;
|
|
|
|
|
|
|
|
vTexCoord = maskTexCoord / uStencilTextureSize;
|
|
|
|
vBackdrop = float(aBackdrop);
|
|
|
|
vColor = getColor();
|
2019-06-25 14:32:39 -04:00
|
|
|
gl_Position = uTransform * vec4(position, 0.0, 1.0);
|
2019-06-05 20:20:12 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uniform vec4 uColor;
|
|
|
|
|
|
|
|
vec4 getColor(){
|
|
|
|
return uColor;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void main(){
|
|
|
|
computeVaryings();
|
|
|
|
}
|
|
|
|
|