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