Ejemplo n.º 1
0
        public void RenderDebug(IGameContext gameContext, IRenderContext renderContext, Agent agent, I2DRenderUtilities twoDRenderUtilities)
        {
            var wndPos = new Vector2(this.WanderDistance, 0);
            var wldPos = agent.Project(wndPos);

            for (var i = 0; i < 10; i++)
            {
                var r = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twoDRenderUtilities.RenderLine(
                    renderContext,
                    wldPos + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * this.WanderRadius),
                    wldPos + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * this.WanderRadius),
                    Color.Green);
            }

            wndPos = this.m_WanderTarget + new Vector2(this.WanderDistance, 0);
            wldPos = agent.Project(wndPos);

            for (var i = 0; i < 10; i++)
            {
                var r = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twoDRenderUtilities.RenderLine(
                    renderContext,
                    wldPos + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * 3),
                    wldPos + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * 3),
                    Color.Red);
            }
        }
Ejemplo n.º 2
0
        public void RenderDebug(IGameContext gameContext, IRenderContext renderContext, Agent agent, I2DRenderUtilities twoDRenderUtilities)
        {
            var wndPos = new Vector2(this.WanderDistance, 0);
            var wldPos = agent.Project(wndPos);

            for (var i = 0; i < 10; i++)
            {
                var r  = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twoDRenderUtilities.RenderLine(
                    renderContext,
                    wldPos + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * this.WanderRadius),
                    wldPos + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * this.WanderRadius),
                    Color.Green);
            }

            wndPos = this.m_WanderTarget + new Vector2(this.WanderDistance, 0);
            wldPos = agent.Project(wndPos);

            for (var i = 0; i < 10; i++)
            {
                var r  = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twoDRenderUtilities.RenderLine(
                    renderContext,
                    wldPos + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * 3),
                    wldPos + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * 3),
                    Color.Red);
            }
        }
