Hi, One last thing about Marlin renderer: it is available since OpenJDK9 and you can tune its subpixels to let say 1x1 ie 1 pixel: -Dsun.java2d.renderer.subPixel_log2_X=0 -Dsun.java2d.renderer.subPixel_log2_Y=0
I ran again the 'slow' test on linux ~ 0.5s: - 4x faster than Marlin AA defaults - 6.5x faster than AWT C code (HiDPI) - still 16x slower than accelerated pipeline (xrender) OpenJDK Runtime Environment 18.9 (build 11+28) JAVA_OPTS: -DuseAA=true -Dsun.java2d.uiScale=2.5 -Dsun.java2d.renderer.subPixel_log2_X=0 -Dsun.java2d.renderer.subPixel_log2_Y=0 Java: 11 11+28 oct. 11, 2018 2:36:12 PM polylinetest.Canvas paintComponent INFO: Paint Time: 0,747s oct. 11, 2018 2:36:12 PM polylinetest.Canvas paintComponent INFO: Paint Time: 0,553s oct. 11, 2018 2:36:13 PM polylinetest.Canvas paintComponent INFO: Paint Time: 0,559s oct. 11, 2018 2:36:13 PM polylinetest.Canvas paintComponent INFO: Paint Time: 0,55s Of course, you should enable antialiasing: @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D graphics = (Graphics2D) g; + if (USE_AA) { + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + } PS: In OpenJFX, noAA rendering is using a specific Marlin renderer instance (1x1 sampling) so it could be applied to Java2D noAA too. Cheers, Laurent Le jeu. 11 oct. 2018 à 13:27, Peter Hull <peterhul...@gmail.com> a écrit : > Hi Laurent, > Thanks for the detailed explanation. I quickly checked on the older > Windows system and the Java 11 window was the same size as the Java 8 > one, implying no scaling was going on (I guess just because it has a > lower resolution monitor) - so that confirms your hypothesis. > > If I use -Dsun.java2d.uiScale=1.0 that's OK for my laptop, it doesn't > matter if the window is a bit small. However I believe some higher end > systems have much higher scaling factors (2x, 3x?). Is there a general > way to specify a 1px line regardless of scaling, because in my case I > don't mind too much if it's a 'hair-line'? > > By the way, my actual application doesn't have 65000 lines but it > draws 3 graphs with about 3000 points, which makes it noticeably slow > when resizing the Window. I suppose I should look into cutting down > the number of points somehow... > > Pete > -- -- Laurent Bourgès