Opened 3 years ago
Last modified 10 months ago
#17538 new bug
WebPositive SVG stroke rendering — at Initial Version
Reported by: | thebuck | Owned by: | pulkomandy |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Kits/Web Kit | Version: | R1/Development |
Keywords: | SVG | Cc: | |
Blocked By: | Blocking: | ||
Platform: | All |
Description
The handcrafted stroke-test.svg uncovers many stroke-related rendering issues, see Conclusions section.
Using the test image:
- View it standalone in WebPositive to test mouse hover effects and to avoid #17305.
- Every assymmetry (except color change on mouse hover) with respect to the vertical red line is a browser bug.
Elements of the image (left | right):
- orange top: filled rectangular path | stroked line path
- blue top U: just one curve path
- black O: differently scaled quarter paths with their stroke-width and geometry adjusted to make them look identical;
listing stroke-width:
- top: 4 | 0.125
- bottom: 16 | 2.5
- top: 4 | 0.125
- blue bottom: line path segments | one dashed line path
- While the mouse is over an element, the element becomes green.
Conclusions from my hrev55788/x86_64/QEMU test run:
- If 0 < stroke-width < 1 then it renders as 1.
- transform is neglected for path polygonization detail level.
- stroke-dasharray is unimplemented.
- The combination "fill:none;stroke:#000" causes rendering to use the fill from previous colored fill element for over-stroking???
- Bounding box of paths neglects stroke at the start- and endpoints.
What tests led to conclusions:
- The magenta zero-stroke thing is invisible, the O has thick top right (0.125 as 1), and bottom right was not rounded to int (2.5).
- The number of polylines (or corners, look carefully) in O quarters increases with stroke-width, i.e. with less upscaling
- The bottom blue right half is continuous, also for mouse hover detection.
- Scrolling the bounding box of the top left orange rectangle in/out of view toggles orange overpainting of all black elements (resize window for this).
- Hovering the mouse over elements works only in their bounding box and repaints only the same (test especially blue elements; move between them and the red cross to get larger repaints).
Note:
See TracTickets
for help on using tickets.