[OpenJDK 2D-Dev] Provide a way to make MultiResolutionImage screen compatible
hs at tagtraum.com
Thu Mar 26 12:49:13 UTC 2015
I'm in the process of moving some custom code to take advantage of the fairly new MultiResolutionImage capabilities.
Loading multi resolution stuff works nicely, but I fear drawing is a bit of a problem.
In my old mechanism, I would
- load images using the toolkit
- create a screen-compatible BufferedImage via graphicsConfiguration.createCompatibleImage(...)
- draw the image into said buffer
- and then paint the screen-compatible buffer when needed (typically in some Icon implementation)
The assumption here is that drawing the screen-compatible image is much faster than the toolkit image (which isn't necessarily screen-compatible, usually TYPE_INT_ARGB instead of TYPE_INT_ARGB_PRE).
AFAIK, there are no published java.* APIs for MultiResolutionImages.
So if I understand this correctly, there is currently no officially supported, high performance way to draw MultiResolutionImages.
Therefore, in the spirit of https://bugs.openjdk.java.net/browse/JDK-8059943, I'd like to suggest, to either move sun.awt.image.MultiResolutionImage to some java.* package, so that one can write an implementation that is fast.
Or provide a standard way to ensure that Toolkit-loaded images are screen-compatible. Perhaps a little tweak in sun.awt.image.ImageRepresentation or the code that calls it is all that's needed (i.e. a change of the default ColorModel in ToolkitImage). Or is that not possible because of compatibility reasons?
Does that sound reasonable? Am I missing something?
More information about the 2d-dev