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".

Reply via email to