Beispiel #1
0
        public override void Load()
        {
            base.Load();

            uiSystem.ResolutionChanged += UISystemOnResolutionChanged;

            renderingContext = new UIRenderingContext
            {
                DepthStencilBuffer = GraphicsDevice.DepthStencilBuffer,
                RenderTarget       = GraphicsDevice.BackBuffer,
            };
        }
        public override void RenderColor(UIElement element, UIRenderingContext context)
        {
            base.RenderColor(element, context);

            var button = (ButtonExt)element;
            var sprite = button.ButtonImage;

            if (sprite?.Texture == null)
            {
                return;
            }

            var color = element.RenderOpacity * Color.White;

            // Note: the original ButtonRenderer code uses internal fields (to avoid copying structs)
            // We don't expect too many UI, so this shouldn't be a big performance hit
            var elemWorldMatrix = element.WorldMatrix;
            var elemRenderSize  = element.RenderSize;
            var spriteRegion    = sprite.Region;
            var spriteBorder    = sprite.Borders;

            Batch.DrawImage(sprite.Texture, ref elemWorldMatrix, ref spriteRegion, ref elemRenderSize, ref spriteBorder, ref color, context.DepthBias, sprite.Orientation);
        }