jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8110ec94f496ff0c5a01268d4edbce1bb275e597

commit 8110ec94f496ff0c5a01268d4edbce1bb275e597
Author: Dmytro Dadyka <d.dad...@samsung.com>
Date:   Tue Mar 24 10:49:25 2015 -0700

    [Evas: Evas_3D] Refactor shader system: refactored flat shade mode.
    
    Reviewers: cedric, jpeg
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D2224
---
 .../gl_common/shader_3d/evas_gl_3d_shaders.x       |  83 +++++-----
 .../evas/engines/gl_common/shader_3d/flat_frag.shd | 170 ++-------------------
 .../evas/engines/gl_common/shader_3d/flat_vert.shd |  80 ++--------
 .../evas/engines/gl_common/shader_3d/include.shd   |   3 +-
 4 files changed, 72 insertions(+), 264 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 fde35e8..40ad124 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
@@ -252,7 +252,7 @@ static const char const flat_vert_glsl[] =
    "}\n"
    "void main()\n"
    "{\n"
-   "#ifdef VERTEX_POSITION_BLEND\n"
+   "   #ifdef VERTEX_POSITION_BLEND\n"
    "   vec4 position = aPosition0 * uPositionWeight +\n"
    "   aPosition1 * (1.0 - uPositionWeight);\n"
    "   position = vec4(position.xyz, 1.0);\n"
@@ -261,7 +261,7 @@ static const char const flat_vert_glsl[] =
    "   vec4 position = vec4(aPosition0.xyz, 1.0);\n"
    "#endif // VERTEX_POSITION\n"
    "#endif //VERTEX_POSITION_BLEND\n"
-   "#ifdef VERTEX_NORMAL_BLEND\n"
+   "   #ifdef VERTEX_NORMAL_BLEND\n"
    "   vec3 normal = aNormal0.xyz * uNormalWeight +\n"
    "   aNormal1.xyz * (1.0 - uNormalWeight);\n"
    "#else\n"
@@ -269,7 +269,7 @@ static const char const flat_vert_glsl[] =
    "   vec3 normal = aNormal0.xyz;\n"
    "#endif //VERTEX_NORMAL\n"
    "#endif //VERTEX_NORMAL_BLEND\n"
-   "#ifdef VERTEX_TEXCOORD_BLEND\n"
+   "   #ifdef VERTEX_TEXCOORD_BLEND\n"
    "   vTexCoord = aTexCoord0.st * uTexCoordWeight +\n"
    "   aTexCoord1.st * (1.0 - uTexCoordWeight);\n"
    "#else\n"
@@ -279,9 +279,9 @@ static const char const flat_vert_glsl[] =
    "#endif //VERTEX_TEXCOORD_BLEND\n"
    "   gl_Position = uMatrixMvp * position;\n"
    "   vertexFlat(position, normal);\n"
-   "#ifdef SHADOWED\n"
+   "   #ifdef SHADOWED\n"
    "   vLightPosition = uMatrixLight * position;\n"
-   "#endif\n"
+   "#endif //SHADOWED\n"
    "}\n";
 
 static const char const flat_frag_glsl[] =
@@ -302,6 +302,16 @@ static const char const flat_frag_glsl[] =
    "varying vec4 vLightPosition;\n"
    "uniform sampler2D uShadowMap;\n"
    "float shadow;\n"
+   "float pcf(vec4 lpos, float size)\n"
+   "  {\n"
+   "     vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
+   "     float i, j, randx, randy, shadow;\n"
+   "     shadow = 0.0;\n"
+   "     for (i = -4.0; i < 4.0; i++)\n"
+   "       for (j = -4.0; j < 4.0; j++)\n"
+   "         shadow += float(smcoord.z <= texture2D(uShadowMap, smcoord.xy + 
vec2(i / 8.0, j / 8.0)*size).x);\n"
+   "     return shadow / 64.0;\n"
+   "}\n"
    "#endif //SHADOWED\n"
    "#ifdef DIFFUSE\n"
    "uniform   vec4        uMaterialDiffuse;\n"
@@ -347,44 +357,34 @@ static const char const flat_frag_glsl[] =
    "uniform float      uTextureEmissionWeight;\n"
    "#endif //EMISSION_TEXTURE_BLEND\n"
    "#endif //EMISSION\n"
