@@ -391,7 +391,7 @@ bool _mustRenderClip(uint clipGenId, uiRect clipBounds) {
391
391
RenderLayer _createMaskLayer ( RenderLayer parentLayer , uiRect maskBounds ,
392
392
_drawPathDrawMeshCallbackDelegate drawCallback ,
393
393
uiPaint paint , bool convex , float alpha , Texture tex , uiRect texBound , TextBlobMesh textMesh ,
394
- uiMeshMesh mesh , bool notEmoji ) {
394
+ uiMeshMesh fillMesh , uiMeshMesh strokeMesh , bool notEmoji ) {
395
395
var textureWidth = Mathf . CeilToInt ( maskBounds . width * this . _devicePixelRatio ) ;
396
396
if ( textureWidth < 1 ) {
397
397
textureWidth = 1 ;
@@ -419,7 +419,7 @@ RenderLayer _createMaskLayer(RenderLayer parentLayer, uiRect maskBounds,
419
419
var maskState = maskLayer . states [ maskLayer . states . Count - 1 ] ;
420
420
maskState . matrix = parentState . matrix ;
421
421
422
- drawCallback . Invoke ( uiPaint . shapeOnly ( paint ) , mesh , null , convex , alpha , tex , texBound , textMesh , notEmoji ) ;
422
+ drawCallback . Invoke ( uiPaint . shapeOnly ( paint ) , fillMesh , strokeMesh , convex , alpha , tex , texBound , textMesh , notEmoji ) ;
423
423
424
424
var removed = this . _layers . removeLast ( ) ;
425
425
D . assert ( removed == maskLayer ) ;
@@ -481,7 +481,7 @@ RenderLayer _createBlurLayer(RenderLayer maskLayer, float sigmaX, float sigmaY,
481
481
}
482
482
483
483
void _drawWithMaskFilter ( uiRect meshBounds , uiPaint paint , uiMaskFilter maskFilter ,
484
- uiMeshMesh mesh , bool convex , float alpha , Texture tex , uiRect texBound , TextBlobMesh textMesh , bool notEmoji ,
484
+ uiMeshMesh fillMesh , uiMeshMesh strokeMesh , bool convex , float alpha , Texture tex , uiRect texBound , TextBlobMesh textMesh , bool notEmoji ,
485
485
_drawPathDrawMeshCallbackDelegate drawCallback ) {
486
486
var layer = this . _currentLayer ;
487
487
var clipBounds = layer . layerBounds ;
@@ -495,27 +495,27 @@ void _drawWithMaskFilter(uiRect meshBounds, uiPaint paint, uiMaskFilter maskFilt
495
495
}
496
496
497
497
if ( clipBounds . isEmpty ) {
498
- this . _drawPathDrawMeshQuit ( mesh , textMesh ) ;
498
+ this . _drawPathDrawMeshQuit ( fillMesh , strokeMesh , textMesh ) ;
499
499
return ;
500
500
}
501
501
502
502
var state = layer . currentState ;
503
503
float sigma = state . scale * maskFilter . sigma ;
504
504
if ( sigma <= 0 ) {
505
- this . _drawPathDrawMeshQuit ( mesh , textMesh ) ;
505
+ this . _drawPathDrawMeshQuit ( fillMesh , strokeMesh , textMesh ) ;
506
506
return ;
507
507
}
508
508
509
509
float sigma3 = 3 * sigma ;
510
510
var maskBounds = uiRectHelper . inflate ( meshBounds , sigma3 ) ;
511
511
maskBounds = uiRectHelper . intersect ( maskBounds , uiRectHelper . inflate ( clipBounds , sigma3 ) ) ;
512
512
if ( maskBounds . isEmpty ) {
513
- this . _drawPathDrawMeshQuit ( mesh , textMesh ) ;
513
+ this . _drawPathDrawMeshQuit ( fillMesh , strokeMesh , textMesh ) ;
514
514
return ;
515
515
}
516
516
517
517
var maskLayer = this . _createMaskLayer ( layer , maskBounds , drawCallback , paint , convex , alpha , tex , texBound ,
518
- textMesh , mesh , notEmoji ) ;
518
+ textMesh , fillMesh , strokeMesh , notEmoji ) ;
519
519
520
520
var blurLayer = this . _createBlurLayer ( maskLayer , sigma , sigma , layer ) ;
521
521
@@ -591,8 +591,9 @@ void _drawTextDrawMeshCallback(uiPaint p, uiMeshMesh fillMesh, uiMeshMesh stroke
591
591
}
592
592
}
593
593
594
- void _drawPathDrawMeshQuit ( uiMeshMesh mesh , TextBlobMesh textMesh ) {
595
- ObjectPool < uiMeshMesh > . release ( mesh ) ;
594
+ void _drawPathDrawMeshQuit ( uiMeshMesh fillMesh , uiMeshMesh strokeMesh , TextBlobMesh textMesh ) {
595
+ ObjectPool < uiMeshMesh > . release ( fillMesh ) ;
596
+ ObjectPool < uiMeshMesh > . release ( strokeMesh ) ;
596
597
ObjectPool < TextBlobMesh > . release ( textMesh ) ;
597
598
}
598
599
@@ -611,7 +612,7 @@ void _drawPath(uiPath path, uiPaint paint) {
611
612
var smesh = strokeMesh ? . transform ( state . matrix ) ;
612
613
613
614
if ( paint . maskFilter != null && paint . maskFilter . Value . sigma != 0 ) {
614
- this . _drawWithMaskFilter ( fmesh . bounds , paint , paint . maskFilter . Value , fmesh , convex , 0 , null ,
615
+ this . _drawWithMaskFilter ( fmesh . bounds , paint , paint . maskFilter . Value , fmesh , smesh , convex , 0 , null ,
615
616
uiRectHelper . zero , null , false , this . ___drawPathDrawMeshCallback ) ;
616
617
return ;
617
618
}
@@ -646,7 +647,7 @@ void _drawPath(uiPath path, uiPaint paint) {
646
647
var mesh = strokeMesh . transform ( state . matrix ) ;
647
648
648
649
if ( paint . maskFilter != null && paint . maskFilter . Value . sigma != 0 ) {
649
- this . _drawWithMaskFilter ( mesh . bounds , paint , paint . maskFilter . Value , mesh , false , alpha , null ,
650
+ this . _drawWithMaskFilter ( mesh . bounds , paint , paint . maskFilter . Value , null , mesh , false , alpha , null ,
650
651
uiRectHelper . zero , null , false , this . ___drawPathDrawMeshCallback2 ) ;
651
652
return ;
652
653
}
@@ -961,7 +962,7 @@ void _drawTextBlob(TextBlob textBlob, uiOffset offset, uiPaint paint) {
961
962
}
962
963
963
964
if ( paint . maskFilter != null && paint . maskFilter . Value . sigma != 0 ) {
964
- this . _drawWithMaskFilter ( textBlobBounds , paint , paint . maskFilter . Value , null , false , 0 , tex ,
965
+ this . _drawWithMaskFilter ( textBlobBounds , paint , paint . maskFilter . Value , null , null , false , 0 , tex ,
965
966
textBlobBounds , mesh , notEmoji , this . ___drawTextDrawMeshCallback ) ;
966
967
return ;
967
968
}
0 commit comments