< prev index next >
modules/javafx.graphics/src/main/java/com/sun/marlin/DMarlinRenderingEngine.java
Print this page
*** 35,55 ****
import java.security.PrivilegedAction;
/**
* Marlin RendererEngine implementation (derived from Pisces)
*/
! public class MarlinRenderingEngine implements MarlinConst
{
/**
* Private constructor to prevent instantiation.
*/
! private MarlinRenderingEngine() {
}
static {
! if (PathIterator.WIND_NON_ZERO != MarlinRenderer.WIND_NON_ZERO ||
! PathIterator.WIND_EVEN_ODD != MarlinRenderer.WIND_EVEN_ODD ||
BasicStroke.JOIN_MITER != Stroker.JOIN_MITER ||
BasicStroke.JOIN_ROUND != Stroker.JOIN_ROUND ||
BasicStroke.JOIN_BEVEL != Stroker.JOIN_BEVEL ||
BasicStroke.CAP_BUTT != Stroker.CAP_BUTT ||
BasicStroke.CAP_ROUND != Stroker.CAP_ROUND ||
--- 35,55 ----
import java.security.PrivilegedAction;
/**
* Marlin RendererEngine implementation (derived from Pisces)
*/
! public class DMarlinRenderingEngine implements MarlinConst
{
/**
* Private constructor to prevent instantiation.
*/
! private DMarlinRenderingEngine() {
}
static {
! if (PathIterator.WIND_NON_ZERO != DMarlinRenderer.WIND_NON_ZERO ||
! PathIterator.WIND_EVEN_ODD != DMarlinRenderer.WIND_EVEN_ODD ||
BasicStroke.JOIN_MITER != Stroker.JOIN_MITER ||
BasicStroke.JOIN_ROUND != Stroker.JOIN_ROUND ||
BasicStroke.JOIN_BEVEL != Stroker.JOIN_BEVEL ||
BasicStroke.CAP_BUTT != Stroker.CAP_BUTT ||
BasicStroke.CAP_ROUND != Stroker.CAP_ROUND ||
*** 57,75 ****
{
throw new InternalError("mismatched renderer constants");
}
}
! // --- RendererContext handling ---
! // use ThreadLocal or ConcurrentLinkedQueue to get one RendererContext
private static final boolean USE_THREAD_LOCAL;
// reference type stored in either TL or CLQ
static final int REF_TYPE;
! // Per-thread RendererContext
! private static final ReentrantContextProvider<RendererContext> RDR_CTX_PROVIDER;
// Static initializer to use TL or CLQ mode
static {
USE_THREAD_LOCAL = MarlinProperties.isUseThreadLocal();
--- 57,75 ----
{
throw new InternalError("mismatched renderer constants");
}
}
! // --- DRendererContext handling ---
! // use ThreadLocal or ConcurrentLinkedQueue to get one DRendererContext
private static final boolean USE_THREAD_LOCAL;
// reference type stored in either TL or CLQ
static final int REF_TYPE;
! // Per-thread DRendererContext
! private static final ReentrantContextProvider<DRendererContext> RDR_CTX_PROVIDER;
// Static initializer to use TL or CLQ mode
static {
USE_THREAD_LOCAL = MarlinProperties.isUseThreadLocal();
*** 91,118 ****
REF_TYPE = ReentrantContextProvider.REF_HARD;
break;
}
if (USE_THREAD_LOCAL) {
! RDR_CTX_PROVIDER = new ReentrantContextProviderTL<RendererContext>(REF_TYPE)
{
@Override
! protected RendererContext newContext() {
! return RendererContext.createContext();
}
};
} else {
! RDR_CTX_PROVIDER = new ReentrantContextProviderCLQ<RendererContext>(REF_TYPE)
{
@Override
! protected RendererContext newContext() {
! return RendererContext.createContext();
}
};
}
! logSettings(Renderer.class.getName());
}
private static boolean SETTINGS_LOGGED = !ENABLE_LOGS;
public static void logSettings(final String reClass) {
--- 91,118 ----
REF_TYPE = ReentrantContextProvider.REF_HARD;
break;
}
if (USE_THREAD_LOCAL) {
! RDR_CTX_PROVIDER = new ReentrantContextProviderTL<DRendererContext>(REF_TYPE)
{
@Override
! protected DRendererContext newContext() {
! return DRendererContext.createContext();
}
};
} else {
! RDR_CTX_PROVIDER = new ReentrantContextProviderCLQ<DRendererContext>(REF_TYPE)
{
@Override
! protected DRendererContext newContext() {
! return DRendererContext.createContext();
}
};
}
! logSettings(DRenderer.class.getName());
}
private static boolean SETTINGS_LOGGED = !ENABLE_LOGS;
public static void logSettings(final String reClass) {
*** 202,238 ****
logInfo("CUB_COUNT_LG = " + Renderer.CUB_COUNT_LG);
logInfo("CUB_DEC_BND = " + Renderer.CUB_DEC_BND);
logInfo("CUB_INC_BND = " + Renderer.CUB_INC_BND);
logInfo("QUAD_DEC_BND = " + Renderer.QUAD_DEC_BND);
logInfo("INITIAL_EDGES_CAPACITY = "
+ MarlinConst.INITIAL_EDGES_CAPACITY);
logInfo("INITIAL_CROSSING_COUNT = "
+ Renderer.INITIAL_CROSSING_COUNT);
logInfo("=========================================================="
+ "=====================");
}
/**
! * Get the RendererContext instance dedicated to the current thread
! * @return RendererContext instance
*/
@SuppressWarnings({"unchecked"})
! public static RendererContext getRendererContext() {
! final RendererContext rdrCtx = RDR_CTX_PROVIDER.acquire();
if (DO_MONITORS) {
rdrCtx.stats.mon_pre_getAATileGenerator.start();
}
return rdrCtx;
}
/**
! * Reset and return the given RendererContext instance for reuse
! * @param rdrCtx RendererContext instance
*/
! public static void returnRendererContext(final RendererContext rdrCtx) {
rdrCtx.dispose();
if (DO_MONITORS) {
rdrCtx.stats.mon_pre_getAATileGenerator.stop();
}
--- 202,241 ----
logInfo("CUB_COUNT_LG = " + Renderer.CUB_COUNT_LG);
logInfo("CUB_DEC_BND = " + Renderer.CUB_DEC_BND);
logInfo("CUB_INC_BND = " + Renderer.CUB_INC_BND);
logInfo("QUAD_DEC_BND = " + Renderer.QUAD_DEC_BND);
+ logInfo("USE_SUBDIVIDE_QUAD = " + RendererNoAA.USE_SUBDIVIDE_QUAD);
+ logInfo("QUAD_ERR_SUBPIX = " + RendererNoAA.QUAD_ERR_SUBPIX);
+
logInfo("INITIAL_EDGES_CAPACITY = "
+ MarlinConst.INITIAL_EDGES_CAPACITY);
logInfo("INITIAL_CROSSING_COUNT = "
+ Renderer.INITIAL_CROSSING_COUNT);
logInfo("=========================================================="
+ "=====================");
}
/**
! * Get the DRendererContext instance dedicated to the current thread
! * @return DRendererContext instance
*/
@SuppressWarnings({"unchecked"})
! public static DRendererContext getRendererContext() {
! final DRendererContext rdrCtx = RDR_CTX_PROVIDER.acquire();
if (DO_MONITORS) {
rdrCtx.stats.mon_pre_getAATileGenerator.start();
}
return rdrCtx;
}
/**
! * Reset and return the given DRendererContext instance for reuse
! * @param rdrCtx DRendererContext instance
*/
! public static void returnRendererContext(final DRendererContext rdrCtx) {
rdrCtx.dispose();
if (DO_MONITORS) {
rdrCtx.stats.mon_pre_getAATileGenerator.stop();
}
< prev index next >