[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[e-devel] [patch] edje jittery with sse



 Hello!

 Attached is a patch that solves the Edje jittery issue. The question
is, why was it working with 387?
 Well, now it seems to work as well with 387 and sse.
 But (there's always a but ;D), it now seems that there are problems
with some widgets.
 There were positionning issues with ilist items, they should look as
before (thank you again boneyfrog for your screenshot) with attached
patch (e_ilist_edje_jittery_update.patch).
 Menu items, when focused, seem to move down and right by 1px, and of
course don't go back where they should be when unfocused, but I was
unable to find a workaround :'(.
 I'm pretty sure that other things may have broken. :(

 Cheers!

                                                ilLogict
Index: edje_calc.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_calc.c,v
retrieving revision 1.76
diff -u -r1.76 edje_calc.c
--- edje_calc.c	23 Jan 2006 15:13:44 -0000	1.76
+++ edje_calc.c	3 Mar 2006 20:55:16 -0000
@@ -970,45 +970,45 @@
 	p3.smooth = (pos < 0.5) ? p1.smooth : p2.smooth;
 
 	/* FIXME: do x and y separately base on flag */
-	p3.x = (p1.x * (1.0 - pos)) + (p2.x * (pos));
-	p3.y = (p1.y * (1.0 - pos)) + (p2.y * (pos));
-	p3.w = (p1.w * (1.0 - pos)) + (p2.w * (pos));
-	p3.h = (p1.h * (1.0 - pos)) + (p2.h * (pos));
+	p3.x = (p1.x * (1.0 - pos)) + (p2.x * (pos)) + .5;
+	p3.y = (p1.y * (1.0 - pos)) + (p2.y * (pos)) + .5;
+	p3.w = (p1.w * (1.0 - pos)) + (p2.w * (pos)) + .5;
+	p3.h = (p1.h * (1.0 - pos)) + (p2.h * (pos)) + .5;
 
-	p3.req.x = (p1.req.x * (1.0 - pos)) + (p2.req.x * (pos));
-	p3.req.y = (p1.req.y * (1.0 - pos)) + (p2.req.y * (pos));
-	p3.req.w = (p1.req.w * (1.0 - pos)) + (p2.req.w * (pos));
-	p3.req.h = (p1.req.h * (1.0 - pos)) + (p2.req.h * (pos));
+	p3.req.x = (p1.req.x * (1.0 - pos)) + (p2.req.x * (pos)) + .5;
+	p3.req.y = (p1.req.y * (1.0 - pos)) + (p2.req.y * (pos)) + .5;
+	p3.req.w = (p1.req.w * (1.0 - pos)) + (p2.req.w * (pos)) + .5;
+	p3.req.h = (p1.req.h * (1.0 - pos)) + (p2.req.h * (pos)) + .5;
 
-	p3.req_drag.x = (p1.req_drag.x * (1.0 - pos)) + (p2.req_drag.x * (pos));
-	p3.req_drag.y = (p1.req_drag.y * (1.0 - pos)) + (p2.req_drag.y * (pos));
-	p3.req_drag.w = (p1.req_drag.w * (1.0 - pos)) + (p2.req_drag.w * (pos));
-	p3.req_drag.h = (p1.req_drag.h * (1.0 - pos)) + (p2.req_drag.h * (pos));
-	
-	p3.fill.x = (p1.fill.x * (1.0 - pos)) + (p2.fill.x * (pos));
-	p3.fill.y = (p1.fill.y * (1.0 - pos)) + (p2.fill.y * (pos));
-	p3.fill.w = (p1.fill.w * (1.0 - pos)) + (p2.fill.w * (pos));
-	p3.fill.h = (p1.fill.h * (1.0 - pos)) + (p2.fill.h * (pos));
+	p3.req_drag.x = (p1.req_drag.x * (1.0 - pos)) + (p2.req_drag.x * (pos)) + .5;
+	p3.req_drag.y = (p1.req_drag.y * (1.0 - pos)) + (p2.req_drag.y * (pos)) + .5;
+	p3.req_drag.w = (p1.req_drag.w * (1.0 - pos)) + (p2.req_drag.w * (pos)) + .5;
+	p3.req_drag.h = (p1.req_drag.h * (1.0 - pos)) + (p2.req_drag.h * (pos)) + .5;
+	
+	p3.fill.x = (p1.fill.x * (1.0 - pos)) + (p2.fill.x * (pos)) + .5;
+	p3.fill.y = (p1.fill.y * (1.0 - pos)) + (p2.fill.y * (pos)) + .5;
+	p3.fill.w = (p1.fill.w * (1.0 - pos)) + (p2.fill.w * (pos)) + .5;
+	p3.fill.h = (p1.fill.h * (1.0 - pos)) + (p2.fill.h * (pos)) + .5;
 
-	p3.color.r = (p1.color.r * (1.0 - pos)) + (p2.color.r * (pos));
-	p3.color.g = (p1.color.g * (1.0 - pos)) + (p2.color.g * (pos));
-	p3.color.b = (p1.color.b * (1.0 - pos)) + (p2.color.b * (pos));
-	p3.color.a = (p1.color.a * (1.0 - pos)) + (p2.color.a * (pos));
-	
-	p3.color2.r = (p1.color2.r * (1.0 - pos)) + (p2.color2.r * (pos));
-	p3.color2.g = (p1.color2.g * (1.0 - pos)) + (p2.color2.g * (pos));
-	p3.color2.b = (p1.color2.b * (1.0 - pos)) + (p2.color2.b * (pos));
-	p3.color2.a = (p1.color2.a * (1.0 - pos)) + (p2.color2.a * (pos));
-	
-	p3.color3.r = (p1.color3.r * (1.0 - pos)) + (p2.color3.r * (pos));
-	p3.color3.g = (p1.color3.g * (1.0 - pos)) + (p2.color3.g * (pos));
-	p3.color3.b = (p1.color3.b * (1.0 - pos)) + (p2.color3.b * (pos));
-	p3.color3.a = (p1.color3.a * (1.0 - pos)) + (p2.color3.a * (pos));
-	
-	p3.border.l = (p1.border.l * (1.0 - pos)) + (p2.border.l * (pos));
-	p3.border.r = (p1.border.r * (1.0 - pos)) + (p2.border.r * (pos));
-	p3.border.t = (p1.border.t * (1.0 - pos)) + (p2.border.t * (pos));
-	p3.border.b = (p1.border.b * (1.0 - pos)) + (p2.border.b * (pos));
+	p3.color.r = (p1.color.r * (1.0 - pos)) + (p2.color.r * (pos)) + .5;
+	p3.color.g = (p1.color.g * (1.0 - pos)) + (p2.color.g * (pos)) + .5;
+	p3.color.b = (p1.color.b * (1.0 - pos)) + (p2.color.b * (pos)) + .5;
+	p3.color.a = (p1.color.a * (1.0 - pos)) + (p2.color.a * (pos)) + .5;
+	
+	p3.color2.r = (p1.color2.r * (1.0 - pos)) + (p2.color2.r * (pos)) + .5;
+	p3.color2.g = (p1.color2.g * (1.0 - pos)) + (p2.color2.g * (pos)) + .5;
+	p3.color2.b = (p1.color2.b * (1.0 - pos)) + (p2.color2.b * (pos)) + .5;
+	p3.color2.a = (p1.color2.a * (1.0 - pos)) + (p2.color2.a * (pos)) + .5;
+	
+	p3.color3.r = (p1.color3.r * (1.0 - pos)) + (p2.color3.r * (pos)) + .5;
+	p3.color3.g = (p1.color3.g * (1.0 - pos)) + (p2.color3.g * (pos)) + .5;
+	p3.color3.b = (p1.color3.b * (1.0 - pos)) + (p2.color3.b * (pos)) + .5;
+	p3.color3.a = (p1.color3.a * (1.0 - pos)) + (p2.color3.a * (pos)) + .5;
+	
+	p3.border.l = (p1.border.l * (1.0 - pos)) + (p2.border.l * (pos)) + .5;
+	p3.border.r = (p1.border.r * (1.0 - pos)) + (p2.border.r * (pos)) + .5;
+	p3.border.t = (p1.border.t * (1.0 - pos)) + (p2.border.t * (pos)) + .5;
+	p3.border.b = (p1.border.b * (1.0 - pos)) + (p2.border.b * (pos)) + .5;
 
 	p3.text.align.x = (p1.text.align.x * (1.0 - pos)) + (p2.text.align.x * (pos));
 	p3.text.align.y = (p1.text.align.y * (1.0 - pos)) + (p2.text.align.y * (pos));
Index: default_ilist.edc
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/data/themes/default_ilist.edc,v
retrieving revision 1.3
diff -u -r1.3 default_ilist.edc
--- default_ilist.edc	6 Nov 2005 05:48:50 -0000	1.3
+++ default_ilist.edc	3 Mar 2006 22:18:44 -0000
@@ -29,7 +29,7 @@
 	    }
 	    rel2 {
 	       relative: 1.0  1.0;
-	       offset:   -1   -1;
+	       offset:   -2   -2;
 	       to:       "title_bar";
 	    }
 	    image {
@@ -43,24 +43,8 @@
 	 }
 	 description {
 	    state:    "active" 0.0;
+	    inherit:  "default" 0.0;
 	    visible:  1;
-	    rel1 {
-	       relative: 0.0  0.0;
-	       offset:   0    0;
-	       to:       "title_bar";
-	    }
-	    rel2 {
-	       relative: 1.0  1.0;
-	       offset:   -1   -1;
-	       to:       "title_bar";
-	    }
-	    image {
-	       normal: "e17_titlebar_shadow2.png";
-	       border: 8 8 8 8;
-	    }
-	    fill {
-	       smooth: 0;
-	    }
 	    color: 255 255 255 255;
 	 }
       }