-   "#ifdef  SHADOWED\n"
-   "float pcf(vec4 lpos, float size)\n"
-   "{\n"
-   "   vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
-   "   float i, j, randx, randy, shadow;\n"
-   "   shadow = 0.0;\n"
-   "   for (i = -4.0; i < 4.0; i++)\n"
-   "     for (j = -4.0; j < 4.0; j++)\n"
-   "        shadow += float(smcoord.z <= texture2D(uShadowMap, smcoord.xy 
+vec2(i / 8.0, j / 8.0)*size).x);\n"
-   "   return shadow / 64.0;\n"
-   "}\n"
-   "#endif //SHADOWED\n"
    "void fragmentFlat()\n"
    "{\n"
    "   vec4 color;\n"
    "#ifdef DIFFUSE\n"
-   "#ifdef DIFFUSE_TEXTURE_BLEND\n"
-   "        color = texture2D(uTextureDiffuse0, vTexCoord) * 
uTextureDiffuseWeight +\n"
-   "        texture2D(uTextureDiffuse1, vTexCoord) * (1.0 - 
uTextureDiffuseWeight);\n"
-   "        color *= uMaterialDiffuse;\n"
+   "   \n"
+   "#ifdef  DIFFUSE_TEXTURE_BLEND\n"
+   "   color = texture2D(uTextureDiffuse0, vTexCoord) * uTextureDiffuseWeight 
+\n"
+   "   texture2D(uTextureDiffuse1, vTexCoord) * (1.0 - 
uTextureDiffuseWeight);\n"
+   "   color *= uMaterialDiffuse;\n"
    "#else\n"
    "#ifdef  DIFFUSE_TEXTURE\n"
-   "        color = texture2D(uTextureDiffuse0, vTexCoord)  * 
uMaterialDiffuse;\n"
+   "   color = texture2D(uTextureDiffuse0, vTexCoord) * uMaterialDiffuse;\n"
    "#else\n"
-   "        color = uMaterialDiffuse;\n"
+   "   color = uMaterialDiffuse;\n"
    "#endif //DIFFUSE_TEXTURE\n"
    "#endif //DIFFUSE_TEXTURE_BLEND\n"
-   "        gl_FragColor = uLightDiffuse * color * vFactor.x;\n"
+   "   gl_FragColor = uLightDiffuse * color * vFactor.x;\n"
    "#else\n"
-   "        gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n"
+   "   gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n"
    "#endif //DIFFUSE\n"
    "#ifdef SPECULAR\n"
-   "#ifdef SPECULAR_TEXTURE_BLEND\n"
+   "   \n"
+   "#ifdef  SPECULAR_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureSpecular0, vTexCoord) * 
uTextureSpecularWeight +\n"
    "   texture2D(uTextureSpecular1, vTexCoord) * (1.0 - 
uTextureSpecularWeight);\n"
    "   color *= uMaterialSpecular;\n"
    "#else\n"
-   "#ifdef SPECULAR_TEXTURE\n"
+   "#ifdef  SPECULAR_TEXTURE\n"
    "   color = texture2D(uTextureSpecular0, vTexCoord) * uMaterialSpecular;\n"
    "#else\n"
    "   color = uMaterialSpecular;\n"
@@ -395,13 +395,14 @@ static const char const flat_frag_glsl[] =
    "#ifdef SHADOWED\n"
    "   gl_FragColor *= shadow;\n"
    "#endif //SHADOWED\n"
-   "#ifdef E3D_SHADER_FLAG_AMBIENT\n"
-   "#ifdef AMBIENT_TEXTURE_BLEND\n"
+   "#ifdef AMBIENT\n"
+   "   \n"
+   "#ifdef  AMBIENT_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureAmbient0, vTexCoord) * uTextureAmbientWeight 
+\n"
    "   texture2D(uTextureAmbient1, vTexCoord) * (1.0 - 
uTextureAmbientWeight);\n"
    "   color *= uMaterialAmbient;\n"
    "#else\n"
-   "#ifdef AMBIENT_TEXTURE\n"
+   "#ifdef  AMBIENT_TEXTURE\n"
    "   color = texture2D(uTextureAmbient0, vTexCoord) * uMaterialAmbient;\n"
    "#else\n"
    "   color = uMaterialAmbient;\n"
