|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package sun.java2d.marlin; |
|
|
|
import java.security.AccessController; |
|
import static sun.java2d.marlin.MarlinUtils.logInfo; |
|
import sun.security.action.GetPropertyAction; |
|
|
|
public final class MarlinProperties { |
|
|
|
private MarlinProperties() { |
|
// no-op |
|
} |
|
|
|
// marlin system properties |
|
|
|
public static boolean isUseThreadLocal() { |
|
return getBoolean("sun.java2d.renderer.useThreadLocal", "true"); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static int getInitialImageSize() { |
|
return getInteger("sun.java2d.renderer.pixelsize", 2048, 64, 32 * 1024); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static int getSubPixel_Log2_X() { |
|
return getInteger("sun.java2d.renderer.subPixel_log2_X", 3, 1, 8); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static int getSubPixel_Log2_Y() { |
|
return getInteger("sun.java2d.renderer.subPixel_log2_Y", 3, 1, 8); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static int getTileSize_Log2() { |
|
return getInteger("sun.java2d.renderer.tileSize_log2", 5, 3, 8); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static int getBlockSize_Log2() { |
|
return getInteger("sun.java2d.renderer.blockSize_log2", 5, 3, 8); |
|
} |
|
|
|
// RLE / blockFlags settings |
|
|
|
public static boolean isForceRLE() { |
|
return getBoolean("sun.java2d.renderer.forceRLE", "false"); |
|
} |
|
|
|
public static boolean isForceNoRLE() { |
|
return getBoolean("sun.java2d.renderer.forceNoRLE", "false"); |
|
} |
|
|
|
public static boolean isUseTileFlags() { |
|
return getBoolean("sun.java2d.renderer.useTileFlags", "true"); |
|
} |
|
|
|
public static boolean isUseTileFlagsWithHeuristics() { |
|
return isUseTileFlags() |
|
&& getBoolean("sun.java2d.renderer.useTileFlags.useHeuristics", "true"); |
|
} |
|
|
|
public static int getRLEMinWidth() { |
|
return getInteger("sun.java2d.renderer.rleMinWidth", 64, 0, Integer.MAX_VALUE); |
|
} |
|
|
|
// optimisation parameters |
|
|
|
public static boolean isUseSimplifier() { |
|
return getBoolean("sun.java2d.renderer.useSimplifier", "false"); |
|
} |
|
|
|
// debugging parameters |
|
|
|
public static boolean isDoStats() { |
|
return getBoolean("sun.java2d.renderer.doStats", "false"); |
|
} |
|
|
|
public static boolean isDoMonitors() { |
|
return getBoolean("sun.java2d.renderer.doMonitors", "false"); |
|
} |
|
|
|
public static boolean isDoChecks() { |
|
return getBoolean("sun.java2d.renderer.doChecks", "false"); |
|
} |
|
|
|
// logging parameters |
|
|
|
public static boolean isLoggingEnabled() { |
|
return getBoolean("sun.java2d.renderer.log", "false"); |
|
} |
|
|
|
public static boolean isUseLogger() { |
|
return getBoolean("sun.java2d.renderer.useLogger", "false"); |
|
} |
|
|
|
public static boolean isLogCreateContext() { |
|
return getBoolean("sun.java2d.renderer.logCreateContext", "false"); |
|
} |
|
|
|
public static boolean isLogUnsafeMalloc() { |
|
return getBoolean("sun.java2d.renderer.logUnsafeMalloc", "false"); |
|
} |
|
|
|
|
|
static boolean getBoolean(final String key, final String def) { |
|
return Boolean.valueOf(AccessController.doPrivileged( |
|
new GetPropertyAction(key, def))); |
|
} |
|
|
|
static int getInteger(final String key, final int def, |
|
final int min, final int max) |
|
{ |
|
final String property = AccessController.doPrivileged( |
|
new GetPropertyAction(key)); |
|
|
|
int value = def; |
|
if (property != null) { |
|
try { |
|
value = Integer.decode(property); |
|
} catch (NumberFormatException e) { |
|
logInfo("Invalid integer value for " + key + " = " + property); |
|
} |
|
} |
|
|
|
|
|
if ((value < min) || (value > max)) { |
|
logInfo("Invalid value for " + key + " = " + value |
|
+ "; expected value in range[" + min + ", " + max + "] !"); |
|
value = def; |
|
} |
|
return value; |
|
} |
|
|
|
} |