mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix skewX on Android and in the JS decomposition (#28862)
Summary: This issue fixes https://github.com/facebook/react-native/issues/27649. By using 2d decomposition that transforms a skewX into a rotate/scale/rotate, the skewX issue on Android was still there which made me suspect that the issue came from the decomposition algorithm. Then I noticed that the bug existed in the JavaScript decomposition as well which led me to a fix on the JS and therefore on the Android side most likely. ## Changelog [Android] [Fixed] skewX transforms Pull Request resolved: https://github.com/facebook/react-native/pull/28862 Test Plan: Check that skewX works on Android. On JS, making sure that processTransform() doesn't skip, you can try the following sequence: ```tsx const matrix = processTransform([{ skewX: `${Math.PI / 3}rad` }]); const result = MatrixMath.decomposeMatrix(matrix); console.log({ result }); ``` Differential Revision: D21493021 Pulled By: shergin fbshipit-source-id: 89f7aca5fbfd0f0f8c6f90a26bd76bf8550acaa5
This commit is contained in:
committed by
Facebook GitHub Bot
parent
4b956fe5a6
commit
797367c089
@@ -169,10 +169,6 @@ public class MatrixMathHelper {
|
||||
skew[0] = v3Dot(row[0], row[1]);
|
||||
row[1] = v3Combine(row[1], row[0], 1.0, -skew[0]);
|
||||
|
||||
// Compute XY shear factor and make 2nd row orthogonal to 1st.
|
||||
skew[0] = v3Dot(row[0], row[1]);
|
||||
row[1] = v3Combine(row[1], row[0], 1.0, -skew[0]);
|
||||
|
||||
// Now, compute Y scale and normalize 2nd row.
|
||||
scale[1] = v3Length(row[1]);
|
||||
row[1] = v3Normalize(row[1], scale[1]);
|
||||
|
||||
Reference in New Issue
Block a user