Ejemplo n.º 3
0
        public void Render(IGameContext gameContext, IRenderContext renderContext, Rectangle rectangle)
        {
            var graphicsMetrics = renderContext.GraphicsDevice.Metrics;

            var metrics = new[]
            {
                new Tuple <string, ulong, ulong>("cc", (ulong)graphicsMetrics.ClearCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("psc", (ulong)graphicsMetrics.PixelShaderCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("dc", (ulong)graphicsMetrics.DrawCount, 200),
                new Tuple <string, ulong, ulong>("pc", (ulong)graphicsMetrics.PrimitiveCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("sc", (ulong)graphicsMetrics.SpriteCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("tgc", (ulong)graphicsMetrics.TargetCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("txc", (ulong)graphicsMetrics.TextureCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("vsc", (ulong)graphicsMetrics.VertexShaderCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("vbc", (ulong)_renderCache.VertexBuffersCached, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("ibc", (ulong)_renderCache.IndexBuffersCached, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("vbac", (ulong)_renderAutoCache.VertexBuffersCached, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("ibac", (ulong)_renderAutoCache.IndexBuffersCached, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("bch", _renderBatcher.LastBatchCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("apy", _renderBatcher.LastApplyCount, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("sav", _renderBatcher.LastBatchSaveCount, ulong.MaxValue),
                null,
                new Tuple <string, ulong, ulong>("pscr", ParameterSetsCreated, ulong.MaxValue),
                new Tuple <string, ulong, ulong>("rrcr", RenderRequestsCreated, ulong.MaxValue),
            };

            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X, rectangle.Y),
                new Vector2(rectangle.X, rectangle.Y + rectangle.Height - 1),
                Color.Green);
            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X + 1, rectangle.Y),
                new Vector2(rectangle.X + 1, rectangle.Y + rectangle.Height - 1),
                Color.Green);

            for (var i = 0; i < metrics.Length; i++)
            {
                var y = i / 4 * 20;
                var x = i % 4 * ((rectangle.Width - 10) / 4) + 5;

                if (metrics[i] == null)
                {
                    continue;
                }

                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(rectangle.X + x, rectangle.Y + y),
                    metrics[i].Item1 + ": " + metrics[i].Item2,
                    _defaultFont,
                    textColor: metrics[i].Item2 > metrics[i].Item3 ? Color.Red : Color.White,
                    renderShadow: false);
            }

            ParameterSetsCreated  = 0;
            RenderRequestsCreated = 0;
        }
Ejemplo n.º 4
0
        public void Render(IGameContext gameContext, IRenderContext renderContext, Rectangle rectangle)
        {
            var physicsMetrics = _physicsEngine.GetPhysicsMetrics();

            var metrics = new[]
            {
                new Tuple <string, ulong>("sio", (ulong)physicsMetrics.StaticImmovableObjects),
                new Tuple <string, ulong>("po", (ulong)physicsMetrics.PhysicsObjects),
                null,
                null,
                new Tuple <string, ulong>("fr", (ulong)(physicsMetrics.SyncFromPhysicsTime * 1000)),
                new Tuple <string, ulong>("st", (ulong)(physicsMetrics.PhysicsStepTime * 1000)),
                new Tuple <string, ulong>("to", (ulong)(physicsMetrics.SyncToPhysicsTime * 1000)),
            };

            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X, rectangle.Y),
                new Vector2(rectangle.X, rectangle.Y + rectangle.Height - 1),
                Color.Cyan);
            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X + 1, rectangle.Y),
                new Vector2(rectangle.X + 1, rectangle.Y + rectangle.Height - 1),
                Color.Cyan);

            for (var i = 0; i < metrics.Length; i++)
            {
                var y = i / 4 * 20;
                var x = i % 4 * ((rectangle.Width - 10) / 4) + 5;

                if (metrics[i] == null)
                {
                    continue;
                }

                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(rectangle.X + x, rectangle.Y + y),
                    metrics[i].Item1 + ": " + metrics[i].Item2,
                    _defaultFont,
                    renderShadow: false);
            }
        }
        public void Render(IGameContext gameContext, IRenderContext renderContext, Rectangle rectangle)
        {
            var metrics = new[]
            {
                new Tuple <string, ulong>("rn", (ulong)_hierachy.RootNodes.Count),
                new Tuple <string, ulong>("lco", (ulong)_hierachy.LookupCacheObjectCount)
            };

            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X, rectangle.Y),
                new Vector2(rectangle.X, rectangle.Y + rectangle.Height - 1),
                Color.Orange);
            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X + 1, rectangle.Y),
                new Vector2(rectangle.X + 1, rectangle.Y + rectangle.Height - 1),
                Color.Orange);

            for (var i = 0; i < metrics.Length; i++)
            {
                var y = i / 4 * 20;
                var x = i % 4 * ((rectangle.Width - 10) / 4) + 5;

                if (metrics[i] == null)
                {
                    continue;
                }

                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(rectangle.X + x, rectangle.Y + y),
                    metrics[i].Item1 + ": " + metrics[i].Item2,
                    _defaultFont,
                    renderShadow: false);
            }
        }
        public void Render(IRenderContext renderContext, Rectangle layout, HorizontalSpacedContainer horizontalContainer)
        {
            var children = horizontalContainer.ChildrenWithLayouts(layout).ToArray();

            for (var i = 0; i < children.Length; i++)
            {
                if (i < children.Length - 1)
                {
                    _renderUtilities.RenderLine(
                        renderContext,
                        new Vector2(children[i].Value.Right, children[i].Value.Y),
                        new Vector2(children[i].Value.Right, children[i].Value.Bottom),
                        new Color(0, 0, 0, 72));
                }
            }
        }
Ejemplo n.º 7
0
 public void DrawRaised(IRenderContext context, Rectangle layout)
 {
     _renderUtilities.RenderRectangle(context, layout, _basicSkin.SurfaceColor, true);
     _renderUtilities.RenderLine(
         context,
         new Vector2(layout.X, layout.Y + layout.Height - 1),
         new Vector2(layout.X + layout.Width, layout.Y + layout.Height - 1),
         _basicSkin.DarkEdgeColor);
     _renderUtilities.RenderLine(
         context,
         new Vector2(layout.X + layout.Width - 1, layout.Y),
         new Vector2(layout.X + layout.Width - 1, layout.Y + layout.Height),
         _basicSkin.DarkEdgeColor);
     _renderUtilities.RenderLine(
         context,
         new Vector2(layout.X, layout.Y),
         new Vector2(layout.X + layout.Width, layout.Y),
         _basicSkin.LightEdgeColor);
     _renderUtilities.RenderLine(
         context,
         new Vector2(layout.X, layout.Y),
         new Vector2(layout.X, layout.Y + layout.Height),
         _basicSkin.LightEdgeColor);
 }
