• LongCatIsLooong's avatar
    Improve `TextPainter.layout` caching (#118128) · 62e78bf1
    LongCatIsLooong authored
    Improves `TextPainter.layout` caching when only the input constraints change: 
    - removes the double layout calls in `TextPainter._layoutParagraph`: now double layout is only needed when `TextAlign` is not left, and the input `maxWidth == double.infinity`.  
    - skip calls to `ui.Paragraph.layout` when it's guaranteed that there's no soft line breaks before/after the layout call.
    
    This doesn't introduce new APIs but may slightly shift text rendered on screen.
    This reduces the number of `layout` calls but since shaping results are already cached so it only skips the relatively cheap line-breaking process when possible.
    
    528 scuba failures but all of them seem reasonable.
    62e78bf1
Name
Last commit
Last update
..
_network_image_test_web.dart Loading commit data...
_network_image_web_test_io.dart Loading commit data...
_test_http_request.dart Loading commit data...
alignment_test.dart Loading commit data...
beveled_rectangle_border_test.dart Loading commit data...
binding_test.dart Loading commit data...
border_radius_test.dart Loading commit data...
border_rtl_test.dart Loading commit data...
border_side_test.dart Loading commit data...
border_test.dart Loading commit data...
box_decoration_test.dart Loading commit data...
box_fit_test.dart Loading commit data...
box_painter_test.dart Loading commit data...
circle_border_test.dart Loading commit data...
colors_test.dart Loading commit data...
common_matchers.dart Loading commit data...
continuous_rectangle_border_test.dart Loading commit data...
decoration_test.dart Loading commit data...
edge_insets_test.dart Loading commit data...
fake_codec.dart Loading commit data...
fake_image_provider.dart Loading commit data...
flutter_logo_test.dart Loading commit data...
fractional_offset_test.dart Loading commit data...
geometry_test.dart Loading commit data...
gradient_test.dart Loading commit data...
image_cache_binding_test.dart Loading commit data...
image_cache_clearing_test.dart Loading commit data...
image_cache_resize_test.dart Loading commit data...
image_cache_test.dart Loading commit data...
image_decoder_test.dart Loading commit data...
image_info_test.dart Loading commit data...
image_provider_and_image_cache_test.dart Loading commit data...
image_provider_network_image_test.dart Loading commit data...
image_provider_resize_image_test.dart Loading commit data...
image_provider_test.dart Loading commit data...
image_resolution_test.dart Loading commit data...
image_stream_test.dart Loading commit data...
image_test_utils.dart Loading commit data...
linear_border_test.dart Loading commit data...
matrix_utils_test.dart Loading commit data...
mocks_for_image_cache.dart Loading commit data...
network_image_web_test.dart Loading commit data...
notched_shapes_test.dart Loading commit data...
oval_border_test.dart Loading commit data...
paint_image_test.dart Loading commit data...
painting_utils.dart Loading commit data...
rounded_rectangle_border_test.dart Loading commit data...
shader_warm_up_test.dart Loading commit data...
shape_border_test.dart Loading commit data...
shape_decoration_test.dart Loading commit data...
stadium_border_test.dart Loading commit data...
star_border_test.dart Loading commit data...
strut_style_test.dart Loading commit data...
system_fonts_test.dart Loading commit data...
text_painter_rtl_test.dart Loading commit data...
text_painter_test.dart Loading commit data...
text_span_test.dart Loading commit data...
text_style_test.dart Loading commit data...
widget_span_test.dart Loading commit data...