• danakj's avatar
    cc: Fix CanRaster dcheck failures ONCE AND FOR ALL. · d27cb086
    danakj authored
    When a PicturePile grows along either axis, the tiles on the edge where
    it grew are dropped if any new pixels are added to their recordings.
    This means that we need to invalidate them to inform the impl side
    about the recording being dropped.
    
    However, if we're going to re-record the tile (it intersects the
    interest_rect), then there's no need to invalidate it as the old
    recorded pixels remain valid.
    
    Previously we made the assumption that when a PicturePile resized, the
    interest rect's center would be to the left and above the old edge of
    the pile. However, the interest rect can move at the same time as the
    pile is resized, and it can live anywhere with respect to the recording
    tiles being dropped.
    
    So we invalidate everything inside the row/column of tiles that were
    dropped that is outside of the interest rect by invalidating on all
    four sides of the interest rect, but clamping the resulting invalidation
    rects to within the dropped tiles row/column.
    
    R=enne
    BUG=386998
    
    Review URL: https://codereview.chromium.org/504513002
    
    Cr-Commit-Position: refs/heads/master@{#291762}
    d27cb086
tile.h 5.68 KB