diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-07-14 17:10:00 +0300 |
---|---|---|
committer | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2016-07-14 17:10:00 +0300 |
commit | cd1ef15605f819f44913c5b76136c07a7680e89e (patch) | |
tree | b91c91da925f5ab2c754b56b4368f143e6d23048 /drape | |
parent | cde591ff82328d0e980aaf86dfb4bc36c73d5082 (diff) |
Added arrow shadow
Diffstat (limited to 'drape')
-rw-r--r-- | drape/drape.pro | 2 | ||||
-rw-r--r-- | drape/shaders/arrow3d_shadow_fragment_shader.fsh | 24 | ||||
-rw-r--r-- | drape/shaders/arrow3d_shadow_vertex_shader.vsh | 13 | ||||
-rw-r--r-- | drape/shaders/shader_index.txt | 1 |
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 |