예제 #1
0
 public static void DrawText(this IComObject <ID2D1RenderTarget> renderTarget,
                             string text,
                             IComObject <IDWriteTextFormat> format,
                             D2D_RECT_F rect,
                             IComObject <ID2D1Brush> brush,
                             D2D1_DRAW_TEXT_OPTIONS options      = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE,
                             DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.DWRITE_MEASURING_MODE_NATURAL) => DrawText(renderTarget?.Object, text, format?.Object, rect, brush?.Object, options, measuringMode);
예제 #2
0
        public static void DrawText(this ID2D1RenderTarget renderTarget,
                                    string text,
                                    IDWriteTextFormat format,
                                    D2D_RECT_F rect,
                                    ID2D1Brush brush,
                                    D2D1_DRAW_TEXT_OPTIONS options      = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE,
                                    DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.DWRITE_MEASURING_MODE_NATURAL)
        {
            if (renderTarget == null)
            {
                throw new ArgumentNullException(nameof(renderTarget));
            }

            if (format == null)
            {
                throw new ArgumentNullException(nameof(format));
            }

            if (text == null)
            {
                return;
            }

            renderTarget.DrawTextW(text, (uint)text.Length, format, ref rect, brush, options, measuringMode);
        }
 public static void DrawText(this ComObject <ID2D1DeviceContext> device,
                             string text,
                             ComObject <IDWriteTextFormat> format,
                             D2D_RECT_F rect,
                             ComObject <ID2D1Brush> brush,
                             D2D1_DRAW_TEXT_OPTIONS options      = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE,
                             DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.DWRITE_MEASURING_MODE_NATURAL) => DrawText(device?.Object, text, format?.Object, rect, brush?.Object, options, measuringMode);
예제 #4
0
        public static void DrawText(this ID2D1DeviceContext context,
                                    string text,
                                    IDWriteTextFormat format,
                                    D2D_RECT_F rect,
                                    ID2D1Brush defaultFillBrush,
                                    D2D1_DRAW_TEXT_OPTIONS options      = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE,
                                    DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.DWRITE_MEASURING_MODE_NATURAL)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (format == null)
            {
                throw new ArgumentNullException(nameof(format));
            }

            if (defaultFillBrush == null)
            {
                throw new ArgumentNullException(nameof(defaultFillBrush));
            }

            if (text == null)
            {
                return;
            }

            context.DrawTextW(text, (uint)text.Length, format, ref rect, defaultFillBrush, options, measuringMode);
        }
        public static void DrawText(this ID2D1DeviceContext device,
                                    string text,
                                    IDWriteTextFormat format,
                                    D2D_RECT_F rect,
                                    ID2D1Brush brush,
                                    D2D1_DRAW_TEXT_OPTIONS options      = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE,
                                    DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE.DWRITE_MEASURING_MODE_NATURAL)
        {
            if (device == null)
            {
                throw new ArgumentNullException(nameof(device));
            }

            if (format == null)
            {
                throw new ArgumentNullException(nameof(format));
            }

            if (text == null)
            {
                return;
            }

#pragma warning disable CA2010 // Always consume the value returned by methods marked with PreserveSigAttribute
            device.DrawTextW(text, (uint)text.Length, format, ref rect, brush, options, measuringMode);
#pragma warning restore CA2010 // Always consume the value returned by methods marked with PreserveSigAttribute
        }
예제 #6
0
        public virtual void DrawTextLayout(
            System.Numerics.Vector2 origin,
            IDWriteTextLayout textLayout,
            ID2D1Brush defaultFillBrush,
            D2D1_DRAW_TEXT_OPTIONS options
            )
        {
            var fp = GetFunctionPointer(28);

            if (m_DrawTextLayoutFunc == null)
            {
                m_DrawTextLayoutFunc = (DrawTextLayoutFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(DrawTextLayoutFunc));
            }

            m_DrawTextLayoutFunc(m_ptr, origin, textLayout != null ? textLayout.Ptr : IntPtr.Zero, defaultFillBrush != null ? defaultFillBrush.Ptr : IntPtr.Zero, options);
        }
예제 #7
0
        public static void DrawTextLayout(this ID2D1RenderTarget context,
                                          D2D_POINT_2F origin,
                                          IDWriteTextLayout layout,
                                          ID2D1Brush defaultFillBrush    = null,
                                          D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (layout == null)
            {
                throw new ArgumentNullException(nameof(layout));
            }

            context.DrawTextLayout(origin, layout, defaultFillBrush, options);
        }
예제 #8
0
        public virtual void DrawText(
            ref ushort _string,
            uint stringLength,
            IDWriteTextFormat textFormat,
            ref System.Numerics.Vector4 layoutRect,
            ID2D1Brush defaultFillBrush,
            D2D1_DRAW_TEXT_OPTIONS options,
            DWRITE_MEASURING_MODE measuringMode
            )
        {
            var fp = GetFunctionPointer(27);

            if (m_DrawTextWFunc == null)
            {
                m_DrawTextWFunc = (DrawTextWFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(DrawTextWFunc));
            }

            m_DrawTextWFunc(m_ptr, ref _string, stringLength, textFormat != null ? textFormat.Ptr : IntPtr.Zero, ref layoutRect, defaultFillBrush != null ? defaultFillBrush.Ptr : IntPtr.Zero, options, measuringMode);
        }
 public void DrawTextLayout([NativeTypeName("D2D1_POINT_2F")] D2D_POINT_2F origin, [NativeTypeName("IDWriteTextLayout *")] IDWriteTextLayout *textLayout, [NativeTypeName("ID2D1Brush *")] ID2D1Brush *defaultFillBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE)
 {
     ((delegate * stdcall <ID2D1BitmapRenderTarget *, D2D_POINT_2F, IDWriteTextLayout *, ID2D1Brush *, D2D1_DRAW_TEXT_OPTIONS, void>)(lpVtbl[28]))((ID2D1BitmapRenderTarget *)Unsafe.AsPointer(ref this), origin, textLayout, defaultFillBrush, options);
 }
 public void DrawText([NativeTypeName("const WCHAR *")] ushort * @string, [NativeTypeName("UINT32")] uint stringLength, [NativeTypeName("IDWriteTextFormat *")] IDWriteTextFormat *textFormat, [NativeTypeName("const D2D1_RECT_F *")] D2D_RECT_F *layoutRect, [NativeTypeName("ID2D1Brush *")] ID2D1Brush *defaultFillBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL)
 {
     ((delegate * stdcall <ID2D1BitmapRenderTarget *, ushort *, uint, IDWriteTextFormat *, D2D_RECT_F *, ID2D1Brush *, D2D1_DRAW_TEXT_OPTIONS, DWRITE_MEASURING_MODE, void>)(lpVtbl[27]))((ID2D1BitmapRenderTarget *)Unsafe.AsPointer(ref this), @string, stringLength, textFormat, layoutRect, defaultFillBrush, options, measuringMode);
 }
예제 #11
0
 public static void DrawTextLayout(this IComObject <ID2D1RenderTarget> context,
                                   D2D_POINT_2F origin,
                                   IDWriteTextLayout layout,
                                   ID2D1Brush defaultFillBrush    = null,
                                   D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS.D2D1_DRAW_TEXT_OPTIONS_NONE) => DrawTextLayout(context?.Object, origin, layout, defaultFillBrush, options);