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')

-- 


Reply via email to