jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=404ecdd8d7b0a91876c9ae11d1f0a80634b557d3

commit 404ecdd8d7b0a91876c9ae11d1f0a80634b557d3
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Mon Apr 13 21:49:45 2015 +0900

    Evas GL common: Fix RGB+A textures
    
    Since the shaders system rewrite, RGB+A (used for ETC1+Alpha encoding)
    did not work anymore.
---
 .../evas/engines/gl_common/shader/evas_gl_enum.x   |  6 +++++
 .../engines/gl_common/shader/evas_gl_shaders.x     | 28 ++++++++++++++++++----
 .../evas/engines/gl_common/shader/shaders.txt      | 12 +++++-----
 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 5c523fc..4f3cb12 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 f5dd596..38cdc25 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 6dd7f12..e5a3e7a 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
 
 
 

-- 


Reply via email to