Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
Wow, I didn't expect such quick replies! Thanks everyone, your answers are clear and very useful. Thanks for clearing that up. [Message sent by forum member 'fred34' (fred34)] http://forums.java.net/jive/thread.jspa?messageID=330628 === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
The question is where the native rasterisation is used vs where the Java rasteriser is used. We don't use LCD rasterisation of either flavour in such cases. There are also limitations to where Microsoft can or do apply cleartype. I've seen it in the distant past although I can't say for certain if it was the circumstances described/discussed here (transforms): http://blogs.msdn.com/ie/archive/2006/08/31/730887.aspx .. and here (intermediate surfaces) in a posting by a MS WPF engineer : http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/a2f093ca-267c-4af2-b35e-13c01eb4854b/ >there are indeed some challenging technical problems behind enabling ClearType on intermediate surfaces. >Basically, the fundamental problem is that ClearType needs a separate alpha value >for each of the three color channels (RGB or BGR in common LCD configurations), >and typical intermediate surface formats such as ARGB or PARGB have only one. >We were able to get around this issue in some cases for WPF V1, >however this wasn't possible for text rendered onto semi-transparent >intermediate surfaces, which are often used to achieve shadow-like effects. >We have received customer feedback similar to yours on this limitation before, >and we are looking into ways to solve it in future. -phil. jav...@javadesktop.org wrote: The sole exception to this is the glyphs from fonts that are in the jre/lib/fonts directory - ie the fonts that ship with Java. For the Windows JRE this means Lucida Sans Regular. There is another, much bigger exception - painting texts on translucent surfaces (when the current SrcOver composite has alpha < 1.0) uses the bundled rasterizer, which is inferior as far as Segoe UI font (default Vista) is concerned. Kirill [Message sent by forum member 'kirillcool' (kirillcool)] http://forums.java.net/jive/thread.jspa?messageID=330617 === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help". === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
> The sole exception to this is the glyphs from fonts > that are in the > jre/lib/fonts directory - ie the fonts > that ship with Java. For the Windows JRE this means > Lucida Sans Regular. There is another, much bigger exception - painting texts on translucent surfaces (when the current SrcOver composite has alpha < 1.0) uses the bundled rasterizer, which is inferior as far as Segoe UI font (default Vista) is concerned. Kirill [Message sent by forum member 'kirillcool' (kirillcool)] http://forums.java.net/jive/thread.jspa?messageID=330617 === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
2) 6u10 added native font rendering to Java. When is this enabled? Is it always used in all pipelines or just in the D3D rendering? Its implemented in a manner independent of pipelines. It wouldn't have been worthwhile to do it in a way that only worked on some surfaces, or that was sucky slow for them. In case that wasn't 100% clear .. As of 6u10, on Windows only, the native system is used to rasterize LCD glyphs and we store these in our regular internal glyph cache. So its completely independent of the final "blitting" step. So you'll get the natively renderered glyphs regardless of what kind of Java2D surface you're rendering to (whether it is a BufferedImage, a VolatileImage, a BufferStrategy, etc) or what rendering pipeline is currently in use (D3D, OGL, GDI, software, etc). The sole exception to this is the glyphs from fonts that are in the jre/lib/fonts directory - ie the fonts that ship with Java. For the Windows JRE this means Lucida Sans Regular. -phil. === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
Chris Campbell wrote: >No, the DirectDraw pipeline no longer exists as of JDK 6u10. If the D3D pipeline is disabled (or can't be enabled due to driver/hardware >problems) we switch back to using GDI for onscreen rendering, and VolatileImages/BufferStrategy then become backed by system >memory surfaces (analogous to BufferedImages, which implies software rendering). By way of clarification, this is because the old DX7 and D3D 9 APIs are different and you can't use both, so we had no choice. 2) 6u10 added native font rendering to Java. When is this enabled? Is it always used in all pipelines or just in the D3D rendering? I'll leave this one for Phil or Igor. Its implemented in a manner independent of pipelines. It wouldn't have been worthwhile to do it in a way that only worked on some surfaces, or that was sucky slow for them. -phil. === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
Re: [JAVA2D] Exactly which graphics surfaces get HW accelerated?
On Feb 6, 2009, at 5:46 AM, jav...@javadesktop.org wrote: Hi, I'm trying to get straight in my head exactly which graphics rendering surfaces can get hardware accelerated in Java. There seems to be a lot of confusing/half specified information around. Firstly let me state I'm using Java 6u12 on a Windows XP machine. I'm interested in rendering TO surfaces, not copying from, so I'm not too bothered about managed images. As far as I can tell the setup goes like this: 1) Live screen graphics, i.e. Component.getGraphics() : HW accelerated via Direct3D For now I'll just say "yes", but Dmitri could explain the caveats of this when he gets back from vacation. 2) Swing backbuffer, i.e. VolatileImages/BufferStrategies: Also HW accelerated via Direct3D Yes. 3) BufferedImages: Always software rendering via GDI Not quite. Yes, it's always software rendering, but it's using our own software loops, not GDI. If Direct3D is disabled via sun.java2d.d3d=false, then cases 1) and 2) switch back to a DirectDraw accelerated pipeline, as in Java 1.5. No, the DirectDraw pipeline no longer exists as of JDK 6u10. If the D3D pipeline is disabled (or can't be enabled due to driver/hardware problems) we switch back to using GDI for onscreen rendering, and VolatileImages/BufferStrategy then become backed by system memory surfaces (analogous to BufferedImages, which implies software rendering). So my questions are: 1) Is the above information correct, and if not what do I have wrong? You were pretty close :) 2) 6u10 added native font rendering to Java. When is this enabled? Is it always used in all pipelines or just in the D3D rendering? I'll leave this one for Phil or Igor. Thanks, Chris === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".
[JAVA2D] Exactly which graphics surfaces get HW accelerated?
Hi, I'm trying to get straight in my head exactly which graphics rendering surfaces can get hardware accelerated in Java. There seems to be a lot of confusing/half specified information around. Firstly let me state I'm using Java 6u12 on a Windows XP machine. I'm interested in rendering TO surfaces, not copying from, so I'm not too bothered about managed images. As far as I can tell the setup goes like this: 1) Live screen graphics, i.e. Component.getGraphics() : HW accelerated via Direct3D 2) Swing backbuffer, i.e. VolatileImages/BufferStrategies: Also HW accelerated via Direct3D 3) BufferedImages: Always software rendering via GDI If Direct3D is disabled via sun.java2d.d3d=false, then cases 1) and 2) switch back to a DirectDraw accelerated pipeline, as in Java 1.5. So my questions are: 1) Is the above information correct, and if not what do I have wrong? 2) 6u10 added native font rendering to Java. When is this enabled? Is it always used in all pipelines or just in the D3D rendering? I appreciate the attention to answer these! [Message sent by forum member 'fred34' (fred34)] http://forums.java.net/jive/thread.jspa?messageID=330515 === To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to lists...@java.sun.com and include in the body of the message "help".