Summary: | SVGPaintServer system needs to be redesigned to fill & stroke simultaneously | ||
---|---|---|---|
Product: | WebKit | Reporter: | Alexander Kellett <a> |
Component: | SVG | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | ian, krit |
Priority: | P4 | ||
Version: | 420+ | ||
Hardware: | Mac | ||
OS: | OS X 10.4 | ||
Bug Depends on: | 6553 | ||
Bug Blocks: |
Description
Alexander Kellett
2006-01-15 11:22:10 PST
This could be a big performance win on large SVGs. This is nearly possible today. Just a few adjustments would be necessary. Here's some pseudo code: fill = fillPaintServer() stroke = strokePaintServer() if (fill == stroke) { fill->setup() fill->renderPath(FILL_MODE | STROKE_MODE) fill->teardown() } else { fill->setup() fill->renderPath(FILL_MODE) fill->teardown() stroke->setup() stroke->renderPath(STROKE_MODE) stroke->teardown() } I'm not certain how huge of a performance win this would be, but now that we have an SVG PLT we can check. ;) I doubt that it makes sense to implement it. We need to be able to apply different transforms to the context for fill or stroke (because of gradients, patterns, non-scaling-stroke). And IIRC this won't be able with drawing fill and stroke at once for CG. Also just CG could make use of this. Because of the cost to implement it and the fact that just CG could make use of it. I mark this as WONTFIX. Feel free to reopen the bug if you want to work on that. |