Difference between revisions of "Features/Tick based animation"

From Sugar Labs
Jump to navigation Jump to search
(Created page with "<noinclude> Category:Feature Page Incomplete . </noinclude> == Summary == Animate each frame as Gtk+ needs a new frame drawn instead of at whatever f...")
 
(Merged)
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
  
 
== Summary ==
 
== Summary ==
 +
Smoother Animations.
 +
 
Animate each frame as Gtk+ needs a new frame drawn instead of at whatever frame rate we want.
 
Animate each frame as Gtk+ needs a new frame drawn instead of at whatever frame rate we want.
  
Line 12: Line 14:
  
 
== Current status ==
 
== Current status ==
* Targeted release: 0.108
+
* Merged in 0.109.0.1
* Last updated: 4 July 2015
+
* Last updated: 18 June 2016
* Percentage of completion: 50%
+
* Percentage of completion: 100% MERGED
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 23: Line 25:
 
* Toolkit implementation (100%):  https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/213
 
* Toolkit implementation (100%):  https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/213
 
* Frame and Home view (100%):  https://github.com/sugarlabs/sugar/pull/505  Frame and homeview are a good spot for tick based animation as we are not cpu bound to open the frame or change views - the animation can take up 100% cpu and all will be fine
 
* Frame and Home view (100%):  https://github.com/sugarlabs/sugar/pull/505  Frame and homeview are a good spot for tick based animation as we are not cpu bound to open the frame or change views - the animation can take up 100% cpu and all will be fine
* Pulsing icon (20%):  https://github.com/sugarlabs/sugar/pull/513  Opening an activity is a cpu bound task, so this is probably the wrong space for animations that steal all of the cpu.
+
* Pulsing icon (NO-GO):  https://github.com/sugarlabs/sugar/pull/513  Opening an activity is a cpu bound task, so this is probably the wrong space for animations that steal all of the cpu.  This patch TRIPLES activity start times on the XO4.
  
 
== Benefit to Sugar ==
 
== Benefit to Sugar ==
Line 31: Line 33:
  
 
== Scope ==
 
== Scope ==
Doesn't break anything.
+
Animation consumers need to add the "widget=x" when creating an animator so they can have the tick callback attached.
  
Animation consumers need to add the "widget=x" when creating an animator so they can have the tick callback attached.
+
Consumers who don't are not effected.
  
 
==UI Design==
 
==UI Design==
Some animations (aka. plusing icon) look completely different when they are actually smooth.
+
None
  
 
== How To Test ==
 
== How To Test ==
  
1. Apply the patches <https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/213> and <https://github.com/sugarlabs/sugar/pull/505>
+
https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/258#issuecomment-145695297
2. Open the frame and notice the smoothness
 
3. Press F6 over and over again to enjoy all the frames in the animation
 
4. Change between home views (F1-F3) to enjoy the smoothness of the animating size of the xo-person
 
  
 
== User Experience ==
 
== User Experience ==
Line 55: Line 54:
  
 
== Documentation ==
 
== Documentation ==
add the widget=x
+
Included in the toolkit patch
  
 
== Release Notes ==
 
== Release Notes ==
Line 62: Line 61:
 
== Comments and Discussion ==
 
== Comments and Discussion ==
  
All the pull requests
+
https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/258
 +
https://github.com/sugarlabs/sugar/pull/572

Latest revision as of 07:29, 18 June 2016


Summary

Smoother Animations.

Animate each frame as Gtk+ needs a new frame drawn instead of at whatever frame rate we want.

Owner

  • Name: Sam P.
  • Email: *@sam.today

Current status

  • Merged in 0.109.0.1
  • Last updated: 18 June 2016
  • Percentage of completion: 100% MERGED

Detailed Description

Gtk+ 3.8 introduces the idea of a 'tick'. This can have a callback attached to it. This is used to do animations in GtkPopover and the other Gtk+ widgets that have animations. Therefore, sugar should not just do out animations at 20fps. If the animation could go at 120fps because the computer is awesome, why not? If the computer is bad and it can only render 5fps, why worry about any more?

This feature can be split up into many parts:

Benefit to Sugar

Smoother animation.

No legit, that is the only benefit.

Scope

Animation consumers need to add the "widget=x" when creating an animator so they can have the tick callback attached.

Consumers who don't are not effected.

UI Design

None

How To Test

https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/258#issuecomment-145695297

User Experience

Smoother animations.

Dependencies

Needs Gtk 3.8 to look different.

Contingency Plan

None necessary, revert to previous release behaviour

Documentation

Included in the toolkit patch

Release Notes

Animations are now smoother than ever on newer hardware. Animations dynamically change FPS to leave no cpu cycle wasted.

Comments and Discussion

https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/258 https://github.com/sugarlabs/sugar/pull/572