Пример #1
0
 /// <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);
 }
Пример #2
0
        /// <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);
        }