cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=35d942829ae50c5eb376c2e30682d3237bbc9d27
commit 35d942829ae50c5eb376c2e30682d3237bbc9d27 Author: Oleksandr Shcherbina <o.shcherb...@samsung.com> Date: Mon Nov 9 16:26:57 2015 -0800 evas: fix inverted texture coordinate in Evas.Canvas3d. Summary: Fix T2820 Reviewers: cedric, raster, Hermet Maniphest Tasks: T2820 Differential Revision: https://phab.enlightenment.org/D3294 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- .../gl_common/shader_3d/evas_gl_3d_shaders.x | 30 +++++++++++++--------- .../evas/engines/gl_common/shader_3d/include.shd | 5 ++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x b/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x index 1ac2a1c..c03d8b5 100644 --- a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x +++ b/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x @@ -143,10 +143,11 @@ static const char diffuse_vert_glsl[] = "#endif // VERTEX_POSITION\n" "#endif //VERTEX_POSITION_BLEND\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" " gl_Position = uMatrixMvp * position;\n" @@ -359,10 +360,11 @@ static const char flat_vert_glsl[] = "#endif //VERTEX_NORMAL\n" "#endif //VERTEX_NORMAL_BLEND\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" " gl_Position = uMatrixMvp * position;\n" @@ -686,10 +688,11 @@ static const char phong_vert_glsl[] = "#endif //VERTEX_NORMAL\n" "#endif //VERTEX_NORMAL_BLEND\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" " gl_Position = uMatrixMvp * position;\n" @@ -1104,10 +1107,11 @@ static const char normal_map_vert_glsl[] = "#endif //VERTEX_TANGENT\n" "#endif //VERTEX_TANGENT_BLEND\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" " gl_Position = uMatrixMvp * position;\n" @@ -1475,10 +1479,11 @@ static const char shadow_map_vert_glsl[] = "#endif //VERTEX_POSITION_BLEND\n" "#ifdef ALPHA_TEST_ENABLED\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" "#endif //ALPHA_TEST_ENABLED\n" @@ -1767,10 +1772,11 @@ static const char parallax_occlusion_vert_glsl[] = "#endif //VERTEX_TANGENT\n" "#endif //VERTEX_TANGENT_BLEND\n" " #ifdef VERTEX_TEXCOORD_BLEND\n" - " vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight);\n" + " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n" + " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n" "#else\n" "#ifdef VERTEX_TEXCOORD\n" - " vTexCoord = aTexCoord0.st;\n" + " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n" "#endif //VERTEX_TEXCOORD\n" "#endif //VERTEX_TEXCOORD_BLEND\n" " gl_Position = uMatrixMvp * position;\n" diff --git a/src/modules/evas/engines/gl_common/shader_3d/include.shd b/src/modules/evas/engines/gl_common/shader_3d/include.shd index 03afe25..1485a25 100644 --- a/src/modules/evas/engines/gl_common/shader_3d/include.shd +++ b/src/modules/evas/engines/gl_common/shader_3d/include.shd @@ -239,11 +239,12 @@ define(`VERTEX_SHADER_NORMAL', define(`VERTEX_SHADER_TEXCOORD', `#ifdef VERTEX_TEXCOORD_BLEND' - vTexCoord = mix(aTexCoord1.st, aTexCoord0.st, uTexCoordWeight); + vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t), + vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight); `#else' `#ifdef VERTEX_TEXCOORD' - vTexCoord = aTexCoord0.st; + vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t); `#endif //VERTEX_TEXCOORD' `#endif //VERTEX_TEXCOORD_BLEND') --