Ejemplo n.º 8
0
            public void Render(IRenderContext renderContext, Rectangle rectangle)
            {
                var maxBytes  = _bytesOverTime.DefaultIfEmpty(0).Max();
                var maxCounts = _countsOverTime.DefaultIfEmpty(0).Max();

                RenderHeader(renderContext, rectangle, Type, 0, _bytesOverTime.DefaultIfEmpty(0).Last(), maxBytes, "b");
                RenderHeader(renderContext, rectangle, string.Empty, 16, _countsOverTime.DefaultIfEmpty(0).Last(), maxCounts, "#");

                if (maxBytes > 0)
                {
                    var a = 0;
                    for (var i = _bytesOverTime.Count - 1; i >= 0; i--)
                    {
                        _renderUtilities.RenderLine(
                            renderContext,
                            new Vector2(rectangle.X + rectangle.Width - a - 1, rectangle.Y + 56),
                            new Vector2(rectangle.X + rectangle.Width - a - 1,
                                        rectangle.Y + 56 - (int)((_bytesOverTime[i] / (float)maxBytes) * 20)),
                            _bytesOverTime[i] > 512 ? Color.Red : Color.Cyan);
                        a++;
                    }
                }
            }
Ejemplo n.º 9
0
        public void RenderDebug(IGameContext gameContext, IRenderContext renderContext, I2DRenderUtilities twodRenderUtilities)
        {
            for (var i = 0; i < 10; i++)
            {
                var r  = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twodRenderUtilities.RenderLine(
                    renderContext,
                    this.Position + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * 8f),
                    this.Position + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * 8f),
                    Color.Gray);
            }

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Project(new Vector2(0, 0)),
                this.Project(new Vector2(10, 0)),
                Color.OrangeRed);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.Heading * 10f),
                Color.Cyan);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.LastAccel * 10f),
                Color.Blue);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.Velocity * 10f),
                Color.Pink);

            foreach (var feeler in this.m_WallFeelers)
            {
                twodRenderUtilities.RenderLine(renderContext, this.Position, this.Project(feeler), Color.Orange);
            }

            this.AI.RenderDebug(gameContext, renderContext, this, twodRenderUtilities);
        }
Ejemplo n.º 10
0
        public void RenderDebug(IGameContext gameContext, IRenderContext renderContext, I2DRenderUtilities twodRenderUtilities)
        {
            for (var i = 0; i < 10; i++)
            {
                var r = MathHelper.ToRadians(36 * i);
                var r2 = MathHelper.ToRadians(36 * (i + 1));
                twodRenderUtilities.RenderLine(
                    renderContext,
                    this.Position + (new Vector2((float)Math.Sin(r), (float)Math.Cos(r)) * 8f),
                    this.Position + (new Vector2((float)Math.Sin(r2), (float)Math.Cos(r2)) * 8f),
                    Color.Gray);
            }

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Project(new Vector2(0, 0)),
                this.Project(new Vector2(10, 0)),
                Color.OrangeRed);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.Heading * 10f),
                Color.Cyan);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.LastAccel * 10f),
                Color.Blue);

            twodRenderUtilities.RenderLine(
                renderContext,
                this.Position,
                this.Position + (this.Velocity * 10f),
                Color.Pink);

            foreach (var feeler in this.m_WallFeelers)
            {
                twodRenderUtilities.RenderLine(renderContext, this.Position, this.Project(feeler), Color.Orange);
            }

            this.AI.RenderDebug(gameContext, renderContext, this, twodRenderUtilities);
        }
        public void Render(IGameContext gameContext, IRenderContext renderContext, Rectangle rectangle)
        {
#if PLATFORM_WINDOWS || PLATFORM_MACOS || PLATFORM_LINUX
            long gen0Value, gen1Value, gen2Value;
            if (_gen0PerformanceCounter == null)
            {
                gen0Value = 0;
            }
            else
            {
                var v = _gen0PerformanceCounter.RawValue;
                gen0Value      = v - _lastGen0Count;
                _lastGen0Count = v;
            }
            if (_gen1PerformanceCounter == null)
            {
                gen1Value = 0;
            }
            else
            {
                var v = _gen1PerformanceCounter.RawValue;
                gen1Value      = v - _lastGen1Count;
                _lastGen1Count = v;
            }
            if (_gen2PerformanceCounter == null)
            {
                gen2Value = 0;
            }
            else
            {
                var v = _gen2PerformanceCounter.RawValue;
                gen2Value      = v - _lastGen2Count;
                _lastGen2Count = v;
            }

            var metrics = new[]
            {
                new Tuple <string, ulong>("gen0", (ulong)gen0Value),
                new Tuple <string, ulong>("gen1", (ulong)gen1Value),
                new Tuple <string, ulong>("gen2", (ulong)gen2Value)
            };
#endif

            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X, rectangle.Y),
                new Vector2(rectangle.X, rectangle.Y + rectangle.Height - 1),
                Color.Red);
            _renderUtilities.RenderLine(
                renderContext,
                new Vector2(rectangle.X + 1, rectangle.Y),
                new Vector2(rectangle.X + 1, rectangle.Y + rectangle.Height - 1),
                Color.Red);

