// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

namespace Win32.Graphics.Direct2D;

/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext"]/*' />
/// <unmanaged>ID2D1DeviceContext</unmanaged>
[Guid("e8f7fe7a-191c-466d-ad95-975678bda998")]
[NativeTypeName("struct ID2D1DeviceContext : ID2D1RenderTarget")]
[NativeInheritance("ID2D1RenderTarget")]
public unsafe partial struct ID2D1DeviceContext : ID2D1DeviceContext.Interface, INativeGuid
{
	public static ref readonly Guid IID_ID2D1DeviceContext
	{
		[MethodImpl(MethodImplOptions.AggressiveInlining)]
		get
		{
			ReadOnlySpan<byte> data = new byte[] {
				0x7A, 0xFE, 0xF7, 0xE8,
				0x1C, 0x19,
				0x6D, 0x46,
				0xAD,
				0x95,
				0x97,
				0x56,
				0x78,
				0xBD,
				0xA9,
				0x98
			};

			Debug.Assert(data.Length == Unsafe.SizeOf<Guid>());
			return ref Unsafe.As<byte, Guid>(ref MemoryMarshal.GetReference(data));
		}
	}

	static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ID2D1DeviceContext));

	public void** lpVtbl;

	/// <inheritdoc cref="IUnknown.QueryInterface" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(0)]
	public HResult QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Guid*, void**, int>)(lpVtbl[0]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), riid, ppvObject);
	}

	/// <inheritdoc cref="IUnknown.AddRef" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(1)]
	[return: NativeTypeName("ULONG")]
	public uint AddRef()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, uint>)(lpVtbl[1]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="IUnknown.Release" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(2)]
	[return: NativeTypeName("ULONG")]
	public uint Release()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, uint>)(lpVtbl[2]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1Resource.GetFactory" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(3)]
	public void GetFactory(ID2D1Factory** factory)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Factory**, void>)(lpVtbl[3]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), factory);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateBitmap" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(4)]
	public HResult CreateBitmap(System.Drawing.Size size, void* srcData, uint pitch, BitmapProperties* bitmapProperties, ID2D1Bitmap** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.Size, void*, uint, BitmapProperties*, ID2D1Bitmap**, int>)(lpVtbl[4]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), size, srcData, pitch, bitmapProperties, bitmap);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateBitmapFromWicBitmap" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(5)]
	public HResult CreateBitmapFromWicBitmap(Graphics.Imaging.IWICBitmapSource* wicBitmapSource, BitmapProperties* bitmapProperties, ID2D1Bitmap** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.Imaging.IWICBitmapSource*, BitmapProperties*, ID2D1Bitmap**, int>)(lpVtbl[5]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), wicBitmapSource, bitmapProperties, bitmap);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateSharedBitmap" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(6)]
	public HResult CreateSharedBitmap(Guid* riid, void* data, BitmapProperties* bitmapProperties, ID2D1Bitmap** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Guid*, void*, BitmapProperties*, ID2D1Bitmap**, int>)(lpVtbl[6]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), riid, data, bitmapProperties, bitmap);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateBitmapBrush" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(7)]
	public HResult CreateBitmapBrush(ID2D1Bitmap* bitmap, BitmapBrushProperties* bitmapBrushProperties, BrushProperties* brushProperties, ID2D1BitmapBrush** bitmapBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, BitmapBrushProperties*, BrushProperties*, ID2D1BitmapBrush**, int>)(lpVtbl[7]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), bitmap, bitmapBrushProperties, brushProperties, bitmapBrush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateSolidColorBrush" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(8)]
	public HResult CreateSolidColorBrush(Color4* color, BrushProperties* brushProperties, ID2D1SolidColorBrush** solidColorBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Color4*, BrushProperties*, ID2D1SolidColorBrush**, int>)(lpVtbl[8]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), color, brushProperties, solidColorBrush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateGradientStopCollection" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(9)]
	public HResult CreateGradientStopCollection(Common.GradientStop* gradientStops, uint gradientStopsCount, Gamma colorInterpolationGamma, ExtendMode extendMode, ID2D1GradientStopCollection** gradientStopCollection)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Common.GradientStop*, uint, Gamma, ExtendMode, ID2D1GradientStopCollection**, int>)(lpVtbl[9]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateLinearGradientBrush" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(10)]
	public HResult CreateLinearGradientBrush(LinearGradientBrushProperties* linearGradientBrushProperties, BrushProperties* brushProperties, ID2D1GradientStopCollection* gradientStopCollection, ID2D1LinearGradientBrush** linearGradientBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, LinearGradientBrushProperties*, BrushProperties*, ID2D1GradientStopCollection*, ID2D1LinearGradientBrush**, int>)(lpVtbl[10]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateRadialGradientBrush" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(11)]
	public HResult CreateRadialGradientBrush(RadialGradientBrushProperties* radialGradientBrushProperties, BrushProperties* brushProperties, ID2D1GradientStopCollection* gradientStopCollection, ID2D1RadialGradientBrush** radialGradientBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RadialGradientBrushProperties*, BrushProperties*, ID2D1GradientStopCollection*, ID2D1RadialGradientBrush**, int>)(lpVtbl[11]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateCompatibleRenderTarget" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(12)]
	public HResult CreateCompatibleRenderTarget(System.Drawing.SizeF* desiredSize, System.Drawing.Size* desiredPixelSize, Common.PixelFormat* desiredFormat, CompatibleRenderTargetOptions options, ID2D1BitmapRenderTarget** bitmapRenderTarget)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.SizeF*, System.Drawing.Size*, Common.PixelFormat*, CompatibleRenderTargetOptions, ID2D1BitmapRenderTarget**, int>)(lpVtbl[12]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateLayer" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(13)]
	public HResult CreateLayer(System.Drawing.SizeF* size, ID2D1Layer** layer)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.SizeF*, ID2D1Layer**, int>)(lpVtbl[13]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), size, layer);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.CreateMesh" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(14)]
	public HResult CreateMesh(ID2D1Mesh** mesh)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Mesh**, int>)(lpVtbl[14]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), mesh);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawLine" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(15)]
	public void DrawLine(Vector2 point0, Vector2 point1, ID2D1Brush* brush, float strokeWidth, ID2D1StrokeStyle* strokeStyle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Vector2, Vector2, ID2D1Brush*, float, ID2D1StrokeStyle*, void>)(lpVtbl[15]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), point0, point1, brush, strokeWidth, strokeStyle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawRectangle" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(16)]
	public void DrawRectangle(Win32.Numerics.RectF* rect, ID2D1Brush* brush, float strokeWidth, ID2D1StrokeStyle* strokeStyle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Win32.Numerics.RectF*, ID2D1Brush*, float, ID2D1StrokeStyle*, void>)(lpVtbl[16]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), rect, brush, strokeWidth, strokeStyle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillRectangle" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(17)]
	public void FillRectangle(Win32.Numerics.RectF* rect, ID2D1Brush* brush)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Win32.Numerics.RectF*, ID2D1Brush*, void>)(lpVtbl[17]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), rect, brush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawRoundedRectangle" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(18)]
	public void DrawRoundedRectangle(RoundedRect* roundedRect, ID2D1Brush* brush, float strokeWidth, ID2D1StrokeStyle* strokeStyle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RoundedRect*, ID2D1Brush*, float, ID2D1StrokeStyle*, void>)(lpVtbl[18]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), roundedRect, brush, strokeWidth, strokeStyle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillRoundedRectangle" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(19)]
	public void FillRoundedRectangle(RoundedRect* roundedRect, ID2D1Brush* brush)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RoundedRect*, ID2D1Brush*, void>)(lpVtbl[19]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), roundedRect, brush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawEllipse" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(20)]
	public void DrawEllipse(Ellipse* ellipse, ID2D1Brush* brush, float strokeWidth, ID2D1StrokeStyle* strokeStyle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Ellipse*, ID2D1Brush*, float, ID2D1StrokeStyle*, void>)(lpVtbl[20]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), ellipse, brush, strokeWidth, strokeStyle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillEllipse" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(21)]
	public void FillEllipse(Ellipse* ellipse, ID2D1Brush* brush)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Ellipse*, ID2D1Brush*, void>)(lpVtbl[21]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), ellipse, brush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawGeometry" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(22)]
	public void DrawGeometry(ID2D1Geometry* geometry, ID2D1Brush* brush, float strokeWidth, ID2D1StrokeStyle* strokeStyle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Geometry*, ID2D1Brush*, float, ID2D1StrokeStyle*, void>)(lpVtbl[22]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), geometry, brush, strokeWidth, strokeStyle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillGeometry" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(23)]
	public void FillGeometry(ID2D1Geometry* geometry, ID2D1Brush* brush, ID2D1Brush* opacityBrush)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Geometry*, ID2D1Brush*, ID2D1Brush*, void>)(lpVtbl[23]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), geometry, brush, opacityBrush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillMesh" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(24)]
	public void FillMesh(ID2D1Mesh* mesh, ID2D1Brush* brush)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Mesh*, ID2D1Brush*, void>)(lpVtbl[24]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), mesh, brush);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.FillOpacityMask" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(25)]
	public void FillOpacityMask(ID2D1Bitmap* opacityMask, ID2D1Brush* brush, OpacityMaskContent content, Win32.Numerics.RectF* destinationRectangle, Win32.Numerics.RectF* sourceRectangle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, ID2D1Brush*, OpacityMaskContent, Win32.Numerics.RectF*, Win32.Numerics.RectF*, void>)(lpVtbl[25]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), opacityMask, brush, content, destinationRectangle, sourceRectangle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawBitmap" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(26)]
	public void DrawBitmap(ID2D1Bitmap* bitmap, Win32.Numerics.RectF* destinationRectangle, float opacity, BitmapInterpolationMode interpolationMode, Win32.Numerics.RectF* sourceRectangle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, Win32.Numerics.RectF*, float, BitmapInterpolationMode, Win32.Numerics.RectF*, void>)(lpVtbl[26]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawText" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(27)]
	public void DrawText(char* @string, uint stringLength, Graphics.DirectWrite.IDWriteTextFormat* textFormat, Win32.Numerics.RectF* layoutRect, ID2D1Brush* defaultFillBrush, DrawTextOptions options, Graphics.DirectWrite.MeasuringMode measuringMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, char*, uint, Graphics.DirectWrite.IDWriteTextFormat*, Win32.Numerics.RectF*, ID2D1Brush*, DrawTextOptions, Graphics.DirectWrite.MeasuringMode, void>)(lpVtbl[27]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), @string, stringLength, textFormat, layoutRect, defaultFillBrush, options, measuringMode);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawTextLayout" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(28)]
	public void DrawTextLayout(Vector2 origin, Graphics.DirectWrite.IDWriteTextLayout* textLayout, ID2D1Brush* defaultFillBrush, DrawTextOptions options)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Vector2, Graphics.DirectWrite.IDWriteTextLayout*, ID2D1Brush*, DrawTextOptions, void>)(lpVtbl[28]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), origin, textLayout, defaultFillBrush, options);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.DrawGlyphRun" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(29)]
	public void DrawGlyphRun(Vector2 baselineOrigin, Graphics.DirectWrite.GlyphRun* glyphRun, ID2D1Brush* foregroundBrush, Graphics.DirectWrite.MeasuringMode measuringMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Vector2, Graphics.DirectWrite.GlyphRun*, ID2D1Brush*, Graphics.DirectWrite.MeasuringMode, void>)(lpVtbl[29]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), baselineOrigin, glyphRun, foregroundBrush, measuringMode);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetTransform" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(30)]
	public void SetTransform(Matrix3x2* transform)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Matrix3x2*, void>)(lpVtbl[30]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), transform);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetTransform" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(31)]
	public void GetTransform(Matrix3x2* transform)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Matrix3x2*, void>)(lpVtbl[31]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), transform);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetAntialiasMode" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(32)]
	public void SetAntialiasMode(AntialiasMode antialiasMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, AntialiasMode, void>)(lpVtbl[32]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), antialiasMode);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetAntialiasMode" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(33)]
	public AntialiasMode GetAntialiasMode()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, AntialiasMode>)(lpVtbl[33]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetTextAntialiasMode" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(34)]
	public void SetTextAntialiasMode(TextAntialiasMode textAntialiasMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, TextAntialiasMode, void>)(lpVtbl[34]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), textAntialiasMode);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetTextAntialiasMode" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(35)]
	public TextAntialiasMode GetTextAntialiasMode()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, TextAntialiasMode>)(lpVtbl[35]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetTextRenderingParams" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(36)]
	public void SetTextRenderingParams(Graphics.DirectWrite.IDWriteRenderingParams* textRenderingParams)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.DirectWrite.IDWriteRenderingParams*, void>)(lpVtbl[36]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), textRenderingParams);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetTextRenderingParams" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(37)]
	public void GetTextRenderingParams(Graphics.DirectWrite.IDWriteRenderingParams** textRenderingParams)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.DirectWrite.IDWriteRenderingParams**, void>)(lpVtbl[37]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), textRenderingParams);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetTags" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(38)]
	public void SetTags(ulong tag1, ulong tag2)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ulong, ulong, void>)(lpVtbl[38]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), tag1, tag2);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetTags" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(39)]
	public void GetTags(ulong* tag1, ulong* tag2)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ulong*, ulong*, void>)(lpVtbl[39]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), tag1, tag2);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.PushLayer" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(40)]
	public void PushLayer(LayerParameters* layerParameters, ID2D1Layer* layer)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, LayerParameters*, ID2D1Layer*, void>)(lpVtbl[40]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), layerParameters, layer);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.PopLayer" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(41)]
	public void PopLayer()
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, void>)(lpVtbl[41]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.Flush" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(42)]
	public HResult Flush(ulong* tag1, ulong* tag2)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ulong*, ulong*, int>)(lpVtbl[42]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), tag1, tag2);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SaveDrawingState" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(43)]
	public void SaveDrawingState(ID2D1DrawingStateBlock* drawingStateBlock)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1DrawingStateBlock*, void>)(lpVtbl[43]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), drawingStateBlock);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.RestoreDrawingState" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(44)]
	public void RestoreDrawingState(ID2D1DrawingStateBlock* drawingStateBlock)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1DrawingStateBlock*, void>)(lpVtbl[44]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), drawingStateBlock);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.PushAxisAlignedClip" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(45)]
	public void PushAxisAlignedClip(Win32.Numerics.RectF* clipRect, AntialiasMode antialiasMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Win32.Numerics.RectF*, AntialiasMode, void>)(lpVtbl[45]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), clipRect, antialiasMode);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.PopAxisAlignedClip" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(46)]
	public void PopAxisAlignedClip()
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, void>)(lpVtbl[46]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.Clear" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(47)]
	public void Clear(Color4* clearColor)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Color4*, void>)(lpVtbl[47]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), clearColor);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.BeginDraw" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(48)]
	public void BeginDraw()
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, void>)(lpVtbl[48]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.EndDraw" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(49)]
	public HResult EndDraw(ulong* tag1 = null, ulong* tag2 = null)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ulong*, ulong*, int>)(lpVtbl[49]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), tag1, tag2);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetPixelFormat" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(50)]
	public Common.PixelFormat GetPixelFormat()
	{
		Common.PixelFormat result;
		return *((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Common.PixelFormat*, Common.PixelFormat*>)(lpVtbl[50]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), &result);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.SetDpi" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(51)]
	public void SetDpi(float dpiX, float dpiY)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, float, float, void>)(lpVtbl[51]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), dpiX, dpiY);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetDpi" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(52)]
	public void GetDpi(float* dpiX, float* dpiY)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, float*, float*, void>)(lpVtbl[52]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), dpiX, dpiY);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetSize" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(53)]
	public System.Drawing.SizeF GetSize()
	{
		System.Drawing.SizeF result;
		return *((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.SizeF*, System.Drawing.SizeF*>)(lpVtbl[53]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), &result);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetPixelSize" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(54)]
	public System.Drawing.Size GetPixelSize()
	{
		System.Drawing.Size result;
		return *((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.Size*, System.Drawing.Size*>)(lpVtbl[54]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), &result);
	}

	/// <inheritdoc cref="ID2D1RenderTarget.GetMaximumBitmapSize" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(55)]
	public uint GetMaximumBitmapSize()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, uint>)(lpVtbl[55]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <inheritdoc cref="ID2D1RenderTarget.IsSupported" />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(56)]
	public Bool32 IsSupported(RenderTargetProperties* renderTargetProperties)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RenderTargetProperties*, Bool32>)(lpVtbl[56]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), renderTargetProperties);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateBitmap"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(57)]
	public HResult CreateBitmap(System.Drawing.Size size, void* sourceData, uint pitch, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, System.Drawing.Size, void*, uint, BitmapProperties1*, ID2D1Bitmap1**, int>)(lpVtbl[57]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), size, sourceData, pitch, bitmapProperties, bitmap);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateBitmapFromWicBitmap"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(58)]
	public HResult CreateBitmapFromWicBitmap(Graphics.Imaging.IWICBitmapSource* wicBitmapSource, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.Imaging.IWICBitmapSource*, BitmapProperties1*, ID2D1Bitmap1**, int>)(lpVtbl[58]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), wicBitmapSource, bitmapProperties, bitmap);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateColorContext"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(59)]
	public HResult CreateColorContext(ColorSpace space, byte* profile, uint profileSize, ID2D1ColorContext** colorContext)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ColorSpace, byte*, uint, ID2D1ColorContext**, int>)(lpVtbl[59]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), space, profile, profileSize, colorContext);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateColorContextFromFilename"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(60)]
	public HResult CreateColorContextFromFilename(char* filename, ID2D1ColorContext** colorContext)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, char*, ID2D1ColorContext**, int>)(lpVtbl[60]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), filename, colorContext);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateColorContextFromWicColorContext"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(61)]
	public HResult CreateColorContextFromWicColorContext(Graphics.Imaging.IWICColorContext* wicColorContext, ID2D1ColorContext** colorContext)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.Imaging.IWICColorContext*, ID2D1ColorContext**, int>)(lpVtbl[61]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), wicColorContext, colorContext);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateBitmapFromDxgiSurface"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(62)]
	public HResult CreateBitmapFromDxgiSurface(Graphics.Dxgi.IDXGISurface* surface, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.Dxgi.IDXGISurface*, BitmapProperties1*, ID2D1Bitmap1**, int>)(lpVtbl[62]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), surface, bitmapProperties, bitmap);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateEffect"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(63)]
	public HResult CreateEffect(Guid* effectId, ID2D1Effect** effect)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Guid*, ID2D1Effect**, int>)(lpVtbl[63]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), effectId, effect);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateGradientStopCollection"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(64)]
	public HResult CreateGradientStopCollection(Common.GradientStop* straightAlphaGradientStops, uint straightAlphaGradientStopsCount, ColorSpace preInterpolationSpace, ColorSpace postInterpolationSpace, BufferPrecision bufferPrecision, ExtendMode extendMode, ColorInterpolationMode colorInterpolationMode, ID2D1GradientStopCollection1** gradientStopCollection1)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Common.GradientStop*, uint, ColorSpace, ColorSpace, BufferPrecision, ExtendMode, ColorInterpolationMode, ID2D1GradientStopCollection1**, int>)(lpVtbl[64]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateImageBrush"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(65)]
	public HResult CreateImageBrush(ID2D1Image* image, ImageBrushProperties* imageBrushProperties, BrushProperties* brushProperties, ID2D1ImageBrush** imageBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image*, ImageBrushProperties*, BrushProperties*, ID2D1ImageBrush**, int>)(lpVtbl[65]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image, imageBrushProperties, brushProperties, imageBrush);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateBitmapBrush"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(66)]
	public HResult CreateBitmapBrush(ID2D1Bitmap* bitmap, BitmapBrushProperties1* bitmapBrushProperties, BrushProperties* brushProperties, ID2D1BitmapBrush1** bitmapBrush)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, BitmapBrushProperties1*, BrushProperties*, ID2D1BitmapBrush1**, int>)(lpVtbl[66]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), bitmap, bitmapBrushProperties, brushProperties, bitmapBrush);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::CreateCommandList"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(67)]
	public HResult CreateCommandList(ID2D1CommandList** commandList)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1CommandList**, int>)(lpVtbl[67]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), commandList);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::IsDxgiFormatSupported"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(68)]
	public Bool32 IsDxgiFormatSupported(Graphics.Dxgi.Common.Format format)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Graphics.Dxgi.Common.Format, Bool32>)(lpVtbl[68]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), format);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::IsBufferPrecisionSupported"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(69)]
	public Bool32 IsBufferPrecisionSupported(BufferPrecision bufferPrecision)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, BufferPrecision, Bool32>)(lpVtbl[69]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), bufferPrecision);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetImageLocalBounds"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(70)]
	public HResult GetImageLocalBounds(ID2D1Image* image, Win32.Numerics.RectF** localBounds)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image*, Win32.Numerics.RectF**, int>)(lpVtbl[70]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image, localBounds);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetImageWorldBounds"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(71)]
	public HResult GetImageWorldBounds(ID2D1Image* image, Win32.Numerics.RectF** worldBounds)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image*, Win32.Numerics.RectF**, int>)(lpVtbl[71]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image, worldBounds);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetGlyphRunWorldBounds"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(72)]
	public HResult GetGlyphRunWorldBounds(Vector2 baselineOrigin, Graphics.DirectWrite.GlyphRun* glyphRun, Graphics.DirectWrite.MeasuringMode measuringMode, Win32.Numerics.RectF** bounds)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Vector2, Graphics.DirectWrite.GlyphRun*, Graphics.DirectWrite.MeasuringMode, Win32.Numerics.RectF**, int>)(lpVtbl[72]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), baselineOrigin, glyphRun, measuringMode, bounds);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetDevice"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(73)]
	public void GetDevice(ID2D1Device** device)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Device**, void>)(lpVtbl[73]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), device);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::SetTarget"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(74)]
	public void SetTarget(ID2D1Image* image)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image*, void>)(lpVtbl[74]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetTarget"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(75)]
	public void GetTarget(ID2D1Image** image)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image**, void>)(lpVtbl[75]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::SetRenderingControls"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(76)]
	public void SetRenderingControls(RenderingControls* renderingControls)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RenderingControls*, void>)(lpVtbl[76]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), renderingControls);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetRenderingControls"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(77)]
	public void GetRenderingControls(RenderingControls* renderingControls)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, RenderingControls*, void>)(lpVtbl[77]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), renderingControls);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::SetPrimitiveBlend"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(78)]
	public void SetPrimitiveBlend(PrimitiveBlend primitiveBlend)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, PrimitiveBlend, void>)(lpVtbl[78]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), primitiveBlend);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetPrimitiveBlend"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(79)]
	public PrimitiveBlend GetPrimitiveBlend()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, PrimitiveBlend>)(lpVtbl[79]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::SetUnitMode"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(80)]
	public void SetUnitMode(UnitMode unitMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, UnitMode, void>)(lpVtbl[80]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), unitMode);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetUnitMode"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(81)]
	public UnitMode GetUnitMode()
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, UnitMode>)(lpVtbl[81]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this));
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::DrawGlyphRun"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(82)]
	public void DrawGlyphRun(Vector2 baselineOrigin, Graphics.DirectWrite.GlyphRun* glyphRun, Graphics.DirectWrite.GlyphRunDescription* glyphRunDescription, ID2D1Brush* foregroundBrush, Graphics.DirectWrite.MeasuringMode measuringMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, Vector2, Graphics.DirectWrite.GlyphRun*, Graphics.DirectWrite.GlyphRunDescription*, ID2D1Brush*, Graphics.DirectWrite.MeasuringMode, void>)(lpVtbl[82]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::DrawImage"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(83)]
	public void DrawImage(ID2D1Image* image, Vector2* targetOffset, Win32.Numerics.RectF* imageRectangle, InterpolationMode interpolationMode, Common.CompositeMode compositeMode)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Image*, Vector2*, Win32.Numerics.RectF*, InterpolationMode, Common.CompositeMode, void>)(lpVtbl[83]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), image, targetOffset, imageRectangle, interpolationMode, compositeMode);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::DrawGdiMetafile"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(84)]
	public void DrawGdiMetafile(ID2D1GdiMetafile* gdiMetafile, Vector2* targetOffset)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1GdiMetafile*, Vector2*, void>)(lpVtbl[84]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), gdiMetafile, targetOffset);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::DrawBitmap"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(85)]
	public void DrawBitmap(ID2D1Bitmap* bitmap, Win32.Numerics.RectF* destinationRectangle, float opacity, InterpolationMode interpolationMode, Win32.Numerics.RectF* sourceRectangle, Matrix4x4* perspectiveTransform)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, Win32.Numerics.RectF*, float, InterpolationMode, Win32.Numerics.RectF*, Matrix4x4*, void>)(lpVtbl[85]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::PushLayer"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(86)]
	public void PushLayer(LayerParameters1* layerParameters, ID2D1Layer* layer)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, LayerParameters1*, ID2D1Layer*, void>)(lpVtbl[86]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), layerParameters, layer);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::InvalidateEffectInputRectangle"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(87)]
	public HResult InvalidateEffectInputRectangle(ID2D1Effect* effect, uint input, Win32.Numerics.RectF* inputRectangle)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Effect*, uint, Win32.Numerics.RectF*, int>)(lpVtbl[87]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), effect, input, inputRectangle);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetEffectInvalidRectangleCount"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(88)]
	public HResult GetEffectInvalidRectangleCount(ID2D1Effect* effect, uint* rectangleCount)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Effect*, uint*, int>)(lpVtbl[88]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), effect, rectangleCount);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetEffectInvalidRectangles"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(89)]
	public HResult GetEffectInvalidRectangles(ID2D1Effect* effect, Win32.Numerics.RectF** rectangles, uint rectanglesCount)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Effect*, Win32.Numerics.RectF**, uint, int>)(lpVtbl[89]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), effect, rectangles, rectanglesCount);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::GetEffectRequiredInputRectangles"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(90)]
	public HResult GetEffectRequiredInputRectangles(ID2D1Effect* renderEffect, Win32.Numerics.RectF* renderImageRectangle, EffectInputDescription* inputDescriptions, Win32.Numerics.RectF** requiredInputRects, uint inputCount)
	{
		return ((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Effect*, Win32.Numerics.RectF*, EffectInputDescription*, Win32.Numerics.RectF**, uint, int>)(lpVtbl[90]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount);
	}

	/// <include file='../Direct2D.xml' path='doc/member[@name="ID2D1DeviceContext::FillOpacityMask"]/*' />
	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	[VtblIndex(91)]
	public void FillOpacityMask(ID2D1Bitmap* opacityMask, ID2D1Brush* brush, Win32.Numerics.RectF* destinationRectangle, Win32.Numerics.RectF* sourceRectangle)
	{
		((delegate* unmanaged[MemberFunction]<ID2D1DeviceContext*, ID2D1Bitmap*, ID2D1Brush*, Win32.Numerics.RectF*, Win32.Numerics.RectF*, void>)(lpVtbl[91]))((ID2D1DeviceContext*)Unsafe.AsPointer(ref this), opacityMask, brush, destinationRectangle, sourceRectangle);
	}

	public interface Interface : ID2D1RenderTarget.Interface
	{
		[VtblIndex(57)]
		HResult CreateBitmap(System.Drawing.Size size, void* sourceData, uint pitch, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap);

		[VtblIndex(58)]
		HResult CreateBitmapFromWicBitmap(Graphics.Imaging.IWICBitmapSource* wicBitmapSource, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap);

		[VtblIndex(59)]
		HResult CreateColorContext(ColorSpace space, byte* profile, uint profileSize, ID2D1ColorContext** colorContext);

		[VtblIndex(60)]
		HResult CreateColorContextFromFilename(char* filename, ID2D1ColorContext** colorContext);

		[VtblIndex(61)]
		HResult CreateColorContextFromWicColorContext(Graphics.Imaging.IWICColorContext* wicColorContext, ID2D1ColorContext** colorContext);

		[VtblIndex(62)]
		HResult CreateBitmapFromDxgiSurface(Graphics.Dxgi.IDXGISurface* surface, BitmapProperties1* bitmapProperties, ID2D1Bitmap1** bitmap);

		[VtblIndex(63)]
		HResult CreateEffect(Guid* effectId, ID2D1Effect** effect);

		[VtblIndex(64)]
		HResult CreateGradientStopCollection(Common.GradientStop* straightAlphaGradientStops, uint straightAlphaGradientStopsCount, ColorSpace preInterpolationSpace, ColorSpace postInterpolationSpace, BufferPrecision bufferPrecision, ExtendMode extendMode, ColorInterpolationMode colorInterpolationMode, ID2D1GradientStopCollection1** gradientStopCollection1);

		[VtblIndex(65)]
		HResult CreateImageBrush(ID2D1Image* image, ImageBrushProperties* imageBrushProperties, BrushProperties* brushProperties, ID2D1ImageBrush** imageBrush);

		[VtblIndex(66)]
		HResult CreateBitmapBrush(ID2D1Bitmap* bitmap, BitmapBrushProperties1* bitmapBrushProperties, BrushProperties* brushProperties, ID2D1BitmapBrush1** bitmapBrush);

		[VtblIndex(67)]
		HResult CreateCommandList(ID2D1CommandList** commandList);

		[VtblIndex(68)]
		Bool32 IsDxgiFormatSupported(Graphics.Dxgi.Common.Format format);

		[VtblIndex(69)]
		Bool32 IsBufferPrecisionSupported(BufferPrecision bufferPrecision);

		[VtblIndex(70)]
		HResult GetImageLocalBounds(ID2D1Image* image, Win32.Numerics.RectF** localBounds);

		[VtblIndex(71)]
		HResult GetImageWorldBounds(ID2D1Image* image, Win32.Numerics.RectF** worldBounds);

		[VtblIndex(72)]
		HResult GetGlyphRunWorldBounds(Vector2 baselineOrigin, Graphics.DirectWrite.GlyphRun* glyphRun, Graphics.DirectWrite.MeasuringMode measuringMode, Win32.Numerics.RectF** bounds);

		[VtblIndex(73)]
		void GetDevice(ID2D1Device** device);

		[VtblIndex(74)]
		void SetTarget(ID2D1Image* image);

		[VtblIndex(75)]
		void GetTarget(ID2D1Image** image);

		[VtblIndex(76)]
		void SetRenderingControls(RenderingControls* renderingControls);

		[VtblIndex(77)]
		void GetRenderingControls(RenderingControls* renderingControls);

		[VtblIndex(78)]
		void SetPrimitiveBlend(PrimitiveBlend primitiveBlend);

		[VtblIndex(79)]
		PrimitiveBlend GetPrimitiveBlend();

		[VtblIndex(80)]
		void SetUnitMode(UnitMode unitMode);

		[VtblIndex(81)]
		UnitMode GetUnitMode();

		[VtblIndex(82)]
		void DrawGlyphRun(Vector2 baselineOrigin, Graphics.DirectWrite.GlyphRun* glyphRun, Graphics.DirectWrite.GlyphRunDescription* glyphRunDescription, ID2D1Brush* foregroundBrush, Graphics.DirectWrite.MeasuringMode measuringMode);

		[VtblIndex(83)]
		void DrawImage(ID2D1Image* image, Vector2* targetOffset, Win32.Numerics.RectF* imageRectangle, InterpolationMode interpolationMode, Common.CompositeMode compositeMode);

		[VtblIndex(84)]
		void DrawGdiMetafile(ID2D1GdiMetafile* gdiMetafile, Vector2* targetOffset);

		[VtblIndex(85)]
		void DrawBitmap(ID2D1Bitmap* bitmap, Win32.Numerics.RectF* destinationRectangle, float opacity, InterpolationMode interpolationMode, Win32.Numerics.RectF* sourceRectangle, Matrix4x4* perspectiveTransform);

		[VtblIndex(86)]
		void PushLayer(LayerParameters1* layerParameters, ID2D1Layer* layer);

		[VtblIndex(87)]
		HResult InvalidateEffectInputRectangle(ID2D1Effect* effect, uint input, Win32.Numerics.RectF* inputRectangle);

		[VtblIndex(88)]
		HResult GetEffectInvalidRectangleCount(ID2D1Effect* effect, uint* rectangleCount);

		[VtblIndex(89)]
		HResult GetEffectInvalidRectangles(ID2D1Effect* effect, Win32.Numerics.RectF** rectangles, uint rectanglesCount);

		[VtblIndex(90)]
		HResult GetEffectRequiredInputRectangles(ID2D1Effect* renderEffect, Win32.Numerics.RectF* renderImageRectangle, EffectInputDescription* inputDescriptions, Win32.Numerics.RectF** requiredInputRects, uint inputCount);

		[VtblIndex(91)]
		void FillOpacityMask(ID2D1Bitmap* opacityMask, ID2D1Brush* brush, Win32.Numerics.RectF* destinationRectangle, Win32.Numerics.RectF* sourceRectangle);
	}
}

