summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-11-14 09:41:15 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-11-14 10:01:30 +0900
commite18886a2a3c82adce0477f6a689c26ae62359502 (patch)
tree6be649fa73befbb8d6ac910a4211c945859d5549
parent70f645efe9918400bf56aa40455e7d109830a821 (diff)
downloadefl-e18886a2a3c82adce0477f6a689c26ae62359502.tar.gz
Evas GL: Fix list of shaders to distribute
Some shader files (shd) were not included in EXTRA_DIST. This didn't break the build because the .x file was correctly generated. I guess the missing files in previous releases also had no impact because the .h files would be generated and shipped. Also generate the enum automagically. New shaders need to be added to Makefile_Evas.am.
-rw-r--r--src/Makefile_Evas.am31
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_common.h71
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_enum.x48
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x584
-rwxr-xr-xsrc/modules/evas/engines/gl_common/shader/gen_shaders.sh13
5 files changed, 379 insertions, 368 deletions
diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index 3e1f12987e..0ca771c7cf 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -577,7 +577,8 @@ modules/evas/engines/gl_common/evas_gl_core_private.h \
modules/evas/engines/gl_common/evas_gl_api.c \
modules/evas/engines/gl_common/evas_gl_api_gles1.c \
modules/evas/engines/gl_common/evas_gl_api_ext.c \
-modules/evas/engines/gl_common/shader/evas_gl_shaders.x
+modules/evas/engines/gl_common/shader/evas_gl_shaders.x \
+modules/evas/engines/gl_common/shader/evas_gl_enum.x
# 3D
GL_COMMON_SOURCES += \
@@ -633,21 +634,37 @@ modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_frag.shd \
modules/evas/engines/gl_common/shader/rgb_a_pair_nomul_vert.shd \
modules/evas/engines/gl_common/shader/rgb_a_pair_vert.shd \
modules/evas/engines/gl_common/shader/tex_12_frag.shd \
+modules/evas/engines/gl_common/shader/tex_12_vert.shd \
modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd \
modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd \
-modules/evas/engines/gl_common/shader/tex_12_vert.shd \
modules/evas/engines/gl_common/shader/tex_21_frag.shd \
+modules/evas/engines/gl_common/shader/tex_21_vert.shd \
modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd \
modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd \
-modules/evas/engines/gl_common/shader/tex_21_vert.shd \
modules/evas/engines/gl_common/shader/tex_22_frag.shd \
+modules/evas/engines/gl_common/shader/tex_22_vert.shd \
modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd \
modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd \
-modules/evas/engines/gl_common/shader/tex_22_vert.shd \
modules/evas/engines/gl_common/shader/tex_frag.shd \
+modules/evas/engines/gl_common/shader/tex_vert.shd \
modules/evas/engines/gl_common/shader/tex_nomul_frag.shd \
modules/evas/engines/gl_common/shader/tex_nomul_vert.shd \
-modules/evas/engines/gl_common/shader/tex_vert.shd \
+modules/evas/engines/gl_common/shader/tex_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_22_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_22_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd \
+modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd \
+modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd \
modules/evas/engines/gl_common/shader/yuv_frag.shd \
modules/evas/engines/gl_common/shader/yuv_nomul_frag.shd \
modules/evas/engines/gl_common/shader/yuv_nomul_vert.shd \
@@ -663,7 +680,9 @@ $(GL_SHADERS_GEN)
modules/evas/engines/gl_common/shader/evas_gl_shaders.x: modules/evas/engines/gl_common/shader/gen_shaders.sh $(GL_SHADERS_GEN)
@echo " SHADERS $@"
- @modules/evas/engines/gl_common/shader/gen_shaders.sh
+ @modules/evas/engines/gl_common/shader/gen_shaders.sh $(GL_SHADERS_GEN)
+
+modules/evas/engines/gl_common/shader/evas_gl_enum.x: modules/evas/engines/gl_common/shader/evas_gl_shaders.x
GL_GENERIC_SOURCES = \
modules/evas/engines/gl_generic/evas_engine.c \
diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 7ab6360301..6d82623200 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -286,75 +286,8 @@ typedef struct _Evas_GL_Texture_Async_Preload Evas_GL_Texture_Async_Preload;
typedef Eina_Bool (*evas_gl_make_current_cb)(void *engine_data, void *doit);
-typedef enum {
- SHADER_RECT,
- SHADER_FONT,
-
- SHADER_IMG,
- SHADER_IMG_NOMUL,
- SHADER_IMG_BGRA,
- SHADER_IMG_BGRA_NOMUL,
- SHADER_TEX,
- SHADER_TEX_NOMUL,
- SHADER_TEX_AFILL,
- SHADER_TEX_NOMUL_AFILL,
-
- SHADER_IMG_21,
- SHADER_IMG_21_NOMUL,
- SHADER_IMG_21_BGRA,
- SHADER_IMG_21_BGRA_NOMUL,
- SHADER_TEX_21,
- SHADER_TEX_21_NOMUL,
- SHADER_TEX_21_AFILL,
- SHADER_TEX_21_NOMUL_AFILL,
-
- SHADER_IMG_12,
- SHADER_IMG_12_NOMUL,
- SHADER_IMG_12_BGRA,
- SHADER_IMG_12_BGRA_NOMUL,
- SHADER_TEX_12,
- SHADER_TEX_12_NOMUL,
- SHADER_TEX_12_AFILL,
- SHADER_TEX_12_NOMUL_AFILL,
-
- SHADER_IMG_22,
- SHADER_IMG_22_NOMUL,
- SHADER_IMG_22_BGRA,
- SHADER_IMG_22_BGRA_NOMUL,
- SHADER_TEX_22,
- SHADER_TEX_22_NOMUL,
- SHADER_TEX_22_AFILL,
- SHADER_TEX_22_NOMUL_AFILL,
-
- SHADER_YUV,
- SHADER_YUV_NOMUL,
- SHADER_YUY2,
- SHADER_YUY2_NOMUL,
- SHADER_NV12,
- SHADER_NV12_NOMUL,
-
- SHADER_RGB_A_PAIR,
- SHADER_RGB_A_PAIR_NOMUL,
-/*
- SHADER_FILTER_INVERT,
- SHADER_FILTER_INVERT_NOMUL,
- SHADER_FILTER_INVERT_BGRA,
- SHADER_FILTER_INVERT_BGRA_NOMUL,
- SHADER_FILTER_GREYSCALE,
- SHADER_FILTER_GREYSCALE_NOMUL,
- SHADER_FILTER_GREYSCALE_BGRA,
- SHADER_FILTER_GREYSCALE_BGRA_NOMUL,
- SHADER_FILTER_SEPIA,
- SHADER_FILTER_SEPIA_NOMUL,
- SHADER_FILTER_SEPIA_BGRA,
- SHADER_FILTER_SEPIA_BGRA_NOMUL,
- */
- /* SHADER_FILTER_BLUR, */
- /* SHADER_FILTER_BLUR_NOMUL, */
- /* SHADER_FILTER_BLUR_BGRA, */
- /* SHADER_FILTER_BLUR_BGRA_NOMUL, */
- SHADER_LAST
-} Evas_GL_Shader;
+/* enum Evas_GL_Shader is defined below */
+#include "shader/evas_gl_enum.x"
struct _Evas_GL_Program
{
diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x b/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x
new file mode 100644
index 0000000000..d2eea835b8
--- /dev/null
+++ b/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x
@@ -0,0 +1,48 @@
+/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED
+ * See: modules/evas/engines/gl_common/shader/gen_shaders.sh */
+
+typedef enum {
+ SHADER_FONT,
+ SHADER_IMG_12_BGRA_NOMUL,
+ SHADER_IMG_12_BGRA,
+ SHADER_IMG_12_NOMUL,
+ SHADER_IMG_12,
+ SHADER_IMG_21_BGRA_NOMUL,
+ SHADER_IMG_21_BGRA,
+ SHADER_IMG_21_NOMUL,
+ SHADER_IMG_21,
+ SHADER_IMG_22_BGRA_NOMUL,
+ SHADER_IMG_22_BGRA,
+ SHADER_IMG_22_NOMUL,
+ SHADER_IMG_22,
+ SHADER_IMG_BGRA_NOMUL,
+ SHADER_IMG_BGRA,
+ SHADER_IMG_NOMUL,
+ SHADER_IMG,
+ SHADER_NV12_NOMUL,
+ SHADER_NV12,
+ SHADER_RECT,
+ SHADER_RGB_A_PAIR_NOMUL,
+ SHADER_RGB_A_PAIR,
+ SHADER_TEX_12,
+ SHADER_TEX_12_NOMUL,
+ SHADER_TEX_21,
+ SHADER_TEX_21_NOMUL,
+ SHADER_TEX_22,
+ SHADER_TEX_22_NOMUL,
+ SHADER_TEX,
+ SHADER_TEX_NOMUL,
+ SHADER_TEX_AFILL,
+ SHADER_TEX_22_AFILL,
+ SHADER_TEX_21_AFILL,
+ SHADER_TEX_12_AFILL,
+ SHADER_TEX_22_NOMUL_AFILL,
+ SHADER_TEX_21_NOMUL_AFILL,
+ SHADER_TEX_12_NOMUL_AFILL,
+ SHADER_TEX_NOMUL_AFILL,
+ SHADER_YUV_NOMUL,
+ SHADER_YUV,
+ SHADER_YUY2_NOMUL,
+ SHADER_YUY2,
+ SHADER_LAST
+} Evas_GL_Shader;
diff --git a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
index 9808a33f92..cb3f271521 100644
--- a/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
+++ b/src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x
@@ -1126,8 +1126,8 @@ Evas_GL_Program_Source shader_rgb_a_pair_vert_src =
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd */
-static const char tex_12_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_frag.shd */
+static const char tex_12_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1144,17 +1144,16 @@ static const char tex_12_afill_frag_glsl[] =
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 c = (col00 + col01) / div_s;\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
+ " gl_FragColor = ((col00 + col01) / div_s) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_afill_frag_src =
+Evas_GL_Program_Source shader_tex_12_frag_src =
{
- tex_12_afill_frag_glsl,
+ tex_12_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd */
-static const char tex_12_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_vert.shd */
+static const char tex_12_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
@@ -1176,40 +1175,14 @@ static const char tex_12_afill_vert_glsl[] =
" tex_s[1] = vec2(0, tex_sample.y);\n"
" div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_afill_vert_src =
-{
- tex_12_afill_vert_glsl,
- NULL, 0
-};
-
-/* Source: modules/evas/engines/gl_common/shader/tex_12_frag.shd */
-static const char tex_12_frag_glsl[] =
- "#ifdef GL_ES\n"
- "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
- "precision highp float;\n"
- "#else\n"
- "precision mediump float;\n"
- "#endif\n"
- "#endif\n"
- "uniform sampler2D tex;\n"
- "varying vec4 col;\n"
- "varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
- "void main()\n"
- "{\n"
- " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
- " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " gl_FragColor = ((col00 + col01) / div_s) * col;\n"
- "}\n";
-Evas_GL_Program_Source shader_tex_12_frag_src =
+Evas_GL_Program_Source shader_tex_12_vert_src =
{
- tex_12_frag_glsl,
+ tex_12_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd */
-static const char tex_12_nomul_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd */
+static const char tex_12_nomul_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1225,17 +1198,16 @@ static const char tex_12_nomul_afill_frag_glsl[] =
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 c = (col00 + col01) / div_s;\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
+ " gl_FragColor = (col00 + col01) / div_s;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_nomul_afill_frag_src =
+Evas_GL_Program_Source shader_tex_12_nomul_frag_src =
{
- tex_12_nomul_afill_frag_glsl,
+ tex_12_nomul_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd */
-static const char tex_12_nomul_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd */
+static const char tex_12_nomul_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
@@ -1254,14 +1226,14 @@ static const char tex_12_nomul_afill_vert_glsl[] =
" tex_s[1] = vec2(0, tex_sample.y);\n"
" div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_nomul_afill_vert_src =
+Evas_GL_Program_Source shader_tex_12_nomul_vert_src =
{
- tex_12_nomul_afill_vert_glsl,
+ tex_12_nomul_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_frag.shd */
-static const char tex_12_nomul_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_frag.shd */
+static const char tex_21_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1270,6 +1242,7 @@ static const char tex_12_nomul_frag_glsl[] =
"#endif\n"
"#endif\n"
"uniform sampler2D tex;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
"varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
@@ -1277,71 +1250,96 @@ static const char tex_12_nomul_frag_glsl[] =
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " gl_FragColor = (col00 + col01) / div_s;\n"
+ " gl_FragColor = ((col00 + col01) / div_s) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_nomul_frag_src =
+Evas_GL_Program_Source shader_tex_21_frag_src =
{
- tex_12_nomul_frag_glsl,
+ tex_21_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_vert.shd */
-static const char tex_12_nomul_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_vert.shd */
+static const char tex_21_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
+ "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
"attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
"varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
+ " col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(0, -tex_sample.y);\n"
- " tex_s[1] = vec2(0, tex_sample.y);\n"
+ " tex_s[0] = vec2(-tex_sample.x, 0);\n"
+ " tex_s[1] = vec2( tex_sample.x, 0);\n"
" div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_nomul_vert_src =
+Evas_GL_Program_Source shader_tex_21_vert_src =
{
- tex_12_nomul_vert_glsl,
+ tex_21_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_12_vert.shd */
-static const char tex_12_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd */
+static const char tex_21_nomul_frag_glsl[] =
+ "#ifdef GL_ES\n"
+ "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
+ "precision highp float;\n"
+ "#else\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "#endif\n"
+ "uniform sampler2D tex;\n"
+ "varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
+ "void main()\n"
+ "{\n"
+ " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
+ " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
+ " gl_FragColor = (col00 + col01) / div_s;\n"
+ "}\n";
+Evas_GL_Program_Source shader_tex_21_nomul_frag_src =
+{
+ tex_21_nomul_frag_glsl,
+ NULL, 0
+};
+
+/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd */
+static const char tex_21_nomul_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
- "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
"attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
"varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
- " col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(0, -tex_sample.y);\n"
- " tex_s[1] = vec2(0, tex_sample.y);\n"
+ " tex_s[0] = vec2(-tex_sample.x, 0);\n"
+ " tex_s[1] = vec2( tex_sample.x, 0);\n"
" div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_12_vert_src =
+Evas_GL_Program_Source shader_tex_21_nomul_vert_src =
{
- tex_12_vert_glsl,
+ tex_21_nomul_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd */
-static const char tex_21_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_frag.shd */
+static const char tex_22_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1352,23 +1350,24 @@ static const char tex_21_afill_frag_glsl[] =
"uniform sampler2D tex;\n"
"varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
+ "varying vec2 tex_s[4];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 c = (col00 + col01) / div_s;\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
+ " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n"
+ " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n"
+ " gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_afill_frag_src =
+Evas_GL_Program_Source shader_tex_22_frag_src =
{
- tex_21_afill_frag_glsl,
+ tex_22_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd */
-static const char tex_21_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_vert.shd */
+static const char tex_22_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
@@ -1379,25 +1378,27 @@ static const char tex_21_afill_vert_glsl[] =
"uniform mat4 mvp;\n"
"varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
+ "varying vec2 tex_s[4];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
" col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, 0);\n"
- " tex_s[1] = vec2( tex_sample.x, 0);\n"
- " div_s = vec4(2, 2, 2, 2);\n"
+ " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
+ " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
+ " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n"
+ " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n"
+ " div_s = vec4(4, 4, 4, 4);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_afill_vert_src =
+Evas_GL_Program_Source shader_tex_22_vert_src =
{
- tex_21_afill_vert_glsl,
+ tex_22_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_frag.shd */
-static const char tex_21_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd */
+static const char tex_22_nomul_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1406,24 +1407,53 @@ static const char tex_21_frag_glsl[] =
"#endif\n"
"#endif\n"
"uniform sampler2D tex;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
+ "varying vec2 tex_s[4];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " gl_FragColor = ((col00 + col01) / div_s) * col;\n"
+ " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n"
+ " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n"
+ " gl_FragColor = (col00 + col01 + col10 + col11) / div_s;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_frag_src =
+Evas_GL_Program_Source shader_tex_22_nomul_frag_src =
{
- tex_21_frag_glsl,
+ tex_22_nomul_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd */
-static const char tex_21_nomul_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd */
+static const char tex_22_nomul_vert_glsl[] =
+ "#ifdef GL_ES\n"
+ "precision highp float;\n"
+ "#endif\n"
+ "attribute vec4 vertex;\n"
+ "attribute vec2 tex_coord;\n"
+ "attribute vec2 tex_sample;\n"
+ "uniform mat4 mvp;\n"
+ "varying vec2 tex_c;\n"
+ "varying vec2 tex_s[4];\n"
+ "varying vec4 div_s;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
+ " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
+ " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
+ " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n"
+ " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n"
+ " div_s = vec4(4, 4, 4, 4);\n"
+ "}\n";
+Evas_GL_Program_Source shader_tex_22_nomul_vert_src =
+{
+ tex_22_nomul_vert_glsl,
+ NULL, 0
+};
+
+/* Source: modules/evas/engines/gl_common/shader/tex_frag.shd */
+static const char tex_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1432,50 +1462,43 @@ static const char tex_21_nomul_afill_frag_glsl[] =
"#endif\n"
"#endif\n"
"uniform sampler2D tex;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
"void main()\n"
"{\n"
- " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
- " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 c = (col00 + col01) / div_s;\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
+ " gl_FragColor = texture2D(tex, tex_c.xy) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_nomul_afill_frag_src =
+Evas_GL_Program_Source shader_tex_frag_src =
{
- tex_21_nomul_afill_frag_glsl,
+ tex_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd */
-static const char tex_21_nomul_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_vert.shd */
+static const char tex_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
+ "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
- "attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
+ " col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, 0);\n"
- " tex_s[1] = vec2( tex_sample.x, 0);\n"
- " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_nomul_afill_vert_src =
+Evas_GL_Program_Source shader_tex_vert_src =
{
- tex_21_nomul_afill_vert_glsl,
+ tex_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_frag.shd */
-static const char tex_21_nomul_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_nomul_frag.shd */
+static const char tex_nomul_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1485,72 +1508,79 @@ static const char tex_21_nomul_frag_glsl[] =
"#endif\n"
"uniform sampler2D tex;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
"void main()\n"
"{\n"
- " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
- " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " gl_FragColor = (col00 + col01) / div_s;\n"
+ " gl_FragColor = texture2D(tex, tex_c.xy);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_nomul_frag_src =
+Evas_GL_Program_Source shader_tex_nomul_frag_src =
{
- tex_21_nomul_frag_glsl,
+ tex_nomul_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_vert.shd */
-static const char tex_21_nomul_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_nomul_vert.shd */
+static const char tex_nomul_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
"attribute vec2 tex_coord;\n"
- "attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, 0);\n"
- " tex_s[1] = vec2( tex_sample.x, 0);\n"
- " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_nomul_vert_src =
+Evas_GL_Program_Source shader_tex_nomul_vert_src =
{
- tex_21_nomul_vert_glsl,
+ tex_nomul_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_21_vert.shd */
-static const char tex_21_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_afill_frag.shd */
+static const char tex_afill_frag_glsl[] =
+ "#ifdef GL_ES\n"
+ "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
+ "precision highp float;\n"
+ "#else\n"
+ "precision mediump float;\n"
+ "#endif\n"
+ "#endif\n"
+ "uniform sampler2D tex;\n"
+ "varying vec4 col;\n"
+ "varying vec2 tex_c;\n"
+ "void main()\n"
+ "{\n"
+ " vec4 c = texture2D(tex, tex_c.xy);\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
+ "}\n";
+Evas_GL_Program_Source shader_tex_afill_frag_src =
+{
+ tex_afill_frag_glsl,
+ NULL, 0
+};
+
+/* Source: modules/evas/engines/gl_common/shader/tex_afill_vert.shd */
+static const char tex_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
"attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
- "attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
"varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[2];\n"
- "varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
" col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, 0);\n"
- " tex_s[1] = vec2( tex_sample.x, 0);\n"
- " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_21_vert_src =
+Evas_GL_Program_Source shader_tex_afill_vert_src =
{
- tex_21_vert_glsl,
+ tex_afill_vert_glsl,
NULL, 0
};
@@ -1614,8 +1644,8 @@ Evas_GL_Program_Source shader_tex_22_afill_vert_src =
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_22_frag.shd */
-static const char tex_22_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_frag.shd */
+static const char tex_21_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1626,24 +1656,52 @@ static const char tex_22_frag_glsl[] =
"uniform sampler2D tex;\n"
"varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[4];\n"
+ "varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n"
- " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n"
- " gl_FragColor = ((col00 + col01 + col10 + col11) / div_s) * col;\n"
+ " vec4 c = (col00 + col01) / div_s;\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_22_frag_src =
+Evas_GL_Program_Source shader_tex_21_afill_frag_src =
{
- tex_22_frag_glsl,
+ tex_21_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd */
-static const char tex_22_nomul_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_afill_vert.shd */
+static const char tex_21_afill_vert_glsl[] =
+ "#ifdef GL_ES\n"
+ "precision highp float;\n"
+ "#endif\n"
+ "attribute vec4 vertex;\n"
+ "attribute vec4 color;\n"
+ "attribute vec2 tex_coord;\n"
+ "attribute vec2 tex_sample;\n"
+ "uniform mat4 mvp;\n"
+ "varying vec4 col;\n"
+ "varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
+ "void main()\n"
+ "{\n"
+ " gl_Position = mvp * vertex;\n"
+ " col = color;\n"
+ " tex_c = tex_coord;\n"
+ " tex_s[0] = vec2(-tex_sample.x, 0);\n"
+ " tex_s[1] = vec2( tex_sample.x, 0);\n"
+ " div_s = vec4(2, 2, 2, 2);\n"
+ "}\n";
+Evas_GL_Program_Source shader_tex_21_afill_vert_src =
+{
+ tex_21_afill_vert_glsl,
+ NULL, 0
+};
+
+/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_frag.shd */
+static const char tex_12_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1652,54 +1710,54 @@ static const char tex_22_nomul_afill_frag_glsl[] =
"#endif\n"
"#endif\n"
"uniform sampler2D tex;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[4];\n"
+ "varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
- " vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n"
- " vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n"
- " vec4 c = (col00 + col01 + col10 + col11) / div_s;\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
+ " vec4 c = (col00 + col01) / div_s;\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_22_nomul_afill_frag_src =
+Evas_GL_Program_Source shader_tex_12_afill_frag_src =
{
- tex_22_nomul_afill_frag_glsl,
+ tex_12_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd */
-static const char tex_22_nomul_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_afill_vert.shd */
+static const char tex_12_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
+ "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
"attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
+ "varying vec4 col;\n"
"varying vec2 tex_c;\n"
- "varying vec2 tex_s[4];\n"
+ "varying vec2 tex_s[2];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
+ " col = color;\n"
" tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
- " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
- " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n"
- " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n"
- " div_s = vec4(4, 4, 4, 4);\n"
+ " tex_s[0] = vec2(0, -tex_sample.y);\n"
+ " tex_s[1] = vec2(0, tex_sample.y);\n"
+ " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_22_nomul_afill_vert_src =
+Evas_GL_Program_Source shader_tex_12_afill_vert_src =
{
- tex_22_nomul_afill_vert_glsl,
+ tex_12_afill_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_frag.shd */
-static const char tex_22_nomul_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_frag.shd */
+static const char tex_22_nomul_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1717,60 +1775,30 @@ static const char tex_22_nomul_frag_glsl[] =
" vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
" vec4 col10 = texture2D(tex, tex_c + tex_s[2]);\n"
" vec4 col11 = texture2D(tex, tex_c + tex_s[3]);\n"
- " gl_FragColor = (col00 + col01 + col10 + col11) / div_s;\n"
- "}\n";
-Evas_GL_Program_Source shader_tex_22_nomul_frag_src =
-{
- tex_22_nomul_frag_glsl,
- NULL, 0
-};
-
-/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_vert.shd */
-static const char tex_22_nomul_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision highp float;\n"
- "#endif\n"
- "attribute vec4 vertex;\n"
- "attribute vec2 tex_coord;\n"
- "attribute vec2 tex_sample;\n"
- "uniform mat4 mvp;\n"
- "varying vec2 tex_c;\n"
- "varying vec2 tex_s[4];\n"
- "varying vec4 div_s;\n"
- "void main()\n"
- "{\n"
- " gl_Position = mvp * vertex;\n"
- " tex_c = tex_coord;\n"
- " tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
- " tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
- " tex_s[2] = vec2( tex_sample.x, tex_sample.y);\n"
- " tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n"
- " div_s = vec4(4, 4, 4, 4);\n"
+ " vec4 c = (col00 + col01 + col10 + col11) / div_s;\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_22_nomul_vert_src =
+Evas_GL_Program_Source shader_tex_22_nomul_afill_frag_src =
{
- tex_22_nomul_vert_glsl,
+ tex_22_nomul_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_22_vert.shd */
-static const char tex_22_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_22_nomul_afill_vert.shd */
+static const char tex_22_nomul_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
- "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
"attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
"varying vec2 tex_s[4];\n"
"varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
- " col = color;\n"
" tex_c = tex_coord;\n"
" tex_s[0] = vec2(-tex_sample.x, -tex_sample.y);\n"
" tex_s[1] = vec2( tex_sample.x, -tex_sample.y);\n"
@@ -1778,14 +1806,14 @@ static const char tex_22_vert_glsl[] =
" tex_s[3] = vec2(-tex_sample.x, tex_sample.y);\n"
" div_s = vec4(4, 4, 4, 4);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_22_vert_src =
+Evas_GL_Program_Source shader_tex_22_nomul_afill_vert_src =
{
- tex_22_vert_glsl,
+ tex_22_nomul_afill_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_afill_frag.shd */
-static const char tex_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_frag.shd */
+static const char tex_21_nomul_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1794,66 +1822,50 @@ static const char tex_afill_frag_glsl[] =
"#endif\n"
"#endif\n"
"uniform sampler2D tex;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
"void main()\n"
"{\n"
- " vec4 c = texture2D(tex, tex_c.xy);\n"
- " gl_FragColor = vec4(c.r, c.g, c.b, 1) * col;\n"
+ " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
+ " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
+ " vec4 c = (col00 + col01) / div_s;\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_afill_frag_src =
+Evas_GL_Program_Source shader_tex_21_nomul_afill_frag_src =
{
- tex_afill_frag_glsl,
+ tex_21_nomul_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_afill_vert.shd */
-static const char tex_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_21_nomul_afill_vert.shd */
+static const char tex_21_nomul_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
- "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
+ "attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
- " col = color;\n"
" tex_c = tex_coord;\n"
+ " tex_s[0] = vec2(-tex_sample.x, 0);\n"
+ " tex_s[1] = vec2( tex_sample.x, 0);\n"
+ " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_afill_vert_src =
-{
- tex_afill_vert_glsl,
- NULL, 0
-};
-
-/* Source: modules/evas/engines/gl_common/shader/tex_frag.shd */
-static const char tex_frag_glsl[] =
- "#ifdef GL_ES\n"
- "#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
- "precision highp float;\n"
- "#else\n"
- "precision mediump float;\n"
- "#endif\n"
- "#endif\n"
- "uniform sampler2D tex;\n"
- "varying vec4 col;\n"
- "varying vec2 tex_c;\n"
- "void main()\n"
- "{\n"
- " gl_FragColor = texture2D(tex, tex_c.xy) * col;\n"
- "}\n";
-Evas_GL_Program_Source shader_tex_frag_src =
+Evas_GL_Program_Source shader_tex_21_nomul_afill_vert_src =
{
- tex_frag_glsl,
+ tex_21_nomul_afill_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd */
-static const char tex_nomul_afill_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_frag.shd */
+static const char tex_12_nomul_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1863,39 +1875,49 @@ static const char tex_nomul_afill_frag_glsl[] =
"#endif\n"
"uniform sampler2D tex;\n"
"varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
"void main()\n"
"{\n"
- " vec4 c = texture2D(tex, tex_c.xy);\n"
+ " vec4 col00 = texture2D(tex, tex_c + tex_s[0]);\n"
+ " vec4 col01 = texture2D(tex, tex_c + tex_s[1]);\n"
+ " vec4 c = (col00 + col01) / div_s;\n"
" gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_nomul_afill_frag_src =
+Evas_GL_Program_Source shader_tex_12_nomul_afill_frag_src =
{
- tex_nomul_afill_frag_glsl,
+ tex_12_nomul_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd */
-static const char tex_nomul_afill_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_12_nomul_afill_vert.shd */
+static const char tex_12_nomul_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
"attribute vec2 tex_coord;\n"
+ "attribute vec2 tex_sample;\n"
"uniform mat4 mvp;\n"
"varying vec2 tex_c;\n"
+ "varying vec2 tex_s[2];\n"
+ "varying vec4 div_s;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
" tex_c = tex_coord;\n"
+ " tex_s[0] = vec2(0, -tex_sample.y);\n"
+ " tex_s[1] = vec2(0, tex_sample.y);\n"
+ " div_s = vec4(2, 2, 2, 2);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_nomul_afill_vert_src =
+Evas_GL_Program_Source shader_tex_12_nomul_afill_vert_src =
{
- tex_nomul_afill_vert_glsl,
+ tex_12_nomul_afill_vert_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_nomul_frag.shd */
-static const char tex_nomul_frag_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_frag.shd */
+static const char tex_nomul_afill_frag_glsl[] =
"#ifdef GL_ES\n"
"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
"precision highp float;\n"
@@ -1907,54 +1929,32 @@ static const char tex_nomul_frag_glsl[] =
"varying vec2 tex_c;\n"
"void main()\n"
"{\n"
- " gl_FragColor = texture2D(tex, tex_c.xy);\n"
- "}\n";
-Evas_GL_Program_Source shader_tex_nomul_frag_src =
-{
- tex_nomul_frag_glsl,
- NULL, 0
-};
-
-/* Source: modules/evas/engines/gl_common/shader/tex_nomul_vert.shd */
-static const char tex_nomul_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision highp float;\n"
- "#endif\n"
- "attribute vec4 vertex;\n"
- "attribute vec2 tex_coord;\n"
- "uniform mat4 mvp;\n"
- "varying vec2 tex_c;\n"
- "void main()\n"
- "{\n"
- " gl_Position = mvp * vertex;\n"
- " tex_c = tex_coord;\n"
+ " vec4 c = texture2D(tex, tex_c.xy);\n"
+ " gl_FragColor = vec4(c.r, c.g, c.b, 1);\n"
"}\n";
-Evas_GL_Program_Source shader_tex_nomul_vert_src =
+Evas_GL_Program_Source shader_tex_nomul_afill_frag_src =
{
- tex_nomul_vert_glsl,
+ tex_nomul_afill_frag_glsl,
NULL, 0
};
-/* Source: modules/evas/engines/gl_common/shader/tex_vert.shd */
-static const char tex_vert_glsl[] =
+/* Source: modules/evas/engines/gl_common/shader/tex_nomul_afill_vert.shd */
+static const char tex_nomul_afill_vert_glsl[] =
"#ifdef GL_ES\n"
"precision highp float;\n"
"#endif\n"
"attribute vec4 vertex;\n"
- "attribute vec4 color;\n"
"attribute vec2 tex_coord;\n"
"uniform mat4 mvp;\n"
- "varying vec4 col;\n"
"varying vec2 tex_c;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
- " col = color;\n"
" tex_c = tex_coord;\n"
"}\n";
-Evas_GL_Program_Source shader_tex_vert_src =
+Evas_GL_Program_Source shader_tex_nomul_afill_vert_src =
{
- tex_vert_glsl,
+ tex_nomul_afill_vert_glsl,
NULL, 0
};
@@ -2209,22 +2209,22 @@ static const struct {
{ SHADER_RECT, &(shader_rect_vert_src), &(shader_rect_frag_src), "rect" },
{ SHADER_RGB_A_PAIR_NOMUL, &(shader_rgb_a_pair_nomul_vert_src), &(shader_rgb_a_pair_nomul_frag_src), "rgb_a_pair_nomul" },
{ SHADER_RGB_A_PAIR, &(shader_rgb_a_pair_vert_src), &(shader_rgb_a_pair_frag_src), "rgb_a_pair" },
- { SHADER_TEX_12_AFILL, &(shader_tex_12_afill_vert_src), &(shader_tex_12_afill_frag_src), "tex_12_afill" },
- { SHADER_TEX_12_NOMUL_AFILL, &(shader_tex_12_nomul_afill_vert_src), &(shader_tex_12_nomul_afill_frag_src), "tex_12_nomul_afill" },
- { SHADER_TEX_12_NOMUL, &(shader_tex_12_nomul_vert_src), &(shader_tex_12_nomul_frag_src), "tex_12_nomul" },
{ SHADER_TEX_12, &(shader_tex_12_vert_src), &(shader_tex_12_frag_src), "tex_12" },
- { SHADER_TEX_21_AFILL, &(shader_tex_21_afill_vert_src), &(shader_tex_21_afill_frag_src), "tex_21_afill" },
- { SHADER_TEX_21_NOMUL_AFILL, &(shader_tex_21_nomul_afill_vert_src), &(shader_tex_21_nomul_afill_frag_src), "tex_21_nomul_afill" },
- { SHADER_TEX_21_NOMUL, &(shader_tex_21_nomul_vert_src), &(shader_tex_21_nomul_frag_src), "tex_21_nomul" },
+ { SHADER_TEX_12_NOMUL, &(shader_tex_12_nomul_vert_src), &(shader_tex_12_nomul_frag_src), "tex_12_nomul" },
{ SHADER_TEX_21, &(shader_tex_21_vert_src), &(shader_tex_21_frag_src), "tex_21" },
- { SHADER_TEX_22_AFILL, &(shader_tex_22_afill_vert_src), &(shader_tex_22_afill_frag_src), "tex_22_afill" },
- { SHADER_TEX_22_NOMUL_AFILL, &(shader_tex_22_nomul_afill_vert_src), &(shader_tex_22_nomul_afill_frag_src), "tex_22_nomul_afill" },
- { SHADER_TEX_22_NOMUL, &(shader_tex_22_nomul_vert_src), &(shader_tex_22_nomul_frag_src), "tex_22_nomul" },
+ { SHADER_TEX_21_NOMUL, &(shader_tex_21_nomul_vert_src), &(shader_tex_21_nomul_frag_src), "tex_21_nomul" },
{ SHADER_TEX_22, &(shader_tex_22_vert_src), &(shader_tex_22_frag_src), "tex_22" },
+ { SHADER_TEX_22_NOMUL, &(shader_tex_22_nomul_vert_src), &(shader_tex_22_nomul_frag_src), "tex_22_nomul" },
+ { SHADER_TEX, &(shader_tex_vert_src), &(shader_tex_frag_src), "tex" },
+ { SHADER_TEX_NOMUL, &(shader_tex_nomul_vert_src), &(shader_tex_nomul_frag_src), "tex_nomul" },
{ SHADER_TEX_AFILL, &(shader_tex_afill_vert_src), &(shader_tex_afill_frag_src), "tex_afill" },
+ { SHADER_TEX_22_AFILL, &(shader_tex_22_afill_vert_src), &(shader_tex_22_afill_frag_src), "tex_22_afill" },
+ { SHADER_TEX_21_AFILL, &(shader_tex_21_afill_vert_src), &(shader_tex_21_afill_frag_src), "tex_21_afill" },
+ { SHADER_TEX_12_AFILL, &(shader_tex_12_afill_vert_src), &(shader_tex_12_afill_frag_src), "tex_12_afill" },
+ { SHADER_TEX_22_NOMUL_AFILL, &(shader_tex_22_nomul_afill_vert_src), &(shader_tex_22_nomul_afill_frag_src), "tex_22_nomul_afill" },
+ { SHADER_TEX_21_NOMUL_AFILL, &(shader_tex_21_nomul_afill_vert_src), &(shader_tex_21_nomul_afill_frag_src), "tex_21_nomul_afill" },
+ { SHADER_TEX_12_NOMUL_AFILL, &(shader_tex_12_nomul_afill_vert_src), &(shader_tex_12_nomul_afill_frag_src), "tex_12_nomul_afill" },
{ SHADER_TEX_NOMUL_AFILL, &(shader_tex_nomul_afill_vert_src), &(shader_tex_nomul_afill_frag_src), "tex_nomul_afill" },
- { SHADER_TEX_NOMUL, &(shader_tex_nomul_vert_src), &(shader_tex_nomul_frag_src), "tex_nomul" },
- { SHADER_TEX, &(shader_tex_vert_src), &(shader_tex_frag_src), "tex" },
{ SHADER_YUV_NOMUL, &(shader_yuv_nomul_vert_src), &(shader_yuv_nomul_frag_src), "yuv_nomul" },
{ SHADER_YUV, &(shader_yuv_vert_src), &(shader_yuv_frag_src), "yuv" },
{ SHADER_YUY2_NOMUL, &(shader_yuy2_nomul_vert_src), &(shader_yuy2_nomul_frag_src), "yuy2_nomul" },
diff --git a/src/modules/evas/engines/gl_common/shader/gen_shaders.sh b/src/modules/evas/engines/gl_common/shader/gen_shaders.sh
index acfc27735c..9c3f7bf501 100755
--- a/src/modules/evas/engines/gl_common/shader/gen_shaders.sh
+++ b/src/modules/evas/engines/gl_common/shader/gen_shaders.sh
@@ -6,7 +6,10 @@
DIR=`dirname $0`
OUTPUT=${DIR}/evas_gl_shaders.x
-SHADERS=${DIR}/*.shd
+OUTPUT_ENUM=${DIR}/evas_gl_enum.x
+
+#SHADERS=${DIR}/*.shd
+SHADERS="$@"
# Redirect output to ${OUTPUT}
exec 1<&-
@@ -20,6 +23,7 @@ printf "#include \"../evas_gl_private.h\"\n\n"
# Prepare list of shaders:
shaders_source=""
+shaders_enum=""
# Reading with the following code breaks indents:
# while read -r line ; do
@@ -47,6 +51,7 @@ for shd in ${SHADERS} ; do
name=`echo ${lname} |sed -e 's/_vert//'`
SHADER=`echo ${UNAME} |sed -e 's/_VERT//'`
shaders_source="${shaders_source} { SHADER_${SHADER}, &(shader_${name}_vert_src), &(shader_${name}_frag_src), \"${name}\" },\n"
+ shaders_enum="${shaders_enum} SHADER_${SHADER},\n"
fi
done
@@ -59,4 +64,10 @@ printf "static const struct {
printf "${shaders_source}};\n\n"
+printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED\n * See: $0 */
+
+typedef enum {
+${shaders_enum} SHADER_LAST
+} Evas_GL_Shader;
+" >| ${OUTPUT_ENUM}