[EMAIL PROTECTED] wrote:
I had to add a bunch of other jar files to the
class path. Side note: I find it amusing that
substance-all.zip distribution doesn't seem to
include substance.jar
What other jars besides substance.jar did you have to add? The distribution
file contains the build script, the sources and the documentation. This is by
design and i don't really hear any complaints about this.
OK, it must be only be (well, and at least one other Java2D
team member) who got confused =)
Also, isn't there some kind of way to reference the
jars you need from a single jar so you don't need to
specify them all in the class path?
What jars did you have to add? substance.jar should be the only one required
for an application that uses only core Swing components. If you're using
SwingX, then you'd have to add substance-swingx.jar.
With only swingmark.jar in the class path:
export CLASSPATH=".;c:/temp/subst50/lib/substance.jar"
java -Dswing.defaultlaf=org.jvnet.substance.skin.SubstanceAutumnLookAndFeel
SwingMark
I get the following exception:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError:
org/jdesktop/beans/AbstractBean
at java.lang.ClassLoader.defineClass1(Native Method)
...
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at
org.jvnet.substance.SubstanceImageCreator.getColorSchemeImage(SubstanceImageCreator.java:2846)
at
org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.getColorizedTile(ImageWrapperDecorationPainter.java:326)
And then a bunch of these:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError:
org/jvnet/substance/utils/ColorSchemeFilter
at
org.jvnet.substance.SubstanceImageCreator.getColorSchemeImage(SubstanceImageCreator.java:2846)
at
org.jvnet.substance.painter.decoration.ImageWrapperDecorationPainter.getColorizedTile(ImageWrapperDecorationPainter.java:326)
It works if I add lib/swingx.jar jar to the class path.
I've also hacked the benchmark to check for null
menu and skip it.
I think that it is a correct decision. Substance adds a JPanel to the menu bar,
and this panel will show the menu search widget. The new default setting in 5.0
is to have the panel, but not show the widget.
OK.
The fact that Substance's score doesn't change a
whole lot no matter if the d3d pipeline is enabled or not
suggests that the rendering may not be the bottleneck.
At this stage i'm quite reluctant to use VolatileImages instead of BufferedImages. I've already mentioned (in this thread) that even moving one of the caches to use VolatileImages adds 5% to the benchmark time. And Nimbus had actually worse performance on the d3d pipeline (it was twice faster than Substance on software-rendering only, but only about 20% faster on d3d pipeline).
That's fine. The Windows L&F doesn't use volatile images
and is still quite fast. It does cache its rendering in
BufferedImages (which are rendered to by GDI).
I ran the benchmark with Substance L&F with trace=log
and it looks like most operations are accelerated
when the pipeline is enabled.
This again points out that the bottleneck
at least in this benchmark is not rendering since
the score doesn't change with the pipeline change.
Your benchmark (as you described it) seems to be testing
only the rendering part (you call paint to an offscreen surface)
and since it is rather short any minute variations show
huge percentage differences - these differences may
actually not be noticeable to the end user.
And this is fine if all you want to measure is rendering
performance, but from our benchmark it looks like
you need to look at the whole stack.
One thing however I've noticed is that scrolling
(text area, table, tree) with Substance seems to be much slower
(and the benchmark does lots of that).
I will look into this issue. Would be great, of course, to have access to your
benchmark source code, but barring that - what exactly does it do? Is it driven
by the Robot class (clicking in the scroll bar), is it scrolling the tables /
trees programmatically with JScrollPane APIs, and what does it time? Is the
main frame rendered to an offscreen image, and if not, how do you account for
coalesced repaints? Or perhaps it's just counting how much time it takes to
scroll the table.
I will restart the discussion about open sourcing it,
or at least giving you access if you'd like that.
I'm not quite sure why we can't open it, it looks like
it was developed by our SQE and performance teams.
There were some talks about creating a new benchmark -
this one isn't perfect by any means.
The particular scrolling test seems to be rather simple -
it just calls table.scrollRectToVisible() on a large table
to simulate scrolling.
Anther test that seems to be slow is a test which adds a bunch
of lines to a text area. The tree test does something similar -
creates a large tree, selects different nodes, that kind of thing.
The test times how long does it take to complete a sequence.
The sequence may be - adding stuff to the tree, selecting
nodes, scrolling etc. Whatever rendering happens as this is being
done is included in the test - the frame is visible on the
screen all the time.
Thanks,
Dmitri
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".