I know, it may have been discussed before, but I'm still puzzled by this. Clutter comes with a powerful and extensible animation API, yet the Shell uses Tweener, which is pure JS.
There is a good reason for not using it: JS is slow. First of all, no matter how efficient the interpreter is, C code is faster than JS. Secondly, the Shell uses Gjs, thus SpiderMonkey, which is a lot slower than its competitors (it's the slowest modern JS engine). Not only that, every time a GObject property is accessed, a good amount of FFI code and gobject-introspection code is needed, introducing an other slowdown. Another good reason for using ClutterAnimation is that C code cannot (or would prefer not to) call JS code, thus cannot use Tweener, which in turn means that all animatable actors need a JS wrapper. Currently, St.Tooltip uses ClutterAnimation, but has been declared broken. The main advantage of using Tweener (as I see it) is that it allows special properties, which is overcome by implementing ClutterAnimatable in the actor involved. Other Tweener features, like multiple properties and onComplete callbacks, are fully supported by ClutterAnimation. Lastly, you don't want to use Tweener on a JS property, because either that setting that property has no effect, or that property is a setter, which reduces performance and responsiveness further. I hope I made myself clear, and I'm looking forward for a response from the developers. Giovanni PS: not filing a bug, because I'm not sure Tweener is a bug, yet I'm not convinced it is a feature either. PS2: of course, if the answer is "kill Tweener", I'll be glad to help. _______________________________________________ gnome-shell-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-shell-list
