@ -32,12 +32,12 @@
#ifdef EXPLICIT_UNIFORM_LOCATION
#ifdef EXPLICIT_UNIFORM_LOCATION
layout ( location = 1 ) uniform lowp vec4 color ;
layout ( location = 1 ) uniform lowp vec4 color ;
layout ( location = 2 ) uniform lowp vec4 outlineColor ;
layout ( location = 2 ) uniform lowp vec4 outlineColor ;
layout ( location = 3 ) uniform lowp vec2 outlineRange = vec2 ( 0.5 , 0 .0) ;
layout ( location = 3 ) uniform lowp vec2 outlineRange = vec2 ( 0.5 , 1 .0) ;
layout ( location = 4 ) uniform lowp float smoothness = 0.04 ;
layout ( location = 4 ) uniform lowp float smoothness = 0.04 ;
#else
#else
uniform lowp vec4 color ;
uniform lowp vec4 color ;
uniform lowp vec4 outlineColor ;
uniform lowp vec4 outlineColor ;
uniform lowp vec2 outlineRange = vec2 ( 0.5 , 0 .0) ;
uniform lowp vec2 outlineRange = vec2 ( 0.5 , 1 .0) ;
uniform lowp float smoothness = 0.04 ;
uniform lowp float smoothness = 0.04 ;
#endif
#endif
#else
#else
@ -66,9 +66,9 @@ void main() {
fragmentColor = smoothstep ( outlineRange . x - smoothness , outlineRange . x + smoothness , intensity ) * color ;
fragmentColor = smoothstep ( outlineRange . x - smoothness , outlineRange . x + smoothness , intensity ) * color ;
/* Outline */
/* Outline */
if ( outlineRange . x < outlineRange . y ) {
if ( outlineRange . x > outlineRange . y ) {
lowp float mid = ( outlineRange . x + outlineRange . y ) / 2.0 ;
lowp float mid = ( outlineRange . x + outlineRange . y ) / 2.0 ;
lowp float half = ( outlineRange . y - outlineRange . x ) / 2.0 ;
lowp float half = ( outlineRange . x - outlineRange . y ) / 2.0 ;
fragmentColor + = smoothstep ( half + smoothness , half - smoothness , distance ( mid , intensity ) ) * outlineColor ;
fragmentColor + = smoothstep ( half + smoothness , half - smoothness , distance ( mid , intensity ) ) * outlineColor ;
}
}
}
}