< prev index next >
modules/javafx.graphics/src/main/java/com/sun/marlin/MarlinProperties.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 52,90 ****
getInteger("prism.marlin.edges", 4096, 64, 64 * 1024),
64);
}
/**
! * Return the initial pixel size used to define initial arrays
! * (tile AA chunk, alpha line, buckets)
*
! * @return 64 < initial pixel size < 32768 (2048 by default)
*/
! public static int getInitialImageSize() {
return align(
! getInteger("prism.marlin.pixelsize", 2048, 64, 32 * 1024),
64);
}
/**
! * Return the log(2) corresponding to subpixel on x-axis (
*
* @return 0 (1 subpixels) < initial pixel size < 8 (256 subpixels)
! * (3 by default ie 8 subpixels)
*/
public static int getSubPixel_Log2_X() {
! return getInteger("prism.marlin.subPixel_log2_X", 3, 0, 8);
}
/**
! * Return the log(2) corresponding to subpixel on y-axis (
*
* @return 0 (1 subpixels) < initial pixel size < 8 (256 subpixels)
! * (3 by default ie 8 subpixels)
*/
public static int getSubPixel_Log2_Y() {
! return getInteger("prism.marlin.subPixel_log2_Y", 3, 0, 8);
}
/**
* Return the log(2) corresponding to the block size in pixels
*
--- 52,123 ----
getInteger("prism.marlin.edges", 4096, 64, 64 * 1024),
64);
}
/**
! * Return the initial pixel width used to define initial arrays
! * (tile AA chunk, alpha line)
*
! * @return 64 < initial pixel size < 32768 (4096 by default)
*/
! public static int getInitialPixelWidth() {
return align(
! getInteger("prism.marlin.pixelWidth", 4096, 64, 32 * 1024),
64);
}
/**
! * Return the initial pixel height used to define initial arrays
! * (buckets)
! *
! * @return 64 < initial pixel size < 32768 (2176 by default)
! */
! public static int getInitialPixelHeight() {
! return align(
! getInteger("prism.marlin.pixelHeight", 2176, 64, 32 * 1024),
! 64);
! }
!
! /**
! * Return true if the profile is 'quality' (default) over 'speed'
! *
! * @return true if the profile is 'quality' (default), false otherwise
! */
! public static boolean isProfileQuality() {
! final String key = "prism.marlin.profile";
! final String profile = getString(key, "quality");
! if ("quality".equals(profile)) {
! return true;
! }
! if ("speed".equals(profile)) {
! return false;
! }
! logInfo("Invalid value for " + key + " = " + profile
! + "; expect value in [quality, speed] !");
! return true;
! }
!
! /**
! * Return the log(2) corresponding to subpixel on x-axis
*
* @return 0 (1 subpixels) < initial pixel size < 8 (256 subpixels)
! * (8 by default ie 256 subpixels)
*/
public static int getSubPixel_Log2_X() {
! return getInteger("prism.marlin.subPixel_log2_X", 8, 0, 8);
}
/**
! * Return the log(2) corresponding to subpixel on y-axis
*
* @return 0 (1 subpixels) < initial pixel size < 8 (256 subpixels)
! * (3 by default ie 8 subpixels for the quality profile)
! * (2 by default ie 4 subpixels for the speed profile)
*/
public static int getSubPixel_Log2_Y() {
! final int def = isProfileQuality() ? 3 : 2;
! return getInteger("prism.marlin.subPixel_log2_Y", def, 0, 8);
}
/**
* Return the log(2) corresponding to the block size in pixels
*
*** 122,131 ****
--- 155,176 ----
public static boolean isUseSimplifier() {
return getBoolean("prism.marlin.useSimplifier", "false");
}
+ public static boolean isUsePathSimplifier() {
+ return getBoolean("prism.marlin.usePathSimplifier", "false");
+ }
+
+ public static float getPathSimplifierPixelTolerance() {
+ // default: MIN_PEN_SIZE or less ?
+ return getFloat("prism.marlin.pathSimplifier.pixTol",
+ (1.0f / MarlinConst.MIN_SUBPIXELS),
+ 1e-3f,
+ 10.0f);
+ }
+
public static boolean isDoClip() {
return getBoolean("prism.marlin.clip", "true");
}
public static boolean isDoClipRuntimeFlag() {
*** 134,143 ****
--- 179,196 ----
public static boolean isDoClipAtRuntime() {
return getBoolean("prism.marlin.clip.runtime", "true");
}
+ public static boolean isDoClipSubdivider() {
+ return getBoolean("prism.marlin.clip.subdivider", "true");
+ }
+
+ public static float getSubdividerMinLength() {
+ return getFloat("prism.marlin.clip.subdivider.minLength", 100.0f, Float.NEGATIVE_INFINITY, Float.POSITIVE_INFINITY);
+ }
+
// debugging parameters
public static boolean isDoStats() {
return getBoolean("prism.marlin.doStats", "false");
}
*** 167,190 ****
public static boolean isLogUnsafeMalloc() {
return getBoolean("prism.marlin.logUnsafeMalloc", "false");
}
// quality settings
public static float getCubicDecD2() {
! return getFloat("prism.marlin.cubic_dec_d2", 1.0f, 0.01f, 4.0f);
}
public static float getCubicIncD1() {
! return getFloat("prism.marlin.cubic_inc_d1", 0.4f, 0.01f, 2.0f);
}
public static float getQuadDecD2() {
! return getFloat("prism.marlin.quad_dec_d2", 0.5f, 0.01f, 4.0f);
}
// system property utilities
static boolean getBoolean(final String key, final String def) {
return Boolean.valueOf(AccessController.doPrivileged(
(PrivilegedAction<String>) () -> {
String value = System.getProperty(key);
return (value == null) ? def : value;
--- 220,257 ----
public static boolean isLogUnsafeMalloc() {
return getBoolean("prism.marlin.logUnsafeMalloc", "false");
}
// quality settings
+ public static float getCurveLengthError() {
+ return getFloat("prism.marlin.curve_len_err", 0.01f, 1e-6f, 1.0f);
+ }
public static float getCubicDecD2() {
! final float def = isProfileQuality() ? 1.0f : 2.5f;
! return getFloat("prism.marlin.cubic_dec_d2", def, 1e-5f, 4.0f);
}
public static float getCubicIncD1() {
! final float def = isProfileQuality() ? 0.2f : 0.5f;
! return getFloat("prism.marlin.cubic_inc_d1", def, 1e-6f, 1.0f);
}
public static float getQuadDecD2() {
! final float def = isProfileQuality() ? 0.5f : 1.0f;
! return getFloat("prism.marlin.quad_dec_d2", def, 1e-5f, 4.0f);
}
// system property utilities
+ static String getString(final String key, final String def) {
+ return AccessController.doPrivileged(
+ (PrivilegedAction<String>) () -> {
+ String value = System.getProperty(key);
+ return (value == null) ? def : value;
+ });
+ }
+
static boolean getBoolean(final String key, final String def) {
return Boolean.valueOf(AccessController.doPrivileged(
(PrivilegedAction<String>) () -> {
String value = System.getProperty(key);
return (value == null) ? def : value;
< prev index next >