Nice one....just worry that this will affect the First draw...

If I am wrong, happy to admit that ;)

Keeping the region is good ... but let's not lose the initial draw (if 
it can be helped). Region 1 is sort of "initial show" ;)


dh


On 30/01/14 17:12, Mike Blumenkrantz wrote:
> discomfitor pushed a commit to branch master.
>
> http://git.enlightenment.org/core/enlightenment.git/commit/?id=752c22048274def4f1f40a2f2d5b1bdb3e64d94b
>
> commit 752c22048274def4f1f40a2f2d5b1bdb3e64d94b
> Author: Mike Blumenkrantz <[email protected]>
> Date:   Thu Jan 30 11:54:06 2014 -0500
>
>      redo X first_damage logic
>
>      the main idea here is to not DRAW at the time of the first damage to 
> avoid overdraw, but ignoring the fact that the region is ready to be drawn 
> can be problematic when the drawing eventually occurs. best choice here is to 
> keep the region but not the render update
> ---
>   src/bin/e_comp_x.c | 14 ++++++--------
>   1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
> index bbb697c..82b1f68 100644
> --- a/src/bin/e_comp_x.c
> +++ b/src/bin/e_comp_x.c
> @@ -2495,19 +2495,17 @@ _e_comp_x_damage(void *data EINA_UNUSED, int type 
> EINA_UNUSED, Ecore_X_Event_Dam
>           ecore_x_damage_subtract(ec->comp_data->damage, 0, parts);
>           ecore_x_region_free(parts);
>        }
> -   if (!ec->comp_data->first_damage)
> -     {
> -        ec->comp_data->first_damage = 1;
> -        if (!ec->re_manage)
> -          return ECORE_CALLBACK_RENEW;
> -     }
> -
> -   E_FREE_FUNC(ec->comp_data->first_draw_delay, ecore_timer_del);
>      //WRN("DAMAGE %p: %dx%d", ec, ev->area.width, ev->area.height);
> +
>      if (ec->comp->nocomp)
>        e_pixmap_dirty(ec->pixmap);
>      else
>        e_comp_object_damage(ec->frame, ev->area.x, ev->area.y, 
> ev->area.width, ev->area.height);
> +   if ((!ec->re_manage) && (!ec->comp_data->first_damage))
> +     e_comp_object_render_update_del(ec->frame);
> +   else
> +     E_FREE_FUNC(ec->comp_data->first_draw_delay, ecore_timer_del);
> +   ec->comp_data->first_damage = 1;
>      return ECORE_CALLBACK_RENEW;
>   }
>
>


------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to