ivi-shell: don't schedule compositor repaint
it is not necessary to repaint all outputs after each commit_changes. Only outputs with modified views has to be repainted. We need to call weston_view_update_transform for assigning views to outputs first. Then, We can call weston_view_schedule_repaint to trigger repaint for outputs. Signed-off-by: Emre Ucan <eucan@de.adit-jv.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
committed by
Pekka Paalanen
parent
a4608461b2
commit
7b690559a5
@@ -27,7 +27,7 @@
|
|||||||
* Implementation of ivi-layout library. The actual view on ivi_screen is
|
* Implementation of ivi-layout library. The actual view on ivi_screen is
|
||||||
* not updated until ivi_layout_commit_changes is called. An overview from
|
* not updated until ivi_layout_commit_changes is called. An overview from
|
||||||
* calling API for updating properties of ivi_surface/ivi_layer to asking
|
* calling API for updating properties of ivi_surface/ivi_layer to asking
|
||||||
* compositor to compose them by using weston_compositor_schedule_repaint,
|
* compositor to compose them by using weston_view_schedule_repaint,
|
||||||
* 0/ initialize this library by ivi_layout_init_with_compositor
|
* 0/ initialize this library by ivi_layout_init_with_compositor
|
||||||
* with (struct weston_compositor *ec) from ivi-shell.
|
* with (struct weston_compositor *ec) from ivi-shell.
|
||||||
* 1/ When an API for updating properties of ivi_surface/ivi_layer, it updates
|
* 1/ When an API for updating properties of ivi_surface/ivi_layer, it updates
|
||||||
@@ -51,8 +51,8 @@
|
|||||||
* 4/ According properties, set transformation by using weston_matrix and
|
* 4/ According properties, set transformation by using weston_matrix and
|
||||||
* weston_view per ivi_surfaces and ivi_layers in while loop.
|
* weston_view per ivi_surfaces and ivi_layers in while loop.
|
||||||
* 5/ Set damage and trigger transform by using weston_view_geometry_dirty.
|
* 5/ Set damage and trigger transform by using weston_view_geometry_dirty.
|
||||||
* 6/ Notify update of properties.
|
* 6/ Schedule repaint for each view by using weston_view_schedule_repaint.
|
||||||
* 7/ Trigger composition by weston_compositor_schedule_repaint.
|
* 7/ Notify update of properties.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@@ -577,13 +577,13 @@ update_prop(struct ivi_layout_view *ivi_view)
|
|||||||
&ivi_view->transform.link);
|
&ivi_view->transform.link);
|
||||||
|
|
||||||
weston_view_set_transform_parent(ivi_view->view, NULL);
|
weston_view_set_transform_parent(ivi_view->view, NULL);
|
||||||
|
weston_view_geometry_dirty(ivi_view->view);
|
||||||
|
weston_view_update_transform(ivi_view->view);
|
||||||
}
|
}
|
||||||
|
|
||||||
ivisurf->update_count++;
|
ivisurf->update_count++;
|
||||||
|
|
||||||
weston_view_geometry_dirty(ivi_view->view);
|
weston_view_schedule_repaint(ivi_view->view);
|
||||||
|
|
||||||
weston_surface_damage(ivisurf->surface);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1752,7 +1752,6 @@ ivi_layout_commit_changes(void)
|
|||||||
|
|
||||||
commit_changes(layout);
|
commit_changes(layout);
|
||||||
send_prop(layout);
|
send_prop(layout);
|
||||||
weston_compositor_schedule_repaint(layout->compositor);
|
|
||||||
|
|
||||||
return IVI_SUCCEEDED;
|
return IVI_SUCCEEDED;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user