@@ -409,13 +410,14 @@ static const char const flat_frag_glsl[] =
    "#endif //AMBIENT_TEXTURE_BLEND\n"
    "   gl_FragColor += uLightAmbient * color;\n"
    "#endif //AMBIENT\n"
-   "#ifdef EMISSION\n"
-   "#ifdef EMISSION_TEXTURE_BLEND\n"
+   "#ifdef  EMISSION\n"
+   "   \n"
+   "#ifdef  EMISSION_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureEmission0, vTexCoord) * 
uTextureEmissionWeight +\n"
    "   texture2D(uTextureEmission1, vTexCoord) * (1.0 - 
uTextureEmissionWeight);\n"
    "   color *= uMaterialEmission;\n"
    "#else\n"
-   "#ifdef EMISSION_TEXTURE\n"
+   "#ifdef  EMISSION_TEXTURE\n"
    "   color = texture2D(uTextureEmission0, vTexCoord) * uMaterialEmission;\n"
    "#else\n"
    "   color = uMaterialEmission;\n"
@@ -429,9 +431,10 @@ static const char const flat_frag_glsl[] =
    "   shadow = pcf(vLightPosition, 1.0 / 200.0);\n"
    "#endif //SHADOWED\n"
    "   fragmentFlat();\n"
+   "   \n"
    "#ifdef FOG_ENABLED\n"
    "   float z = gl_FragCoord.z / gl_FragCoord.w;\n"
-   "   float fogFactor = exp2( -uFogFactor * uFogFactor * z * z * 1.44);\n"
+   "   float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
    "   fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
    "   gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
    "#endif //FOG_ENABLED\n"
@@ -637,9 +640,10 @@ static const char const phong_frag_glsl[] =
    "#ifdef  DIFFUSE_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureDiffuse0, vTexCoord) * uTextureDiffuseWeight 
+\n"
    "   texture2D(uTextureDiffuse1, vTexCoord) * (1.0 - 
uTextureDiffuseWeight);\n"
+   "   color *= uMaterialDiffuse;\n"
    "#else\n"
    "#ifdef  DIFFUSE_TEXTURE\n"
-   "   color = texture2D(uTextureDiffuse0, vTexCoord);\n"
+   "   color = texture2D(uTextureDiffuse0, vTexCoord) * uMaterialDiffuse;\n"
    "#else\n"
    "   color = uMaterialDiffuse;\n"
    "#endif //DIFFUSE_TEXTURE\n"
@@ -658,9 +662,10 @@ static const char const phong_frag_glsl[] =
    "#ifdef  SPECULAR_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureSpecular0, vTexCoord) * 
uTextureSpecularWeight +\n"
    "   texture2D(uTextureSpecular1, vTexCoord) * (1.0 - 
uTextureSpecularWeight);\n"
+   "   color *= uMaterialSpecular;\n"
    "#else\n"
    "#ifdef  SPECULAR_TEXTURE\n"
-   "   color = texture2D(uTextureSpecular0, vTexCoord);\n"
+   "   color = texture2D(uTextureSpecular0, vTexCoord) * uMaterialSpecular;\n"
    "#else\n"
    "   color = uMaterialSpecular;\n"
    "#endif //SPECULAR_TEXTURE\n"
@@ -679,9 +684,10 @@ static const char const phong_frag_glsl[] =
    "#ifdef  AMBIENT_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureAmbient0, vTexCoord) * uTextureAmbientWeight 
+\n"
    "   texture2D(uTextureAmbient1, vTexCoord) * (1.0 - 
uTextureAmbientWeight);\n"
+   "   color *= uMaterialAmbient;\n"
    "#else\n"
    "#ifdef  AMBIENT_TEXTURE\n"
-   "   color = texture2D(uTextureAmbient0, vTexCoord);\n"
+   "   color = texture2D(uTextureAmbient0, vTexCoord) * uMaterialAmbient;\n"
    "#else\n"
    "   color = uMaterialAmbient;\n"
    "#endif //AMBIENT_TEXTURE\n"
@@ -698,9 +704,10 @@ static const char const phong_frag_glsl[] =
    "#ifdef  EMISSION_TEXTURE_BLEND\n"
    "   color = texture2D(uTextureEmission0, vTexCoord) * 
uTextureEmissionWeight +\n"
    "   texture2D(uTextureEmission1, vTexCoord) * (1.0 - 
