Posted by fred34
on February 6, 2009 at 5:46 AM PST
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!