Page MenuHomePhabricator

Long term extention for Position_Manager
Open, HighPublic

Description

With the latest optimization from @zmike for map that are moving but are not resizing, I think we should be able to easily optimize scrolling by pushing object that move together into the same buffer. I do not know how to do it best right now (We could go with a limited number of just 2 buffer visible at all time, or with one buffer per object, they both have drawback). Still, we might want the PositionManager to provide additional information for the Collection/CollectionView to leverage. At this point, I don't know how best to communicate that information (Manually request a "buffer" object from the Collection/CollectionView to put item in it? Set information on item to be able to group them? Another buffer?). Anyway, I just want to make sure at this point that we do have a plan for API extention.

cedric created this task.Mon, Aug 12, 4:49 PM
cedric triaged this task as High priority.

What do you mean with buffer here ?

The same slice trick.

Oh, but wouldn't that also just work if you take the range that is passed via the event and use the API that the collection (view) passes to the position manager for batching ?

Not necessarily as with Group you need to know which object the Position Manager might move differently.

SanghyeonLee added a comment.EditedMon, Aug 12, 9:40 PM

I was requested this feature from the tizen developers several times though we couldn't have enough time to fix it so reject the request but if we can do this, it will improve scrolling performance very well.
I think it need to be 3 buffer for this, one is in the viewport and others are for the top and bottom....

I still fail to understand what exactly needs to be done here, can you give a brief explanation what is expected, in what form, at which occasion?

@cedric plan for the group feature is to have one additional field in the function callbacks, that gives you the group of the first item. The other group items are just part of the other buffer.

I will continue to work on all that on the 19. I am still on vacation.

Enjoy your vacation! The idea is to group together a bunch of object that move together in one smart object that we can turn evas map on. This way they become automatically buffered and it will speed up scrolling. But we do not want to put into a group things that would be resized or moved differently. The Position Manager being the only one who knows, we need a way to tell the Collection how to group things.

zmike added a comment.Tue, Aug 20, 4:04 AM

@cedric I think you need to lay off the baguettes. I only did optimizations for mask and proxy renders, not map. Do...do I have to look at map too?

In time, maybe, but not necessarily. I have some idea that can be explored on using proxy instead of map. Depends. Anyway, that is for later.