uTextureEmissionWeight);\n"
+   "   color *= uMaterialEmission;\n"
    "#else\n"
    "#ifdef  EMISSION_TEXTURE\n"
-   "   color = texture2D(uTextureEmission0, vTexCoord);\n"
+   "   color = texture2D(uTextureEmission0, vTexCoord) * uMaterialEmission;\n"
    "#else\n"
    "   color = uMaterialEmission;\n"
    "#endif //EMISSION_TEXTURE\n"
diff --git a/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd 
b/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
index 824fb66..38d9790 100644
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
+++ b/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
@@ -1,92 +1,12 @@
 varying vec2   vFactor;
 
-#ifdef NEED_TEX_COORD
-varying vec2   vTexCoord;
-#endif //TEX_COORD
-
-#ifdef FOG_ENABLED
-uniform float uFogFactor;
-uniform vec4  uFogColor;
-#endif //FOG_ENABLED
-
-#ifdef  SHADOWED
-varying vec4 vLightPosition;
-uniform sampler2D uShadowMap;
-float shadow;
-#endif //SHADOWED
-
-#ifdef DIFFUSE
-uniform   vec4        uMaterialDiffuse;
-uniform   vec4        uLightDiffuse;
-
-#ifdef DIFFUSE_TEXTURE
-uniform sampler2D  uTextureDiffuse0;
-#endif //DIFFUSE_TEXTURE
-
-#ifdef DIFFUSE_TEXTURE_BLEND
-uniform sampler2D  uTextureDiffuse1;
-uniform float      uTextureDiffuseWeight;
-#endif //DIFFUSE_TEXTURE_BLEND
-
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-uniform   vec4     uLightSpecular;
-uniform   float    uMaterialShininess;
-uniform   vec4     uMaterialSpecular;
-
-#ifdef SPECULAR_TEXTURE
-uniform sampler2D  uTextureSpecular0;
-#endif //SPECULAR_TEXTURE
-
-#ifdef SPECULAR_TEXTURE_BLEND
-uniform sampler2D  uTextureSpecular1;
-uniform float      uTextureSpecularWeight;
-#endif //SPECULAR_TEXTURE_BLEND
-
-#endif //SPECULAR
-
-#ifdef AMBIENT
-uniform  vec4       uMaterialAmbient;
-uniform  vec4       uLightAmbient;
-
-#ifdef AMBIENT_TEXTURE
-uniform sampler2D  uTextureAmbient0;
-#endif //AMBIENT_TEXTURE
-
-#ifdef AMBIENT_TEXTURE_BLEND
-uniform sampler2D  uTextureAmbient1;
-uniform float      uTextureAmbientWeight;
-#endif //AMBIENT_TEXTURE_BLEND
-
-#endif //AMBIENT
-
-#ifdef EMISSION
-uniform vec4       uMaterialEmission;
-
-#ifdef EMISSION_TEXTURE
-uniform sampler2D  uTextureEmission0;
-#endif //EMISSION_TEXTURE
-
-#ifdef EMISSION_TEXTURE_BLEND
-uniform sampler2D  uTextureEmission1;
-uniform float      uTextureEmissionWeight;
-#endif //EMISSION_TEXTURE_BLEND
-
-#endif //EMISSION
-
-#ifdef  SHADOWED
-float pcf(vec4 lpos, float size)
-{
-   vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;
-   float i, j, randx, randy, shadow;
-   shadow = 0.0;
-   for (i = -4.0; i < 4.0; i++)
-     for (j = -4.0; j < 4.0; j++)
-        shadow += float(smcoord.z <= texture2D(uShadowMap, smcoord.xy +vec2(i 
/ 8.0, j / 8.0)*size).x);
-   return shadow / 64.0;
-}
-#endif //SHADOWED
+FRAGMENT_SHADER_USE_TEX_COORD
+FRAGMENT_SHADER_USE_FOG
+FRAGMENT_SHADER_USE_SHADOWS
+FRAGMENT_SHADER_USE_DIFFUSE_TERM
+FRAGMENT_SHADER_USE_SPECULAR_TERM
+FRAGMENT_SHADER_USE_AMBIENT_TERM
+FRAGMENT_SHADER_USE_EMISSION_TERM
 
 void fragmentFlat()
 {
@@ -94,40 +14,15 @@ void fragmentFlat()
 
 #ifdef DIFFUSE
 
-#ifdef DIFFUSE_TEXTURE_BLEND
-        color = texture2D(uTextureDiffuse0, vTexCoord) * uTextureDiffuseWeight 
+
-        texture2D(uTextureDiffuse1, vTexCoord) * (1.0 - uTextureDiffuseWeight);
-        color *= uMaterialDiffuse;
-#else
-
-#ifdef  DIFFUSE_TEXTURE
-        color = texture2D(uTextureDiffuse0, vTexCoord)  * uMaterialDiffuse;
-#else
-        color = uMaterialDiffuse;
-#endif //DIFFUSE_TEXTURE
-
-#endif //DIFFUSE_TEXTURE_BLEND
-        gl_FragColor = uLightDiffuse * color * vFactor.x;
+   FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
+   gl_FragColor = uLightDiffuse * color * vFactor.x;
 #else
-        gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
+   gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
 #endif //DIFFUSE
 
 #ifdef SPECULAR
 
-#ifdef SPECULAR_TEXTURE_BLEND
-   color = texture2D(uTextureSpecular0, vTexCoord) * uTextureSpecularWeight +
-   texture2D(uTextureSpecular1, vTexCoord) * (1.0 - uTextureSpecularWeight);
-   color *= uMaterialSpecular;
-#else
-
-#ifdef SPECULAR_TEXTURE
-   color = texture2D(uTextureSpecular0, vTexCoord) * uMaterialSpecular;
-#else
-   color = uMaterialSpecular;
-#endif //SPECULAR_TEXTURE
-
-#endif //SPECULAR_TEXTURE_BLEND
-
+   FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
    gl_FragColor += uLightSpecular * color * vFactor.y;
 
 #endif //SPECULAR
@@ -136,42 +31,15 @@ void fragmentFlat()
    gl_FragColor *= shadow;
 #endif //SHADOWED
 
-#ifdef E3D_SHADER_FLAG_AMBIENT
-
-#ifdef AMBIENT_TEXTURE_BLEND
-
-   color = texture2D(uTextureAmbient0, vTexCoord) * uTextureAmbientWeight +
-   texture2D(uTextureAmbient1, vTexCoord) * (1.0 - uTextureAmbientWeight);
-   color *= uMaterialAmbient;
-
-#else
-
-#ifdef AMBIENT_TEXTURE
-   color = texture2D(uTextureAmbient0, vTexCoord) * uMaterialAmbient;
-#else
-   color = uMaterialAmbient;
-#endif //AMBIENT_TEXTURE
+#ifdef AMBIENT
 
-#endif //AMBIENT_TEXTURE_BLEND
+   FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
    gl_FragColor += uLightAmbient * color;
 #endif //AMBIENT
 
-#ifdef EMISSION
-
-#ifdef EMISSION_TEXTURE_BLEND
-   color = texture2D(uTextureEmission0, vTexCoord) * uTextureEmissionWeight +
-   texture2D(uTextureEmission1, vTexCoord) * (1.0 - uTextureEmissionWeight);
-   color *= uMaterialEmission;
-#else
-
-#ifdef EMISSION_TEXTURE
-   color = texture2D(uTextureEmission0, vTexCoord) * uMaterialEmission;
-#else
-   color = uMaterialEmission;
-#endif //EMISSION_TEXTURE
-
-#endif //EMISSION_TEXTURE_BLEND
+#ifdef  EMISSION
 
+   FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
    gl_FragColor += color;
 #endif //EMISSION
 
@@ -185,11 +53,5 @@ void main() {
 
    fragmentFlat();
 
-#ifdef FOG_ENABLED
-   float z = gl_FragCoord.z / gl_FragCoord.w;
-   float fogFactor = exp2( -uFogFactor * uFogFactor * z * z * 1.44);
-   fogFactor = clamp(fogFactor, 0.0, 1.0);
-   gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);
-#endif //FOG_ENABLED
-
+   FRAGMENT_SHADER_FOG_APPLY
 }
