< prev index next >
src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, 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
@@ -48,23 +48,33 @@
|| (MarlinRenderingEngine.REF_TYPE == MarlinRenderingEngine.REF_WEAK);
/**
* Create a new renderer context
*
+ * @param storageQueue true = queue storage; false = thread-Local storage
* @return new RendererContext instance
*/
- static RendererContext createContext() {
+ static RendererContext createContext(final boolean storageQueue) {
final RendererContext newCtx = new RendererContext("ctx"
- + Integer.toString(contextCount.getAndIncrement()));
+ + Integer.toString(contextCount.getAndIncrement()),
+ storageQueue);
+
if (RendererContext.stats != null) {
RendererContext.stats.allContexts.add(newCtx);
}
return newCtx;
}
// context name (debugging purposes)
final String name;
+ // true = queue storage; false = thread-Local storage
+ final boolean storageQueue;
+ /*
+ * Used flag indicating this thread-Local context is already used
+ * (used to detect reentrance)
+ */
+ boolean usedTL = false;
/*
* Reference to this instance (hard, soft or weak).
* @see MarlinRenderingEngine#REF_TYPE
*/
final Object reference;
@@ -99,18 +109,20 @@
int stroking = 0;
/**
* Constructor
*
- * @param name
+ * @param name context name (debugging)
+ * @param storageQueue true = queue storage; false = thread-Local storage
*/
- RendererContext(final String name) {
+ RendererContext(final String name, final boolean storageQueue) {
if (logCreateContext) {
MarlinUtils.logInfo("new RendererContext = " + name);
}
this.name = name;
+ this.storageQueue = storageQueue;
// NormalizingPathIterator instances:
nPCPathIterator = new NormalizingPathIterator.NearestPixelCenter(float6);
nPQPathIterator = new NormalizingPathIterator.NearestPixelQuarter(float6);
< prev index next >