Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[e4-dev] Re: Animations in e4

I recently played around with implementing the Effect and Animation APIs for the new Cocoa version. I got some to work, but it seems that the common denominator between all supported OSs is really limited... I also added support for Composition operators (alpha and custom ones). I have an implementation that works with Cocoa's alpha comp and one that is entirely emulation based. for the latter, I worked with the existing blit function, adding an extra Composition parameter. While I was doing that, I noticed that the blit function would greatly benefit from being 'de-interleaved' (the current one size fits all approach has a noticable performance impact... I started making separate entities to work with the different image scenarios to avoid some of the IFs in the inner loops).


Kirill Grouchnikov wrote:
Hi Silenio and Bogdan

Thanks for the jar - i will run it on my Vista box to see how it looks.

I have taken a look at the CVS sources that you've linked to, and it does look like there is a lot of toolkit-specific work that can be done in a cross-platform manner. Having a pure Java layer for managing animations has an additional benefit of one place to fix bugs / add new functionality.

I am aware of TimingFramework that has been developed up until 2007 by Chet and Romain - that have since left Java UI field (to work on Flex and Android, respectively). I have reused some of TF code in Trident (both are BSD licensed), sp ecifically splines and key frames, and added a lot of built-in functionality that is missing in TF. Of course, i cannot be objective in the comparison of Trident vs. other animation libraries, but i'm always open to suggestions about missing features. One big plus for using Trident is its built-in support for SWT, with full respect of the threading rules of the toolkit.

Thanks
Kirill

------------------------------------------------------------------------
*From:* Bogdan Gheorghe <gheorghe@xxxxxxxxxx>
*To:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx> *Cc:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>; e4-dev-bounces@xxxxxxxxxxx
* Sent:* Wednesday, July 29, 2009 7:43:49 AM
*Subject:* Re: [e4-dev] Animations in e4


Hi Kirill -

