Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-aarch32-jdk8u
Path: blob/jdk8u272-b10-aarch32-20201026/jdk/test/java/awt/GradientPaint/GradientTransformTest.java
48795 views
1
/*
2
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
import java.awt.*;
25
import java.awt.MultipleGradientPaint.*;
26
import java.awt.geom.*;
27
import java.awt.image.*;
28
29
/**
30
* @test
31
* @bug 8023483
32
* @summary tests if the transform-parameter is applied correctly when creating
33
* a gradient.
34
* @author ceisserer
35
*/
36
public class GradientTransformTest extends Frame {
37
BufferedImage srcImg;
38
Image dstImg;
39
40
public GradientTransformTest() {
41
srcImg = createSrcImage();
42
dstImg = getGraphicsConfiguration().createCompatibleVolatileImage(20,
43
20);
44
}
45
46
protected void renderToVI(BufferedImage src, Image dst) {
47
Graphics2D g = (Graphics2D) dst.getGraphics();
48
49
g.setColor(Color.WHITE);
50
g.fillRect(0, 0, dst.getWidth(null), dst.getHeight(null));
51
52
AffineTransform at = new AffineTransform();
53
at.translate(-100, 0);
54
55
g.setPaint(new LinearGradientPaint(new Point2D.Float(100, 0),
56
new Point2D.Float(120, 0), new float[] { 0.0f, 0.75f, 1.0f },
57
new Color[] { Color.red, Color.green, Color.blue },
58
CycleMethod.NO_CYCLE, ColorSpaceType.SRGB, at));
59
60
g.fillRect(-10, -10, 30, 30);
61
}
62
63
public void paint(Graphics g1) {
64
Graphics2D g = (Graphics2D) g1;
65
renderToVI(createSrcImage(), dstImg);
66
g.drawImage(dstImg, 20, 20, null);
67
}
68
69
public void showFrame() {
70
setSize(500, 500);
71
setVisible(true);
72
}
73
74
public void test() {
75
renderToVI(createSrcImage(), dstImg);
76
77
BufferedImage validationImg = new BufferedImage(20, 20,
78
BufferedImage.TYPE_INT_RGB);
79
Graphics2D valG = (Graphics2D) validationImg.getGraphics();
80
valG.drawImage(dstImg, 0, 0, null);
81
82
// Loop over all pixel, and count the different pixel values
83
// encountered.
84
boolean gradientTranslated = false;
85
for (int x = 0; x < validationImg.getWidth() && !gradientTranslated; x++) {
86
for (int y = 0; y < validationImg.getHeight()
87
&& !gradientTranslated; y++) {
88
int rgb = validationImg.getRGB(x, y);
89
if (rgb != -65279) {
90
gradientTranslated = true;
91
}
92
}
93
}
94
95
if (gradientTranslated) {
96
System.out.println("Passed!");
97
} else {
98
throw new RuntimeException("Test FAILED!");
99
}
100
}
101
102
protected BufferedImage createSrcImage() {
103
BufferedImage bi = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
104
Graphics2D g = (Graphics2D) bi.getGraphics();
105
g.setColor(Color.YELLOW);
106
g.fillRect(0, 0, 10, 10);
107
g.setColor(Color.black);
108
g.drawLine(0, 0, 10, 10);
109
return bi;
110
}
111
112
public static void main(String[] args) throws Exception {
113
boolean show = (args.length > 0 && "-show".equals(args[0]));
114
final GradientTransformTest t = new GradientTransformTest();
115
116
if (show) {
117
EventQueue.invokeAndWait(new Runnable() {
118
public void run() {
119
t.showFrame();
120
}
121
});
122
} else {
123
t.test();
124
}
125
}
126
}
127
128