mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 10:47:34 +00:00
LibGfx: Implement new antialiased filled path rasterizer
This is an implementation of the scanline edge-flag algorithm for antialiased path filling described here: https://mlab.taik.fi/~kkallio/antialiasing/EdgeFlagAA.pdf The initial implementation does not try to implement every possible optimization in favour of keeping things simple. However, it does support: - Both evenodd and nonzero fill rules - Applying paint styles/gradients - A range of samples per pixel (8, 16, 32) - Very nice antialiasing :^) This replaces the previous path filling code, that only really applied antialiasing in the x-axis. There's some very nice improvements around the web with this change, especially for small icons. Strokes are still a bit wonky, as they don't yet use this rasterizer, but I think it should be possible to convert them to do so.
This commit is contained in:
parent
e4adaa2d20
commit
48fa8f97d3
6 changed files with 536 additions and 324 deletions
|
@ -8,7 +8,7 @@ set(SOURCES
|
|||
Color.cpp
|
||||
CursorParams.cpp
|
||||
DeltaE.cpp
|
||||
FillPathImplementation.cpp
|
||||
EdgeFlagPathRasterizer.cpp
|
||||
Filters/ColorBlindnessFilter.cpp
|
||||
Filters/FastBoxBlurFilter.cpp
|
||||
Filters/LumaFilter.cpp
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue