Ejemplo n.º 1
0
        private void RenderText(TextComponent textComponent, IEntity entity)
        {
            if (string.IsNullOrWhiteSpace(textComponent.Text) || string.IsNullOrWhiteSpace(textComponent.Font) || textComponent.Size == 0)
            {
                return;
            }

            var textObject = new RenderableTextObject
            {
                Text        = textComponent.Text,
                FontPath    = textComponent.Font,
                Size        = textComponent.Size,
                Alignment   = textComponent.Alignment,
                Position    = textComponent.RelativePosition,
                Orientation = textComponent.Orientation,
                Color       = textComponent.Color
            };

            var position = entity.GetComponent <PositionComponent>();

            if (position != null)
            {
                textObject.Position += position.Position;
            }

            _textRenderer.RenderText(textObject);
        }
Ejemplo n.º 2
0
        public void RenderText_WhenMultipleLines_RendersCharacters()
        {
            var textObject = new RenderableTextObject
            {
                Text = "Hello world!\nHello again.", FontPath = "Something.ttf", Size = 10
            };

            var mockFont = new Mock <IFont>(MockBehavior.Strict);

            mockFont.Setup(_ => _.Load(It.IsAny <FreeTypeLibrary>(), It.IsAny <string>()));
            mockFont.Setup(_ => _.LoadTextureAtlas(It.IsAny <uint>())).Returns(CreateCharMap(textObject.Text));
            _mockFactory.Setup(_ => _.Create <IFont>()).Returns(mockFont.Object);
            _mockRenderer.Setup(_ => _.Submit(It.IsAny <Renderable2DObject>()));

            _target.RenderText(textObject);

            _mockRenderer.Verify(_ => _.Submit(It.IsAny <Renderable2DObject>()), Times.Exactly(24));
        }