/// <summary> /// Initializes a new instance of the <see cref="DebugDrawingLayer"/> class. /// </summary> public DebugDrawingLayer() { m_textFormat = new TextFormatResource("Arial", 30f); m_textFormat.TextAlignment = TextAlignment.Center; m_textFormat.ParagraphAlignment = ParagraphAlignment.Center; m_solidBrushBackground = new SolidBrushResource(Color4.LightGray.ChangeAlphaTo(0.8f)); m_solidBrushForeground = new SolidBrushResource(Color4.RedColor); }
/// <summary> /// Draws the given text on the screen. /// </summary> /// <param name="textToDraw">The text to draw.</param> /// <param name="textFormat">The TextFormat to be used.</param> /// <param name="targetRectangle">The target rectangle.</param> /// <param name="brush">The brush.</param> /// <param name="drawOptions">Some draw options to be passed to Direct2D.</param> /// <param name="measuringMode">Sets the measuring mode to be passed to Direct2D.</param> public void DrawText( string textToDraw, TextFormatResource textFormat, RectangleF targetRectangle, BrushResource brush, DrawTextOptions drawOptions = DrawTextOptions.None, MeasuringMode measuringMode = MeasuringMode.Natural) { if (m_renderTarget == null) { return; } textToDraw.EnsureNotNull(nameof(textToDraw)); targetRectangle.EnsureNotEmpty(nameof(targetRectangle)); brush.EnsureNotNull(nameof(brush)); D2D.DrawTextOptions drawOptionsD2D = (D2D.DrawTextOptions)drawOptions; D2D.MeasuringMode measuringModeD2D = (D2D.MeasuringMode)measuringMode; m_renderTarget.DrawText( textToDraw, textFormat.GetTextFormat(m_device), targetRectangle.ToDXRectangle(), brush.GetBrush(m_device), drawOptionsD2D); }