Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pX"></param>
        /// <param name="pY"></param>
        /// <param name="pRadius"></param>
        /// <param name="pColor"></param>
        public override void DrawCircle(float pX, float pY, float pRadius, float pWidth, bool pDashed, Maths.Color4 pColor)
        {
            SolidColorBrush brush = new SolidColorBrush(mRenderTarget2D, pColor.ToSDX());

            SharpDX.Vector2   start     = GetScreenCoords(pX, pY).ToSDX();
            SMX.Maths.Vector2 radScreen = GetScreenCoords(pRadius, pRadius);

            if (pDashed)
            {
                StrokeStyleProperties props = new StrokeStyleProperties();
                props.DashCap    = CapStyle.Flat;
                props.EndCap     = CapStyle.Flat;
                props.StartCap   = CapStyle.Flat;
                props.DashOffset = 0;
                props.DashStyle  = DashStyle.Dash;
                props.LineJoin   = LineJoin.Round;
                SharpDX.Direct2D1.StrokeStyle strokeStyle = new StrokeStyle(mFactory2D, props);
                mRenderTarget2D.DrawEllipse(new Ellipse(start, radScreen.X, radScreen.X), brush, pWidth, strokeStyle);
            }
            else
            {
                mRenderTarget2D.DrawEllipse(new Ellipse(start, radScreen.X, radScreen.X), brush, pWidth);
            }
        }
Пример #2
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="pText"></param>
        ///// <param name="pSize"></param>
        ///// <returns></returns>
        //public override SMX.Maths.Vector2 MeasureText(string pText, eTextSize pSize, float pMaxWidth = 99999, float pMaxHeight = 99999)
        //{
        //    SharpDX.DirectWrite.TextLayout layout = new SharpDX.DirectWrite.TextLayout(mFactoryDWrite, pText, mTextFormats[pSize], pMaxWidth, pMaxHeight);
        //    try
        //    {
        //        return new SMX.Maths.Vector2(layout.Metrics.Width, layout.Metrics.Height);
        //    }
        //    finally
        //    {
        //        if (layout != null)
        //            layout.Dispose();
        //    }
        //}
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="pText"></param>
        ///// <param name="pSize"></param>
        ///// <returns></returns>
        //public override SMX.Maths.Vector2 MeasureText(string[] pText, eTextSize pSize, float pLineMargin = 5, float pMaxWidth = 99999, float pMaxHeight = 99999)
        //{
        //    float maxWidth = float.MinValue, height = 0;
        //    foreach (string str in pText)
        //    {
        //        SharpDX.DirectWrite.TextLayout layout = new SharpDX.DirectWrite.TextLayout(mFactoryDWrite, str, mTextFormats[pSize], pMaxWidth, pMaxHeight);
        //        try
        //        {
        //            maxWidth = Math.Max(maxWidth, layout.Metrics.Width);
        //            height += layout.Metrics.Height + pLineMargin;
        //        }
        //        finally
        //        {
        //            if (layout != null)
        //                layout.Dispose();
        //        }
        //    }

        //    return new SMX.Maths.Vector2(maxWidth, height);
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="pX"></param>
        /// <param name="pY"></param>
        /// <param name="pWidth"></param>
        /// <param name="pHeight"></param>
        /// <param name="pColor"></param>
        public override void FillRectangle(float pX, float pY, float pWidth, float pHeight, SMX.Maths.Color4 pColor)
        {
            Brush brush = new SolidColorBrush(mRenderTarget2D, pColor.ToSDX());

            mRenderTarget2D.FillRectangle(GetScreenCoords(pX, pY, pWidth, pHeight).ToSDXRectangleF(), brush);
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pText"></param>
        /// <param name="pSize"></param>
        /// <param name="pX"></param>
        /// <param name="pY"></param>
        /// <param name="pColor"></param>
        public override void DrawText(string pText, eTextSize pSize, int pX, int pY, SMX.Maths.Color4 pColor)
        {
            SharpDX.RectangleF r = GetScreenCoords(pX, pY, 9999, 9999).ToSDXRectangleF();

            mRenderTarget2D.DrawText(pText, mTextFormats[pSize], r, new SolidColorBrush(mRenderTarget2D, pColor.ToSDX()));
        }