@@ -77,7 +61,7 @@
 	    }
 	    rel2 {
 	       relative: 1.0  1.0;
-	       offset:   -1   -1;
+	       offset:   -2   -2;
 	       to:       "title_bar";
 	    }
 	    image {
@@ -91,24 +75,8 @@
 	 }
 	 description {
 	    state:    "active" 0.0;
+	    inherit:  "default" 0.0;
 	    visible:  1;
-	    rel1 {
-	       relative: 0.0  0.0;
-	       offset:   0    0;
-	       to:       "title_bar";
-	    }
-	    rel2 {
-	       relative: 1.0  1.0;
-	       offset:   -1   -1;
-	       to:       "title_bar";
-	    }
-	    image {
-	       normal: "e17_titlebar_shadow1.png";
-	       border: 8 8 8 8;
-	    }
-	    fill {
-	       smooth: 0;
-	    }
 	    color: 255 255 255 255;
 	 }
       }
@@ -123,10 +91,10 @@
 	       border: 8 8 8 8;
 	    }
 	    rel1 {
-	       offset: -4 -4;
+	       offset: -5 -5;
 	    }
 	    rel2 {
-	       offset: 3 3;
+	       offset: 2 2;
 	    }
 	    color: 255 255 255 0;
 	 }
@@ -495,7 +463,7 @@
 	    }
 	    rel2 {
 	       relative: 1.0  1.0;
-	       offset:   -1   -1;
+	       offset:   -2   -2;
 	       to:       "title_bar";
 	    }
 	    image {
@@ -509,24 +477,8 @@
 	 }
 	 description {
 	    state:    "active" 0.0;
+	    inherit:  "default" 0.0;
 	    visible:  1;
-	    rel1 {
-	       relative: 0.0  0.0;
-	       offset:   0    0;
-	       to:       "title_bar";
-	    }
-	    rel2 {
-	       relative: 1.0  1.0;
-	       offset:   -1   -1;
-	       to:       "title_bar";
-	    }
-	    image {
-	       normal: "e17_titlebar_shadow2.png";
-	       border: 8 8 8 8;
-	    }
-	    fill {
-	       smooth: 0;
-	    }
 	    color: 255 255 255 255;
 	 }
       }
@@ -543,7 +495,7 @@
 	    }
 	    rel2 {
 	       relative: 1.0  1.0;
-	       offset:   -1   -1;
+	       offset:   -2   -2;
 	       to:       "title_bar";
 	    }
 	    image {
@@ -557,24 +509,8 @@
 	 }
 	 description {
 	    state:    "active" 0.0;
+	    inherit:  "default" 0.0;
 	    visible:  1;
-	    rel1 {
-	       relative: 0.0  0.0;
-	       offset:   0    0;
-	       to:       "title_bar";
-	    }
-	    rel2 {
-	       relative: 1.0  1.0;
-	       offset:   -1   -1;
-	       to:       "title_bar";
-	    }
-	    image {
-	       normal: "e17_titlebar_shadow1.png";
-	       border: 8 8 8 8;
-	    }
-	    fill {
-	       smooth: 0;
-	    }
 	    color: 255 255 255 255;
 	 }
       }
@@ -589,10 +525,10 @@
 	       border: 8 8 8 8;
 	    }
 	    rel1 {
-	       offset: -4 -4;
+	       offset: -5 -5;
 	    }
 	    rel2 {
-	       offset: 3 3;
+	       offset: 2 2;
 	    }
 	    color: 255 255 255 0;
 	 }