Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/drape
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-07-14 17:10:00 +0300
committerr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-07-14 17:10:00 +0300
commitcd1ef15605f819f44913c5b76136c07a7680e89e (patch)
treeb91c91da925f5ab2c754b56b4368f143e6d23048 /drape
parentcde591ff82328d0e980aaf86dfb4bc36c73d5082 (diff)
Added arrow shadow
Diffstat (limited to 'drape')
-rw-r--r--drape/drape.pro2
-rw-r--r--drape/shaders/arrow3d_shadow_fragment_shader.fsh24
-rw-r--r--drape/shaders/arrow3d_shadow_vertex_shader.vsh13
-rw-r--r--drape/shaders/shader_index.txt1
4 files changed, 40 insertions, 0 deletions
diff --git a/drape/drape.pro b/drape/drape.pro
index 0678215e26..e9c3bea4e1 100644
--- a/drape/drape.pro
+++ b/drape/drape.pro
@@ -16,6 +16,8 @@ OTHER_FILES += \
shaders/area_vertex_shader.vsh \
shaders/arrow3d_fragment_shader.fsh \
shaders/arrow3d_vertex_shader.vsh \
+ shaders/arrow3d_shadow_fragment_shader.fsh \
+ shaders/arrow3d_shadow_vertex_shader.vsh \
shaders/circle_shader.fsh \
shaders/circle_shader.vsh \
shaders/compass_vertex_shader.vsh \
diff --git a/drape/shaders/arrow3d_shadow_fragment_shader.fsh b/drape/shaders/arrow3d_shadow_fragment_shader.fsh
new file mode 100644
index 0000000000..52b57d1247
--- /dev/null
+++ b/drape/shaders/arrow3d_shadow_fragment_shader.fsh
@@ -0,0 +1,24 @@
+varying float v_intensity;
+
+#ifdef SAMSUNG_GOOGLE_NEXUS
+uniform sampler2D u_colorTex;
+#endif
+
+uniform vec4 u_color;
+
+void main()
+{
+#ifdef SAMSUNG_GOOGLE_NEXUS
+ // Because of a bug in OpenGL driver on Samsung Google Nexus this workaround is here.
+ const float kFakeColorScalar = 0.0;
+ lowp vec4 fakeColor = texture2D(u_colorTex, vec2(0.0, 0.0)) * kFakeColorScalar;
+#endif
+
+ vec4 resColor = vec4(u_color.rgb, u_color.a * v_intensity);
+
+#ifdef SAMSUNG_GOOGLE_NEXUS
+ gl_FragColor = resColor + fakeColor;
+#else
+ gl_FragColor = resColor;
+#endif
+}
diff --git a/drape/shaders/arrow3d_shadow_vertex_shader.vsh b/drape/shaders/arrow3d_shadow_vertex_shader.vsh
new file mode 100644
index 0000000000..26656d8e46
--- /dev/null
+++ b/drape/shaders/arrow3d_shadow_vertex_shader.vsh
@@ -0,0 +1,13 @@
+attribute vec4 a_pos;
+attribute vec3 a_normal;
+
+uniform mat4 m_transform;
+
+varying float v_intensity;
+
+void main()
+{
+ vec4 position = m_transform * vec4(a_pos.x, a_pos.y, 0.0, 1.0);
+ v_intensity = a_pos.w;
+ gl_Position = position;
+}
diff --git a/drape/shaders/shader_index.txt b/drape/shaders/shader_index.txt
index ab22b90d05..e269c386fc 100644
--- a/drape/shaders/shader_index.txt
+++ b/drape/shaders/shader_index.txt
@@ -21,6 +21,7 @@ TRACK_POINT_PROGRAM trackpoint_vertex_shader.vsh trackpoint_fragment_shader.fsh
DEBUG_RECT_PROGRAM debug_rect_vertex_shader.vsh debug_rect_fragment_shader.fsh
TRANSPARENT_LAYER_PROGRAM transparent_layer_vertex_shader.vsh transparent_layer_fragment_shader.fsh
ARROW_3D_PROGRAM arrow3d_vertex_shader.vsh arrow3d_fragment_shader.fsh
+ARROW_3D_SHADOW_PROGRAM arrow3d_shadow_vertex_shader.vsh arrow3d_shadow_fragment_shader.fsh
TEXTURING_BILLBOARD_PROGRAM texturing_billboard_vertex_shader.vsh texturing_fragment_shader.fsh
MASKED_TEXTURING_BILLBOARD_PROGRAM masked_texturing_billboard_vertex_shader.vsh masked_texturing_fragment_shader.fsh
TEXT_OUTLINED_BILLBOARD_PROGRAM text_outlined_billboard_vertex_shader.vsh text_fragment_shader.fsh