Example #1
0
        /// <summary>
        /// Invalidates draw matrix and autosize caches.
        /// </summary>
        /// <returns>If the invalidate was actually necessary.</returns>
        public virtual bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if (invalidation == Invalidation.None)
            {
                return(false);
            }

            OnInvalidate?.Invoke();

            if (shallPropagate && Parent != null && source != Parent)
            {
                Parent.InvalidateFromChild(invalidation, this);
            }

            bool alreadyInvalidated = true;

            // Either ScreenSize OR ScreenPosition OR Colour
            if ((invalidation & (Invalidation.Geometry | Invalidation.Colour)) > 0)
            {
                if ((invalidation & Invalidation.SizeInParentSpace) > 0)
                {
                    alreadyInvalidated &= !boundingSizeBacking.Invalidate();
                }

                alreadyInvalidated &= !screenSpaceDrawQuadBacking.Invalidate();
                alreadyInvalidated &= !drawInfoBacking.Invalidate();
            }

            if (!alreadyInvalidated || (invalidation & Invalidation.DrawNode) > 0)
            {
                invalidationID = invalidationCounter.Increment();
            }

            return(!alreadyInvalidated);
        }
Example #2
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if (!base.Invalidate(invalidation, source, shallPropagate))
            {
                return(false);
            }

            if (shallPropagate)
            {
                foreach (var c in children)
                {
                    Debug.Assert(c != source);

                    Invalidation childInvalidation = invalidation;
                    if (c.RelativeSizeAxes == Axes.None)
                    {
                        childInvalidation = childInvalidation & ~Invalidation.SizeInParentSpace;
                    }

                    c.Invalidate(childInvalidation, this);
                }
            }

            return(true);
        }
 protected override Invalidation InvalidationEffectByChildren(Invalidation childInvalidation)
 {
     if ((childInvalidation & (Invalidation.Visibility | Invalidation.Position | Invalidation.SizeInParentSpace)) > 0)
     {
         return(Invalidation.Position | Invalidation.SizeInParentSpace);
     }
     return(base.InvalidationEffectByChildren(childInvalidation));
 }
Example #4
0
 public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
 {
     if ((invalidation & Invalidation.SizeInParentSpace) > 0)
     {
         layout.Invalidate();
     }
     return(base.Invalidate(invalidation, source, shallPropagate));
 }
Example #5
0
 public override void InvalidateFromChild(Invalidation invalidation)
 {
     if ((invalidation & Invalidation.RequiredParentSizeToFit) > 0)
     {
         menuWidth.Invalidate();
     }
     base.InvalidateFromChild(invalidation);
 }
Example #6
0
 public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
 {
     if ((invalidation & Invalidation.Colour) > 0 && Shadow)
     {
         layout.Invalidate();
     }
     return(base.Invalidate(invalidation, source, shallPropagate));
 }
        /// <summary>
        /// Creates a new <see cref="InvalidationList"/>.
        /// </summary>
        /// <param name="initialState">The initial invalidation state.</param>
        public InvalidationList(Invalidation initialState)
        {
            this = default;

            invalidate(ref selfInvalidation, initialState);
            invalidate(ref parentInvalidation, initialState);
            invalidate(ref childInvalidation, initialState);
        }
Example #8
0
 public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
 {
     if ((invalidation & Invalidation.DrawSize) != 0)
     {
         applyPath();
     }
     return(base.Invalidate(invalidation, source, shallPropagate));
 }
Example #9
0
 public override void InvalidateFromChild(Invalidation invalidation, Drawable source = null)
 {
     if ((invalidation & Invalidation.RequiredParentSizeToFit) > 0)
     {
         sizeCache.Invalidate();
     }
     base.InvalidateFromChild(invalidation, source);
 }
Example #10
0
 public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
 {
     if ((invalidation & Invalidation.Colour) > 0 && Shadow)
     {
         internalSize.Invalidate(); //we may need to recompute the shadow alpha if our text colour has changed (see shadowAlpha).
     }
     return(base.Invalidate(invalidation, source, shallPropagate));
 }
Example #11
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if ((invalidation & (Invalidation.ScreenSpaceQuad | Invalidation.Visibility)) > 0)
            {
                layout.Invalidate();
            }

            return(base.Invalidate(invalidation, source, shallPropagate));
        }
Example #12
0
        public override void InvalidateFromChild(Invalidation invalidation, IDrawable source)
        {
            if ((invalidation & Invalidation.SizeInParentSpace) > 0)
            {
                layout.Invalidate();
            }

            base.InvalidateFromChild(invalidation, source);
        }
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if (invalidation.HasFlag(Invalidation.Parent))
            {
                PaddingCache.Invalidate();
            }

            return(base.Invalidate(invalidation, source, shallPropagate));
        }
Example #14
0
            public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
            {
                if ((invalidation & Invalidation.DrawSize) > 0)
                {
                    flashlightProperties.Invalidate();
                }

                return(base.Invalidate(invalidation, source, shallPropagate));
            }
Example #15
0
            public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
            {
                t1.Text = (Padding.Top > 0 ? $"p{Padding.Top}" : string.Empty) + (Margin.Top > 0 ? $"m{Margin.Top}" : string.Empty);
                t2.Text = (Padding.Right > 0 ? $"p{Padding.Right}" : string.Empty) + (Margin.Right > 0 ? $"m{Margin.Right}" : string.Empty);
                t3.Text = (Padding.Bottom > 0 ? $"p{Padding.Bottom}" : string.Empty) + (Margin.Bottom > 0 ? $"m{Margin.Bottom}" : string.Empty);
                t4.Text = (Padding.Left > 0 ? $"p{Padding.Left}" : string.Empty) + (Margin.Left > 0 ? $"m{Margin.Left}" : string.Empty);

                return(base.Invalidate(invalidation, source, shallPropagate));
            }
