3 layout( location=0 ) in vec2 vTexCoord;
5 layout(set=1, binding=0, std140) uniform FragData
12 float preMultipliedAlpha;
15 layout(set=1, binding=1) uniform sampler2D sTexture;
17 layout(location=0) out vec4 fragColor;
19 float wrapCoordinate( vec2 range, float coordinate, float wrap )
22 if( wrap > 1.5 ) // REFLECT
23 coord = 1.0-abs(fract(coordinate*0.5)*2.0 - 1.0);
24 else // warp == 0 or 1
25 coord = mix(coordinate, fract( coordinate ), wrap);
26 return clamp( mix(range.x, range.y, coord), range.x, range.y );
31 return vec4( mixColor * mix( 1.0, opacity, preMultipliedAlpha ), opacity );
36 vec2 texCoord = vec2( wrapCoordinate( uAtlasRect.xz, vTexCoord.x, wrapMode.x ),
37 wrapCoordinate( uAtlasRect.yw, vTexCoord.y, wrapMode.y ) );
38 fragColor = texture( sTexture, texCoord ) * uColor * visualMixColor();