diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2017-04-18 16:12:10 +0200 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-04-18 14:20:33 -0700 |
commit | a6fe087b4801292da658222f7dc4c30f7d62eea2 (patch) | |
tree | b5ff463a6d44e5b45c602fb39f75e828d0cb4d47 | |
parent | ddecdeca9493ac1caaae2301eb822bdbf2f75ff9 (diff) | |
download | qtlocation-mapboxgl-a6fe087b4801292da658222f7dc4c30f7d62eea2.tar.gz |
[core] remove undefined behavior from fill_outline shaders
m--------- | mapbox-gl-js | 0 | ||||
-rw-r--r-- | src/mbgl/shaders/fill_outline.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shaders/fill_outline_pattern.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shaders/preludes.cpp | 5 |
4 files changed, 5 insertions, 4 deletions
diff --git a/mapbox-gl-js b/mapbox-gl-js -Subproject 1bc8caa7c647d89200b974374b4476cef937aa0 +Subproject c1934a5ed812e5501895acbd3e5c7fcd5521b2c diff --git a/src/mbgl/shaders/fill_outline.cpp b/src/mbgl/shaders/fill_outline.cpp index 3e160ac6c2..91b5db49ba 100644 --- a/src/mbgl/shaders/fill_outline.cpp +++ b/src/mbgl/shaders/fill_outline.cpp @@ -41,7 +41,7 @@ void main() { float dist = length(v_pos - gl_FragCoord.xy); - float alpha = smoothstep(1.0, 0.0, dist); + float alpha = 1.0 - smoothstep(0.0, 1.0, dist); gl_FragColor = outline_color * (alpha * opacity); #ifdef OVERDRAW_INSPECTOR diff --git a/src/mbgl/shaders/fill_outline_pattern.cpp b/src/mbgl/shaders/fill_outline_pattern.cpp index 5e38023382..5825612e95 100644 --- a/src/mbgl/shaders/fill_outline_pattern.cpp +++ b/src/mbgl/shaders/fill_outline_pattern.cpp @@ -68,7 +68,7 @@ void main() { // find distance to outline for alpha interpolation float dist = length(v_pos - gl_FragCoord.xy); - float alpha = smoothstep(1.0, 0.0, dist); + float alpha = 1.0 - smoothstep(0.0, 1.0, dist); gl_FragColor = mix(color1, color2, u_mix) * alpha * opacity; diff --git a/src/mbgl/shaders/preludes.cpp b/src/mbgl/shaders/preludes.cpp index cca0f3e3f1..95fa624e8d 100644 --- a/src/mbgl/shaders/preludes.cpp +++ b/src/mbgl/shaders/preludes.cpp @@ -48,8 +48,9 @@ vec4 evaluate_zoom_function_4(const vec4 value0, const vec4 value1, const vec4 v // packed like so: // packedValue = floor(input[0]) * 256 + input[1], vec2 unpack_float(const float packedValue) { - float v0 = floor(packedValue / 256.0); - return vec2(v0, packedValue - v0 * 256.0); + int packedIntValue = int(packedValue); + int v0 = packedIntValue / 256; + return vec2(v0, packedIntValue - v0 * 256); } |