Example #16
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if ((invalidation & Invalidation.DrawSize) != 0)
            {
                graph.Height = DrawHeight - padding * 2 - primary_textsize - secondary_textsize * 2;
            }

            return(base.Invalidate(invalidation, source, shallPropagate));
        }
Example #17
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if ((invalidation & Invalidation.DrawSize) > 0)
            {
                subtractionCache.Invalidate();
            }

            return(base.Invalidate(invalidation, source, shallPropagate));
        }
Example #18
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if ((invalidation & (Invalidation.RequiredParentSizeToFit | Invalidation.DrawInfo)) > 0)
            {
                initialStateCache.Invalidate();
            }

            return(base.Invalidate(invalidation, source, shallPropagate));
        }
Example #19
0
        protected override bool OnInvalidate(Invalidation invalidation, InvalidationSource source)
        {
            if (invalidation.HasFlagFast(Invalidation.DrawSize))
            {
                headerTextVisibilityCache.Invalidate();
            }

            return(base.OnInvalidate(invalidation, source));
        }
Example #20
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if (!base.Invalidate(invalidation, source, shallPropagate))
            {
                return(false);
            }

            return(true);
        }
        private bool invalidate(ref Invalidation target, Invalidation flags)
        {
            if ((target & flags) == flags)
            {
                return(false);
            }

            target |= Trim(flags);
            return(true);
        }
        private bool validate(ref Invalidation target, Invalidation flags)
        {
            if ((target & flags) == 0)
            {
                return(false);
            }

            target &= ~flags;
            return(true);
        }
Example #23
0
        public override void InvalidateFromChild(Invalidation invalidation)
        {
            //Colour captures potential changes in IsPresent. If this ever becomes a bottleneck,
            //Invalidation could be further separated into presence changes.
            if ((invalidation & (Invalidation.RequiredParentSizeToFit | Invalidation.Colour)) > 0)
            {
                InvalidateLayout();
            }

            base.InvalidateFromChild(invalidation);
        }
Example #24
0
            protected override bool OnInvalidate(Invalidation invalidation, InvalidationSource source)
            {
                Sprite.X        = Sprite.Y = /*outb + inb +*/ DrawWidth / 2 - Sprite.Width / 2;
                DarkBorderBox.X = DarkBorderBox.Y = OutBorder;

                DarkBorderBox.Width = DarkBorderBox.Height = BackgroundBox.DrawWidth - (OutBorder * 2);
                // Sprite.Width = Sprite.Height = DarkBorderBox.DrawWidth - (inb * 2);
                Width = Height = Sprite.Width + (OutBorder + InBorder) * 2;

                return(base.OnInvalidate(invalidation, source));
            }
Example #25
0
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if ((invalidation & Invalidation.SizeInParentSpace) > 0)
            {
                autoSize.Invalidate();
            }

            bool alreadyInvalidated = base.Invalidate(invalidation, source, shallPropagate);

            return(!alreadyInvalidated);
        }
Example #26
0
        public void Add(string order_id)
        {
            if (this.orders == null)
            {
                this.orders = new List <Invalidation>();
            }
            var invalidation = new Invalidation();

            invalidation.order_id = order_id;
            this.orders.Add(invalidation);
        }
Example #27
0
            protected override bool OnInvalidate(Invalidation invalidation, InvalidationSource source)
            {
                base.OnInvalidate(invalidation, source);

                t1.Text = (Padding.Top > 0 ? $"p{Padding.Top}" : string.Empty) + (Margin.Top > 0 ? $"m{Margin.Top}" : string.Empty);
                t2.Text = (Padding.Right > 0 ? $"p{Padding.Right}" : string.Empty) + (Margin.Right > 0 ? $"m{Margin.Right}" : string.Empty);
                t3.Text = (Padding.Bottom > 0 ? $"p{Padding.Bottom}" : string.Empty) + (Margin.Bottom > 0 ? $"m{Margin.Bottom}" : string.Empty);
                t4.Text = (Padding.Left > 0 ? $"p{Padding.Left}" : string.Empty) + (Margin.Left > 0 ? $"m{Margin.Left}" : string.Empty);

                return(true);
            }
Example #28
0
 protected override Invalidation InvalidationEffectByChildren(Invalidation childInvalidation)
 {
     if ((childInvalidation & (Invalidation.Visibility | Invalidation.ScreenSpaceQuad)) > 0)
     {
         return(Invalidation.ScreenSpaceQuad);
     }
     else
     {
         return(base.InvalidationEffectByChildren(childInvalidation));
     }
 }
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            var result = base.Invalidate(invalidation, source, shallPropagate);

            if ((invalidation & Invalidation.RequiredParentSizeToFit) > 0)
            {
                cancelGeneration();
            }

            return(result);
        }
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            bool result = base.Invalidate(invalidation, source, shallPropagate);

            if ((invalidation & (Invalidation.DrawInfo | Invalidation.RequiredParentSizeToFit)) > 0)
            {
                cornerRadius.Invalidate();
            }

            return(result);
        }
Example #31
0
File: OsuGame.cs Project: yheno/osu
        public override bool Invalidate(Invalidation invalidation = Invalidation.All, Drawable source = null, bool shallPropagate = true)
        {
            if (!base.Invalidate(invalidation, source, shallPropagate)) return false;

            if (Parent != null)
            {
                Config.Set(OsuConfig.Width, DrawSize.X);
                Config.Set(OsuConfig.Height, DrawSize.Y);
            }
            return true;
        }
 public SlideshowInvalidator(IInvalidator innerInvalidator, Invalidation invalidationCallback)
 {
     this.innerInvalidator = innerInvalidator;
     this.invalidationCallback = invalidationCallback;
 }