Hello,

Could you review the fix:

  bug: https://bugs.openjdk.java.net/browse/JDK-8011059
  webrev: http://cr.openjdk.java.net/~alexsch/8011059/webrev.00

  The IMAGE_SCALING rendering hint is added to the RenderingHints class.
Enabling the image scaling rendering hint forces the SunGraphics2D to use getScaledInstance(width, height, hints) method
  from Image class with SCALE_DEFAULT hint.

By default the image scaling rendering hint is enabled on HiDPI display and disabled for standard displays.

User can override the getScaledInstance(width, height, hints) method and return necessary high resolution image
  according to the given image width and height.

  For example:
  ---------------------
        final Image highResolutionImage =
new BufferedImage(2 * WIDTH, 2 * HEIGHT, BufferedImage.TYPE_INT_RGB); Image image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB) {

            @Override
public Image getScaledInstance(int width, int height, int hints) {
                if ((hints & Image.SCALE_DEFAULT) != 0) {
                    return (width <= WIDTH && height <= HEIGHT)
                            ? this : highResolutionImage;
                }
                return super.getScaledInstance(width, height, hints);
            }
        };
  ---------------------

The LWCToolkit and ToolkitImage classes are patched to automatically get provided im...@2x.ext images on MacOSX.

There are no significant changes in the Java2D demo to make it look perfect on Retina displays. It needs only to put necessary images with the @2x postfix and they will be automatically drawn.

Thanks,
Alexandr.

Reply via email to