Java2d image transformation performance

Hi there!

i need to draw several transformed images (scaled/rotated) on-the-fly and render them to the screen (using BufferStrategy in the rendering loop).
Works perfect and quite fast when the transformation can be cached to a VolatileImage but the framerate drops dramatically if it couldn’t.
Any ideas how to speed that up? I only need 2d graphics and don’t want to switch to OpenGL or are there any useful OpenGL/2d toolkits around?

I’m using Java 1.5 on Mac OS X/x86.

Many thanks.
bye philipp

For Java2D, the OGL pipeline is the only option for on the fly rotation and scaling whether you’re on Mac, windows, linux or anything I believe.

Keith

EDIT: But software mode on on fast computers is often just as fast.

I agree.
Java 5 doesn’t seem to use hardware acceleration/Open GL under Mac OS X. The rendering performance doesn’t change when I set -Dsun.java2d.opengl=true|false.

The current beta of Mustang for Mac OS X however features an option for using Quartz to render Java2d stuff.
-Dapple.awt.graphics.UseQuartz=true

Rotating/scaling seems to work faster, however simple copy operations are slower. In the end both ways do not work out for me and I’ll have to switch to OpenGL. :’(

Java 1.4 and Java 5 on the Mac use Quartz by default. Apple is changing things to become more compatible with Sun’s rendering in Java 6… that “UseQuartz=true” thing is to get the OLD behaviour back.

Java Graphics acceleration on the Mac has been lacking considerably since Java 1.3. The same time they switched from the Carbon framework to the Cocoa framework for the AWT implementation in the Java VM…

I presume that Apple is trying to use Sun’s rendering pipeline in order to share the same OpenGL pipeline code at some point.