JDK-8092008 : Minor tweaks to FX/Swing painting
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: swing
  • Affected Version: 7u6
  • Priority: P3
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2012-06-15
  • Updated: 2018-09-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Description
FX/Swing interoperability performance is now a critical issue. There are several ideas how it can be improved, for example, merge AWT and FX event dispatch threads or share graphics resources between Java2D and Prism. However, any significant changes like this require a lot of investigation and can only be implemented in JDK 8 / JavaFX 3.0

At the same time, there are several "minor" issues with the current JFXPanel implementation, which can be improved in 2.2:

1. BufferedImage tweaks (format, "manageable" status, etc.)

2. Avoid extra pixels copy from EmbeddedScene to JFXPanel

3. Doesn't call to EmbeddedScene from paintComponent(), if FX scene has not changed

4. Respect JFXPanel dirty regions, so we don't repaint the whole scene every time

Comments
Seems too late for Lombard.
04-10-2013

Should this issue be moved to Lombard at this point?
12-07-2012

My understanding is that #2 refers to copying from EmbeddedScene to JFXpanel, which is part of EmbeddedScene.getPixels() and runs in the renderer thread. What I point to is copying from D3DSurface to EmbeddedScene, which is part of D3DResourceFactory_nReadPixels and runs in the application thread.
25-06-2012

Yes, this is #2 in the list above.
25-06-2012

D3DResourceFactory_nReadPixels reads pixels from the device and then copies them to the provided array. Is it possible to avoid that extra copying and read pixels into the target array directly?
22-06-2012

#1: java.awt.Image.setAccelerationPriority(0)
19-06-2012