[ 
https://issues.apache.org/jira/browse/FLEX-34821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

After24 updated FLEX-34821:
---------------------------
    Description: 
This is an experimentation on the flex Scroller compoennt to improve the 
framerate of the scrolling operations.
This optimization based on the blitting technique.

A new boolean property named cacheViewport is added to the Scroller component. 
When cacheViewPort is set to true, all scrolling operations are performed 
according to the following cycle :
 
1 - A bitmap copy of the viewport is made just before the next scrolling 
operation (large viewports are cached in multiple tiles if necessary)

2 - When the user starts a scrolling operation, the actual viewport is replaced 
by its bitmap version and the scrolling is executed by drawing the viewport 
according to its verticalScrollPosition and horizontalScrollPosition properties.

3 - At the end of the scroll operation, the bitmap viewport is replaced by its 
actual version.

4 - Between each scrolling operations, when the user interacts with the 
viewport content, a process mark as 'dirty' every regions of the viewport that 
are likely to have changed during those interactions. Every dirty region is 
redrawn before the next scrolling operation.


Pros :

- 60 FPS scrolling, even on old devices.
- Performance is no longer dependant on the viewport complexity.
- Can be used with the list component if it contains a moderate number of rows 
(useVirtualLayout must be set to false though)

Cons :

- There is a slight lag (dependant on the device processor) during the viewport 
rasterization and the process of redrawing every dirty regions.
- Doesn't support virtualized layouts.
- Animated elements of the viewport freezes during scrolling operations.
- Render mode must be set to <renderMode>gpu</renderMode> on the current 
version.
- Depending on its dimensions, the viewport rasterization process can consume 
large amounts of memory.

A demo application can be downloded on the android play market here : 
https://play.google.com/store/apps/details?id=air.fr.after24.ViewportCacheDemo
Source code is attached.



> Improvement of the scroller perfomances on mobile devices
> ---------------------------------------------------------
>
>                 Key: FLEX-34821
>                 URL: https://issues.apache.org/jira/browse/FLEX-34821
>             Project: Apache Flex
>          Issue Type: Improvement
>            Reporter: After24
>
> This is an experimentation on the flex Scroller compoennt to improve the 
> framerate of the scrolling operations.
> This optimization based on the blitting technique.
> A new boolean property named cacheViewport is added to the Scroller 
> component. When cacheViewPort is set to true, all scrolling operations are 
> performed according to the following cycle :
>  
> 1 - A bitmap copy of the viewport is made just before the next scrolling 
> operation (large viewports are cached in multiple tiles if necessary)
> 2 - When the user starts a scrolling operation, the actual viewport is 
> replaced by its bitmap version and the scrolling is executed by drawing the 
> viewport according to its verticalScrollPosition and horizontalScrollPosition 
> properties.
> 3 - At the end of the scroll operation, the bitmap viewport is replaced by 
> its actual version.
> 4 - Between each scrolling operations, when the user interacts with the 
> viewport content, a process mark as 'dirty' every regions of the viewport 
> that are likely to have changed during those interactions. Every dirty region 
> is redrawn before the next scrolling operation.
> Pros :
> - 60 FPS scrolling, even on old devices.
> - Performance is no longer dependant on the viewport complexity.
> - Can be used with the list component if it contains a moderate number of 
> rows (useVirtualLayout must be set to false though)
> Cons :
> - There is a slight lag (dependant on the device processor) during the 
> viewport rasterization and the process of redrawing every dirty regions.
> - Doesn't support virtualized layouts.
> - Animated elements of the viewport freezes during scrolling operations.
> - Render mode must be set to <renderMode>gpu</renderMode> on the current 
> version.
> - Depending on its dimensions, the viewport rasterization process can consume 
> large amounts of memory.
> A demo application can be downloded on the android play market here : 
> https://play.google.com/store/apps/details?id=air.fr.after24.ViewportCacheDemo
> Source code is attached.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to