#if PLATFORM_WINDOWS || PLATFORM_MACOS || PLATFORM_LINUX
            for (var i = 0; i < metrics.Length; i++)
            {
                var y = i / 4 * 20;
                var x = i % 4 * ((rectangle.Width - 10) / 4) + 5;

                if (metrics[i] == null)
                {
                    continue;
                }

                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(rectangle.X + x, rectangle.Y + y),
                    metrics[i].Item1 + ": " + metrics[i].Item2,
                    _defaultFont);
            }
#else
            _renderUtilities.RenderText(
                renderContext,
                new Vector2(rectangle.X + 5, rectangle.Y),
                "GC stats not available",
                _defaultFont);
#endif
        }
Ejemplo n.º 12
0
        public void Render(IGameContext gameContext, IRenderContext renderContext, StringBuilder inputBuffer, ConsoleState state, List <Tuple <ConsoleLogLevel, string> > logEntries)
        {
            if (_fontAsset == null)
            {
                _fontAsset = _assetManager.Get <FontAsset>("font.Console");
            }

            if (renderContext.IsCurrentRenderPass <I3DRenderPass>())
            {
                return;
            }

            var h = 0;

            if (state == ConsoleState.Open || state == ConsoleState.OpenNoInput)
            {
                h = 300;
            }
            else if (state == ConsoleState.FullOpen || state == ConsoleState.FullOpenNoInput)
            {
                h = gameContext.Window.ClientBounds.Height;
            }

            _renderUtilities.RenderRectangle(
                renderContext,
                new Rectangle(0, 0, gameContext.Window.ClientBounds.Width, h),
                new Color(0, 0, 0, 210),
                true);
            _renderUtilities.RenderRectangle(
                renderContext,
                new Rectangle(0, 0, gameContext.Window.ClientBounds.Width - 1, h - 1),
                Color.White);

            var o = 16;

            if (state == ConsoleState.FullOpen || state == ConsoleState.Open)
            {
                _renderUtilities.RenderLine(
                    renderContext,
                    new Vector2(0, h - 16),
                    new Vector2(gameContext.Window.ClientBounds.Width, h - 16),
                    Color.White);
                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(2, h - 16),
                    inputBuffer.ToString(),
                    _fontAsset);
                o = 32;
            }

            var a = 0;

            for (var i = Math.Max(0, logEntries.Count - 30); i < logEntries.Count; i++)
            {
                var color = Color.White;
                switch (logEntries[logEntries.Count - i - 1].Item1)
                {
                case ConsoleLogLevel.Debug:
                    color = Color.White;
                    break;

                case ConsoleLogLevel.Info:
                    color = Color.Cyan;
                    break;

                case ConsoleLogLevel.Warning:
                    color = Color.Orange;
                    break;

                case ConsoleLogLevel.Error:
                    color = Color.Red;
                    break;
                }
                _renderUtilities.RenderText(
                    renderContext,
                    new Vector2(2, h - o - a * 16),
                    logEntries[logEntries.Count - i - 1].Item2,
                    _fontAsset,
                    textColor: color);
                a++;
            }
        }
 public void Render(IRenderContext renderContext, Rectangle layout, ToolbarContainer container)
 {
     _nuiRenderer.RenderToolbar(renderContext, new Rectangle(layout.X, layout.Y, layout.Width, 18));
     _renderUtilities.RenderLine(renderContext, new Vector2(layout.X, layout.Y + 17), new Vector2(layout.Right - 1, layout.Y + 17), new Color(0, 0, 0, 72));
 }
