Conversation
This introduces src/path/ as an in-tree scanline path renderer (builder, quad/cubic flatten, arc-to-cubic, stroke expansion with proper miter / bevel / round joins and butt/round/projecting caps, scanline rasterizer, pixman region builder). Route through it: - XDrawArc/XFillArc/XDrawArcs/XFillArcs for ArcChord, dashed, wide, or large solid arcs. Small LineSolid one-pixel arcs stay on the legacy point renderer to avoid regressing tiny primitive overhead. - XDrawLine/XDrawLines/XDrawSegments/XDrawRectangle wide-stroke and LineOnOffDash/LineDoubleDash paths, with the X11 default miter limit (10) and dash phase carried across MoveTo within a call. - XPolygonRegion edge/span construction with pixman union storage. Other coverage gaps closed: - Implement XDrawPoints and XDrawRectangles (previously stubs). - Add non-GXcopy software fallback for line, segment, polyline, and rectangle batches so GXxor/GXinvert/plane-mask take effect; batched per line bounding box instead of round-tripping per pixel. - XDrawRectangle now traces the spec-mandated (w+1) by (h+1) outline with no double-XOR at corners. - Closed-polyline strokes emit joins at the closure vertex instead of caps, so wide rectangle outlines look right.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This introduces src/path/ as an in-tree scanline path renderer (builder, quad/cubic flatten, arc-to-cubic, stroke expansion with proper miter / bevel / round joins and butt/round/projecting caps, scanline rasterizer, pixman region builder). Route through it:
Other coverage gaps closed:
Summary by cubic
Adds an in-tree scanline path renderer and routes arcs, wide/dashed strokes, and region ops through it for correct joins/caps, better spec compliance, and faster batched draws. Also improves GC raster ops and implements missing point/rectangle APIs.
New Features
src/path/renderer: builder, adaptive flattening, arc-to-cubic, stroke expansion (miter/bevel/round; butt/round/projecting caps), scanline rasterizer, andpixmanspan/region composition.pixmanstorage.Bug Fixes
Written for commit 21f55fc. Summary will update on new commits.