Changeset 287917 in webkit


Ignore:
Timestamp:
Jan 12, 2022 3:40:15 AM (6 months ago)
Author:
Martin Robinson
Message:

Interpolation during animation of two empty transform lists should always yield "none"
https://bugs.webkit.org/show_bug.cgi?id=235069

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Update to show passes.

Source/WebCore:

No new tests. This is covered by an existing WPT test.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): When all keyframes have "transform: none"
they transform function lists should match. This allows TransformOperations::blend to avoid doing
matrix interpolation to generate the interpolated transform.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r287915 r287917  
     12022-01-12  Martin Robinson  <mrobinson@webkit.org>
     2
     3        Interpolation during animation of two empty transform lists should always yield "none"
     4        https://bugs.webkit.org/show_bug.cgi?id=235069
     5
     6        Reviewed by Antoine Quint.
     7
     8        * web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Update to show passes.
     9
    1102022-01-12  Youenn Fablet  <youenn@apple.com>
    211
  • trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt

    r267650 r287917  
    22PASS CSS Transitions: property <transform> from [none] to [none] at (0.25) should be [none]
    33PASS CSS Transitions with transition: all: property <transform> from [none] to [none] at (0.25) should be [none]
    4 FAIL CSS Animations: property <transform> from [none] to [none] at (0.25) should be [none] assert_equals: expected "none " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
    5 FAIL Web Animations: property <transform> from [none] to [none] at (0.25) should be [none] assert_equals: expected "none " but got "matrix ( 1 , 0 , 0 , 1 , 0 , 0 ) "
     4PASS CSS Animations: property <transform> from [none] to [none] at (0.25) should be [none]
     5PASS Web Animations: property <transform> from [none] to [none] at (0.25) should be [none]
    66PASS CSS Transitions: property <transform> from [none] to [translate(200px) rotate(720deg)] at (0.25) should be [translate(50px) rotate(180deg)]
    77PASS CSS Transitions with transition: all: property <transform> from [none] to [translate(200px) rotate(720deg)] at (0.25) should be [translate(50px) rotate(180deg)]
  • trunk/LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt

    r285397 r287917  
    1313FAIL Commits transforms as a transform list assert_equals: expected "translate(20px, 20px)" but got "matrix(1, 0, 0, 1, 20, 20)"
    1414FAIL Commits matrix-interpolated relative transforms assert_equals: Resolved transform is correct after commit. expected "matrix(2, 0, 0, 2, 100, 0)" but got "matrix(2, 0, 0, 2, 0, 0)"
    15 FAIL Commits "none" transform assert_equals: Resolved transform is correct after commit. expected "none" but got "matrix(1, 0, 0, 1, 0, 0)"
     15PASS Commits "none" transform
    1616PASS Commits the intermediate value of an animation in the middle of stack
    1717FAIL Commit composites on top of the underlying value assert_approx_equals: expected 0.5 +/- 0.0001 but got 1
  • trunk/Source/WebCore/ChangeLog

    r287916 r287917  
     12022-01-12  Martin Robinson  <mrobinson@webkit.org>
     2
     3        Interpolation during animation of two empty transform lists should always yield "none"
     4        https://bugs.webkit.org/show_bug.cgi?id=235069
     5
     6        Reviewed by Antoine Quint.
     7
     8        No new tests. This is covered by an existing WPT test.
     9
     10        * animation/KeyframeEffect.cpp:
     11        (WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): When all keyframes have "transform: none"
     12        they transform function lists should match. This allows TransformOperations::blend to avoid doing
     13        matrix interpolation to generate the interpolated transform.
     14
    1152022-01-12  Nikolas Zimmermann  <nzimmermann@igalia.com>
    216
  • trunk/Source/WebCore/animation/KeyframeEffect.cpp

    r287896 r287917  
    10461046    }
    10471047
    1048     if (firstNonEmptyTransformKeyframeIndex == numKeyframes)
     1048    // All of the frames have an empty list of transform operations, so they match.
     1049    if (firstNonEmptyTransformKeyframeIndex == numKeyframes) {
     1050        m_transformFunctionListsMatch = true;
    10491051        return;
     1052    }
    10501053
    10511054    const TransformOperations* firstVal = &m_blendingKeyframes[firstNonEmptyTransformKeyframeIndex].style()->transform();
Note: See TracChangeset for help on using the changeset viewer.