Ejemplo n.º 14
0
        public void Render(IRenderContext renderContext, Rectangle layout, ScrollableContainer scrollableContainer)
        {
            var vertAdjust = (scrollableContainer.NeedsVerticalScrollbar ? _skinLayout.VerticalScrollBarWidth : 0);
            var horAdjust  = (scrollableContainer.NeedsHorizontalScrollbar ? _skinLayout.HorizontalScrollBarHeight : 0);

            var layoutWidth  = layout.Width - vertAdjust;
            var layoutHeight = layout.Height - horAdjust;

            var layoutFullWidth  = layout.Width - _skinLayout.VerticalScrollBarWidth;
            var layoutFullHeight = layout.Height - _skinLayout.HorizontalScrollBarHeight;

            if (scrollableContainer.NeedsVerticalScrollbar)
            {
                var xPosition     = layout.X + layout.Width - _skinLayout.VerticalScrollBarWidth / 2 - 3;
                var yPosition     = layout.Y + _skinLayout.VerticalScrollBarWidth / 2 - 1;
                var lastYPosition = layout.Y + layout.Height - _skinLayout.VerticalScrollBarWidth / 2 - 3;

                _renderUtilities.RenderRectangle(
                    renderContext,
                    new Rectangle(
                        layout.X + layout.Width - _skinLayout.VerticalScrollBarWidth,
                        layout.Y,
                        _skinLayout.VerticalScrollBarWidth,
                        layout.Height),
                    new Color(208, 208, 208, 255),
                    true);
                _renderUtilities.RenderLine(
                    renderContext,
                    new Vector2(layout.X + layout.Width - _skinLayout.VerticalScrollBarWidth - 1, layout.Y),
                    new Vector2(layout.X + layout.Width - _skinLayout.VerticalScrollBarWidth - 1, layout.Y + layout.Height - 1),
                    new Color(182, 182, 182, 255));

                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, yPosition),
                    _scrollbarVerticalBackgroundTopTexture,
                    new Vector2(6, 3));
                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, yPosition + 3),
                    _scrollbarVerticalBackgroundTexture,
                    new Vector2(6, lastYPosition - (yPosition + 3)));
                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, lastYPosition),
                    _scrollbarVerticalBackgroundBottomTexture,
                    new Vector2(6, 3));

                var scrollbarOffset     = (int)(yPosition + scrollableContainer.ScrollY * (layoutFullHeight - layoutFullHeight / (float)scrollableContainer.ChildHeight * layoutFullHeight));
                var scrollbarLastOffset = scrollbarOffset + (int)(layoutFullHeight / (float)scrollableContainer.ChildHeight * layoutFullHeight);

                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, scrollbarOffset),
                    _scrollbarVerticalTopTexture,
                    new Vector2(6, 3));
                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, scrollbarOffset + 3),
                    _scrollbarVerticalTexture,
                    new Vector2(6, scrollbarLastOffset - (scrollbarOffset + 3)));
                _renderUtilities.RenderTexture(
                    renderContext,
                    new Vector2(xPosition, scrollbarLastOffset),
                    _scrollbarVerticalBottomTexture,
                    new Vector2(6, 3));
            }

            _renderUtilities.RenderTexture(
                renderContext,
                new Vector2(layout.X, layout.Y),
                scrollableContainer.ChildContent,
                new Vector2(layoutWidth, layoutHeight));
        }