Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
UICustomBlend.cs
Go to the documentation of this file.
1using UnityEngine;
2using UnityEngine.Rendering;
3
4namespace Applibot;
5
7{
8 public enum MyCustomBlendMode : byte
9 {
10 Normal,
12 Darken,
16 }
17
18 [SerializeField]
20
21 private readonly int _SrcFactor = Shader.PropertyToID("_SrcFactor");
22
23 private readonly int _DstFactor = Shader.PropertyToID("_DstFactor");
24
25 private readonly int _BlendOp = Shader.PropertyToID("_BlendOp");
26
27 protected override void UpdateMaterial(Material baseMaterial)
28 {
29 if (material == null)
30 {
31 material = new Material(Shader.Find("Applibot/UI/CustomBlend"));
32 material.hideFlags = HideFlags.HideAndDontSave;
33 }
34 material.enabledKeywords = new LocalKeyword[0];
35 switch (_blendMode)
36 {
37 case MyCustomBlendMode.Normal:
38 material.SetInt(_SrcFactor, 1);
39 material.SetInt(_DstFactor, 10);
40 material.SetInt(_BlendOp, 0);
41 break;
42 case MyCustomBlendMode.LinearDodge:
43 material.SetInt(_SrcFactor, 5);
44 material.SetInt(_DstFactor, 1);
45 material.SetInt(_BlendOp, 0);
46 break;
47 case MyCustomBlendMode.Multiply:
48 material.SetInt(_SrcFactor, 0);
49 material.SetInt(_DstFactor, 3);
50 material.SetInt(_BlendOp, 0);
51 break;
52 case MyCustomBlendMode.Darken:
53 material.SetInt(_SrcFactor, 1);
54 material.SetInt(_DstFactor, 1);
55 material.SetInt(_BlendOp, 3);
56 break;
57 case MyCustomBlendMode.Subtract:
58 material.SetInt(_SrcFactor, 1);
59 material.SetInt(_DstFactor, 1);
60 material.SetInt(_BlendOp, 2);
61 break;
62 case MyCustomBlendMode.Lighten:
63 material.SetInt(_SrcFactor, 1);
64 material.SetInt(_DstFactor, 1);
65 material.SetInt(_BlendOp, 4);
66 break;
67 }
68 material.EnableKeyword(_blendMode.ToString());
69 }
70}
readonly int _DstFactor
override void UpdateMaterial(Material baseMaterial)
MyCustomBlendMode _blendMode
readonly int _SrcFactor