Bug 255368
Summary: | Bring slerp interpolation in line with spec | ||
---|---|---|---|
Product: | WebKit | Reporter: | Ahmad Saleem <ahmad.saleem792> |
Component: | Animations | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED CONFIGURATION CHANGED | ||
Severity: | Normal | CC: | dino, graouts, graouts, mattwoodrow, webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | |||
Bug Blocks: | 250970 |
Ahmad Saleem
Hi Team,
Based on discussion with @graouts on Slack 1-1, I am creating this bug report about potential Blink commit merge:
Commit - https://chromium.googlesource.com/chromium/blink/+/f550639338aaaa3abf07b88997609a396fb5cfad
Spec Discussion Link - http://lists.w3.org/Archives/Public/www-style/2013May/0131.html
``` Commit Message ```
The slerp function to interpolate between two quaternions (when blending two
decomposed matrices) does not match the spec. Although it may be desirable for
the interpolation to occur along the shortest path (as discussed in issue
14983004 and http://lists.w3.org/Archives/Public/www-style/2013May/0131.html),
the spec has not been changed as requested there. So this updates the WebKit
implementation to be in line with the spec.
______________________
Just wanted to raise for any input and also it is possible to do 1-1 merge, I did it in local testing branch few weeks back.
Thanks!
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Ahmad Saleem
Blink regressed this: Safari was doing correctly due to relying on system for doing animations (but if we are planning to change, we might have same bug):
After this change, will Blink match Safari?
If not, Safari can't change its behavior since it relies on the operation
system to do animations...
___________________
Test Case mentioned in the Spec Discussion - https://jsfiddle.net/bpLx7gtq/show
_____________________
Blink regressed it here (as per documentation):
I think so, yes. We got the "bad" behavior when we switched from
WebCore::TransformationMatrix to gfx::Transform, according to
<https://code.google.com/p/chromium/issues/detail?id=236018>. A quick
test in Safari with the example code in my first post has it doing the
short-path animation.
_________
Another test case - https://jsfiddle.net/f2hxo9k6/
Radar WebKit Bug Importer
<rdar://problem/108283899>
Ahmad Saleem
This might be Not Applicable after Matt's changes and moving this function (slerp) to 'Quaternion.cpp' here:
https://github.com/WebKit/WebKit/blob/53dd791f052cd7ee77e99c492a0b480166fb12b0/Source/WebCore/platform/graphics/transforms/Quaternion.cpp#L36
@Matt - can we close this?
Matt Woodrow
I think we can close this, we should indeed have the changes already.