summaryrefslogtreecommitdiff
path: root/src/modules/evas/engines/gl_common/shader_3d
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/evas/engines/gl_common/shader_3d')
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd15
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd11
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd16
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd13
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x2198
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd64
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd92
-rwxr-xr-xsrc/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh68
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/include.shd254
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd147
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd128
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd240
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd88
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd103
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd51
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd63
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd12
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd60
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd21
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd17
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd24
21 files changed, 0 insertions, 3685 deletions
diff --git a/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd
deleted file mode 100644
index faf43304c0..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd
+++ /dev/null
@@ -1,15 +0,0 @@
-uniform vec4 uColorPick;
-
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main()
-{
- vec4 color = uColorPick;
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd
deleted file mode 100644
index 62de54f149..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd
+++ /dev/null
@@ -1,11 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-
-void main()
-{
- VERTEX_SHADER_POSITION
-
- gl_Position = uMatrixMvp * position;
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd
deleted file mode 100644
index 9faa357ec2..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd
+++ /dev/null
@@ -1,16 +0,0 @@
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main() {
- vec4 color;
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd
deleted file mode 100644
index 1a68155577..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd
+++ /dev/null
@@ -1,13 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-
-void main()
-{
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-}
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
deleted file mode 100644
index 12664a04ca..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
+++ /dev/null
@@ -1,2198 +0,0 @@
-/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */
-/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */
-
-static const char vertex_color_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "varying vec4 vColor;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_COLOR\n"
- "attribute vec4 aColor0;\n"
- "#endif //VERTEX_COLOR\n"
- "#ifdef VERTEX_COLOR_BLEND\n"
- "attribute vec4 aColor1;\n"
- "uniform float uColorWeight;\n"
- "#endif //VERTEX_COLOR_BLEND\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_COLOR_BLEND\n"
- " vec4 color = aColor0 * uColorWeight + aColor1 * (1.0 - uColorWeight);\n"
- "#else\n"
- "#ifdef VERTEX_COLOR\n"
- " vec4 color = aColor0;\n"
- "#endif //VERTEX_COLOR\n"
- "#endif //VERTEX_COLOR_BLEND\n"
- " vColor = color;\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char vertex_color_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec4 vColor;\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main()\n"
- "{\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(vColor.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = vColor;\n"
- "#endif //ALPHA_TEST_ENABLED\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"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char diffuse_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char diffuse_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main() {\n"
- " vec4 color;\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\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"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char flat_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec2 vFactor;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef SPECULAR\n"
- "uniform float uMaterialShininess;\n"
- "#endif //SPECULAR\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "uniform vec3 uLightAtten;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexFlat(vec4 position, vec3 normal)\n"
- "{\n"
- " vec3 lv;\n"
- " float factor;\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " lv = uLightPosition.xyz;\n"
- "#else\n"
- " lv = uLightPosition.xyz - position.xyz;\n"
- " lv = normalize(lv);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " factor = max(dot(lv, normal), 0.0);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, uLightSpotDir);\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- " vFactor.x = factor;\n"
- "#else\n"
- " vFactor.x = 0.0;\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lv);\n"
- " factor = pow(max(dot(hv, normal), 0.0), uMaterialShininess);\n"
- " vFactor.y = factor;\n"
- "#endif //SPECULAR\n"
- " }\n"
- " else\n"
- " vFactor = vec2(0.0, 0.0);\n"
- " /* Light attenuation. */\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " float dist = length(lv);\n"
- " vFactor /= dot(uLightAtten, vec3(1.0, dist, dist * dist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "}\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexFlat(position, normal);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char flat_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec2 vFactor;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "vec4 fragmentFlat()\n"
- "{\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * vFactor.x;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * vFactor.y;\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentFlat();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\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"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char phong_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vNormal;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexPhong(vec4 position, vec3 normal)\n"
- "{\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vLightVector = uLightPosition.xyz;\n"
- "#else\n"
- " vLightVector = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(vLightVector);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " vLightVector = normalize(vLightVector);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " vLightHalfVector = normalize(normalize(-position.xyz) + vLightVector);\n"
- " vNormal = normal;\n"
- "}\n"
- "void main() {\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexPhong(position, normal);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char phong_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vNormal;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "vec4 fragmentPhong()\n"
- "{\n"
- " vec3 normal = normalize(vNormal);\n"
- " vec3 lv = normalize(vLightVector);\n"
- " float factor = dot(lv, normal);\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- " /* Diffuse term. */\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- " /* Specular term. */\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif\n"
- " /* Light attenuation. */\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif\n"
- " /* Emission term. */\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif\n"
- " return fragcolor;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentPhong();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\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"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char normal_map_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifndef VERTEX_TANGENT\n"
- "varying vec3 vNormal;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT\n"
- "attribute vec4 aTangent0;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- "attribute vec4 aTangent1;\n"
- "uniform float uTangentWeight;\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifndef VERTEX_TANGENT\n"
- "void vertexNormalMap(vec4 position, vec3 normal)\n"
- "{\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- " vEyeVector = normalize(-position.xyz);\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vLightVector = uLightPosition.xyz;\n"
- "#else\n"
- " vLightVector = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(vLightVector);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " vLightVector = normalize(vLightVector);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " vLightHalfVector = normalize(vEyeVector + vLightVector);\n"
- " vNormal = normal;\n"
- "}\n"
- "#else\n"
- "void vertexNormalMap(vec4 position, vec3 normal, vec3 tangent)\n"
- "{\n"
- " vec3 n = normalize(uMatrixNormal * normal);\n"
- " vec3 t = normalize(uMatrixNormal * tangent);\n"
- " vec3 b = cross(n, t);\n"
- " vec3 tmp;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vec3 lightDir = uLightPosition.xyz;\n"
- "#else\n"
- " vec3 lightDir = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(lightDir);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " lightDir = normalize(lightDir);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " tmp.x = dot(lightDir, t);\n"
- " tmp.y = dot(lightDir, b);\n"
- " tmp.z = dot(lightDir, n);\n"
- " vLightVector = tmp;\n"
- " tmp.x = dot(position.xyz, t);\n"
- " tmp.y = dot(position.xyz, b);\n"
- " tmp.z = dot(position.xyz, n);\n"
- " vEyeVector = normalize(tmp);\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lightDir);\n"
- " tmp.x = dot(hv, t);\n"
- " tmp.y = dot(hv, b);\n"
- " tmp.z = dot(hv, n);\n"
- " vLightHalfVector = tmp;\n"
- "}\n"
- "#endif //VERTEX_TANGENT\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- " vec3 tangent = aTangent0.xyz * uTangentWeight +\n"
- " aTangent1.xyz * (1.0 - uTangentWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TANGENT\n"
- " vec3 tangent = aTangent0.xyz;\n"
- "#endif //VERTEX_TANGENT\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "#ifdef VERTEX_TANGENT\n"
- " vertexNormalMap(position, normal, tangent);\n"
- "#else\n"
- " vertexNormalMap(position, normal);\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif\n"
- "}\n";
-
-static const char normal_map_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef NORMAL_TEXTURE\n"
- "uniform sampler2D uTextureNormal0;\n"
- "uniform mat3 uTextureMatrixTransformNormal0;\n"
- "#endif //NORMAL_TEXTURE\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureNormal1;\n"
- "uniform float uTextureNormalWeight;\n"
- "uniform mat3 uTextureMatrixTransformNormal1;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "#ifndef VERTEX_TANGENT\n"
- "varying vec3 vNormal;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifndef VERTEX_TANGENT\n"
- "mat3 cotangent_frame(vec3 n, vec3 p, vec2 uv)\n"
- "{\n"
- " vec3 dp1 = dFdx(p);\n"
- " vec3 dp2 = dFdy(p);\n"
- " vec2 duv1 = dFdx(uv);\n"
- " vec2 duv2 = dFdy(uv);\n"
- " vec3 dp2perp = cross(dp2, n);\n"
- " vec3 dp1perp = cross(n, dp1);\n"
- " vec3 t = dp2perp * duv1.x + dp1perp * duv2.x;\n"
- " vec3 b = dp2perp * duv1.y + dp1perp * duv2.y;\n"
- " float invmax = inversesqrt(max(dot(t, t), dot(b, b)));\n"
- " return mat3(t * invmax, b * invmax, n);\n"
- "}\n"
- "vec3 perturb_normal(vec3 normal)\n"
- "{\n"
- " mat3 tbn = cotangent_frame(vNormal, -vEyeVector, vTexCoord);\n"
- " return normalize(tbn * normal);\n"
- "}\n"
- "#endif //VERTEX_TANGENT\n"
- "vec4 fragmentNormalMap()\n"
- "{\n"
- " float factor;\n"
- " vec3 normal;\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- " vec3 Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " vec3 Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;\n"
- " normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;\n"
- " normal += texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).rgb / texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " normal = 2.0 * normal - 1.0;\n"
- "#ifndef VERTEX_TANGENT\n"
- " normal = perturb_normal(normal);\n"
- "#endif //VERTEX_TANGENT\n"
- " vec3 lv = normalize(vLightVector);\n"
- " normal = normalize(normal);\n"
- " factor = dot(lv, normal);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentNormalMap();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\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"
- "}\n";
-
-static const char shadow_map_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "varying vec4 shadowmapposition;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "void main()\n"
- "{\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " gl_Position = uMatrixMvp * position;\n"
- " shadowmapposition = gl_Position;\n"
- "}\n";
-
-static const char shadow_map_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec4 shadowmapposition;\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "#ifdef DIFFUSE\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifndef NEED_TEX_COORD\n"
- " gl_FragColor = vec4(1);\n"
- "#endif\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = (texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) *\n"
- " uTextureDiffuseWeight + texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)) *\n"
- " (1.0 - uTextureDiffuseWeight));\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse));\n"
- "#else\n"
- " color = vec4(1);\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " const vec4 pack = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n"
- " const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n"
- " vec4 depthcolor;\n"
- " float normdist = shadowmapposition.z / shadowmapposition.w;\n"
- " normdist = ((normdist + 1.0) / 2.0);\n"
- " depthcolor = vec4(fract(pack * normdist));\n"
- " depthcolor -= depthcolor.xxyz * mask;\n"
- " gl_FragColor = depthcolor;\n"
- "}\n";
-
-static const char color_pick_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char color_pick_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform vec4 uColorPick;\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main()\n"
- "{\n"
- " vec4 color = uColorPick;\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "}\n";
-
-static const char parallax_occlusion_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT\n"
- "attribute vec4 aTangent0;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- "attribute vec4 aTangent1;\n"
- "uniform float uTangentWeight;\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexParallaxOcclusion(vec4 position, vec3 normal, vec3 tangent)\n"
- "{\n"
- " vec3 n = normalize(uMatrixNormal * normal);\n"
- " vec3 t = normalize(uMatrixNormal * tangent);\n"
- " vec3 b = cross(n, t);\n"
- " vec3 tmp;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vec3 lightDir = uLightPosition.xyz;\n"
- "#else\n"
- " vec3 lightDir = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(lightDir);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " lightDir = normalize(lightDir);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " tmp.x = dot(lightDir, t);\n"
- " tmp.y = dot(lightDir, b);\n"
- " tmp.z = dot(lightDir, n);\n"
- " vLightVector = tmp;\n"
- " tmp.x = dot(position.xyz, t);\n"
- " tmp.y = dot(position.xyz, b);\n"
- " tmp.z = dot(position.xyz, n);\n"
- " vEyeVector = normalize(tmp);\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lightDir);\n"
- " tmp.x = dot(hv, t);\n"
- " tmp.y = dot(hv, b);\n"
- " tmp.z = dot(hv, n);\n"
- " vLightHalfVector = tmp;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- " vec3 tangent = aTangent0.xyz * uTangentWeight +\n"
- " aTangent1.xyz * (1.0 - uTangentWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TANGENT\n"
- " vec3 tangent = aTangent0.xyz;\n"
- "#endif //VERTEX_TANGENT\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\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 = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexParallaxOcclusion(position, normal, tangent);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char parallax_occlusion_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "uniform sampler2D uTextureNormal0;\n"
- "uniform mat3 uTextureMatrixTransformNormal0;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "vec3 Tex0CoordNormal;\n"
- "#endif //TEX_COORD\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureNormal1;\n"
- "uniform float uTextureNormalWeight;\n"
- "uniform mat3 uTextureMatrixTransformNormal1;\n"
- "vec3 Tex1CoordNormal;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "const float parallaxScale = 0.2;\n"
- "vec2 parallaxMapping(in vec3 view, in vec2 tex, out float parallaxHeight)\n"
- "{\n"
- " const float numLayers = 15.0;\n"
- " vec2 texStep = parallaxScale * view.xy / view.z / numLayers;\n"
- " float layerHeight = 1.0 / numLayers;\n"
- " float curLayerHeight = 0.0;\n"
- " vec2 dtex = parallaxScale * view.xy / view.z / numLayers;\n"
- " vec2 currentTextureCoords = tex;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " float heightFromTexture = (1.0 - texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a) * uTextureNormalWeight;\n"
- " heightFromTexture += (1.0 - texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a) *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " float heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " while(heightFromTexture > curLayerHeight)\n"
- " {\n"
- " curLayerHeight += layerHeight;\n"
- " currentTextureCoords -= dtex;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " heightFromTexture = (1.0 - texture2D(uTextureNormal0, currentTextureCoords).a) * uTextureNormalWeight;\n"
- " heightFromTexture += (1.0 - texture2D(uTextureNormal1, currentTextureCoords).a) *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " }\n"
- " vec2 prevTCoords = currentTextureCoords + texStep;\n"
- " float nextH = heightFromTexture - curLayerHeight;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " float prevH = (1.0 - texture2D(uTextureNormal0, prevTCoords).a\n"
- " - curLayerHeight + layerHeight) * uTextureNormalWeight;\n"
- " prevH += (1.0 - texture2D(uTextureNormal1, prevTCoords).a\n"
- " - curLayerHeight + layerHeight) * (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " float prevH = 1.0 - texture2D(uTextureNormal0, prevTCoords).a\n"
- " - curLayerHeight + layerHeight;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " float weight = nextH / (nextH - prevH);\n"
- " vec2 finalTexCoords = prevTCoords * weight + currentTextureCoords * (1.0-weight);\n"
- " parallaxHeight = curLayerHeight + prevH * weight + nextH * (1.0 - weight);\n"
- " return finalTexCoords;\n"
- "}\n"
- "vec4 fragmentParallaxMap()\n"
- "{\n"
- " float factor;\n"
- " vec3 normal;\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- " float parallaxHeight;\n"
- " vec2 tex = parallaxMapping(vEyeVector, vec2(Tex0CoordNormal), parallaxHeight);\n"
- " vec3 lv = normalize(vLightVector);\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " normal = texture2D(uTextureNormal0, tex).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, tex).a;\n"
- " normal += texture2D(uTextureNormal1, tex).rgb *\n"
- " (1.0 - uTextureNormalWeight) / texture2D(uTextureNormal1, tex).a;\n"
- "#else\n"
- " normal = texture2D(uTextureNormal0, tex).rgb / texture2D(uTextureNormal0, tex).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " normal = 2.0 * normal - 1.0;\n"
- " normal = normalize(normal);\n"
- " factor = dot(lv, normal);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " color = texture2D(uTextureDiffuse0, tex) * uTextureDiffuseWeight +\n"
- " texture2D(uTextureDiffuse1, tex) * (1.0 - uTextureDiffuseWeight);\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " color = texture2D(uTextureDiffuse0, tex);\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " color = texture2D(uTextureSpecular0, tex) * uTextureSpecularWeight +\n"
- " texture2D(uTextureSpecular1, tex) * (1.0 - uTextureSpecularWeight);\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " color = texture2D(uTextureSpecular0, tex);\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef AMBIENT\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " color = texture2D(uTextureAmbient0, tex) * uTextureAmbientWeight +\n"
- " texture2D(uTextureAmbient1, tex) * (1.0 - uTextureAmbientWeight);\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " color = texture2D(uTextureAmbient0, tex);\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifdef EMISSION\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " color = texture2D(uTextureEmission0, tex) * uTextureEmissionWeight +\n"
- " texture2D(uTextureEmission1, tex) * (1.0 - uTextureEmissionWeight);\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " color = texture2D(uTextureEmission0, tex);\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef NEED_TEX_COORD\n"
- " Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;\n"
- "#endif // NEED_TEX_COORD\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentParallaxMap();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\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"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char post_processing_fxaa_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "varying vec2 tc0;\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " tc0 = position.xy * 0.5 + 0.5;\n"
- "}\n";
-
-static const char post_processing_fxaa_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "//FXAA fragment shader by Timothy Lottes\n"
- "//http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf\n"
- "//modified and adapted to www.enlightenment.org by Oleksander Shcherbina\n"
- "uniform sampler2D uColorTexture;\n"
- "uniform float uFrameSizeH;\n"
- "uniform float uFrameSizeW;\n"
- "varying vec2 tc0;\n"
- "vec4 fxaa()\n"
- "{\n"
- " float _SPAN_MAX_ = 8.0;\n"
- " float _REDUCE_MUL_ = (1.0/8.0);\n"
- " float _REDUCE_MIN_ = (1.0/128.0);\n"
- " vec4 l = vec4(0.299, 0.587, 0.114, 0.0);\n"
- " vec2 frameBufSize = vec2(uFrameSizeW, uFrameSizeH);\n"
- " vec2 direction;\n"
- " vec4 colorNW = texture2D(uColorTexture, tc0 + (vec2(-1.0, -1.0)/frameBufSize));\n"
- " vec4 colorNE = texture2D(uColorTexture, tc0 + (vec2(1.0, -1.0)/frameBufSize));\n"
- " vec4 colorSW = texture2D(uColorTexture, tc0 + (vec2(-1.0, 1.0)/frameBufSize));\n"
- " vec4 colorSE = texture2D(uColorTexture, tc0 + (vec2(1.0, 1.0)/frameBufSize));\n"
- " vec4 colorM = texture2D(uColorTexture,tc0);\n"
- " float lNW = dot(colorNW, l);\n"
- " float lNE = dot(colorNE, l);\n"
- " float lSW = dot(colorSW, l);\n"
- " float lSE = dot(colorSE, l);\n"
- " float lM = dot(colorM, l);\n"
- " float lMin = min(lM, min(min(lNW, lNE), min(lSW, lSE)));\n"
- " float lMax = max(lM, max(max(lNW, lNE), max(lSW, lSE)));\n"
- " direction.x = -((lNW + lNE) - (lSW + lSE));\n"
- " direction.y = ((lNW + lSW) - (lNE + lSE));\n"
- " float directionReduce = max(\n"
- " (lNW + lNE + lSW + lSE) * (0.25 * _REDUCE_MUL_),\n"
- " _REDUCE_MIN_);\n"
- " float rcpDirMin = 1.0/(min(abs(direction.x), abs(direction.y)) + directionReduce);\n"
- " direction = min(vec2(_SPAN_MAX_, _SPAN_MAX_),\n"
- " max(vec2(-_SPAN_MAX_, -_SPAN_MAX_),\n"
- " direction * rcpDirMin)) / frameBufSize;\n"
- " vec4 colorA = 0.5 * (\n"
- " texture2D(uColorTexture, tc0.xy + direction * (1.0/3.0 - 0.5)) +\n"
- " texture2D(uColorTexture, tc0.xy + direction * (2.0/3.0 - 0.5)));\n"
- " vec4 colorB = colorA * 0.5 + 0.25 * (\n"
- " texture2D(uColorTexture, tc0.xy + direction * (- 0.5)) +\n"
- " texture2D(uColorTexture, tc0.xy + direction * 0.5));\n"
- " float lB = dot(colorB, l);\n"
- " if((lB < lMin) || (lB > lMax))\n"
- " return colorA;\n"
- " else\n"
- " return colorB;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " gl_FragColor = fxaa();\n"
- "}\n";
-
-static const char *vertex_shaders[] =
-{
- vertex_color_vert_glsl,
- diffuse_vert_glsl,
- flat_vert_glsl,
- phong_vert_glsl,
- normal_map_vert_glsl,
- shadow_map_vert_glsl,
- color_pick_vert_glsl,
- parallax_occlusion_vert_glsl,
- post_processing_fxaa_vert_glsl,
-};
-
-static const char *fragment_shaders[] =
-{
- vertex_color_frag_glsl,
- diffuse_frag_glsl,
- flat_frag_glsl,
- phong_frag_glsl,
- normal_map_frag_glsl,
- shadow_map_frag_glsl,
- color_pick_frag_glsl,
- parallax_occlusion_frag_glsl,
- post_processing_fxaa_frag_glsl,
-};
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
deleted file mode 100644
index 863bac1e1a..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
+++ /dev/null
@@ -1,64 +0,0 @@
-varying vec2 vFactor;
-
-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
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-vec4 fragmentFlat()
-{
- vec4 color;
- vec4 fragcolor;
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
- fragcolor = uLightDiffuse * color * vFactor.x;
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
- fragcolor += uLightSpecular * color * vFactor.y;
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
-#ifdef AMBIENT
-
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentFlat();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_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
deleted file mode 100644
index 10b9493304..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
+++ /dev/null
@@ -1,92 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec2 vFactor;
-
-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;
-uniform float uLightSpotExp;
-uniform float uLightSpotCutoffCos;
-#endif //LIGHT_SPOT
-
-#ifdef SPECULAR
-uniform float uMaterialShininess;
-#endif //SPECULAR
-
-#ifdef LIGHT_ATTENUATION
-uniform vec3 uLightAtten;
-#endif //LIGHT_ATTENUATION
-
-void vertexFlat(vec4 position, vec3 normal)
-{
- vec3 lv;
- float factor;
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- lv = uLightPosition.xyz;
-#else
- lv = uLightPosition.xyz - position.xyz;
- lv = normalize(lv);
-#endif //LIGHT_DIRECTIONAL
-
- factor = max(dot(lv, normal), 0.0);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, uLightSpotDir);
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
- vFactor.x = factor;
-#else
- vFactor.x = 0.0;
-#endif //DIFFUSE
-
-#ifdef SPECULAR
- vec3 hv = normalize(normalize(-position.xyz) + lv);
- factor = pow(max(dot(hv, normal), 0.0), uMaterialShininess);
- vFactor.y = factor;
-#endif //SPECULAR
-
- }
- else
- vFactor = vec2(0.0, 0.0);
-
- /* Light attenuation. */
-#ifdef LIGHT_ATTENUATION
- float dist = length(lv);
- vFactor /= dot(uLightAtten, vec3(1.0, dist, dist * dist));
-#endif //LIGHT_ATTENUATION
-}
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
- vertexFlat(position, normal);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh b/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh
deleted file mode 100755
index f31880fda0..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh
-
-# This script will generate a C file containing all the shaders used by Evas_3D
-
-DIR=`dirname $0`
-cd $DIR/../../../../../
-
-OUTPUT="$DIR/evas_gl_3d_shaders.x"
-
-# Skip generation during make distcheck
-if [ "${top_distdir}" != "" ] ; then exit 0; fi
-
-# Skip generation if file can not be written to
-if [ -e ${OUTPUT} ] && [ ! -w ${OUTPUT} ] ; then exit 0; fi
-
-# Skip generation if there is no diff (or no git)
-if ! git rev-parse 2>> /dev/null >> /dev/null ; then exit 0 ; fi
-if git diff --quiet --exit-code -- "$DIR"
-then
- touch "$OUTPUT"
- exit 0
-fi
-
-exec 1<&-
-exec 1>"$OUTPUT"
-
-SHADERS=$@
-VERT_SHADERS_SOURCE=""
-FRAG_SHADERS_SOURCE=""
-
-# Write header
-printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */\n"
-printf "/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */\n\n"
-
-for SHD in $SHADERS ; do
- LNAME=`basename "$SHD" .shd`
-
- if echo "$LNAME" | grep _vert 2>&1 >> /dev/null ; then
- VERT_SHADERS_SOURCE="$VERT_SHADERS_SOURCE "$LNAME"_glsl,\n"
- fi
- if echo "$LNAME" | grep _frag 2>&1 >> /dev/null ; then
- FRAG_SHADERS_SOURCE="$FRAG_SHADERS_SOURCE "$LNAME"_glsl,\n"
- fi
-
- m4 "$DIR/include.shd" "$SHD" > "$SHD.tmp"
-
- OIFS="$IFS"
- IFS=`printf '\n+'`
- IFS=${IFS%+}
- printf "static const char "$LNAME"_glsl[] ="
- for LINE in `cat "$SHD.tmp"` ; do
- printf "\n \"$LINE\\\n\""
- done
- printf ";\n\n"
- IFS="$OIFS"
-
- rm "$SHD.tmp"
-done
-
-printf "static const char *vertex_shaders[] =
-{\n"
- printf "$VERT_SHADERS_SOURCE"
-printf "};\n\n"
-
-printf "static const char *fragment_shaders[] =
-{\n"
- printf "$FRAG_SHADERS_SOURCE"
-printf "};\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
deleted file mode 100644
index 2897589c17..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/include.shd
+++ /dev/null
@@ -1,254 +0,0 @@
-`#ifdef GL_ES
-precision mediump float;
-precision mediump int;
-precision lowp sampler2D;
-#endif'
-
-define(`FRAGMENT_SHADER_USE_TEX_COORD',`
-#ifdef NEED_TEX_COORD
-varying vec2 vTexCoord;
-#endif //TEX_COORD')
-
-define(`FRAGMENT_SHADER_USE_TEXTURE', `
-#ifdef $1_TEXTURE
-uniform sampler2D uTexture$2`0';
-uniform mat3 uTextureMatrixTransform$2`0';
-#endif //$1_TEXTURE
-#ifdef $1_TEXTURE_BLEND
-uniform sampler2D uTexture$2`1';
-uniform float uTexture$2Weight;
-uniform mat3 uTextureMatrixTransform$2`1';
-#endif //$1_TEXTURE_BLEND')
-
-define(`FRAGMENT_SHADER_USE_FOG', `
-#ifdef FOG_ENABLED
-uniform float uFogFactor;
-uniform vec4 uFogColor;
-#endif //FOG_ENABLED')
-define(`FRAGMENT_SHADER_USE_ALPHA_TEST_GLES',
-uniform int uAlphaTestComparison;
-uniform float uAlphaTestRefValue;)
-
-define(`FRAGMENT_SHADER_USE_SHADOWS', `
-#ifdef SHADOWED
-varying vec4 vLightPosition;
-uniform sampler2D uShadowMap;
-uniform float uShadowsPCFStep;
-uniform float uShadowsPCFSize;
-uniform float uShadowsConstantBias;
-float shadow;
-float pcf(vec4 lpos)
-{
- vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;
- float i, j, shadow, q, c;
- q = floor(uShadowsPCFStep * 2.0);
- c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);
- shadow = 0.0;
- const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
- for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)
- for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)
- {
- vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);
- shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);
- }
- return shadow / c;
-}
-#endif //SHADOWED')
-
-define(`FRAGMENT_SHADER_FOG_APPLY', `
-#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')
-
-define(`FRAGMENT_SHADER_USE_LIGHT', `
-#ifdef LIGHT_SPOT
-uniform vec3 uLightSpotDir;
-uniform float uLightSpotExp;
-uniform float uLightSpotCutoffCos;
-#endif //LIGHT_SPOT
-#ifdef LIGHT_ATTENUATION
-varying float vLightDist;
-#endif //LIGHT_ATTENUATION')
-
-define(`FRAGMENT_SHADER_TEXTURE_BLEND', `
-#ifdef $1_TEXTURE_BLEND
- vec3 Tex0Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`0';
- vec3 Tex1Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`1';
- color = mix(texture2D(uTexture$2`1', vec2(Tex1Coord$2)),
- texture2D(uTexture$2`0', vec2(Tex0Coord$2)), uTexture$2Weight);
- color *= uMaterial$2;
-#else
-#ifdef $1_TEXTURE
- vec3 Tex0Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`0';
- color = texture2D(uTexture$2`0', vec2(Tex0Coord$2)) * uMaterial$2;
-#else
- color = uMaterial$2;
-#endif //$1_TEXTURE
-#endif //$1_TEXTURE_BLEND')
-
-define(`FRAGMENT_SHADER_USE_EMISSION_TERM',
-`#ifdef EMISSION'
-uniform vec4 uMaterialEmission;
-FRAGMENT_SHADER_USE_TEXTURE(EMISSION, Emission)
-`#endif //EMISSION')
-
-define(`FRAGMENT_SHADER_USE_SPECULAR_TERM',
-`#ifdef SPECULAR'
-uniform vec4 uLightSpecular;
-uniform float uMaterialShininess;
-uniform vec4 uMaterialSpecular;
-FRAGMENT_SHADER_USE_TEXTURE(SPECULAR, Specular)
-`#endif //SPECULAR')
-
-define(`FRAGMENT_SHADER_USE_AMBIENT_TERM',
-`#ifdef AMBIENT'
-uniform vec4 uMaterialAmbient;
-uniform vec4 uLightAmbient;
-FRAGMENT_SHADER_USE_TEXTURE(AMBIENT, Ambient)
-`#endif //AMBIENT')
-
-define(`FRAGMENT_SHADER_USE_DIFFUSE_TERM',
-`#ifdef DIFFUSE'
-uniform vec4 uMaterialDiffuse;
-uniform vec4 uLightDiffuse;
-FRAGMENT_SHADER_USE_TEXTURE(DIFFUSE, Diffuse)
-`#endif //DIFFUSE')
-
-define(`FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY',
-/*uAlphaTestComparison is value of the Evas_3D_Comparison type*/
- const float p = 1000000.0;
- float acolor = floor($1.a * p);
- float refvalue = floor(uAlphaTestRefValue * p);
- if (uAlphaTestComparison == 0) discard;
- else if (uAlphaTestComparison == 1)
- {
- if (acolor < refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 2)
- {
- if (acolor == refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 3)
- {
- if (acolor <= refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 4)
- {
- if (acolor > refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 5)
- {
- if (acolor != refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 6)
- {
- if (acolor >= refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 7) ;)
-
-
-define(`VERTEX_SHADER_NEED_TEX_COORD',
-`#ifdef NEED_TEX_COORD'
-varying vec2 vTexCoord;
-`#endif //NEED_TEX_COORD')
-
-define(`VERTEX_SHADER_USE_LIGHT_ATTENUATION',
-`#ifdef LIGHT_ATTENUATION'
-varying float vLightDist;
-`#endif //LIGHT_ATTENUATION')
-
-define(`VERTEX_SHADER_USE_SHADOWS',
-`#ifdef SHADOWED'
-uniform mat4 uMatrixLight;
-varying vec4 vLightPosition;
-`#endif //SHADOWED')
-
-define(`VERTEX_SHADER_USE_POSITION',
-`#ifdef VERTEX_POSITION'
-attribute vec4 aPosition0;
-`#endif //VERTEX_POSITION'
-
-`#ifdef VERTEX_POSITION_BLEND'
-attribute vec4 aPosition1;
-uniform float uPositionWeight;
-`#endif //VERTEX_POSITION_BLEND')
-
-define(`VERTEX_SHADER_USE_NORMALS',
-`#ifdef VERTEX_NORMAL'
-attribute vec4 aNormal0;
-`#endif //VERTEX_NORMAL'
-
-`#ifdef VERTEX_NORMAL_BLEND'
-attribute vec4 aNormal1;
-uniform float uNormalWeight;
-`#endif //VERTEX_NORMAL_BLEND'
-)
-
-define(`VERTEX_SHADER_USE_TEXCOORD',
-`#ifdef VERTEX_TEXCOORD'
-attribute vec4 aTexCoord0;
-`#endif //VERTEX_TEXCOORD'
-
-`#ifdef VERTEX_TEXCOORD_BLEND'
-attribute vec4 aTexCoord1;
-uniform float uTexCoordWeight;
-`#endif //VERTEX_TEXCOORD_BLEND'
-)
-
-define(`VERTEX_SHADER_USE_COLOR',
-`#ifdef VERTEX_COLOR'
-attribute vec4 aColor0;
-`#endif //VERTEX_COLOR'
-
-`#ifdef VERTEX_COLOR_BLEND'
-attribute vec4 aColor1;
-uniform float uColorWeight;
-`#endif //VERTEX_COLOR_BLEND')
-
-define(`VERTEX_SHADER_POSITION',
-`#ifdef VERTEX_POSITION_BLEND'
- vec4 position = mix(aPosition1, aPosition0, 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')
-
-define(`VERTEX_SHADER_NORMAL',
-`#ifdef VERTEX_NORMAL_BLEND'
- vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);
-`#else'
-
-`#ifdef VERTEX_NORMAL'
- vec3 normal = aNormal0.xyz;
-`#endif //VERTEX_NORMAL'
-`#endif //VERTEX_NORMAL_BLEND')
-
-define(`VERTEX_SHADER_TEXCOORD',
-`#ifdef VERTEX_TEXCOORD_BLEND'
- vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),
- vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);
-`#else'
-
-`#ifdef VERTEX_TEXCOORD'
- vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);
-`#endif //VERTEX_TEXCOORD'
-
-`#endif //VERTEX_TEXCOORD_BLEND')
-
-define(`VERTEX_SHADER_SHADOWED',
-`#ifdef SHADOWED'
- vLightPosition = uMatrixLight * position;
-`#endif //SHADOWED')
diff --git a/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd
deleted file mode 100644
index ad2b64f4f8..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd
+++ /dev/null
@@ -1,147 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_SHADOWS
-FRAGMENT_SHADER_USE_TEXTURE(NORMAL, Normal)
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-#ifndef VERTEX_TANGENT
-varying vec3 vNormal;
-#endif //VERTEX_TANGENT
-
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_SPECULAR_TERM
-FRAGMENT_SHADER_USE_AMBIENT_TERM
-FRAGMENT_SHADER_USE_EMISSION_TERM
-FRAGMENT_SHADER_USE_LIGHT
-
-#ifndef VERTEX_TANGENT
-
-mat3 cotangent_frame(vec3 n, vec3 p, vec2 uv)
-{
- vec3 dp1 = dFdx(p);
- vec3 dp2 = dFdy(p);
- vec2 duv1 = dFdx(uv);
- vec2 duv2 = dFdy(uv);
- vec3 dp2perp = cross(dp2, n);
- vec3 dp1perp = cross(n, dp1);
- vec3 t = dp2perp * duv1.x + dp1perp * duv2.x;
- vec3 b = dp2perp * duv1.y + dp1perp * duv2.y;
- float invmax = inversesqrt(max(dot(t, t), dot(b, b)));
- return mat3(t * invmax, b * invmax, n);
-}
-
-vec3 perturb_normal(vec3 normal)
-{
- mat3 tbn = cotangent_frame(vNormal, -vEyeVector, vTexCoord);
- return normalize(tbn * normal);
-}
-#endif //VERTEX_TANGENT
-
-vec4 fragmentNormalMap()
-{
- float factor;
- vec3 normal;
- vec4 color;
- vec4 fragcolor;
-
- vec3 Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;
-#ifdef NORMAL_TEXTURE_BLEND
- vec3 Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;
- normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;
- normal += texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).rgb / texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a *
- (1.0 - uTextureNormalWeight);
-#else
- normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- normal = 2.0 * normal - 1.0;
-
-#ifndef VERTEX_TANGENT
- normal = perturb_normal(normal);
-#endif //VERTEX_TANGENT
-
- vec3 lv = normalize(vLightVector);
- normal = normalize(normal);
-
- factor = dot(lv, normal);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
- fragcolor = uLightDiffuse * color * factor;
-
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
- fragcolor += uLightSpecular * color * factor;
- }
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef AMBIENT
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif //LIGHT_ATTENUATION
-
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentNormalMap();
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
-FRAGMENT_SHADER_FOG_APPLY
-
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd
deleted file mode 100644
index 0c9e557390..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd
+++ /dev/null
@@ -1,128 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-#ifndef VERTEX_TANGENT
-varying vec3 vNormal;
-#endif //VERTEX_TANGENT
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-
-#ifdef VERTEX_TANGENT
-attribute vec4 aTangent0;
-#endif //VERTEX_TANGENT
-
-#ifdef VERTEX_TANGENT_BLEND
-attribute vec4 aTangent1;
-uniform float uTangentWeight;
-#endif //VERTEX_TANGENT_BLEND
-
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-#ifndef VERTEX_TANGENT
-void vertexNormalMap(vec4 position, vec3 normal)
-{
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
- vEyeVector = normalize(-position.xyz);
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- vLightVector = uLightPosition.xyz;
-#else
- vLightVector = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(vLightVector);
-#endif //LIGHT_ATTENUATION
-
- vLightVector = normalize(vLightVector);
-#endif //LIGHT_DIRECTIONAL
-
- vLightHalfVector = normalize(vEyeVector + vLightVector);
- vNormal = normal;
-}
-
-#else
-
-void vertexNormalMap(vec4 position, vec3 normal, vec3 tangent)
-{
- vec3 n = normalize(uMatrixNormal * normal);
- vec3 t = normalize(uMatrixNormal * tangent);
- vec3 b = cross(n, t);
- vec3 tmp;
-
- position = uMatrixModelview * position;
-
-#ifdef LIGHT_DIRECTIONAL
- vec3 lightDir = uLightPosition.xyz;
-#else
- vec3 lightDir = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(lightDir);
-#endif //LIGHT_ATTENUATION
-
- lightDir = normalize(lightDir);
-#endif //LIGHT_DIRECTIONAL
-
- tmp.x = dot(lightDir, t);
- tmp.y = dot(lightDir, b);
- tmp.z = dot(lightDir, n);
- vLightVector = tmp;
-
- tmp.x = dot(position.xyz, t);
- tmp.y = dot(position.xyz, b);
- tmp.z = dot(position.xyz, n);
- vEyeVector = normalize(tmp);
-
- vec3 hv = normalize(normalize(-position.xyz) + lightDir);
- tmp.x = dot(hv, t);
- tmp.y = dot(hv, b);
- tmp.z = dot(hv, n);
- vLightHalfVector = tmp;
-}
-#endif //VERTEX_TANGENT
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
-
-#ifdef VERTEX_TANGENT_BLEND
- vec3 tangent = aTangent0.xyz * uTangentWeight +
- aTangent1.xyz * (1.0 - uTangentWeight);
-#else
-
-#ifdef VERTEX_TANGENT
- vec3 tangent = aTangent0.xyz;
-#endif //VERTEX_TANGENT
-
-#endif //VERTEX_TANGENT_BLEND
-
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-
-#ifdef VERTEX_TANGENT
- vertexNormalMap(position, normal, tangent);
-#else
- vertexNormalMap(position, normal);
-#endif //VERTEX_TANGENT
-
-#ifdef SHADOWED
- vLightPosition = uMatrixLight * position;
-#endif
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd
deleted file mode 100644
index aedafe4bdd..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd
+++ /dev/null
@@ -1,240 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-uniform sampler2D uTextureNormal0;
-uniform mat3 uTextureMatrixTransformNormal0;
-
-#ifdef NEED_TEX_COORD
-varying vec2 vTexCoord;
-vec3 Tex0CoordNormal;
-#endif //TEX_COORD
-
-#ifdef NORMAL_TEXTURE_BLEND
-uniform sampler2D uTextureNormal1;
-uniform float uTextureNormalWeight;
-uniform mat3 uTextureMatrixTransformNormal1;
-vec3 Tex1CoordNormal;
-#endif //NORMAL_TEXTURE_BLEND
-
-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
-FRAGMENT_SHADER_USE_LIGHT
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-const float parallaxScale = 0.2;
-
-vec2 parallaxMapping(in vec3 view, in vec2 tex, out float parallaxHeight)
-{
- const float numLayers = 15.0;
- vec2 texStep = parallaxScale * view.xy / view.z / numLayers;
-
- float layerHeight = 1.0 / numLayers;
- float curLayerHeight = 0.0;
- vec2 dtex = parallaxScale * view.xy / view.z / numLayers;
-
- vec2 currentTextureCoords = tex;
-
-#ifdef NORMAL_TEXTURE_BLEND
- float heightFromTexture = (1.0 - texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a) * uTextureNormalWeight;
- heightFromTexture += (1.0 - texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a) *
- (1.0 - uTextureNormalWeight);
-#else
- float heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- while(heightFromTexture > curLayerHeight)
- {
- curLayerHeight += layerHeight;
- currentTextureCoords -= dtex;
-
-#ifdef NORMAL_TEXTURE_BLEND
- heightFromTexture = (1.0 - texture2D(uTextureNormal0, currentTextureCoords).a) * uTextureNormalWeight;
- heightFromTexture += (1.0 - texture2D(uTextureNormal1, currentTextureCoords).a) *
- (1.0 - uTextureNormalWeight);
-#else
- heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;
-#endif //NORMAL_TEXTURE_BLEND
- }
-
- vec2 prevTCoords = currentTextureCoords + texStep;
- float nextH = heightFromTexture - curLayerHeight;
-
-#ifdef NORMAL_TEXTURE_BLEND
- float prevH = (1.0 - texture2D(uTextureNormal0, prevTCoords).a
- - curLayerHeight + layerHeight) * uTextureNormalWeight;
- prevH += (1.0 - texture2D(uTextureNormal1, prevTCoords).a
- - curLayerHeight + layerHeight) * (1.0 - uTextureNormalWeight);
-#else
- float prevH = 1.0 - texture2D(uTextureNormal0, prevTCoords).a
- - curLayerHeight + layerHeight;
-#endif //NORMAL_TEXTURE_BLEND
-
- float weight = nextH / (nextH - prevH);
- vec2 finalTexCoords = prevTCoords * weight + currentTextureCoords * (1.0-weight);
- parallaxHeight = curLayerHeight + prevH * weight + nextH * (1.0 - weight);
-
- return finalTexCoords;
-}
-
-vec4 fragmentParallaxMap()
-{
- float factor;
- vec3 normal;
- vec4 color;
- vec4 fragcolor;
- float parallaxHeight;
- vec2 tex = parallaxMapping(vEyeVector, vec2(Tex0CoordNormal), parallaxHeight);
-
- vec3 lv = normalize(vLightVector);
-
-#ifdef NORMAL_TEXTURE_BLEND
- normal = texture2D(uTextureNormal0, tex).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, tex).a;
- normal += texture2D(uTextureNormal1, tex).rgb *
- (1.0 - uTextureNormalWeight) / texture2D(uTextureNormal1, tex).a;
-#else
- normal = texture2D(uTextureNormal0, tex).rgb / texture2D(uTextureNormal0, tex).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- normal = 2.0 * normal - 1.0;
-
- normal = normalize(normal);
-
- factor = dot(lv, normal);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
-
-#ifdef DIFFUSE_TEXTURE_BLEND
- color = texture2D(uTextureDiffuse0, tex) * uTextureDiffuseWeight +
- texture2D(uTextureDiffuse1, tex) * (1.0 - uTextureDiffuseWeight);
-#else
-
-#ifdef DIFFUSE_TEXTURE
- color = texture2D(uTextureDiffuse0, tex);
-#else
- color = uMaterialDiffuse;
-#endif //DIFFUSE_TEXTURE
-
-#endif //DIFFUSE_TEXTURE_BLEND
-
- fragcolor = uLightDiffuse * color * factor;
-
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
-
-#ifdef SPECULAR_TEXTURE_BLEND
- color = texture2D(uTextureSpecular0, tex) * uTextureSpecularWeight +
- texture2D(uTextureSpecular1, tex) * (1.0 - uTextureSpecularWeight);
-#else
-#ifdef SPECULAR_TEXTURE
- color = texture2D(uTextureSpecular0, tex);
-#else
- color = uMaterialSpecular;
-#endif //SPECULAR_TEXTURE
-
-#endif //SPECULAR_TEXTURE_BLEND
-
- fragcolor += uLightSpecular * color * factor;
- }
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef AMBIENT
-#ifdef AMBIENT_TEXTURE_BLEND
- color = texture2D(uTextureAmbient0, tex) * uTextureAmbientWeight +
- texture2D(uTextureAmbient1, tex) * (1.0 - uTextureAmbientWeight);
-#else
-
-#ifdef AMBIENT_TEXTURE
- color = texture2D(uTextureAmbient0, tex);
-#else
- color = uMaterialAmbient;
-#endif //AMBIENT_TEXTURE
-
-#endif //AMBIENT_TEXTURE_BLEND
-
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif //LIGHT_ATTENUATION
-
-#ifdef EMISSION
-
-#ifdef EMISSION_TEXTURE_BLEND
- color = texture2D(uTextureEmission0, tex) * uTextureEmissionWeight +
- texture2D(uTextureEmission1, tex) * (1.0 - uTextureEmissionWeight);
-#else
-
-#ifdef EMISSION_TEXTURE
- color = texture2D(uTextureEmission0, tex);
-#else
- color = uMaterialEmission;
-#endif //EMISSION_TEXTURE
-
-#endif //EMISSION_TEXTURE_BLEND
-
- fragcolor += color;
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-
-#ifdef NEED_TEX_COORD
- Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;
-#endif // NEED_TEX_COORD
-
-#ifdef NORMAL_TEXTURE_BLEND
- Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;
-#endif //NORMAL_TEXTURE_BLEND
-
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentParallaxMap();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd
deleted file mode 100644
index dff4ff75d4..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd
+++ /dev/null
@@ -1,88 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-
-#ifdef VERTEX_TANGENT
-attribute vec4 aTangent0;
-#endif //VERTEX_TANGENT
-
-#ifdef VERTEX_TANGENT_BLEND
-attribute vec4 aTangent1;
-uniform float uTangentWeight;
-#endif //VERTEX_TANGENT_BLEND
-
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-void vertexParallaxOcclusion(vec4 position, vec3 normal, vec3 tangent)
-{
- vec3 n = normalize(uMatrixNormal * normal);
- vec3 t = normalize(uMatrixNormal * tangent);
- vec3 b = cross(n, t);
- vec3 tmp;
-
- position = uMatrixModelview * position;
-
-#ifdef LIGHT_DIRECTIONAL
- vec3 lightDir = uLightPosition.xyz;
-#else
- vec3 lightDir = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(lightDir);
-#endif //LIGHT_ATTENUATION
-
- lightDir = normalize(lightDir);
-#endif //LIGHT_DIRECTIONAL
-
- tmp.x = dot(lightDir, t);
- tmp.y = dot(lightDir, b);
- tmp.z = dot(lightDir, n);
- vLightVector = tmp;
-
- tmp.x = dot(position.xyz, t);
- tmp.y = dot(position.xyz, b);
- tmp.z = dot(position.xyz, n);
- vEyeVector = normalize(tmp);
-
- vec3 hv = normalize(normalize(-position.xyz) + lightDir);
- tmp.x = dot(hv, t);
- tmp.y = dot(hv, b);
- tmp.z = dot(hv, n);
- vLightHalfVector = tmp;
-}
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
-
-#ifdef VERTEX_TANGENT_BLEND
- vec3 tangent = aTangent0.xyz * uTangentWeight +
- aTangent1.xyz * (1.0 - uTangentWeight);
-#else
-
-#ifdef VERTEX_TANGENT
- vec3 tangent = aTangent0.xyz;
-#endif //VERTEX_TANGENT
-
-#endif //VERTEX_TANGENT_BLEND
-
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-
- vertexParallaxOcclusion(position, normal, tangent);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd
deleted file mode 100644
index 78a867b96a..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd
+++ /dev/null
@@ -1,103 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vNormal;
-
-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
-FRAGMENT_SHADER_USE_LIGHT
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-vec4 fragmentPhong()
-{
- vec3 normal = normalize(vNormal);
- vec3 lv = normalize(vLightVector);
- float factor = dot(lv, normal);
- vec4 color;
- vec4 fragcolor;
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
- /* Diffuse term. */
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
-
- fragcolor = uLightDiffuse * color * factor;
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
- /* Specular term. */
-#ifdef SPECULAR
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
-
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
-
- fragcolor += uLightSpecular * color * factor;
- }
-#endif
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
-#ifdef AMBIENT
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
-
- fragcolor += uLightAmbient * color;
-#endif
-
- /* Light attenuation. */
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif
-
- /* Emission term. */
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-#endif
- return fragcolor;
-}
-
-void main()
-{
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentPhong();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd
deleted file mode 100644
index ee9eed9c47..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd
+++ /dev/null
@@ -1,51 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vNormal;
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-void vertexPhong(vec4 position, vec3 normal)
-{
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- vLightVector = uLightPosition.xyz;
-#else
- vLightVector = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(vLightVector);
-#endif //LIGHT_ATTENUATION
-
- vLightVector = normalize(vLightVector);
-#endif //LIGHT_DIRECTIONAL
-
- vLightHalfVector = normalize(normalize(-position.xyz) + vLightVector);
- vNormal = normal;
-}
-
-void main() {
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
- vertexPhong(position, normal);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd
deleted file mode 100644
index b78a09177b..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd
+++ /dev/null
@@ -1,63 +0,0 @@
-//FXAA fragment shader by Timothy Lottes
-//http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
-//modified and adapted to www.enlightenment.org by Oleksander Shcherbina
-uniform sampler2D uColorTexture;
-uniform float uFrameSizeH;
-uniform float uFrameSizeW;
-varying vec2 tc0;
-
-vec4 fxaa()
-{
- float _SPAN_MAX_ = 8.0;
- float _REDUCE_MUL_ = (1.0/8.0);
- float _REDUCE_MIN_ = (1.0/128.0);
- vec4 l = vec4(0.299, 0.587, 0.114, 0.0);
- vec2 frameBufSize = vec2(uFrameSizeW, uFrameSizeH);
- vec2 direction;
-
- vec4 colorNW = texture2D(uColorTexture, tc0 + (vec2(-1.0, -1.0)/frameBufSize));
- vec4 colorNE = texture2D(uColorTexture, tc0 + (vec2(1.0, -1.0)/frameBufSize));
- vec4 colorSW = texture2D(uColorTexture, tc0 + (vec2(-1.0, 1.0)/frameBufSize));
- vec4 colorSE = texture2D(uColorTexture, tc0 + (vec2(1.0, 1.0)/frameBufSize));
- vec4 colorM = texture2D(uColorTexture,tc0);
-
- float lNW = dot(colorNW, l);
- float lNE = dot(colorNE, l);
- float lSW = dot(colorSW, l);
- float lSE = dot(colorSE, l);
- float lM = dot(colorM, l);
-
- float lMin = min(lM, min(min(lNW, lNE), min(lSW, lSE)));
- float lMax = max(lM, max(max(lNW, lNE), max(lSW, lSE)));
-
- direction.x = -((lNW + lNE) - (lSW + lSE));
- direction.y = ((lNW + lSW) - (lNE + lSE));
-
- float directionReduce = max(
- (lNW + lNE + lSW + lSE) * (0.25 * _REDUCE_MUL_),
- _REDUCE_MIN_);
-
- float rcpDirMin = 1.0/(min(abs(direction.x), abs(direction.y)) + directionReduce);
-
- direction = min(vec2(_SPAN_MAX_, _SPAN_MAX_),
- max(vec2(-_SPAN_MAX_, -_SPAN_MAX_),
- direction * rcpDirMin)) / frameBufSize;
-
- vec4 colorA = 0.5 * (
- texture2D(uColorTexture, tc0.xy + direction * (1.0/3.0 - 0.5)) +
- texture2D(uColorTexture, tc0.xy + direction * (2.0/3.0 - 0.5)));
- vec4 colorB = colorA * 0.5 + 0.25 * (
- texture2D(uColorTexture, tc0.xy + direction * (- 0.5)) +
- texture2D(uColorTexture, tc0.xy + direction * 0.5));
- float lB = dot(colorB, l);
-
- if((lB < lMin) || (lB > lMax))
- return colorA;
- else
- return colorB;
-}
-
-void main()
-{
- gl_FragColor = fxaa();
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd
deleted file mode 100644
index 8464fdcc82..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-
-varying vec2 tc0;
-void main()
-{
- VERTEX_SHADER_POSITION
-
- gl_Position = uMatrixMvp * position;
- tc0 = position.xy * 0.5 + 0.5;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd
deleted file mode 100644
index a66f47acf8..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd
+++ /dev/null
@@ -1,60 +0,0 @@
-varying vec4 shadowmapposition;
-#ifdef ALPHA_TEST_ENABLED
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-#ifdef DIFFUSE
-
-#ifdef DIFFUSE_TEXTURE
-uniform sampler2D uTextureDiffuse0;
-uniform mat3 uTextureMatrixTransformDiffuse0;
-#endif //DIFFUSE_TEXTURE
-
-#ifdef DIFFUSE_TEXTURE_BLEND
-uniform sampler2D uTextureDiffuse1;
-uniform float uTextureDiffuseWeight;
-uniform mat3 uTextureMatrixTransformDiffuse1;
-#endif //DIFFUSE_TEXTURE_BLEND
-
-#endif //DIFFUSE
-
-#endif //ALPHA_TEST_ENABLED
-
-void main() {
-
- vec4 color;
-#ifndef NEED_TEX_COORD
- gl_FragColor = vec4(1);
-#endif
-
-#ifdef ALPHA_TEST_ENABLED
-
-#ifdef DIFFUSE_TEXTURE_BLEND
- vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;
- color = (texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) *
- uTextureDiffuseWeight + texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)) *
- (1.0 - uTextureDiffuseWeight));
-#else
-
-#ifdef DIFFUSE_TEXTURE
- vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;
- color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse));
-#else
- color = vec4(1);
-#endif //DIFFUSE_TEXTURE
-
-#endif //DIFFUSE_TEXTURE_BLEND
-
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-
-#endif //ALPHA_TEST_ENABLED
-
- const vec4 pack = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
- const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
- vec4 depthcolor;
- float normdist = shadowmapposition.z / shadowmapposition.w;
- normdist = ((normdist + 1.0) / 2.0);
- depthcolor = vec4(fract(pack * normdist));
- depthcolor -= depthcolor.xxyz * mask;
- gl_FragColor = depthcolor;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd
deleted file mode 100644
index 66ce4f3d62..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd
+++ /dev/null
@@ -1,21 +0,0 @@
-uniform mat4 uMatrixMvp;
-varying vec4 shadowmapposition;
-VERTEX_SHADER_USE_POSITION
-
-#ifdef ALPHA_TEST_ENABLED
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-#endif //ALPHA_TEST_ENABLED
-
-void main()
-{
-
-VERTEX_SHADER_POSITION
-
-#ifdef ALPHA_TEST_ENABLED
- VERTEX_SHADER_TEXCOORD
-#endif //ALPHA_TEST_ENABLED
-
- gl_Position = uMatrixMvp * position;
- shadowmapposition = gl_Position;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd
deleted file mode 100644
index 1b85057b66..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd
+++ /dev/null
@@ -1,17 +0,0 @@
-varying vec4 vColor;
-
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main()
-{
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(vColor)
-#else
- gl_FragColor = vColor;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd
deleted file mode 100644
index 6daeacfc1f..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd
+++ /dev/null
@@ -1,24 +0,0 @@
-uniform mat4 uMatrixMvp;
-varying vec4 vColor;
-
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_COLOR
-
-void main()
-{
- VERTEX_SHADER_POSITION
-
-#ifdef VERTEX_COLOR_BLEND
- vec4 color = aColor0 * uColorWeight + aColor1 * (1.0 - uColorWeight);
-#else
-
-#ifdef VERTEX_COLOR
- vec4 color = aColor0;
-#endif //VERTEX_COLOR
-
-#endif //VERTEX_COLOR_BLEND
-
- vColor = color;
- gl_Position = uMatrixMvp * position;
-}
-