JavaFX versus AWT/Swing Hardware Acceleration
Stephen F Northover
steve.x.northover at oracle.com
Fri Jan 3 09:09:43 PST 2014
Hi Ryan,
I'll let others describe hardware acceleration in AWT/Swing but in
JavaFX, D3D and ES2 shaders are used to draw. These run directly on the
graphics card and render data that is downloaded there. Because JavaFX
has a scene graph, it has a notion of what has been changed and can
render only a subset of the scene graph nodes.
This is a very high level description of JavaFX but captures the essence
of what is happening. Any other FX committers want to comment?
Steve
On 2014-01-01 1:39 PM, Ryan Cuprak wrote:
> What is the difference between hardware acceleration in JavaFX versus Swing/AWT? I heard a while back someone claim that Swing/AWT could never fully leverage hardware acceleration. However there are the usual mix of -D parameters (sun.java2.opengl/sun.java2d.d3d, etc.) for Swing/AWT. So I am just wondering how JavaFX’s acceleration differs from the hardware acceleration in Swing. When I was giving a talk at a JUG meeting someone called me out on the hardware acceleration bit and I realized I didn’t fully understand the differences between the two.
>
> I understand that JavaFX has a scene graph and Swing doesn’t etc. So I am assuming that the scene graph operations are optimized on the GPU whereas if you were trying to replicate a scene graph in Swing you would obviously be doing all the work on the CPU. So Swing’s hardware acceleration is more about buffers?
>
> I did come across this article:
> https://weblogs.java.net/blog/opinali/archive/2010/05/03/first-long-look-javafx-13-and-prism
> Specifically this line caught my attention "Prism finally renders effects with full hardware acceleration and without the extra buffer copies that spoil effects on the Swing toolkit.”
> This article is a dated - brings up a second question about hardware acceleration with a hybrid Swing/JavaFX application - what happens?
>
>
> Thanks,
> -Ryan
More information about the openjfx-dev
mailing list