< 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 >