ladybird/Userland/Libraries/LibWeb/SVG
Aliaksandr Kalenik 063e66cae9 LibWeb: Introduce RecordingPainter to serialize painting commands
This modification introduces a new layer to the painting process. The
stacking context traversal no longer immediately calls the
Gfx::Painter methods. Instead, it writes serialized painting commands
into newly introduced RecordingPainter. Created list of commands is
executed later to produce resulting bitmap.

Producing painting command list will make it easier to add new
optimizations:
- It's simpler to check if the painting result is not visible in the
  viewport at the command level rather than during stacking context
  traversal.
- Run painting in a separate thread. The painting thread can process
  serialized painting commands, while the main thread can work on the
  next paintable tree and safely invalidate the previous one.
- As we consider GPU-accelerated painting support, it would be easier
  to back each painting command rather than constructing an alternative
  for the entire Gfx::Painter API.
2023-10-18 10:58:42 +02:00
..
AttributeNames.cpp LibWeb: Port AttributeNames to FlyString 2023-10-08 08:11:48 -04:00
AttributeNames.h LibWeb: Port AttributeNames to FlyString 2023-10-08 08:11:48 -04:00
AttributeParser.cpp LibWeb: Flesh out SVGMaskElement a bit 2023-09-19 10:46:05 +02:00
AttributeParser.h LibWeb: Flesh out SVGMaskElement a bit 2023-09-19 10:46:05 +02:00
Default.css LibWeb: Include standard SVG user agent style sheet 2023-09-23 16:27:14 +02:00
SVGAnimatedLength.cpp
SVGAnimatedLength.h
SVGAnimatedLength.idl
SVGAnimatedNumber.cpp
SVGAnimatedNumber.h
SVGAnimatedNumber.idl
SVGCircleElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGCircleElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGCircleElement.idl
SVGClipPathElement.cpp
SVGClipPathElement.h
SVGClipPathElement.idl
SVGDecodedImageData.cpp LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
SVGDecodedImageData.h LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
SVGDefsElement.cpp LibWeb: Layout SVG <mask> elements (but don't paint them) 2023-09-19 10:46:05 +02:00
SVGDefsElement.h
SVGDefsElement.idl
SVGElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGElement.idl
SVGEllipseElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGEllipseElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGEllipseElement.idl
SVGForeignObjectElement.cpp LibWeb: Rename Element::attribute to Element::deprecated_attribute 2023-09-05 20:36:09 -04:00
SVGForeignObjectElement.h
SVGForeignObjectElement.idl
SVGGElement.cpp
SVGGElement.h
SVGGeometryElement.cpp
SVGGeometryElement.h
SVGGeometryElement.idl
SVGGradientElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGGradientElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGGradientElement.idl
SVGGraphicsElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGGraphicsElement.h LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
SVGGraphicsElement.idl
SVGLength.cpp
SVGLength.h
SVGLength.idl
SVGLinearGradientElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGLinearGradientElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGLinearGradientElement.idl
SVGLineElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGLineElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGLineElement.idl
SVGMaskElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGMaskElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGMaskElement.idl
SVGPathElement.cpp LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
SVGPathElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGPathElement.idl
SVGPolygonElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGPolygonElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGPolygonElement.idl
SVGPolylineElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGPolylineElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGPolylineElement.idl
SVGRadialGradientElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGRadialGradientElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGRadialGradientElement.idl
SVGRectElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGRectElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGRectElement.idl
SVGScriptElement.cpp LibWeb: Add IDL definition for SVGScriptElement 2023-09-23 11:41:57 +02:00
SVGScriptElement.h LibWeb: Add IDL definition for SVGScriptElement 2023-09-23 11:41:57 +02:00
SVGScriptElement.idl LibWeb: Add IDL definition for SVGScriptElement 2023-09-23 11:41:57 +02:00
SVGStopElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGStopElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGStopElement.idl
SVGStyleElement.cpp
SVGStyleElement.h
SVGStyleElement.idl LibWeb: Add Optional<String> overload for Element::set_attribute 2023-09-02 19:23:41 +01:00
SVGSVGElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGSVGElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGSVGElement.idl
SVGSymbolElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGSymbolElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGSymbolElement.idl
SVGTextContentElement.cpp
SVGTextContentElement.h
SVGTextContentElement.idl
SVGTextElement.cpp
SVGTextElement.h
SVGTextElement.idl
SVGTextPositioningElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGTextPositioningElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGTextPositioningElement.idl
SVGTitleElement.cpp LibWeb: Remove FrameLoader 2023-09-20 18:29:17 +02:00
SVGTitleElement.h
SVGTitleElement.idl
SVGTSpanElement.cpp
SVGTSpanElement.h
SVGTSpanElement.idl
SVGUseElement.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGUseElement.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
SVGUseElement.idl
TagNames.cpp LibWeb: Port SVG::TagNames from DeprecatedFlyString 2023-10-08 08:11:48 -04:00
TagNames.h LibWeb: Port SVG::TagNames from DeprecatedFlyString 2023-10-08 08:11:48 -04:00
ViewBox.cpp
ViewBox.h