diff --git a/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd 
b/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
index 37aba1c..10b9493 100644
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
+++ b/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
@@ -4,41 +4,11 @@ uniform   mat4  uMatrixModelview;
 uniform   vec4  uLightPosition;
 varying   vec2  vFactor;
 
-#ifdef SHADOWED
-uniform mat4 uMatrixLight;
-varying vec4 vLightPosition;
-#endif //SHADOWED
-
-#ifdef VERTEX_POSITION
-attribute   vec4  aPosition0;
-#endif //VERTEX_POSITION
-
-#ifdef VERTEX_POSITION_BLEND
-attribute   vec4  aPosition1;
-uniform     float uPositionWeight;
-#endif //VERTEX_POSITION_BLEND
-
-#ifdef VERTEX_NORMAL
-attribute   vec4  aNormal0;
-#endif //VERTEX_NORMAL
-
-#ifdef VERTEX_NORMAL_BLEND
-attribute   vec4  aNormal1;
-uniform     float uNormalWeight;
-#endif //VERTEX_NORMAL_BLEND
-
-#ifdef VERTEX_TEXCOORD
-attribute   vec4  aTexCoord0;
-#endif //VERTEX_TEXCOORD
-
-#ifdef VERTEX_TEXCOORD_BLEND
-attribute   vec4  aTexCoord1;
-uniform     float uTexCoordWeight;
-#endif //VERTEX_TEXCOORD_BLEND
-
-#ifdef NEED_TEX_COORD
-varying vec2 vTexCoord;
-#endif //NEED_TEX_COORD
+VERTEX_SHADER_USE_SHADOWS
+VERTEX_SHADER_USE_POSITION
+VERTEX_SHADER_USE_NORMALS
+VERTEX_SHADER_USE_TEXCOORD
+VERTEX_SHADER_NEED_TEX_COORD
 
 #ifdef LIGHT_SPOT
 uniform   vec3  uLightSpotDir;
@@ -111,44 +81,12 @@ void vertexFlat(vec4 position, vec3 normal)
 void main()
 {
 
-#ifdef VERTEX_POSITION_BLEND
-   vec4 position = aPosition0 * uPositionWeight +
-   aPosition1 * (1.0 - uPositionWeight);
-   position = vec4(position.xyz, 1.0);
-#else
-
-#ifdef VERTEX_POSITION
-   vec4 position = vec4(aPosition0.xyz, 1.0);
-#endif // VERTEX_POSITION
-
-#endif //VERTEX_POSITION_BLEND
-
-#ifdef VERTEX_NORMAL_BLEND
-   vec3 normal = aNormal0.xyz * uNormalWeight +
-   aNormal1.xyz * (1.0 - uNormalWeight);
-#else
-
-#ifdef VERTEX_NORMAL
-   vec3 normal = aNormal0.xyz;
-#endif //VERTEX_NORMAL
-
-#endif //VERTEX_NORMAL_BLEND
-
-#ifdef VERTEX_TEXCOORD_BLEND
-   vTexCoord = aTexCoord0.st * uTexCoordWeight +
-   aTexCoord1.st * (1.0 - uTexCoordWeight);
-#else
-
-#ifdef VERTEX_TEXCOORD
-   vTexCoord = aTexCoord0.st;
-#endif //VERTEX_TEXCOORD
-
-#endif //VERTEX_TEXCOORD_BLEND
+   VERTEX_SHADER_POSITION
+   VERTEX_SHADER_NORMAL
+   VERTEX_SHADER_TEXCOORD
 
    gl_Position = uMatrixMvp * position;
    vertexFlat(position, normal);
 
-#ifdef SHADOWED
-   vLightPosition = uMatrixLight * position;
-#endif
+   VERTEX_SHADER_SHADOWED
 }
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 f65bb96..5028021 100644
--- a/src/modules/evas/engines/gl_common/shader_3d/include.shd
+++ b/src/modules/evas/engines/gl_common/shader_3d/include.shd
@@ -63,9 +63,10 @@ define(`FRAGMENT_SHADER_TEXTURE_BLEND', `
 #ifdef  $1_TEXTURE_BLEND
    color = texture2D(uTexture$2`0', vTexCoord) * uTexture$2Weight +
    texture2D(uTexture$2`1', vTexCoord) * (1.0 - uTexture$2Weight);
+   color *= uMaterial$2;
 #else
 #ifdef  $1_TEXTURE
-   color = texture2D(uTexture$2`0', vTexCoord);
+   color = texture2D(uTexture$2`0', vTexCoord) * uMaterial$2;
 #else
    color = uMaterial$2;
 #endif //$1_TEXTURE

-- 


Reply via email to