// ------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// ------------------------------------------------------------------------------
namespace Win32.Graphics.Direct2D;
///
/// ID2D1Factory2
[Guid("94f81a73-9212-4376-9c58-b16a3a0d3992")]
[NativeTypeName("struct ID2D1Factory2 : ID2D1Factory1")]
[NativeInheritance("ID2D1Factory1")]
public unsafe partial struct ID2D1Factory2 : ID2D1Factory2.Interface, INativeGuid
{
public static ref readonly Guid IID_ID2D1Factory2
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
ReadOnlySpan data = new byte[] {
0x73, 0x1A, 0xF8, 0x94,
0x12, 0x92,
0x76, 0x43,
0x9C,
0x58,
0xB1,
0x6A,
0x3A,
0x0D,
0x39,
0x92
};
Debug.Assert(data.Length == Unsafe.SizeOf());
return ref Unsafe.As(ref MemoryMarshal.GetReference(data));
}
}
static Guid* INativeGuid.NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ID2D1Factory2));
public void** lpVtbl;
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(0)]
public HResult QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[0]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), riid, ppvObject);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(1)]
[return: NativeTypeName("ULONG")]
public uint AddRef()
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[1]))((ID2D1Factory2*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(2)]
[return: NativeTypeName("ULONG")]
public uint Release()
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[2]))((ID2D1Factory2*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(3)]
public HResult ReloadSystemMetrics()
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[3]))((ID2D1Factory2*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(4)]
public void GetDesktopDpi(float* dpiX, float* dpiY)
{
((delegate* unmanaged[MemberFunction])(lpVtbl[4]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), dpiX, dpiY);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(5)]
public HResult CreateRectangleGeometry(Win32.Numerics.RectF* rectangle, ID2D1RectangleGeometry** rectangleGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[5]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), rectangle, rectangleGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(6)]
public HResult CreateRoundedRectangleGeometry(RoundedRect* roundedRectangle, ID2D1RoundedRectangleGeometry** roundedRectangleGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[6]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), roundedRectangle, roundedRectangleGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(7)]
public HResult CreateEllipseGeometry(Ellipse* ellipse, ID2D1EllipseGeometry** ellipseGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[7]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), ellipse, ellipseGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(8)]
public HResult CreateGeometryGroup(Common.FillMode fillMode, ID2D1Geometry** geometries, uint geometriesCount, ID2D1GeometryGroup** geometryGroup)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[8]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), fillMode, geometries, geometriesCount, geometryGroup);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(9)]
public HResult CreateTransformedGeometry(ID2D1Geometry* sourceGeometry, Matrix3x2* transform, ID2D1TransformedGeometry** transformedGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[9]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), sourceGeometry, transform, transformedGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(10)]
public HResult CreatePathGeometry(ID2D1PathGeometry** pathGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[10]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), pathGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(11)]
public HResult CreateStrokeStyle(StrokeStyleProperties* strokeStyleProperties, float* dashes, uint dashesCount, ID2D1StrokeStyle** strokeStyle)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[11]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), strokeStyleProperties, dashes, dashesCount, strokeStyle);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(12)]
public HResult CreateDrawingStateBlock(DrawingStateDescription* drawingStateDescription, Graphics.DirectWrite.IDWriteRenderingParams* textRenderingParams, ID2D1DrawingStateBlock** drawingStateBlock)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[12]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), drawingStateDescription, textRenderingParams, drawingStateBlock);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(13)]
public HResult CreateWicBitmapRenderTarget(Graphics.Imaging.IWICBitmap* target, RenderTargetProperties* renderTargetProperties, ID2D1RenderTarget** renderTarget)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[13]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), target, renderTargetProperties, renderTarget);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(14)]
public HResult CreateHwndRenderTarget(RenderTargetProperties* renderTargetProperties, HwndRenderTargetProperties* hwndRenderTargetProperties, ID2D1HwndRenderTarget** hwndRenderTarget)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[14]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(15)]
public HResult CreateDxgiSurfaceRenderTarget(Graphics.Dxgi.IDXGISurface* dxgiSurface, RenderTargetProperties* renderTargetProperties, ID2D1RenderTarget** renderTarget)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[15]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), dxgiSurface, renderTargetProperties, renderTarget);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(16)]
public HResult CreateDCRenderTarget(RenderTargetProperties* renderTargetProperties, ID2D1DCRenderTarget** dcRenderTarget)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[16]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), renderTargetProperties, dcRenderTarget);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(17)]
public HResult CreateDevice(Graphics.Dxgi.IDXGIDevice* dxgiDevice, ID2D1Device** d2dDevice)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[17]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), dxgiDevice, d2dDevice);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(18)]
public HResult CreateStrokeStyle(StrokeStyleProperties1* strokeStyleProperties, float* dashes, uint dashesCount, ID2D1StrokeStyle1** strokeStyle)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[18]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), strokeStyleProperties, dashes, dashesCount, strokeStyle);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(19)]
public HResult CreatePathGeometry(ID2D1PathGeometry1** pathGeometry)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[19]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), pathGeometry);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(20)]
public HResult CreateDrawingStateBlock(DrawingStateDescription1* drawingStateDescription, Graphics.DirectWrite.IDWriteRenderingParams* textRenderingParams, ID2D1DrawingStateBlock1** drawingStateBlock)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[20]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), drawingStateDescription, textRenderingParams, drawingStateBlock);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(21)]
public HResult CreateGdiMetafile(Com.IStream* metafileStream, ID2D1GdiMetafile** metafile)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[21]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), metafileStream, metafile);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(22)]
public HResult RegisterEffectFromStream(Guid* classId, Com.IStream* propertyXml, PropertyBinding* bindings, uint bindingsCount, delegate* unmanaged[Stdcall] effectFactory)
{
return ((delegate* unmanaged[MemberFunction], int>)(lpVtbl[22]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), classId, propertyXml, bindings, bindingsCount, effectFactory);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(23)]
public HResult RegisterEffectFromString(Guid* classId, char* propertyXml, PropertyBinding* bindings, uint bindingsCount, delegate* unmanaged[Stdcall] effectFactory)
{
return ((delegate* unmanaged[MemberFunction], int>)(lpVtbl[23]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), classId, propertyXml, bindings, bindingsCount, effectFactory);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(24)]
public HResult UnregisterEffect(Guid* classId)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[24]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), classId);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(25)]
public HResult GetRegisteredEffects(Guid* effects, uint effectsCount, uint* effectsReturned, uint* effectsRegistered)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[25]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), effects, effectsCount, effectsReturned, effectsRegistered);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(26)]
public HResult GetEffectProperties(Guid* effectId, ID2D1Properties** properties)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[26]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), effectId, properties);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(27)]
public HResult CreateDevice(Graphics.Dxgi.IDXGIDevice* dxgiDevice, ID2D1Device1** d2dDevice1)
{
return ((delegate* unmanaged[MemberFunction])(lpVtbl[27]))((ID2D1Factory2*)Unsafe.AsPointer(ref this), dxgiDevice, d2dDevice1);
}
public interface Interface : ID2D1Factory1.Interface
{
[VtblIndex(27)]
HResult CreateDevice(Graphics.Dxgi.IDXGIDevice* dxgiDevice, ID2D1Device1** d2dDevice1);
}
}