<AWT Dev> [8] Review request for 8011059 [macosx] Make JDK demos look perfect on retina displays
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Fri Oct 25 06:18:47 PDT 2013
Could you review the updated fix:
http://cr.openjdk.java.net/~alexsch/8011059/webrev.02/
- Scaled image width and height are transformed according to the
AffineTransform type.
- ToolkitImage subclass is used to hold @2x image instance.
Thanks,
Alexandr.
On 10/23/2013 7:24 PM, Alexander Scherbatiy wrote:
>
> Could you review the updated fix:
> http://cr.openjdk.java.net/~alexsch/8011059/webrev.01/
>
> The JCK failures has been resolved:
> - Some tests tries to draw an image with Integer.MAX_VALUE width
> or height. Passing large values to image.getScaledImage(width, height,
> hints).
> leads that an Image filter is not able to create necessary
> arrays. The fix uses the original image if width or height are equal
> to Integer.MAX_VALUE.
> - Using Image.SCALE_DEFAULT hint for the getScaledImage(width,
> height, hints) method to get the high resolution image interferes with
> JCK tests that expect that the scaled image by certain
> algorithm is returned. This is fixed by invoking the
> super.getScaledImage(width, height, hints)
> method in ToolkitImage in case if a high resolution image is
> not set.
>
> Thanks,
> Alexandr.
>
>
>
> On 10/22/2013 1:31 PM, Alexander Scherbatiy wrote:
>>
>> 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 image at 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.
>>
>
More information about the macosx-port-dev
mailing list