I was running the test on Mustang with Direct3D pipeline enabled, so I didn't notice the
problem with clipped images and the default pipeline..
Basically, if you're using 5.0, or 6.0 with d3d pipeline disabled, you're using
DirectDraw acceleration. And we have this funny (rather arbitrary) restriction
on the size of 1-bit transparent images that we can accelerate. If
a 1-bit transparent image with DirectColorModel has size larger than
65536 we don't accelerate it. Your sprite.png is 576 * 128 = 73728 so it doesn't
get accelerated. (for those interested, the offending file is WinCachingSurfaceManager.java,
take a look at Mustang's code on
http://mustang.dev.java.net). The restriction has to do with the algorythm
used for calculating a pixel which can be used for masking with DirectDraw's blit operation.
If the image is too large, it takes too long to calculate.
The direct3d and opengl pipelines don't have this restriction.
Workaround is rather simple. Do not convert your image after loading. The restriction above
is only applicable to images with DirectColorModel. Your image is 8-bit, so it will be IndexColorModel, so it will
get accelerated. Anyway, as of 5.0 all images could potentially be accelerated, no need for converting them to a "compatible image"
as in 1.4 days.
So, in your loadImage() method just return 'b'.
Thanks,
Dmitri