Jim, Do you have time soon to review the second marlin patch ?
Any other remaining comment on the first one ? Did you have news from the SQE team? FYI I will try using the DDA approach in the Renderer... Improving Stroker seems to me too much tricky and risky for the moment (to avoid intermediate segments for joins & caps) Laurent Le 29 avr. 2015 22:27, "Laurent Bourgès" <[email protected]> a écrit : > Jim, > > Here is a new webrev for the second step on the marlin renderer: > http://cr.openjdk.java.net/~lbourges/marlin/marlin-s2.0/ > > Changes: > - ArrayCache: cleanup in the growth algorithm + fixed TODO > - Float/Int ArrayCache: added putDirtyArray() methods > - RendererContext: added dirtyInt/Float array cache and related methods > - RendererStats: added statistics on cached array sizes > - CollinearSimplifier: optimized condition evaluation order > - FloatMath: removed once condition using bit masking to add +/- 1 > > - Curve: fixed numeric constants + BreakPtrIterator deals with primitive > integer (no more Interator<Integer>) > - Dasher: fixed numeric constants + firstSegmentsBuffer uses the dirty > float cache > - Helpers: fixed numeric constants + removed widenArray methods (use > directly RendererContext instead) > - MarlinCache: added stats for rowAAChunk + fixed doc > - MarlinRenderingEngine: fixed numeric constants + newDashes uses the > dirty float cache + RendererContext uses now Weak reference by default > (instead of Soft) > - Renderer: > - keep used range for edgeBuckets / edgeBucketCounts in endRendering() > used then in dispose() to avoid FloatMath.ceil() calls > - crossings / aux_crossings & edgePtrs / aux_edgePtrs use dirty int > array caches > - Stroker: fixed numeric constants + use explicit emitLineToRev() / > emitQuadToRev() / emitCurveToRev() as short cuts + use local variables for > readability and minor performance gain > - Stroker.PolyStack: curveTypes / curves use the dirty byte / float array > caches + optimized popAll() loop > > Cheers, > Laurent >
