File tree Expand file tree Collapse file tree 2 files changed +14
-8
lines changed Expand file tree Collapse file tree 2 files changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -524,11 +524,11 @@ addState(
524524 switch ( buffer [ k ++ ] ) {
525525 case DrawOPS . moveTo :
526526 case DrawOPS . lineTo :
527- Util . applyTransform ( buffer . subarray ( k ) , transform ) ;
527+ Util . applyTransformToBuffer ( buffer , k , transform ) ;
528528 k += 2 ;
529529 break ;
530530 case DrawOPS . curveTo :
531- Util . applyTransformToBezier ( buffer . subarray ( k ) , transform ) ;
531+ Util . applyTransformToBezierBuffer ( buffer , k , transform ) ;
532532 k += 6 ;
533533 break ;
534534 }
Original file line number Diff line number Diff line change @@ -737,19 +737,25 @@ class Util {
737737 p [ 1 ] = p0 * m [ 1 ] + p1 * m [ 3 ] + m [ 5 ] ;
738738 }
739739
740- // For 2d affine transforms
741- static applyTransformToBezier ( p , transform ) {
740+ static applyTransformToBuffer ( buffer , pos , m ) {
741+ const p0 = buffer [ pos ] ;
742+ const p1 = buffer [ pos + 1 ] ;
743+ buffer [ pos ] = p0 * m [ 0 ] + p1 * m [ 2 ] + m [ 4 ] ;
744+ buffer [ pos + 1 ] = p0 * m [ 1 ] + p1 * m [ 3 ] + m [ 5 ] ;
745+ }
746+
747+ static applyTransformToBezierBuffer ( buffer , pos , transform ) {
742748 const m0 = transform [ 0 ] ;
743749 const m1 = transform [ 1 ] ;
744750 const m2 = transform [ 2 ] ;
745751 const m3 = transform [ 3 ] ;
746752 const m4 = transform [ 4 ] ;
747753 const m5 = transform [ 5 ] ;
748754 for ( let i = 0 ; i < 6 ; i += 2 ) {
749- const pI = p [ i ] ;
750- const pI1 = p [ i + 1 ] ;
751- p [ i ] = pI * m0 + pI1 * m2 + m4 ;
752- p [ i + 1 ] = pI * m1 + pI1 * m3 + m5 ;
755+ const pI = buffer [ pos + i ] ;
756+ const pI1 = buffer [ pos + i + 1 ] ;
757+ buffer [ pos + i ] = pI * m0 + pI1 * m2 + m4 ;
758+ buffer [ pos + i + 1 ] = pI * m1 + pI1 * m3 + m5 ;
753759 }
754760 }
755761
You can’t perform that action at this time.
0 commit comments