efl_ui/table: optimize position_set operations with tables
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 17 Jul 2019 17:12:23 +0000 (13:12 -0400)
committerSangHyeon Jade Lee <sh10233.lee@samsung.com>
Tue, 23 Jul 2019 05:04:43 +0000 (14:04 +0900)
commite5b3cc83952b1a9ee7440c89c856798994e6de93
tree03f787bcb58284a8bfa5ccdd5fcb5a0cadf80916
parentf7d398f856112924b1e06dd367cfc3213c3ccbf6
efl_ui/table: optimize position_set operations with tables

if a table is moved and no other changes are made to the table or its children,
e.g., if the table is scrolled, then there is no need to loop over the table's
items repeatedly in order to accurately calculate all the item geometries
and positions.

instead, simply apply an offset from the last table calc position to each child
item and handle the position changes more transparently

this yields roughly a 12% perf improvement to the 'efl.ui.scroller simple2' test
and brings rendering up to nearly 60fps

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9346
src/lib/elementary/efl_ui_table.c
src/lib/elementary/efl_ui_table_layout.c
src/lib/elementary/efl_ui_table_private.h