Our test app that featured animation is the Flickr app - here is an executable jar that runs our WPF port (you can run it on WinXP + .NET framework 3.5, or on Vista). If you want to see this demo run in the browser, you can check out our Flex port (see instructions here on how to get it running: http://wiki.eclipse.org/E4/SWT/Running_the_demos).

Just to be clear, when we investigated the OS support we found that there were some difficulties with using their timeline support. Maybe having a completely Java based (emulated) implementation is the right way to go. Note that there are a bunch of other Java only animation frameworks - the one at https://timingframework.dev.java.net/ seems to be fairly complete. We're not sure how much time we will have to spend on this which is another reason why an emulated solution could be the way to proceed.

Thanks,
Silenio & Bogdan




*Kirill Grouchnikov <kirillcool@xxxxxxxxx>*
Sent by: e4-dev-bounces@xxxxxxxxxxx

07/27/2009 08:21 PM
Please respond to
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>


	
To
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>
cc
	
Subject
	Re: [e4-dev] Animations in e4



	





Hi Bogdan

Thanks for the clarifications. It would be great to have Trident as a candidate animation library in e4.

I'll browse the repository to see the current API signatures. Do you happen to have test applications?

Thanks
Kirill

------------------------------------------------------------------------
*From:* Bogdan Gheorghe <gheorghe@xxxxxxxxxx>*
To:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>* Cc:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>; e4-dev-bounces@xxxxxxxxxxx*
Sent:* Monday, July 27, 2009 2:04:51 PM*
Subject:* Re: [e4-dev] Animations in e4


Hi Kirill -

The URL we gave before was the path in CVS to check out the SWT e4 project: _dev.eclipse.org_ <http://dev.eclipse.org/>:/cvsroot/eclipse/e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4. Here is a browsable URL: <http://dev.eclipse.org/viewcvs/index.cgi/e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4>
_
__http://dev.eclipse.org/viewcvs/index.cgi/e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4/_

The animation API that we put together makes use of the available OS animation support (so we address points 2 and 3). What we were trying to get at is that win32/gtk controls do not provide certain properties we believe are necessary to enable more advanced animations (alpha, transformations etc) nor do they provide any native animation timeline support.

We could see an animation framework where the framework would make use of the OS timeline support whenever available and use an emulated timeline for those platforms which do not have any support. We don't see why Trident could not be used however we always prefer to make use of OS provided support where available (as far as timeline support). For the more advanced properties, you need the OS support.

- Silenio & Bogdan


*Kirill Grouchnikov <kirillcool@xxxxxxxxx>*
Sent by: e4-dev-bounces@xxxxxxxxxxx

07/26/2009 12:33 AM
Please respond to
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>

	
To
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>
cc
	
Subject
	Re: [e4-dev] Animations in e4




	






Hi Silenio and Bogdan

Thanks for the information. I am interested in looking at the current sources, but having no prior experience in the e4 project structure, i'm not sure where is the link pointing to. Do you happen to have a full URL to a browsable / downloadable version of the source repository?

Another question that i have - and perhaps it will be clarified after seeing the code. Suppose the application has a button callback that adds a new control to the form. In the spirit of transition animations, this control slides in from one of the sides and is faded in while it moves. Here, i see three distinct layers:

1. The application layer that decides what needs to be animated.
2. The animation layer that tracks all registered application animations and at every pulse calls the relevant methods on the components (alpha / bounds / ...). 3. The UI toolkit that supports changing these properties to be reflected on the screen.

Trident aims to be only the layer number 2. From what you have described, it appears that you are mainly talking about the layer number 3 and how OS toolkits differ in their support of changing the specific component / window properties. If this is true, i don't understand the sentence about win32 and gtk not supporting the animation. Perhaps you're talking about win32 / gtk controls not supporting custom alpha channel? Because all the animation engine is doing (at least in my view) is to change the component property every once in a while - hopefully often enough to provide the appearance of smooth change - and it's up to the native UI toolkit to support those properties. If i am wrong in my reading, please correct me.

To clarify Trident's place in the animation "lifecycle", here is an example from fading in a Swing window:

Window window = ....; // new JFrame(), for instance
Timeline windowFadeIn = new Timeline(window);
windowFadeIn.addPropertyToInterpolate("opacity", 0.0f, 1.0f);
windowFadeIn.play();

Once Timeline.play() is called, Trident will call the Window.setOpacity() API with values going from 0.0f to 1.0f - asking the UI toolkit to change the opacity of the window.

So my question about animations in e4 is about the animation engine as the "controller" that asks the native toolkit to change the widget properties (alpha, bounds, ...). I would imagine that you already have something in place, and i was wondering whether Trident can be considered to be used for that part.

Thanks
Kirill

------------------------------------------------------------------------
*From:* Silenio Quarti <Silenio_Quarti@xxxxxxxxxx>* To:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>*
Sent:* Thursday, July 23, 2009 9:19:54 AM*
Subject:* Re: [e4-dev] Animations in e4


Hi Kirill,

We have investigated and prototyped an Animation API using the support available in some platforms. The API has been implemented (to varying degrees of completion) on WPF, Cocoa, Flex and Dojo. Currently there is no animation support on win32 and gtk. QT could be an option since it provides an animation API. GTK 3.0 may provide such an API in the future.

When it comes to animation, there are a few features that the core widgets need: alpha, transformation and bitmap effects. The platforms we have prototyped all have that support. If that kind of support is not available in the core widgets, you are restricted to animating custom draw widgets.

The prototypes are in the folders Eclipse SWT Animation and Eclipse SWT Effects under:

_dev.eclipse.org/e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4_ <http://dev.eclipse.org/e4/org.eclipse.e4.swt/bundles/org.eclipse.swt.e4>

Silenio and Bogdan

*Kirill Grouchnikov <kirillcool@xxxxxxxxx>*
Sent by: e4-dev-bounces@xxxxxxxxxxx

07/22/2009 06:19 PM
Please respond to
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>


	
To
E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>
cc
	
Subject
	[e4-dev] Animations in e4





	







Tom,

Since Trident has its own dev mailing list, and now there is (or going to be, hopefully) a discussion on the e4 dev mailing list, i would rather not fragment this thing even further by splitting some of the dialog into yet another list.

My general question about e4 is - what are the plans for animation capabilities in e4? Is this being incubated in CWT / Nebula? Is this being floated at a very generic level with no concrete discussions? Or perhaps this is being discussed in bugzilla?

Thanks
Kirill

------------------------------------------------------------------------
*From:* Tom Schindl <tom.schindl@xxxxxxxxxxxxxxx>*
To:* E4 Project developer mailing list <e4-dev@xxxxxxxxxxx>*
Sent:* Wednesday, July 22, 2009 3:11:59 PM*
Subject:* Re: [e4-dev] e4 release review slides

Hi,

It be great if you could outline your ideas at the nebula-dev mailing
list so that the developers their could respond.

Tom

Kirill Grouchnikov schrieb:
 > Hi Tom
 >
 > How far along are you in the animation layer of CWT? Is there any
 > documentation available on existing capabilities / future plans so that
 > i can compare it with Trident to see if anything is missing?
 >
 > Thanks
 > Kirill
 >
 > ------------------------------------------------------------------------
> *From:* Tom Schindl <_tom.schindl@bestsolution.at_ <mailto:tom.schindl@xxxxxxxxxxxxxxx>> > *To:* E4 Project developer mailing list <_e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>>
 > *Sent:* Wednesday, July 22, 2009 1:35:52 AM
 > *Subject:* Re: [e4-dev] e4 release review slides
 >
 > Hi,
 >
 > At nebula we have the proposal of a project called CWT [1] and a start
 > for animation code too. So I think we should collaborate on this.
 >
 > Tom
 >
 > [1]_http://www.aspencloud.com/cwt_
 >
 > Toedter, Kai schrieb:
 >> Kirill,
 >>
 >>
 >>
 >> I have been following both the SceneGraph and your Trident activities in
 >> the last months. I would love  to see your (swing) demo running in an
 >> SWT environment and discuss in this list how Trident might fit into e4.
 >>
 >>
 >>
 >> Best regards,
 >>
 >>
 >>
 >> Kai
 >>
 >>
 >>
>> *From:* _e4-dev-bounces@eclipse.org_ <mailto:e4-dev-bounces@xxxxxxxxxxx> <mailto:_e4-dev-bounces@eclipse.org_ <mailto:e4-dev-bounces@xxxxxxxxxxx>> > [mailto:_e4-dev-bounces@eclipse.org_ <mailto:e4-dev-bounces@xxxxxxxxxxx> <mailto:_e4-dev-bounces@eclipse.org_ <mailto:e4-dev-bounces@xxxxxxxxxxx>>]
 >> *On Behalf Of *Kirill Grouchnikov
 >> *Sent:* Dienstag, 21. Juli 2009 23:03
 >> *To:* E4 Project developer mailing list
 >> *Subject:* Re: [e4-dev] e4 release review slides
 >>
 >>
 >>
 >> Hi
 >>
 >> I have a question about slide 4 - about deferring the advanced
 >> animations in SWT.
 >>
 >> I've been following this list for a few months, and i haven't seen any
 >> (significant) discussion on this topic. I've recently released the first
 >> official version of Trident animation library which has built in support
 >> for both Swing and SWT - including automatic support for threading rules
 >> and additional UI toolkit-specific features.
 >>
 >> The overview of support for UI toolkits is at [1], and examples for SWT
 >> can be found at [2]-[4].
 >>
 >> Is this something that would be of interest to the e4 project? The core
 >> Trident capabilities can be used to built more complex animations such
 >> as layout transitions, window fades, cross fades etc - as shown in the
 >> demo Swing application at [5]. And while the demo is in Swing, i am
 >> going to port it to SWT as well in the next few weeks.
 >>
 >> Thanks
 >> Kirill
 >>
 >> [1] _http://kenai.com/projects/trident/pages/UIToolkitSupport_
 >> [2] _http://kenai.com/projects/trident/pages/SimpleSWTExample_
 >> [3] _http://kenai.com/projects/trident/pages/ParallelSWTTimelines_
 >> [4] _http://kenai.com/projects/trident/pages/KeyFrameExample_
 >> [5] _http://vimeo.com/4622654_
 >>
 >>
 >>
 >> ------------------------------------------------------------------------
 >>
>> *From:* John Arthorne <_John_Arthorne@xxxxxx.com_ <mailto:John_Arthorne@xxxxxxxxxx> > <mailto:_John_Arthorne@xxxxxx.com_ <mailto:John_Arthorne@xxxxxxxxxx>>> >> *To:* _e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx> <mailto:_e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>>
 >> *Sent:* Tuesday, July 21, 2009 10:59:57 AM
 >> *Subject:* [e4-dev] e4 release review slides
 >>
 >>
 >> I have prepared the docu-ware required by the Eclipse development
 >> process for the e4 0.9 release. I have attached a draft of the slides
 >> here for e4 committers to review. Please let me know of any errors or
 >> ommissions.
 >>
 >>
 >>
 >> John
 >>
 >>
 >>
 >>
 >> ------------------------------------------------------------------------
 >>
 >> _______________________________________________
 >> e4-dev mailing list
>> _e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx> <mailto:_e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>>
 >> _https://dev.eclipse.org/mailman/listinfo/e4-dev_
 >
 >
 > --
 > B e s t S o l u t i o n . a t                        EDV Systemhaus GmbH
 > ------------------------------------------------------------------------
 > tom schindl                                        geschaeftsfuehrer/CEO
 > ------------------------------------------------------------------------
 > eduard-bodem-gasse 5/1    A-6020 innsbruck      phone    ++43 512 935834
 > _______________________________________________
 > e4-dev mailing list
> _e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx> <mailto:_e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>>
 > _https://dev.eclipse.org/mailman/listinfo/e4-dev_
 >
 >
 > ------------------------------------------------------------------------
 >
 > _______________________________________________
 > e4-dev mailing list
> _e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>
 > _https://dev.eclipse.org/mailman/listinfo/e4-dev_


--
B e s t S o l u t i o n . a t                        EDV Systemhaus GmbH
------------------------------------------------------------------------
tom schindl                                        geschaeftsfuehrer/CEO
------------------------------------------------------------------------
eduard-bodem-gasse 5/1    A-6020 innsbruck      phone    ++43 512 935834
_______________________________________________
e4-dev mailing list_
__e4-dev@eclipse.org_ <mailto:e4-dev@xxxxxxxxxxx>_
__https://dev.eclipse.org/mailman/listinfo/e4-dev_
_______________________________________________
e4-dev mailing list
e4-dev@eclipse.org_
__https://dev.eclipse.org/mailman/listinfo/e4-dev_

_______________________________________________
e4-dev mailing list
e4-dev@eclipse.org_
__https://dev.eclipse.org/mailman/listinfo/e4-dev_

_______________________________________________
e4-dev mailing list
e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/e4-dev




--
Laurent Mihalkovic, co-author SWT/JFace in Action (www.manning.com/scarpino)



Back to the top