< prev index next >

src/java.desktop/share/classes/sun/java2d/marlin/DRendererContext.java

Print this page

        

*** 73,92 **** final DDasher dasher; final MarlinTileGenerator ptg; final MarlinCache cache; // flag indicating the shape is stroked (1) or filled (0) int stroking = 0; // Array caches: /* clean int[] cache (zero-filled) = 5 refs */ private final IntArrayCache cleanIntCache = new IntArrayCache(true, 5); ! /* dirty int[] cache = 4 refs */ ! private final IntArrayCache dirtyIntCache = new IntArrayCache(false, 4); ! /* dirty double[] cache = 3 refs */ ! private final DoubleArrayCache dirtyDoubleCache = new DoubleArrayCache(false, 3); ! /* dirty byte[] cache = 1 ref */ ! private final ByteArrayCache dirtyByteCache = new ByteArrayCache(false, 1); // RendererContext statistics final RendererStats stats; final PathConsumer2DAdapter p2dAdapter = new PathConsumer2DAdapter(); --- 73,98 ---- final DDasher dasher; final MarlinTileGenerator ptg; final MarlinCache cache; // flag indicating the shape is stroked (1) or filled (0) int stroking = 0; + // flag indicating to clip the shape + boolean doClip = false; + // flag indicating if the path is closed or not (in advance) to handle properly caps + boolean closedPath = false; + // clip rectangle (ymin, ymax, xmin, xmax): + final double[] clipRect = new double[4]; // Array caches: /* clean int[] cache (zero-filled) = 5 refs */ private final IntArrayCache cleanIntCache = new IntArrayCache(true, 5); ! /* dirty int[] cache = 5 refs */ ! private final IntArrayCache dirtyIntCache = new IntArrayCache(false, 5); ! /* dirty double[] cache = 4 refs (2 polystack) */ ! private final DoubleArrayCache dirtyDoubleCache = new DoubleArrayCache(false, 4); ! /* dirty byte[] cache = 2 ref (2 polystack) */ ! private final ByteArrayCache dirtyByteCache = new ByteArrayCache(false, 2); // RendererContext statistics final RendererStats stats; final PathConsumer2DAdapter p2dAdapter = new PathConsumer2DAdapter();
*** 117,127 **** // NormalizingPathIterator instances: nPCPathIterator = new NormalizingPathIterator.NearestPixelCenter(double6); nPQPathIterator = new NormalizingPathIterator.NearestPixelQuarter(double6); // MarlinRenderingEngine.TransformingPathConsumer2D ! transformerPC2D = new DTransformingPathConsumer2D(); // Renderer: cache = new MarlinCache(this); renderer = new DRenderer(this); // needs MarlinCache from rdrCtx.cache ptg = new MarlinTileGenerator(stats, renderer, cache); --- 123,133 ---- // NormalizingPathIterator instances: nPCPathIterator = new NormalizingPathIterator.NearestPixelCenter(double6); nPQPathIterator = new NormalizingPathIterator.NearestPixelQuarter(double6); // MarlinRenderingEngine.TransformingPathConsumer2D ! transformerPC2D = new DTransformingPathConsumer2D(this); // Renderer: cache = new MarlinCache(this); renderer = new DRenderer(this); // needs MarlinCache from rdrCtx.cache ptg = new MarlinTileGenerator(stats, renderer, cache);
*** 139,149 **** if (stats.totalOffHeap > stats.totalOffHeapMax) { stats.totalOffHeapMax = stats.totalOffHeap; } stats.totalOffHeap = 0L; } ! stroking = 0; // if context is maked as DIRTY: if (dirty) { // may happen if an exception if thrown in the pipeline processing: // force cleanup of all possible pipelined blocks (except Renderer): --- 145,158 ---- if (stats.totalOffHeap > stats.totalOffHeapMax) { stats.totalOffHeapMax = stats.totalOffHeap; } stats.totalOffHeap = 0L; } ! stroking = 0; ! doClip = false; ! closedPath = false; ! // if context is maked as DIRTY: if (dirty) { // may happen if an exception if thrown in the pipeline processing: // force cleanup of all possible pipelined blocks (except Renderer):
*** 165,175 **** Path2D.Double p2d = (refPath2D != null) ? refPath2D.get() : null; // create a new Path2D ? if (p2d == null) { ! p2d = new Path2D.Double(Path2D.WIND_NON_ZERO, INITIAL_EDGES_COUNT); // 32K // update weak reference: refPath2D = new WeakReference<Path2D.Double>(p2d); } // reset the path anyway: --- 174,184 ---- Path2D.Double p2d = (refPath2D != null) ? refPath2D.get() : null; // create a new Path2D ? if (p2d == null) { ! p2d = new Path2D.Double(WIND_NON_ZERO, INITIAL_EDGES_COUNT); // 32K // update weak reference: refPath2D = new WeakReference<Path2D.Double>(p2d); } // reset the path anyway:
< prev index next >