From 9b697cc05d163a0d5776b403489143055a1bbd1c Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 7 Sep 2012 21:12:57 +0200 Subject: [PATCH] no control flow in shader, hth for htc --- src/org/mapsforge/android/glrenderer/Shaders.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/org/mapsforge/android/glrenderer/Shaders.java b/src/org/mapsforge/android/glrenderer/Shaders.java index c3bd5eb6..8c4743dd 100644 --- a/src/org/mapsforge/android/glrenderer/Shaders.java +++ b/src/org/mapsforge/android/glrenderer/Shaders.java @@ -18,6 +18,7 @@ package org.mapsforge.android.glrenderer; class Shaders { final static String lineVertexShader = "" + // + "#version 130\n" + "precision mediump float;" + "uniform mat4 mvp;" + "attribute vec2 a_position;" @@ -33,6 +34,7 @@ class Shaders { // last two bits of a_st hold the texture coordinates // TODO use bit operations when available! + " v_st = u_width * (abs(mod(a_st,4.0)) - 1.0);" + // + " v_st = u_width * vec2(ivec2(a_st) & 3 - 1);" + "}"; // final static String lineVertexShader = "" @@ -57,19 +59,14 @@ class Shaders { + "varying vec2 v_st;" + "const float zero = 0.0;" + "void main() {" - + " vec4 color = u_color;" + " float len;" - + " if (v_st.t == zero)" - + " len = abs(v_st.s);" - + " else " + // + " if (v_st.t == zero)" + // + " len = abs(v_st.s);" + // + " else " + " len = length(v_st);" // fade to alpha. u_wscale is the width in pixel which should be faded, // u_width - len the position of this fragment on the perpendicular to the line - + "color *= smoothstep(zero, u_wscale, u_width - len);" - + "if (color.a < 0.02)" - + " discard;" - + " else" - + " gl_FragColor = color;" + + " gl_FragColor = smoothstep(zero, u_wscale, u_width - len) * u_color;" + "}"; // final static String lineFragmentShader = ""