public override void Draw() { if (CompositeAlpha <= 0f) { return; } if (hasRenderTexture && SmartUI.isRepaint && !forceStandardDraw) { // setup for render texture draw var dp = (CacheMode == CacheMode.Solid) ? DrawParameters.NoAlpha : DrawParameters.Default; dp.Transform = CompositeColorTransform; if (repaintedTextureThisFrame && Settings.Advanced.ShowCacheRenders) { dp = new DrawParameters(ColorTransform.TintAndMultiply(Color.red, Color.gray)); } if (CompositeAlpha < 1f) { var colorOffset = dp.Transform.ColorOffset; colorOffset[3] = ((1f - colorOffset[3]) * CompositeAlpha) - 1f; dp.Transform.ColorOffset = colorOffset; dp.AlphaBlend = true; } SmartUI.Draw(Bounds, compositeRenderTexture, new Rect(0, 0, compositeRenderTexture.width, compositeRenderTexture.height), dp); } else { if (hasBackgroundChildren) { SmartUI.BeginGroup(Bounds, false); DrawChildren(-1); SmartUI.EndGroup(); } base.Draw(); } }