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); }
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)); }