1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:18:11 +00:00
serenity/Userland/Libraries/LibWeb/Layout
Aliaksandr Kalenik 681771d210 LibGfx+LibWeb: Calculate and save glyph positions during layout
Previously, we determined the positions of glyphs for each text run at
the time of painting, which constituted a significant portion of the
painting process according to profiles. However, since we already go
through each glyph to figure out the width of each fragment during
layout, we can simultaneously gather data about the position of each
glyph in the layout phase and utilize this information in the painting
phase.

I had to update expectations for a couple of reference tests. These
updates are due to the fact that we now measure glyph positions during
layout using a 1x font, and then linearly scale each glyph's position
to device pixels during painting. This approach should be acceptable,
considering we measure a fragment's width and height with an unscaled
font during layout.
2023-12-02 22:06:11 +01:00
..
AudioBox.cpp LibWeb: Begin implementing the HTMLAudioElement for audio playback 2023-06-13 06:14:01 +02:00
AudioBox.h LibWeb: Begin implementing the HTMLAudioElement for audio playback 2023-06-13 06:14:01 +02:00
AvailableSpace.cpp LibWeb: Port AvailableSpace from DeprecatedString to String 2023-11-28 17:15:27 -05:00
AvailableSpace.h LibWeb: Port AvailableSpace from DeprecatedString to String 2023-11-28 17:15:27 -05:00
BlockContainer.cpp LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
BlockContainer.h LibWeb/Layout: Rename BlockContainer::paint{_box => able_with_lines}() 2023-04-20 20:43:30 +02:00
BlockFormattingContext.cpp LibWeb: Remove special handling of disclosure-open/closed markers 2023-11-24 08:37:19 +01:00
BlockFormattingContext.h LibWeb: Boxes that establish FFC or GFC should avoid overlapping floats 2023-09-22 16:48:28 +02:00
Box.cpp LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
Box.h LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
BoxModelMetrics.cpp
BoxModelMetrics.h LibWeb+Browser+WebContent: Convert BoxModelMetrics to new pixel units 2023-01-05 17:42:31 +01:00
BreakNode.cpp
BreakNode.h LibWeb: Don't generate ::before/::after for BR elements 2023-09-14 21:46:28 +02:00
ButtonBox.cpp LibWeb: Add CSSPixels::nearest_value_for(FloatingPoint) 2023-08-26 23:53:45 +02:00
ButtonBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
CanvasBox.cpp LibWeb: Introduce RecordingPainter to serialize painting commands 2023-10-18 10:58:42 +02:00
CanvasBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
CheckBox.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
CheckBox.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
FlexFormattingContext.cpp LibWeb: Don't offset abspos children of flex container by padding twice 2023-10-08 09:06:30 +02:00
FlexFormattingContext.h LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
FormAssociatedLabelableNode.h
FormattingContext.cpp LibWeb: Do not compensate padding for abspos boxes with static position 2023-11-15 23:44:05 +01:00
FormattingContext.h LibWeb: Resolve CSS inset properties when entering inline-flow elements 2023-08-15 16:37:11 +02:00
FrameBox.cpp LibWeb: Change viewport ownership from BrowsingContext to Navigable 2023-09-16 16:53:32 +02:00
FrameBox.h LibWeb: Fix iframes flickering on window resize 2023-05-15 14:08:08 +02:00
GridFormattingContext.cpp AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
GridFormattingContext.h LibWeb: Separate grid item's area rect calculation in a function in GFC 2023-10-31 08:46:17 +01:00
ImageBox.cpp LibWeb: Add CSSPixels::nearest_value_for(FloatingPoint) 2023-08-26 23:53:45 +02:00
ImageBox.h LibWeb: Don't force HTMLImageElement to have a legacy ImageLoader 2023-05-13 09:08:42 +02:00
ImageProvider.h LibGfx+LibWeb: Add ImmutableBitmap for images bitmap caching in painter 2023-11-26 12:55:43 +01:00
InlineFormattingContext.cpp LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
InlineFormattingContext.h LibWeb: Replace to_px() with to_px_or_zero() in InlineFormattingContext 2023-08-12 20:06:01 +02:00
InlineLevelIterator.cpp LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
InlineLevelIterator.h LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
InlineNode.cpp LibWeb: Make the paint tree GC-allocated 2023-01-11 12:55:00 +01:00
InlineNode.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
Label.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
Label.h
LabelableNode.cpp
LabelableNode.h
LayoutState.cpp LibWeb: Support transforms, stroking, gradients, etc for SVG <text> 2023-11-05 02:46:46 +01:00
LayoutState.h LibWeb: Layout SVG <text> elements during layout (not while painting) 2023-10-30 19:44:54 +01:00
LineBox.cpp LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
LineBox.h LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
LineBoxFragment.cpp LibWeb: Port Layout::TextNode from DeprecatedString 2023-11-28 17:15:27 -05:00
LineBoxFragment.h LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
LineBuilder.cpp LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
LineBuilder.h LibGfx+LibWeb: Calculate and save glyph positions during layout 2023-12-02 22:06:11 +01:00
ListItemBox.cpp
ListItemBox.h LibWeb: Add fast_is<T>() for various types stood out in a profile 2023-03-11 10:46:26 +01:00
ListItemMarkerBox.cpp LibWeb: Support list-style-position 2023-06-03 05:54:49 +02:00
ListItemMarkerBox.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
Node.cpp LibWeb: Rename "position" enum to "positioning" 2023-10-30 10:40:30 +00:00
Node.h LibWeb: Track quote-nesting level while building the layout tree 2023-09-28 14:49:10 +02:00
Progress.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
Progress.h LibWeb: Make a handful of layout node leaf classes final 2023-01-11 14:03:18 +01:00
RadioButton.cpp LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
RadioButton.h LibWeb: Make the paint tree GC-allocated 2023-01-11 12:55:00 +01:00
ReplacedBox.cpp
ReplacedBox.h LibWeb: Move "natural size" concept into Layout::Box 2023-06-09 20:37:51 +02:00
SVGBox.cpp
SVGBox.h
SVGFormattingContext.cpp LibWeb: Remove should_ensure_creation_of_paintable() SVG hack 2023-11-14 10:13:10 +01:00
SVGFormattingContext.h LibWeb: Let FormattingContext decide the automatic width of its root 2023-03-20 17:57:58 +01:00
SVGGeometryBox.cpp LibWeb: Support transforms, stroking, gradients, etc for SVG <text> 2023-11-05 02:46:46 +01:00
SVGGeometryBox.h LibWeb: Store computed SVG path data/transforms in LayoutState 2023-10-30 19:44:54 +01:00
SVGGraphicsBox.cpp LibWeb: Make SVG <g> elements generate a SVGGraphicsPaintable 2023-04-19 07:52:26 +02:00
SVGGraphicsBox.h LibWeb: Make SVG <g> elements generate a SVGGraphicsPaintable 2023-04-19 07:52:26 +02:00
SVGSVGBox.cpp LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
SVGSVGBox.h LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
SVGTextBox.cpp LibWeb: Support transforms, stroking, gradients, etc for SVG <text> 2023-11-05 02:46:46 +01:00
SVGTextBox.h LibWeb: Layout SVG <text> elements during layout (not while painting) 2023-10-30 19:44:54 +01:00
TableFormattingContext.cpp LibWeb: Set table width to GRIDMAX if calculated value is max-content 2023-10-31 18:13:14 +01:00
TableFormattingContext.h LibWeb: Implement table missing cells fixup 2023-08-20 18:38:15 +02:00
TableGrid.cpp LibWeb: Consider colgroups while calculating table grid size 2023-11-04 17:37:38 +01:00
TableGrid.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
TableWrapper.cpp LibWeb: Override width calculation for table wrappers 2023-01-14 19:22:08 +01:00
TableWrapper.h LibWeb: Override width calculation for table wrappers 2023-01-14 19:22:08 +01:00
TextNode.cpp LibWeb: Port Layout::TextNode from DeprecatedString 2023-11-28 17:15:27 -05:00
TextNode.h LibWeb: Port Layout::TextNode from DeprecatedString 2023-11-28 17:15:27 -05:00
TreeBuilder.cpp LibWeb: Port Layout::TextNode from DeprecatedString 2023-11-28 17:15:27 -05:00
TreeBuilder.h LibWeb: Add ol start and li value attributes support 2023-11-09 16:10:54 +01:00
VideoBox.cpp LibWeb: Use CSSPixelFraction to represent aspect ratios 2023-09-04 12:40:17 +02:00
VideoBox.h LibWeb: Move viewport subscriptions from BrowsingContext to Document 2023-08-23 20:14:20 +02:00
Viewport.cpp LibWeb: Move painting logic from Layout::Viewport to ViewportPaintable 2023-08-20 05:02:59 +02:00
Viewport.h LibWeb: Move painting logic from Layout::Viewport to ViewportPaintable 2023-08-20 05:02:59 +02:00