@@ -213,6 +213,7 @@ static CanvasShader() {
213
213
214
214
static readonly int _viewportId = Shader . PropertyToID ( "_viewport" ) ;
215
215
static readonly int _alphaId = Shader . PropertyToID ( "_alpha" ) ;
216
+ static readonly int _strokeMultId = Shader . PropertyToID ( "_strokeMult" ) ;
216
217
static readonly int _colorId = Shader . PropertyToID ( "_color" ) ;
217
218
static readonly int _shaderMatId = Shader . PropertyToID ( "_shaderMat" ) ;
218
219
static readonly int _shaderTexId = Shader . PropertyToID ( "_shaderTex" ) ;
@@ -258,13 +259,14 @@ static uiMatrix3 _getShaderMatBase(PictureFlusher.State state, uiMatrix3? meshMa
258
259
}
259
260
260
261
static void _getShaderPassAndProps (
261
- PictureFlusher . RenderLayer layer , uiPaint paint , uiMatrix3 ? meshMatrix , float alpha ,
262
+ PictureFlusher . RenderLayer layer , uiPaint paint , uiMatrix3 ? meshMatrix , float alpha , float strokeMult ,
262
263
out int pass , out MaterialPropertyBlockWrapper props ) {
263
264
Vector4 viewport = layer . viewport ;
264
265
265
266
props = ObjectPool < MaterialPropertyBlockWrapper > . alloc ( ) ;
266
267
props . SetVector ( _viewportId , viewport ) ;
267
268
props . SetFloat ( _alphaId , alpha ) ;
269
+ props . SetFloat ( _strokeMultId , strokeMult ) ;
268
270
269
271
switch ( paint . shader ) {
270
272
case null :
@@ -315,7 +317,7 @@ static void _getShaderPassAndProps(
315
317
public static PictureFlusher . CmdDraw convexFill ( PictureFlusher . RenderLayer layer , uiPaint paint ,
316
318
uiMeshMesh mesh ) {
317
319
var mat = _convexFillMat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
318
- _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , out var pass , out var props ) ;
320
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , 0.0f , out var pass , out var props ) ;
319
321
320
322
return PictureFlusher . CmdDraw . create (
321
323
mesh : mesh ,
@@ -344,7 +346,7 @@ public static PictureFlusher.CmdDraw fill0(PictureFlusher.RenderLayer layer, uiM
344
346
public static PictureFlusher . CmdDraw fill1 ( PictureFlusher . RenderLayer layer , uiPaint paint ,
345
347
uiMeshMesh mesh ) {
346
348
var mat = _fill1Mat . getMaterial ( paint . blendMode ) ;
347
- _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , out var pass , out var props ) ;
349
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , 0.0f , out var pass , out var props ) ;
348
350
349
351
var ret = PictureFlusher . CmdDraw . create (
350
352
mesh : mesh . boundsMesh ,
@@ -360,7 +362,7 @@ public static PictureFlusher.CmdDraw fill1(PictureFlusher.RenderLayer layer, uiP
360
362
public static PictureFlusher . CmdDraw stroke0 ( PictureFlusher . RenderLayer layer , uiPaint paint ,
361
363
float alpha , uiMeshMesh mesh ) {
362
364
var mat = _stroke0Mat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
363
- _getShaderPassAndProps ( layer , paint , mesh . matrix , alpha , out var pass , out var props ) ;
365
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , alpha , 0.0f , out var pass , out var props ) ;
364
366
365
367
return PictureFlusher . CmdDraw . create (
366
368
mesh : mesh ,
@@ -386,9 +388,9 @@ public static PictureFlusher.CmdDraw stroke1(PictureFlusher.RenderLayer layer, u
386
388
) ;
387
389
}
388
390
389
- public static PictureFlusher . CmdDraw strokeAlpha ( PictureFlusher . RenderLayer layer , uiPaint paint , float strokeMult , uiMeshMesh mesh ) {
391
+ public static PictureFlusher . CmdDraw strokeAlpha ( PictureFlusher . RenderLayer layer , uiPaint paint , float alpha , float strokeMult , uiMeshMesh mesh ) {
390
392
var mat = _strokeAlphaMat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
391
- _getShaderPassAndProps ( layer , paint , mesh . matrix , strokeMult , out var pass , out var props ) ;
393
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , alpha , strokeMult , out var pass , out var props ) ;
392
394
393
395
return PictureFlusher . CmdDraw . create (
394
396
mesh : mesh ,
@@ -450,7 +452,7 @@ public static PictureFlusher.CmdDraw stencil1(PictureFlusher.RenderLayer layer,
450
452
public static PictureFlusher . CmdDraw tex ( PictureFlusher . RenderLayer layer , uiPaint paint ,
451
453
uiMeshMesh mesh , Image image ) {
452
454
var mat = _texMat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
453
- _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , out var pass , out var props ) ;
455
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , 0.0f , out var pass , out var props ) ;
454
456
455
457
image . texture . filterMode = paint . filterMode ;
456
458
props . SetTexture ( _texId , image . texture ) ;
@@ -468,7 +470,7 @@ public static PictureFlusher.CmdDraw tex(PictureFlusher.RenderLayer layer, uiPai
468
470
public static PictureFlusher . CmdDraw texRT ( PictureFlusher . RenderLayer layer , uiPaint paint ,
469
471
uiMeshMesh mesh , PictureFlusher . RenderLayer renderLayer ) {
470
472
var mat = _texMat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
471
- _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , out var pass , out var props ) ;
473
+ _getShaderPassAndProps ( layer , paint , mesh . matrix , 1.0f , 0.0f , out var pass , out var props ) ;
472
474
props . SetInt ( _texModeId , 1 ) ; // pre alpha
473
475
474
476
return PictureFlusher . CmdDraw . create (
@@ -494,7 +496,7 @@ public static PictureFlusher.CmdDraw texAlpha(PictureFlusher.RenderLayer layer,
494
496
uiMeshMesh mesh , TextBlobMesh textMesh , Texture tex ) {
495
497
var mat = _texMat . getMaterial ( paint . blendMode , layer . ignoreClip ) ;
496
498
var meshMatrix = mesh != null ? mesh . matrix : textMesh . matrix ;
497
- _getShaderPassAndProps ( layer , paint , meshMatrix , 1.0f , out var pass , out var props ) ;
499
+ _getShaderPassAndProps ( layer , paint , meshMatrix , 1.0f , 0.0f , out var pass , out var props ) ;
498
500
tex . filterMode = paint . filterMode ;
499
501
props . SetTexture ( _texId , tex ) ;
500
502
props . SetInt ( _texModeId , 2 ) ; // alpha only
0 commit comments