Looks fine.
On 31.07.2020 11:08, Alexander Zuev wrote:
I slightly fixed the test and added it to the fix. New webrev is here:
http://cr.openjdk.java.net/~kizune/8212226/webrev.03/
On 7/29/2020 1:11 AM, Sergey Bylokhov wrote:
On 27.07.2020 23:43, Alexander Zuev wrote:
As for the test i have a manual test that i use to reproduce the situation
but i am not sure i can make
the automated test case - the configuration required is quite unique. I tried
to play with the setting
that manages the magnification factor but changing it does not trigger the bug.
I guess something like this should work:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BaseMultiResolutionImage;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import static java.awt.image.BufferedImage.TYPE_INT_RGB;
public final class SkipRequestedImageVariant {
public static void main(String[] args) {
var mri = new BaseMultiResolutionImage(1,
generateFakeImage(),
generateImage(200, Color.GREEN),
generateFakeImage());
BufferedImage target = new BufferedImage(500, 500, TYPE_INT_RGB);
Graphics2D g2d = target.createGraphics();
g2d.drawImage(mri, 0, 0, 500, 500, null);
g2d.dispose();
if (Color.GREEN.getRGB() != target.getRGB(1, 1)) {
throw new RuntimeException("Wrong resolution variant was used");
}
}
private static BufferedImage generateImage(int size, Color c) {
BufferedImage img = new BufferedImage(size, size, TYPE_INT_RGB);
Graphics g = img.createGraphics();
g.setColor(c);
g.fillRect(0, 0, size, size);
g.dispose();
return img;
}
private static Image generateFakeImage() {
return new Image(){
@Override
public int getWidth(ImageObserver observer) {
return -1;
}
@Override
public int getHeight(ImageObserver observer) {
return -1;
}
@Override
public ImageProducer getSource() {
return null;
}
@Override
public Graphics getGraphics() {
return null;
}
@Override
public Object getProperty(String name, ImageObserver observer) {
return null;
}
};
}
}
--
Best regards, Sergey.