Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/sun/java2d/marlin/MarlinProperties.java
38918 views
1
/*
2
* Copyright (c) 2007, 2015, 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. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle in the LICENSE file that accompanied this code.
10
*
11
* This code is distributed in the hope that it will be useful, but WITHOUT
12
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
* version 2 for more details (a copy is included in the LICENSE file that
15
* accompanied this code).
16
*
17
* You should have received a copy of the GNU General Public License version
18
* 2 along with this work; if not, write to the Free Software Foundation,
19
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20
*
21
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
26
package sun.java2d.marlin;
27
28
import java.security.AccessController;
29
import static sun.java2d.marlin.MarlinUtils.logInfo;
30
import sun.security.action.GetPropertyAction;
31
32
public final class MarlinProperties {
33
34
private MarlinProperties() {
35
// no-op
36
}
37
38
// marlin system properties
39
40
public static boolean isUseThreadLocal() {
41
return getBoolean("sun.java2d.renderer.useThreadLocal", "true");
42
}
43
44
/**
45
* Return the initial pixel size used to define initial arrays
46
* (tile AA chunk, alpha line, buckets)
47
*
48
* @return 64 < initial pixel size < 32768 (2048 by default)
49
*/
50
public static int getInitialImageSize() {
51
return getInteger("sun.java2d.renderer.pixelsize", 2048, 64, 32 * 1024);
52
}
53
54
/**
55
* Return the log(2) corresponding to subpixel on x-axis (
56
*
57
* @return 1 (2 subpixels) < initial pixel size < 4 (256 subpixels)
58
* (3 by default ie 8 subpixels)
59
*/
60
public static int getSubPixel_Log2_X() {
61
return getInteger("sun.java2d.renderer.subPixel_log2_X", 3, 1, 8);
62
}
63
64
/**
65
* Return the log(2) corresponding to subpixel on y-axis (
66
*
67
* @return 1 (2 subpixels) < initial pixel size < 8 (256 subpixels)
68
* (3 by default ie 8 subpixels)
69
*/
70
public static int getSubPixel_Log2_Y() {
71
return getInteger("sun.java2d.renderer.subPixel_log2_Y", 3, 1, 8);
72
}
73
74
/**
75
* Return the log(2) corresponding to the square tile size in pixels
76
*
77
* @return 3 (8x8 pixels) < tile size < 8 (256x256 pixels)
78
* (5 by default ie 32x32 pixels)
79
*/
80
public static int getTileSize_Log2() {
81
return getInteger("sun.java2d.renderer.tileSize_log2", 5, 3, 8);
82
}
83
84
/**
85
* Return the log(2) corresponding to the block size in pixels
86
*
87
* @return 3 (8 pixels) < block size < 8 (256 pixels)
88
* (5 by default ie 32 pixels)
89
*/
90
public static int getBlockSize_Log2() {
91
return getInteger("sun.java2d.renderer.blockSize_log2", 5, 3, 8);
92
}
93
94
// RLE / blockFlags settings
95
96
public static boolean isForceRLE() {
97
return getBoolean("sun.java2d.renderer.forceRLE", "false");
98
}
99
100
public static boolean isForceNoRLE() {
101
return getBoolean("sun.java2d.renderer.forceNoRLE", "false");
102
}
103
104
public static boolean isUseTileFlags() {
105
return getBoolean("sun.java2d.renderer.useTileFlags", "true");
106
}
107
108
public static boolean isUseTileFlagsWithHeuristics() {
109
return isUseTileFlags()
110
&& getBoolean("sun.java2d.renderer.useTileFlags.useHeuristics", "true");
111
}
112
113
public static int getRLEMinWidth() {
114
return getInteger("sun.java2d.renderer.rleMinWidth", 64, 0, Integer.MAX_VALUE);
115
}
116
117
// optimisation parameters
118
119
public static boolean isUseSimplifier() {
120
return getBoolean("sun.java2d.renderer.useSimplifier", "false");
121
}
122
123
// debugging parameters
124
125
public static boolean isDoStats() {
126
return getBoolean("sun.java2d.renderer.doStats", "false");
127
}
128
129
public static boolean isDoMonitors() {
130
return getBoolean("sun.java2d.renderer.doMonitors", "false");
131
}
132
133
public static boolean isDoChecks() {
134
return getBoolean("sun.java2d.renderer.doChecks", "false");
135
}
136
137
// logging parameters
138
139
public static boolean isLoggingEnabled() {
140
return getBoolean("sun.java2d.renderer.log", "false");
141
}
142
143
public static boolean isUseLogger() {
144
return getBoolean("sun.java2d.renderer.useLogger", "false");
145
}
146
147
public static boolean isLogCreateContext() {
148
return getBoolean("sun.java2d.renderer.logCreateContext", "false");
149
}
150
151
public static boolean isLogUnsafeMalloc() {
152
return getBoolean("sun.java2d.renderer.logUnsafeMalloc", "false");
153
}
154
155
// system property utilities
156
static boolean getBoolean(final String key, final String def) {
157
return Boolean.valueOf(AccessController.doPrivileged(
158
new GetPropertyAction(key, def)));
159
}
160
161
static int getInteger(final String key, final int def,
162
final int min, final int max)
163
{
164
final String property = AccessController.doPrivileged(
165
new GetPropertyAction(key));
166
167
int value = def;
168
if (property != null) {
169
try {
170
value = Integer.decode(property);
171
} catch (NumberFormatException e) {
172
logInfo("Invalid integer value for " + key + " = " + property);
173
}
174
}
175
176
// check for invalid values
177
if ((value < min) || (value > max)) {
178
logInfo("Invalid value for " + key + " = " + value
179
+ "; expected value in range[" + min + ", " + max + "] !");
180
value = def;
181
}
182
return value;
183
}
184
185
}
186
187