On 2/14/2014 3:16 PM, Sergey Bylokhov wrote:
On 2/14/14 2:32 PM, Alexander Scherbatiy wrote:
On 2/14/2014 2:12 AM, Sergey Bylokhov wrote:
Hi, Alexander.
Did you check option of loading of the picture on demand?Since most
of the time x2 version is useless on non hdpi and vice versa.
Yes but in this particular case menu items will be painted in one
particular scale only.
I have created the separate issue on it: 8035069 [macosx] Loading
resolution variants by demand
https://bugs.openjdk.java.net/browse/JDK-8035069
Thanks,
Alexandr.
It's not quite true.
MacOSX choses a necessary image representation based on the
current transformations. Setting current transformation to scale 2x
leads
that the high resolution image is drawn even on non HiDPI display.
There is a similar mechanism for the MultiResolution toolkit
images. The base image is drawn in case if the high-resolution image
has not been loaded yet.
It has an issue that if there is no one more repaint event the
image with high resolution is not shown.
I would suggest to move this topic to a separate issue.
Thanks,
Alexandr.
On 13.02.2014 18:04, Alexander Scherbatiy wrote:
Hello,
Could you review the fix:
bug: https://bugs.openjdk.java.net/browse/JDK-8031573
webrev: http://cr.openjdk.java.net/~alexsch/8031573/webrev.00
The NSMenu* system icons are templates and do not have image
representations.
The fix retrieves images with original and double size from an
NSImage and put them to a MultiResolution image.
The fix also adds sun.awt.image.MultiResolutionBufferedImage
class which can be used uniformly for a Multiresolution image
creation.
The fix is independent of the fix 8033534 Get MultiResolution
image from native system
http://mail.openjdk.java.net/pipermail/awt-dev/2014-February/006991.html
because CImage.createImageFromName(imageName) never returns a
MultiResolution image for templates.
But the fix 8033534 can be updated to use the
MultiResolutionBufferedImage.
Thanks,
Alexandr.