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