ID2D1RenderTarget = interface(ID2D1Resource)
['{2cd90694-12e2-11dc-9fed-001143a055f9}']
function CreateBitmap(size: TD2D1_SIZE_U; srcData: Pointer; pitch: UINT32; const bitmapProperties: TD2D1_BITMAP_PROPERTIES;
out bitmap: ID2D1Bitmap): HResult; stdcall;
function CreateBitmapFromWicBitmap(wicBitmapSource: IWICBitmapSource; bitmapProperties: PD2D1_BITMAP_PROPERTIES;
out bitmap: ID2D1Bitmap): HResult;
stdcall;
function CreateSharedBitmap(const riid: TGUID; Data: Pointer; const bitmapProperties: TD2D1_BITMAP_PROPERTIES;
out bitmap: ID2D1Bitmap): HResult; stdcall;
function CreateBitmapBrush(bitmap: ID2D1Bitmap; bitmapBrushProperties: PD2D1_BITMAP_BRUSH_PROPERTIES;
brushProperties: PD2D1_BRUSH_PROPERTIES; out bitmapBrush: ID2D1BitmapBrush): HResult; stdcall;
function CreateSolidColorBrush(const color: TD2D1_COLOR_F; brushProperties: PD2D1_BRUSH_PROPERTIES;
out solidColorBrush: ID2D1SolidColorBrush): HResult;
stdcall;
function CreateGradientStopCollection(gradientStops: PD2D1_GRADIENT_STOP; gradientStopsCount: UINT32;
colorInterpolationGamma: TD2D1_GAMMA; extendMode: TD2D1_EXTEND_MODE;
out gradientStopCollection: ID2D1GradientStopCollection): HResult; stdcall;
function CreateLinearGradientBrush(linearGradientBrushProperties: PD2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES;
brushProperties: PD2D1_BRUSH_PROPERTIES; gradientStopCollection: ID2D1GradientStopCollection;
out linearGradientBrush: ID2D1LinearGradientBrush): HResult; stdcall;
function CreateRadialGradientBrush(radialGradientBrushProperties: PD2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES;
brushProperties: PD2D1_BRUSH_PROPERTIES; gradientStopCollection: ID2D1GradientStopCollection;
out radialGradientBrush: ID2D1RadialGradientBrush): HResult; stdcall;
function CreateCompatibleRenderTarget(const desiredSize: TD2D1_SIZE_F; desiredPixelSize: PD2D1_SIZE_U;
desiredFormat: PD2D1_PIXEL_FORMAT; options: TD2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
out bitmapRenderTarget: ID2D1BitmapRenderTarget): HResult; stdcall;
function CreateLayer(size: PD2D1_SIZE_F; out layer: ID2D1Layer): HResult; stdcall;
function CreateMesh(out mesh: ID2D1Mesh): HResult; stdcall;
procedure DrawLine(point0: TD2D1_POINT_2F; point1: TD2D1_POINT_2F; brush: ID2D1Brush; strokeWidth: single = 1.0;
strokeStyle: ID2D1StrokeStyle = nil);
stdcall;
procedure DrawRectangle(const rect: TD2D1_RECT_F; brush: ID2D1Brush; strokeWidth: single = 1.0;
strokeStyle: ID2D1StrokeStyle = nil); stdcall;
procedure FillRectangle(const rect: TD2D1_RECT_F; brush: ID2D1Brush); stdcall;
procedure DrawRoundedRectangle(const roundedRect: TD2D1_ROUNDED_RECT; brush: ID2D1Brush; strokeWidth: single = 1.0;
strokeStyle: ID2D1StrokeStyle = nil);
stdcall;
procedure FillRoundedRectangle(const roundedRect: TD2D1_ROUNDED_RECT; brush: ID2D1Brush); stdcall;
procedure DrawEllipse(const ellipse: TD2D1_ELLIPSE; brush: ID2D1Brush; strokeWidth: single = 1.0;
strokeStyle: ID2D1StrokeStyle = nil); stdcall;
procedure FillEllipse(const ellipse: TD2D1_ELLIPSE; brush: ID2D1Brush); stdcall;
procedure DrawGeometry(geometry: ID2D1Geometry; brush: ID2D1Brush; strokeWidth: single = 1.0; strokeStyle: ID2D1StrokeStyle = nil); stdcall;
procedure FillGeometry(geometry: ID2D1Geometry; brush: ID2D1Brush; opacityBrush: ID2D1Brush = nil); stdcall;
procedure FillMesh(mesh: ID2D1Mesh; brush: ID2D1Brush); stdcall;
procedure FillOpacityMask(opacityMask: ID2D1Bitmap; brush: ID2D1Brush; content: TD2D1_OPACITY_MASK_CONTENT;
destinationRectangle: PD2D1_RECT_F = nil; sourceRectangle: PD2D1_RECT_F = nil); stdcall;
procedure DrawBitmap(bitmap: ID2D1Bitmap; destinationRectangle: PD2D1_RECT_F = nil; opacity: single = 1.0;
interpolationMode: TD2D1_BITMAP_INTERPOLATION_MODE = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR;
sourceRectangle: PD2D1_RECT_F = nil); stdcall;
procedure DrawText(Text: PWideChar; stringLength: UINT32; textFormat: IDWriteTextFormat; layoutRect: PD2D1_RECT_F;
defaultFillBrush: ID2D1Brush; options: TD2D1_DRAW_TEXT_OPTIONS = D2D1_DRAW_TEXT_OPTIONS_NONE;
measuringMode: TDWRITE_MEASURING_MODE = DWRITE_MEASURING_MODE_NATURAL); stdcall;
procedure DrawTextLayout(origin: TD2D1_POINT_2F; textLayout: IDWriteTextLayout; defaultFillBrush: ID2D1Brush;
options: TD2D1_DRAW_TEXT_OPTIONS = D2D1_DRAW_TEXT_OPTIONS_NONE); stdcall;
procedure DrawGlyphRun(baselineOrigin: TD2D1_POINT_2F; glyphRun: PDWRITE_GLYPH_RUN; foregroundBrush: ID2D1Brush;
measuringMode: TDWRITE_MEASURING_MODE = DWRITE_MEASURING_MODE_NATURAL); stdcall;
procedure SetTransform(const transform: TD2D1_MATRIX_3X2_F); stdcall;
procedure GetTransform(out transform: TD2D1_MATRIX_3X2_F); stdcall;
procedure SetAntialiasMode(antialiasMode: TD2D1_ANTIALIAS_MODE); stdcall;
function GetAntialiasMode(): TD2D1_ANTIALIAS_MODE; stdcall;
procedure SetTextAntialiasMode(textAntialiasMode: TD2D1_TEXT_ANTIALIAS_MODE); stdcall;
function GetTextAntialiasMode(): TD2D1_TEXT_ANTIALIAS_MODE; stdcall;
procedure SetTextRenderingParams(textRenderingParams: IDWriteRenderingParams = nil); stdcall;
procedure GetTextRenderingParams(out textRenderingParams: IDWriteRenderingParams); stdcall;
procedure SetTags(tag1: TD2D1_TAG; tag2: TD2D1_TAG); stdcall;
procedure GetTags(out tag1: TD2D1_TAG; out tag2: TD2D1_TAG); stdcall;
procedure PushLayer(const layerParameters: TD2D1_LAYER_PARAMETERS; layer: ID2D1Layer); stdcall;
procedure PopLayer(); stdcall;
function Flush(out tag1: TD2D1_TAG; out tag2: TD2D1_TAG): HResult; stdcall;
procedure SaveDrawingState(var drawingStateBlock: ID2D1DrawingStateBlock); stdcall;
procedure RestoreDrawingState(drawingStateBlock: ID2D1DrawingStateBlock); stdcall;
procedure PushAxisAlignedClip(const clipRect: TD2D1_RECT_F; antialiasMode: TD2D1_ANTIALIAS_MODE); stdcall;
procedure PopAxisAlignedClip(); stdcall;
procedure Clear(const ClearColor: TD2D1_COLOR_F); stdcall;
procedure BeginDraw(); stdcall;
function EndDraw(tag1: PD2D1_TAG = nil; Tag2: PD2D1_TAG = nil): HResult; stdcall;
function GetPixelFormat(): TD2D1_PIXEL_FORMAT; stdcall;
procedure SetDpi(dpiX: single; dpiY: single); stdcall;
procedure GetDpi(out dpiX: single; out dpiY: single); stdcall;
function GetSize(): TD2D1_SIZE_F; stdcall;
function GetPixelSize(): TD2D1_SIZE_U; stdcall;
function GetMaximumBitmapSize(): UINT32; stdcall;
function IsSupported(renderTargetProperties: PD2D1_RENDER_TARGET_PROPERTIES): longbool; stdcall;
end;