summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-04-13 21:49:45 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-04-14 16:37:12 +0900
commit404ecdd8d7b0a91876c9ae11d1f0a80634b557d3 (patch)
tree5f2c5156ac8a92a0189bd9c056a5606fe649b698
parent99347e91789217a294172cb670b349fb6eb1c5d9 (diff)
downloadefl-404ecdd8d7b0a91876c9ae11d1f0a80634b557d3.tar.gz
Evas GL common: Fix RGB+A textures
Since the shaders system rewrite, RGB+A (used for ETC1+Alpha encoding) did not work anymore.
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_enum.x6
-rw-r--r--src/modules/evas/engines/gl_common/shader/evas_gl_shaders.x28
-rw-r--r--src/modules/evas/engines/gl_common/shader/shaders.txt12
3 files changed, 36 insertions, 10 deletions
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
index 5c523fc9cd..4f3cb12aa6 100644
--- a/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x
+++ b/src/modules/evas/engines/gl_common/shader/evas_gl_enum.x
@@ -119,8 +119,14 @@ static struct {
{ SHADER_IMG_21_BGRA_MASK_NOMUL, "texm" },
{ SHADER_IMG_22_BGRA_MASK_NOMUL, "tex" },
{ SHADER_IMG_22_BGRA_MASK_NOMUL, "texm" },
+ { SHADER_RGB_A_PAIR, "tex" },
+ { SHADER_RGB_A_PAIR, "texa" },
+ { SHADER_RGB_A_PAIR_MASK, "tex" },
{ SHADER_RGB_A_PAIR_MASK, "texa" },
{ SHADER_RGB_A_PAIR_MASK, "texm" },
+ { SHADER_RGB_A_PAIR_NOMUL, "tex" },
+ { SHADER_RGB_A_PAIR_NOMUL, "texa" },
+ { SHADER_RGB_A_PAIR_MASK_NOMUL, "tex" },
{ SHADER_RGB_A_PAIR_MASK_NOMUL, "texa" },
{ SHADER_RGB_A_PAIR_MASK_NOMUL, "texm" },
{ SHADER_YUV, "tex" },
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 f5dd596358..38cdc25546 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
@@ -2928,12 +2928,14 @@ static const char const rgb_a_pair_frag_glsl[] =
"#endif\n"
"#endif\n"
"varying vec4 col;\n"
+ "uniform sampler2D tex;\n"
+ "varying vec2 tex_c;\n"
"uniform sampler2D texa;\n"
"varying vec2 tex_a;\n"
"void main()\n"
"{\n"
" vec4 c;\n"
- " c = vec4(1, 1, 1, 1);\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
" gl_FragColor =\n"
" c\n"
" * col\n"
@@ -2954,12 +2956,15 @@ static const char const rgb_a_pair_vert_glsl[] =
"uniform mat4 mvp;\n"
"attribute vec4 color;\n"
"varying vec4 col;\n"
+ "attribute vec2 tex_coord;\n"
+ "varying vec2 tex_c;\n"
"attribute vec2 tex_coorda;\n"
"varying vec2 tex_a;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
" col = color;\n"
+ " tex_c = tex_coord;\n"
" tex_a = tex_coorda;\n"
"}\n";
Evas_GL_Program_Source shader_rgb_a_pair_vert_src =
@@ -2977,6 +2982,8 @@ static const char const rgb_a_pair_mask_frag_glsl[] =
"#endif\n"
"#endif\n"
"varying vec4 col;\n"
+ "uniform sampler2D tex;\n"
+ "varying vec2 tex_c;\n"
"uniform sampler2D texa;\n"
"varying vec2 tex_a;\n"
"uniform sampler2D texm;\n"
@@ -2984,7 +2991,7 @@ static const char const rgb_a_pair_mask_frag_glsl[] =
"void main()\n"
"{\n"
" vec4 c;\n"
- " c = vec4(1, 1, 1, 1);\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
" gl_FragColor =\n"
" c\n"
" * col\n"
@@ -3006,6 +3013,8 @@ static const char const rgb_a_pair_mask_vert_glsl[] =
"uniform mat4 mvp;\n"
"attribute vec4 color;\n"
"varying vec4 col;\n"
+ "attribute vec2 tex_coord;\n"
+ "varying vec2 tex_c;\n"
"attribute vec2 tex_coorda;\n"
"varying vec2 tex_a;\n"
"attribute vec4 mask_coord;\n"
@@ -3014,6 +3023,7 @@ static const char const rgb_a_pair_mask_vert_glsl[] =
"{\n"
" gl_Position = mvp * vertex;\n"
" col = color;\n"
+ " tex_c = tex_coord;\n"
" tex_a = tex_coorda;\n"
" vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n"
" tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n"
@@ -3032,12 +3042,14 @@ static const char const rgb_a_pair_nomul_frag_glsl[] =
"precision mediump float;\n"
"#endif\n"
"#endif\n"
+ "uniform sampler2D tex;\n"
+ "varying vec2 tex_c;\n"
"uniform sampler2D texa;\n"
"varying vec2 tex_a;\n"
"void main()\n"
"{\n"
" vec4 c;\n"
- " c = vec4(1, 1, 1, 1);\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
" gl_FragColor =\n"
" c\n"
" * texture2D(texa, tex_a).r\n"
@@ -3055,11 +3067,14 @@ static const char const rgb_a_pair_nomul_vert_glsl[] =
"#endif\n"
"attribute vec4 vertex;\n"
"uniform mat4 mvp;\n"
+ "attribute vec2 tex_coord;\n"
+ "varying vec2 tex_c;\n"
"attribute vec2 tex_coorda;\n"
"varying vec2 tex_a;\n"
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
" tex_a = tex_coorda;\n"
"}\n";
Evas_GL_Program_Source shader_rgb_a_pair_nomul_vert_src =
@@ -3076,6 +3091,8 @@ static const char const rgb_a_pair_mask_nomul_frag_glsl[] =
"precision mediump float;\n"
"#endif\n"
"#endif\n"
+ "uniform sampler2D tex;\n"
+ "varying vec2 tex_c;\n"
"uniform sampler2D texa;\n"
"varying vec2 tex_a;\n"
"uniform sampler2D texm;\n"
@@ -3083,7 +3100,7 @@ static const char const rgb_a_pair_mask_nomul_frag_glsl[] =
"void main()\n"
"{\n"
" vec4 c;\n"
- " c = vec4(1, 1, 1, 1);\n"
+ " c = texture2D(tex, tex_c).bgra;\n"
" gl_FragColor =\n"
" c\n"
" * texture2D(texm, tex_m).a\n"
@@ -3102,6 +3119,8 @@ static const char const rgb_a_pair_mask_nomul_vert_glsl[] =
"#endif\n"
"attribute vec4 vertex;\n"
"uniform mat4 mvp;\n"
+ "attribute vec2 tex_coord;\n"
+ "varying vec2 tex_c;\n"
"attribute vec2 tex_coorda;\n"
"varying vec2 tex_a;\n"
"attribute vec4 mask_coord;\n"
@@ -3109,6 +3128,7 @@ static const char const rgb_a_pair_mask_nomul_vert_glsl[] =
"void main()\n"
"{\n"
" gl_Position = mvp * vertex;\n"
+ " tex_c = tex_coord;\n"
" tex_a = tex_coorda;\n"
" vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);\n"
" tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;\n"
diff --git a/src/modules/evas/engines/gl_common/shader/shaders.txt b/src/modules/evas/engines/gl_common/shader/shaders.txt
index 6dd7f128c9..e5a3e7a721 100644
--- a/src/modules/evas/engines/gl_common/shader/shaders.txt
+++ b/src/modules/evas/engines/gl_common/shader/shaders.txt
@@ -77,12 +77,12 @@ img_22_bgra_nomul_afill:tex,sam22,bgra,nomul,afill
# RGB+A. We can add more!
-rgb_a_pair:texa
-rgb_a_pair_mask:texa,mask
-rgb_a_pair_nomul:texa,nomul
-rgb_a_pair_mask_nomul:texa,mask,nomul
-#rgb_a_pair_afill:texa,afill
-#rgb_a_pair_nomul_afill:texa,nomul,afill
+rgb_a_pair:tex,texa
+rgb_a_pair_mask:tex,texa,mask
+rgb_a_pair_nomul:tex,texa,nomul
+rgb_a_pair_mask_nomul:tex,texa,mask,nomul
+#rgb_a_pair_afill:tex,texa,afill
+#rgb_a_pair_nomul_afill:tex,texa,nomul,afill