Sorry about my ignorance, but what is D5?
Same question here. What’s D5 and how is it related to Prism/JavaFX? Why can’t I find any info and details about any of these? I can understand that we’re talking about incomplete projects, but seriously, why is so much stuff done behind closed doors lately at Sun?
You can see both names in the screenshots (does ‘D5g’ count?) in the blog of Chris Oliver. Just keep on scrolling. Don’t expect any info though.
Prism is the name of the next update to JavaFX 1.x it does hardware acceleration to its draw (bit like the opengl pipeline in Java), sorry to say I’m not sure of all its capabilities, but it is looking very nice I’m told.
D5 (known also as “The Real Slim Shady”) is a real fully hardware accelerated 3d 2d, audio, video animation, physics, shader, etc etc engine. It has no direct connection to Java3D, Java2D, Swing, Senario3D, AWT, Prism or Reprise. D5 its written in the JavaFX for modern content related creation. Fun to use also, the animation stuff is second to known if you ask me, gotta love radial forces and all that goodness.
OK, so D5 = this = not supported by Sun? In your previous reply it sounds like Chris Oliver is still actively developing it, is that correct? If yes, what’s his plan for it?
:
barred by a NDA to give any more info?
Wouldn’t that mean its still supported by sun?..
Probably a lot better for everyone if it wasn’t supported by Sun don’t you think?
Cas
:o
Vancouver Olympics Chooses JavaFX
Took 17 seconds to load.
Animations seem to be 5fps
this is horrbile!! i have waited for a minute and it’s still loading while i write this, do we really have to keep the tradition of Java = slowest thing ever.
…still loading
EDIT: now after 5 minutes javaFx installation prompt came up
For me, it took about 20 seconds to load the first time (including JavaFX desktop install).
Second time, it completely crashed my browser (Firefox on Mac OSX).
Third time, comes up in half a second.
Third + Nth time: comes up in half a second.
[quote]Exception in thread “AWT-EventQueue-5” java.lang.Error: Couldn’t launch FX Stage com.effectiveui.snow.Main
at com.sun.javafx.runtime.adapter.AppletStartupRoutine.run(Unknown Source)
at com.sun.javafx.tk.swing.SwingToolkit$StartupRoutine.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NoSuchMethodError: com.sun.javafx.runtime.location.ObjectVariable.makeWithDefault(Ljava/lang/Object;Ljava/lang/Object;)Lcom/sun/javafx/runtime/location/ObjectVariable;
at com.effectiveui.snow.model.ModelLocator.loc$filterValue(ModelLocator.fx:46)
at com.effectiveui.snow.ControlPane.applyDefaults$(ControlPane.fx:55)
at com.sun.javafx.runtime.FXBase.applyDefaults$(Unknown Source)
at com.effectiveui.snow.ControlPane.initialize$(ControlPane.fx:37)
at com.effectiveui.snow.ControlPane.(ControlPane.fx:37)
at com.effectiveui.snow.Main.javafx$run$(Main.fx:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
… 10 more
[/quote]
Total rubbish, didn’t work.
Cas
This worked pretty good for me, very fast loading, even on first time. I’m on Win7, JRE 6u18 (didn’t have to install JavaFX). Animation feels slow as Riven mentioned, not 5 fps slow, but not as smooth as I’d expect. Anyway, I’d say it gave me a positive impression if it weren’t for the crappy font rendering, no sub-pixel antialiasing and the wheel text flickers when animated. Not sure if it’s JavaFX or the app’s developer to blame.
The developer should have never used JavaFX. Even a HelloWorld app takes ~15sec to load. Every dev taking his website seriously should steer clear of JavaFX until it loads faster.
Found a few bugs in the app. ;D
When doing a comparison between countries’ medal totals, you can click on the country you are comparing with to make it the focus of the comparison.
However if you click multiple times in quick succession, the diagram it creates for the new country will have duplicates in it’s comparison branches.
The problem is compounded by the fact JavaFX considers all mouse buttons to be equivalent - so if you triple click all 3 mouse buttons simultaneously, you will end up with 9 copies of each comparison branch in the new diagram =)
See attached image.
:edit:
Seems this isn’t the only place that causes the application to malfunction if you rapidly click (or click multiple mouse buttons simultaneously).
When you are initially selecting a country, if you click all 3 mouse buttons rather than just 1 to select a country, the ‘flag zoom’ effect will occur multiple times - only the first of which can be closed.
The other(s) will be left sitting in the centre of the window occluding a portion of the map.
:edit2:
Oh dear, refresh the page a few times and BOOM!, grey window.
100% repeatable; refresh the page 5 times and it fails to launch due to OOM.
You can see the memory usage of the Java.exe process increase each time =/
Shouldn’t memory leaks persisting between restarts of JavaFX be impossible? unless the JavaFX engine itself isn’t auto-disposing of everything it should be?
Exception in thread "AWT-EventQueue-25" java.lang.Error: Couldn't launch FX Stage com.effectiveui.snow.Main
at com.sun.javafx.runtime.adapter.AppletStartupRoutine.run(Unknown Source)
at com.sun.javafx.tk.swing.SwingToolkit$StartupRoutine.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/geom/Rectangle2D
at com.sun.scenario.scenegraph.SGShape.computeBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getClippedBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateTxBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getCompleteBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.recomputeBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGGroup.computeBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getClippedBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateTxBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getCompleteBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.recomputeBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGGroup.computeBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getContentBounds(Unknown Source)
at javafx.scene.Node.computeBounds(Unknown Source)
at javafx.scene.Node$_SBECL.compute(Unknown Source)
at com.sun.javafx.runtime.location.AbstractVariable.update(Unknown Source)
at com.sun.javafx.runtime.location.AbstractVariable.ensureValid(Unknown Source)
at com.sun.javafx.runtime.location.ObjectVariable.get(Unknown Source)
at com.sun.javafx.runtime.location.ObjectVariable$1.compute(Unknown Source)
at com.sun.javafx.runtime.location.AbstractVariable.update(Unknown Source)
at com.sun.javafx.runtime.location.AbstractVariable.ensureValid(Unknown Source)
at com.sun.javafx.runtime.location.ObjectVariable.get(Unknown Source)
at javafx.scene.Node.get$layoutBounds(Unknown Source)
at javafx.scene.layout.Container.getPrefWidth(Unknown Source)
at javafx.scene.layout.Container.initSize(Unknown Source)
at javafx.scene.layout.Container.postInit$(Unknown Source)
at com.sun.javafx.runtime.FXBase.complete$(Unknown Source)
at com.effectiveui.snow.FilterPane.userInit$(FilterPane.fx:23)
at com.sun.javafx.runtime.FXBase.complete$(Unknown Source)
at com.effectiveui.snow.Main.javafx$run$(Main.fx:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
... 10 more
Caused by: java.lang.ClassNotFoundException: com.sun.javafx.geom.Rectangle2D
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.JNLP2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 50 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$400(Unknown Source)
... 57 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
... 59 more
Caused by: java.lang.OutOfMemoryError: Java heap space
at com.sun.deploy.cache.CacheEntry$10.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.deploy.cache.CacheEntry.readManifest(Unknown Source)
at com.sun.deploy.cache.CacheEntry.getManifest(Unknown Source)
at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
at sun.misc.URLClassPath$JarLoader$2.getManifest(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$WrapResource.getManifest(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$400(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
at sun.plugin2.applet.JNLP2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at com.sun.scenario.scenegraph.SGShape.computeBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getClippedBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateTxBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getCompleteBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.recomputeBounds(Unknown Source)
at com.sun.javafx.sg.GroupBoundsHelper.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGGroup.computeBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.updateBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getContentBounds(Unknown Source)
at com.sun.scenario.scenegraph.SGNode.getClippedBounds(Unknown Source)
:edit3:
Rapidly click the ‘reset view’ button (top left), about 30-40 times.
java.exe process will now be locked at 100% cpu usage (of 1 core), ~112mb allocated, and the applet will have stopped responding.
Wait a few minutes, cpu usage drops to 0%, allocated memory doesn’t change - applet still not responding.
:edit4:
When transitioning to the ‘compare countries diagram screen’ a slide transition plays; if during this transition you click a new year in the top bar, the transition will terminate and the window will be left completely blank!
This thing is extremely flakey; 4 different bugs, 2 of them crash bugs found in 15 minutes of messing around.
Pretty slick. Ran very well on my Windows 7 pc, except for, of course, the start-up time. I hope Prism helps that out. I don’t think though the Olympics people think this app will have very many hits.
1:They are using the regular JavaFX loading logo.
2:The app says powered by JavaFX.??? What in the world is up with that. I quietly wonder if Sun paid them to do this, so someone besides Indaba would use FX.
But, I’d say it is one of the better JavaFX apps I’ve seen. Plus, no signatures to clear!! Maybe Sun will get the idea for their own site.