jdk/src/java.desktop/share/classes/sun/awt/image/MultiResolutionToolkitImage.java
equal
deleted
inserted
replaced
27 import java.awt.Image; |
27 import java.awt.Image; |
28 import java.awt.image.ImageObserver; |
28 import java.awt.image.ImageObserver; |
29 import java.awt.image.MultiResolutionImage; |
29 import java.awt.image.MultiResolutionImage; |
30 import java.util.Arrays; |
30 import java.util.Arrays; |
31 import java.util.List; |
31 import java.util.List; |
|
32 import java.util.function.Function; |
32 import sun.awt.SoftCache; |
33 import sun.awt.SoftCache; |
33 |
34 |
34 public class MultiResolutionToolkitImage extends ToolkitImage implements MultiResolutionImage { |
35 public class MultiResolutionToolkitImage extends ToolkitImage implements MultiResolutionImage { |
35 |
36 |
36 Image resolutionVariant; |
37 Image resolutionVariant; |
43 @Override |
44 @Override |
44 public Image getResolutionVariant(double destWidth, double destHeight) { |
45 public Image getResolutionVariant(double destWidth, double destHeight) { |
45 checkSize(destWidth, destHeight); |
46 checkSize(destWidth, destHeight); |
46 return ((destWidth <= getWidth() && destHeight <= getHeight())) |
47 return ((destWidth <= getWidth() && destHeight <= getHeight())) |
47 ? this : resolutionVariant; |
48 ? this : resolutionVariant; |
|
49 } |
|
50 |
|
51 public static Image map(MultiResolutionToolkitImage mrImage, |
|
52 Function<Image, Image> mapper) { |
|
53 Image baseImage = mapper.apply(mrImage); |
|
54 Image rvImage = mapper.apply(mrImage.resolutionVariant); |
|
55 return new MultiResolutionToolkitImage(baseImage, rvImage); |
48 } |
56 } |
49 |
57 |
50 private static void checkSize(double width, double height) { |
58 private static void checkSize(double width, double height) { |
51 if (width <= 0 || height <= 0) { |
59 if (width <= 0 || height <= 0) { |
52 throw new IllegalArgumentException(String.format( |
60 throw new IllegalArgumentException(String.format( |