Skip to content

Commit 29d1700

Browse files
authored
Merge pull request #6248 from remotion-dev/matrix-imprecision
2 parents 7b68f50 + b807ee1 commit 29d1700

23 files changed

+71
-18
lines changed

β€Žpackages/web-renderer/src/drawing/calculate-transforms.tsβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ export const calculateTransforms = ({
144144
throw new Error('Element computed style not found');
145145
}
146146

147-
const needs3DTransformViaWebGL = !totalMatrix.is2D;
147+
const needs3DTransformViaWebGL = !totalMatrix.isIdentity;
148148
const needsMaskImage = maskImageInfo !== null;
149149

150150
return {

β€Žpackages/web-renderer/src/drawing/process-node.tsβ€Ž

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,13 @@ export const processNode = async ({
124124
}
125125

126126
if (precompositing.needs3DTransformViaWebGL) {
127-
const t = handle3dTransform({
127+
drawable = handle3dTransform({
128128
matrix: totalMatrix,
129129
precomposeRect,
130130
tempCanvas: drawable,
131131
rectAfterTransforms,
132132
internalState,
133133
});
134-
if (t) {
135-
drawable = t;
136-
}
137134
}
138135

139136
const previousTransform = context.getTransform();
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {test} from 'vitest';
2+
import {page} from 'vitest/browser';
3+
import {renderStillOnWeb} from '../render-still-on-web';
4+
import '../symbol-dispose';
5+
import {threeDFlattening} from './fixtures/clipped';
6+
import {testImage} from './utils';
7+
8+
test('should not clip this example', async () => {
9+
await page.viewport(1080, 1080);
10+
const {blob} = await renderStillOnWeb({
11+
licenseKey: 'free-license',
12+
composition: threeDFlattening,
13+
frame: 0,
14+
inputProps: {},
15+
imageFormat: 'png',
16+
});
17+
18+
await testImage({blob, testId: '3d-flattening'});
19+
});

β€Žpackages/web-renderer/src/test/Root.tsxβ€Ž

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {borderRadiusNone} from './fixtures/border-radius-none';
1616
import {borderRadiusPercentage} from './fixtures/border-radius-percentage';
1717
import {borderRadiusSimple} from './fixtures/border-radius-simple';
1818
import {boxShadow} from './fixtures/box-shadow';
19+
import {threeDFlattening} from './fixtures/clipped';
1920
import {complexNestedSvg} from './fixtures/complex-nested-svg';
2021
import {deeplyNestedTransform} from './fixtures/deeply-nested-transform';
2122
import {displayNone} from './fixtures/display-none';
@@ -142,6 +143,7 @@ export const Root: React.FC = () => {
142143
<Composition {...flexContainer} />
143144
<Composition {...deeplyNestedTransform} />
144145
<Composition {...manyLayers} />
146+
<Composition {...threeDFlattening} />
145147
</Folder>
146148
</>
147149
);
9.14 KB
Loading
10.4 KB
Loading
8.06 KB
Loading
-71.3 KB
Loading
-5.08 KB
Loading
-62.8 KB
Loading

0 commit comments

Comments
Β (0)