mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-17 17:11:23 +00:00
afefecf1f0
Moves GL, minidx12, OpenAL, stblib to 3rdparty Fixes AppVeyor and CMakeLists (travis-ci.yml doesn't need any changes) Points directories in the VS solution files to the new ones on the externals directory Includes stuff with the < > syntax instead of " "
2265 lines
77 KiB
C
2265 lines
77 KiB
C
//---------------------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// This file is automatically generated. Please do not edit it directly.
|
|
//
|
|
// File name: D2D1_3.h
|
|
//---------------------------------------------------------------------------
|
|
#ifdef _MSC_VER
|
|
#pragma once
|
|
#endif // #ifdef _MSC_VER
|
|
|
|
#ifndef _D2D1_3_H_
|
|
#define _D2D1_3_H_
|
|
|
|
#ifndef _D2D1_2_H_
|
|
#include <d2d1_2.h>
|
|
#endif // #ifndef _D2D1_2_H_
|
|
#ifndef _D2D1_EFFECTS_2_
|
|
#include <d2d1effects_2.h>
|
|
#endif // #ifndef _D2D1_EFFECTS_2_
|
|
|
|
#include <winapifamily.h>
|
|
|
|
#pragma region Application Family
|
|
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
|
|
|
|
typedef interface IWICBitmapFrameDecode IWICBitmapFrameDecode;
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Enum:
|
|
// D2D1_INK_NIB_SHAPE
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_INK_NIB_SHAPE
|
|
{
|
|
D2D1_INK_NIB_SHAPE_ROUND = 0,
|
|
D2D1_INK_NIB_SHAPE_SQUARE = 1,
|
|
D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_INK_NIB_SHAPE;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Enum:
|
|
// D2D1_ORIENTATION
|
|
//
|
|
// Synopsis:
|
|
// Specifies the orientation of an image.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_ORIENTATION
|
|
{
|
|
D2D1_ORIENTATION_DEFAULT = 1,
|
|
D2D1_ORIENTATION_FLIP_HORIZONTAL = 2,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7,
|
|
D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8,
|
|
D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_ORIENTATION;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Flag:
|
|
// D2D1_IMAGE_SOURCE_LOADING_OPTIONS
|
|
//
|
|
// Synopsis:
|
|
// Option flags controlling how images sources are loaded during
|
|
// CreateImageSourceFromWic.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS
|
|
{
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_IMAGE_SOURCE_LOADING_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_LOADING_OPTIONS);
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Flag:
|
|
// D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
|
|
//
|
|
// Synopsis:
|
|
// Option flags controlling primary conversion performed by
|
|
// CreateImageSourceFromDxgi, if any.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
|
|
{
|
|
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0,
|
|
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1,
|
|
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS);
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Flag:
|
|
// D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS
|
|
//
|
|
// Synopsis:
|
|
// Option flags for transformed image sources.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS
|
|
{
|
|
D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0,
|
|
|
|
//
|
|
// Prevents the image source from being automatically scaled (by a ratio of the
|
|
// context DPI divided by 96) while drawn.
|
|
//
|
|
D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1,
|
|
D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS;
|
|
|
|
DEFINE_ENUM_FLAG_OPERATORS(D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS);
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Struct:
|
|
// D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
|
|
//
|
|
// Synopsis:
|
|
// Properties of a transformed image source.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef struct D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
|
|
{
|
|
|
|
//
|
|
// The orientation at which the image source is drawn.
|
|
//
|
|
D2D1_ORIENTATION orientation;
|
|
|
|
//
|
|
// The horizontal scale factor at which the image source is drawn.
|
|
//
|
|
FLOAT scaleX;
|
|
|
|
//
|
|
// The vertical scale factor at which the image source is drawn.
|
|
//
|
|
FLOAT scaleY;
|
|
|
|
//
|
|
// The interpolation mode used when the image source is drawn. This is ignored if
|
|
// the image source is drawn using the DrawImage method, or using an image brush.
|
|
//
|
|
D2D1_INTERPOLATION_MODE interpolationMode;
|
|
|
|
//
|
|
// Option flags.
|
|
//
|
|
D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS options;
|
|
|
|
} D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Struct:
|
|
// D2D1_INK_POINT
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef struct D2D1_INK_POINT
|
|
{
|
|
FLOAT x;
|
|
FLOAT y;
|
|
FLOAT radius;
|
|
|
|
} D2D1_INK_POINT;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Struct:
|
|
// D2D1_INK_BEZIER_SEGMENT
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef struct D2D1_INK_BEZIER_SEGMENT
|
|
{
|
|
D2D1_INK_POINT point1;
|
|
D2D1_INK_POINT point2;
|
|
D2D1_INK_POINT point3;
|
|
|
|
} D2D1_INK_BEZIER_SEGMENT;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Struct:
|
|
// D2D1_INK_STYLE_PROPERTIES
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef struct D2D1_INK_STYLE_PROPERTIES
|
|
{
|
|
|
|
//
|
|
// The general shape of the nib used to draw a given ink object.
|
|
//
|
|
D2D1_INK_NIB_SHAPE nibShape;
|
|
|
|
//
|
|
// The transform applied to shape of the nib. _31 and _32 are ignored.
|
|
//
|
|
D2D1_MATRIX_3X2_F nibTransform;
|
|
|
|
} D2D1_INK_STYLE_PROPERTIES;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Enum:
|
|
// D2D1_PATCH_EDGE_MODE
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef enum D2D1_PATCH_EDGE_MODE
|
|
{
|
|
|
|
//
|
|
// Render this edge aliased.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE_ALIASED = 0,
|
|
|
|
//
|
|
// Render this edge antialiased.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1,
|
|
|
|
//
|
|
// Render this edge aliased and inflated out slightly.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2,
|
|
D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_PATCH_EDGE_MODE;
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Struct:
|
|
// D2D1_GRADIENT_MESH_PATCH
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
typedef struct D2D1_GRADIENT_MESH_PATCH
|
|
{
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 00.
|
|
//
|
|
D2D1_POINT_2F point00;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 01.
|
|
//
|
|
D2D1_POINT_2F point01;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 02.
|
|
//
|
|
D2D1_POINT_2F point02;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 03.
|
|
//
|
|
D2D1_POINT_2F point03;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 10.
|
|
//
|
|
D2D1_POINT_2F point10;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 11.
|
|
//
|
|
D2D1_POINT_2F point11;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 12.
|
|
//
|
|
D2D1_POINT_2F point12;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 13.
|
|
//
|
|
D2D1_POINT_2F point13;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 20.
|
|
//
|
|
D2D1_POINT_2F point20;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 21.
|
|
//
|
|
D2D1_POINT_2F point21;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 22.
|
|
//
|
|
D2D1_POINT_2F point22;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 23.
|
|
//
|
|
D2D1_POINT_2F point23;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 30.
|
|
//
|
|
D2D1_POINT_2F point30;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 31.
|
|
//
|
|
D2D1_POINT_2F point31;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 32.
|
|
//
|
|
D2D1_POINT_2F point32;
|
|
|
|
//
|
|
// The gradient mesh patch control point at position 33.
|
|
//
|
|
D2D1_POINT_2F point33;
|
|
|
|
//
|
|
// The color associated with control point at position 00.
|
|
//
|
|
D2D1_COLOR_F color00;
|
|
|
|
//
|
|
// The color associated with control point at position 03.
|
|
//
|
|
D2D1_COLOR_F color03;
|
|
|
|
//
|
|
// The color associated with control point at position 30.
|
|
//
|
|
D2D1_COLOR_F color30;
|
|
|
|
//
|
|
// The color associated with control point at position 33.
|
|
//
|
|
D2D1_COLOR_F color33;
|
|
|
|
//
|
|
// The edge mode for the top edge of the patch.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE topEdgeMode;
|
|
|
|
//
|
|
// The edge mode for the left edge of the patch.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE leftEdgeMode;
|
|
|
|
//
|
|
// The edge mode for the bottom edge of the patch.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE bottomEdgeMode;
|
|
|
|
//
|
|
// The edge mode for the right edge of the patch.
|
|
//
|
|
D2D1_PATCH_EDGE_MODE rightEdgeMode;
|
|
|
|
} D2D1_GRADIENT_MESH_PATCH;
|
|
|
|
|
|
#ifndef D2D_USE_C_DEFINITIONS
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1InkStyle
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("bae8b344-23fc-4071-8cb5-d05d6f073848") ID2D1InkStyle : public ID2D1Resource
|
|
{
|
|
|
|
STDMETHOD_(void, SetNibTransform)(
|
|
_In_ CONST D2D1_MATRIX_3X2_F *transform
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, GetNibTransform)(
|
|
_Out_ D2D1_MATRIX_3X2_F *transform
|
|
) CONST PURE;
|
|
|
|
STDMETHOD_(void, SetNibShape)(
|
|
D2D1_INK_NIB_SHAPE nibShape
|
|
) PURE;
|
|
|
|
STDMETHOD_(D2D1_INK_NIB_SHAPE, GetNibShape)(
|
|
) CONST PURE;
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
void
|
|
SetNibTransform(
|
|
CONST D2D1_MATRIX_3X2_F &transform
|
|
)
|
|
{
|
|
SetNibTransform(&transform);
|
|
}
|
|
}; // interface ID2D1InkStyle
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1Ink
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink : public ID2D1Resource
|
|
{
|
|
|
|
|
|
//
|
|
// Resets the ink start point.
|
|
//
|
|
STDMETHOD_(void, SetStartPoint)(
|
|
_In_ CONST D2D1_INK_POINT *startPoint
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Retrieve the start point with which the ink was initialized.
|
|
//
|
|
STDMETHOD_(D2D1_INK_POINT, GetStartPoint)(
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Add one or more segments to the end of the ink.
|
|
//
|
|
STDMETHOD(AddSegments)(
|
|
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Remove one or more segments from the end of the ink.
|
|
//
|
|
STDMETHOD(RemoveSegmentsAtEnd)(
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Updates the specified segments with new control points.
|
|
//
|
|
STDMETHOD(SetSegments)(
|
|
UINT32 startSegment,
|
|
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Update the last segment with new control points.
|
|
//
|
|
STDMETHOD(SetSegmentAtEnd)(
|
|
_In_ CONST D2D1_INK_BEZIER_SEGMENT *segment
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Returns the number of segments the ink is composed of.
|
|
//
|
|
STDMETHOD_(UINT32, GetSegmentCount)(
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Retrieve the segments stored in the ink.
|
|
//
|
|
STDMETHOD(GetSegments)(
|
|
UINT32 startSegment,
|
|
_Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Construct a geometric representation of the ink.
|
|
//
|
|
STDMETHOD(StreamAsGeometry)(
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
|
|
FLOAT flatteningTolerance,
|
|
_In_ ID2D1SimplifiedGeometrySink *geometrySink
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Retrieve the bounds of the ink, with an optional applied transform.
|
|
//
|
|
STDMETHOD(GetBounds)(
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
|
|
_Out_ D2D1_RECT_F *bounds
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Resets the ink start point.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
void
|
|
SetStartPoint(
|
|
CONST D2D1_INK_POINT &startPoint
|
|
)
|
|
{
|
|
SetStartPoint(&startPoint);
|
|
}
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
SetSegmentAtEnd(
|
|
CONST D2D1_INK_BEZIER_SEGMENT &segment
|
|
)
|
|
{
|
|
return SetSegmentAtEnd(&segment);
|
|
}
|
|
|
|
|
|
//
|
|
// Construct a geometric representation of the ink.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
StreamAsGeometry(
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
CONST D2D1_MATRIX_3X2_F &worldTransform,
|
|
FLOAT flatteningTolerance,
|
|
_In_ ID2D1SimplifiedGeometrySink *geometrySink
|
|
) CONST
|
|
{
|
|
return StreamAsGeometry(inkStyle,&worldTransform, flatteningTolerance, geometrySink);
|
|
}
|
|
|
|
|
|
//
|
|
// Construct a geometric representation of the ink.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
StreamAsGeometry(
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
|
|
_In_ ID2D1SimplifiedGeometrySink *geometrySink
|
|
) CONST
|
|
{
|
|
return StreamAsGeometry(inkStyle,worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
|
|
}
|
|
|
|
|
|
//
|
|
// Construct a geometric representation of the ink.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
StreamAsGeometry(
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
CONST D2D1_MATRIX_3X2_F &worldTransform,
|
|
_In_ ID2D1SimplifiedGeometrySink *geometrySink
|
|
) CONST
|
|
{
|
|
return StreamAsGeometry(inkStyle,&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
|
|
}
|
|
}; // interface ID2D1Ink
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1GradientMesh
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("f292e401-c050-4cde-83d7-04962d3b23c2") ID2D1GradientMesh : public ID2D1Resource
|
|
{
|
|
|
|
|
|
//
|
|
// Returns the number of patches of the gradient mesh.
|
|
//
|
|
STDMETHOD_(UINT32, GetPatchCount)(
|
|
) CONST PURE;
|
|
|
|
|
|
//
|
|
// Retrieve the patch data stored in the gradient mesh.
|
|
//
|
|
STDMETHOD(GetPatches)(
|
|
UINT32 startIndex,
|
|
_Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches,
|
|
UINT32 patchesCount
|
|
) CONST PURE;
|
|
}; // interface ID2D1GradientMesh
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1ImageSource
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("c9b664e5-74a1-4378-9ac2-eefc37a3f4d8") ID2D1ImageSource : public ID2D1Image
|
|
{
|
|
|
|
STDMETHOD(OfferResources)(
|
|
) PURE;
|
|
|
|
STDMETHOD(TryReclaimResources)(
|
|
_Out_ BOOL *resourcesDiscarded
|
|
) PURE;
|
|
}; // interface ID2D1ImageSource
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1ImageSourceFromWic
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("77395441-1c8f-4555-8683-f50dab0fe792") ID2D1ImageSourceFromWic : public ID2D1ImageSource
|
|
{
|
|
|
|
STDMETHOD(EnsureCached)(
|
|
_In_opt_ CONST D2D1_RECT_U *rectangleToFill
|
|
) PURE;
|
|
|
|
STDMETHOD(TrimCache)(
|
|
_In_opt_ CONST D2D1_RECT_U *rectangleToPreserve
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, GetSource)(
|
|
_Outptr_result_maybenull_ IWICBitmapSource **wicBitmapSource
|
|
) CONST PURE;
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
EnsureCached(
|
|
CONST D2D1_RECT_U &rectangleToFill
|
|
)
|
|
{
|
|
return EnsureCached(&rectangleToFill);
|
|
}
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
TrimCache(
|
|
CONST D2D1_RECT_U &rectangleToPreserve
|
|
)
|
|
{
|
|
return TrimCache(&rectangleToPreserve);
|
|
}
|
|
}; // interface ID2D1ImageSourceFromWic
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1TransformedImageSource
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("7f1f79e5-2796-416c-8f55-700f911445e5") ID2D1TransformedImageSource : public ID2D1Image
|
|
{
|
|
|
|
STDMETHOD_(void, GetSource)(
|
|
_Outptr_result_maybenull_ ID2D1ImageSource **imageSource
|
|
) CONST PURE;
|
|
|
|
STDMETHOD_(void, GetProperties)(
|
|
_Out_ D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties
|
|
) CONST PURE;
|
|
}; // interface ID2D1TransformedImageSource
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1LookupTable3D
|
|
//
|
|
// Synopsis:
|
|
// A container for 3D lookup table data that can be passed to the LookupTable3D
|
|
// effect.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("53dd9855-a3b0-4d5b-82e1-26e25c5e5797") ID2D1LookupTable3D : public ID2D1Resource
|
|
{
|
|
}; // interface ID2D1LookupTable3D
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1DeviceContext2
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1DeviceContext2 : public ID2D1DeviceContext1
|
|
{
|
|
|
|
STDMETHOD(CreateInk)(
|
|
_In_ CONST D2D1_INK_POINT *startPoint,
|
|
_Outptr_ ID2D1Ink **ink
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Creates a new ink style.
|
|
//
|
|
STDMETHOD(CreateInkStyle)(
|
|
_In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties,
|
|
_Outptr_ ID2D1InkStyle **inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateGradientMesh)(
|
|
_In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches,
|
|
UINT32 patchesCount,
|
|
_Outptr_ ID2D1GradientMesh **gradientMesh
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateImageSourceFromWic)(
|
|
_In_ IWICBitmapSource *wicBitmapSource,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
|
|
D2D1_ALPHA_MODE alphaMode,
|
|
_Outptr_ ID2D1ImageSourceFromWic **imageSource
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Creates a 3D lookup table for mapping a 3-channel input to a 3-channel output.
|
|
// The table data must be provided in 4-channel format.
|
|
//
|
|
STDMETHOD(CreateLookupTable3D)(
|
|
D2D1_BUFFER_PRECISION precision,
|
|
_In_reads_(3) CONST UINT32 *extents,
|
|
_In_reads_(dataCount) CONST BYTE *data,
|
|
UINT32 dataCount,
|
|
_In_reads_(2) CONST UINT32 *strides,
|
|
_Outptr_ ID2D1LookupTable3D **lookupTable
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateImageSourceFromDxgi)(
|
|
_In_reads_(surfaceCount) IDXGISurface **surfaces,
|
|
UINT32 surfaceCount,
|
|
DXGI_COLOR_SPACE_TYPE colorSpace,
|
|
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
|
|
_Outptr_ ID2D1ImageSource **imageSource
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Retrieves the world-space bounds in DIPs of the gradient mesh using the device
|
|
// context DPI.
|
|
//
|
|
STDMETHOD(GetGradientMeshWorldBounds)(
|
|
_In_ ID2D1GradientMesh *gradientMesh,
|
|
_Out_ D2D1_RECT_F *pBounds
|
|
) CONST PURE;
|
|
|
|
STDMETHOD_(void, DrawInk)(
|
|
_In_ ID2D1Ink *ink,
|
|
_In_ ID2D1Brush *brush,
|
|
_In_opt_ ID2D1InkStyle *inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, DrawGradientMesh)(
|
|
_In_ ID2D1GradientMesh *gradientMesh
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Draw a metafile to the device context.
|
|
//
|
|
STDMETHOD_(void, DrawGdiMetafile)(
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
_In_opt_ CONST D2D1_RECT_F *destinationRectangle,
|
|
_In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
|
|
) PURE;
|
|
|
|
using ID2D1DeviceContext::DrawGdiMetafile;
|
|
|
|
|
|
//
|
|
// Creates an image source which shares resources with an original.
|
|
//
|
|
STDMETHOD(CreateTransformedImageSource)(
|
|
_In_ ID2D1ImageSource *imageSource,
|
|
_In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties,
|
|
_Outptr_ ID2D1TransformedImageSource **transformedImageSource
|
|
) PURE;
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
CreateInk(
|
|
CONST D2D1_INK_POINT &startPoint,
|
|
_Outptr_ ID2D1Ink **ink
|
|
)
|
|
{
|
|
return CreateInk(&startPoint, ink);
|
|
}
|
|
|
|
|
|
//
|
|
// Creates a new ink style.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
CreateInkStyle(
|
|
CONST D2D1_INK_STYLE_PROPERTIES &inkStyleProperties,
|
|
_Outptr_ ID2D1InkStyle **inkStyle
|
|
)
|
|
{
|
|
return CreateInkStyle(&inkStyleProperties, inkStyle);
|
|
}
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
CreateImageSourceFromWic(
|
|
_In_ IWICBitmapSource *wicBitmapSource,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
|
|
_Outptr_ ID2D1ImageSourceFromWic **imageSource
|
|
)
|
|
{
|
|
return CreateImageSourceFromWic(wicBitmapSource, loadingOptions, D2D1_ALPHA_MODE_UNKNOWN, imageSource);
|
|
}
|
|
|
|
COM_DECLSPEC_NOTHROW
|
|
HRESULT
|
|
CreateImageSourceFromWic(
|
|
_In_ IWICBitmapSource *wicBitmapSource,
|
|
_Outptr_ ID2D1ImageSourceFromWic **imageSource
|
|
)
|
|
{
|
|
return CreateImageSourceFromWic(wicBitmapSource, D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE, D2D1_ALPHA_MODE_UNKNOWN, imageSource);
|
|
}
|
|
|
|
|
|
//
|
|
// Draw a metafile to the device context.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
void
|
|
DrawGdiMetafile(
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
CONST D2D1_RECT_F &destinationRectangle,
|
|
CONST D2D1_RECT_F &sourceRectangle
|
|
)
|
|
{
|
|
return DrawGdiMetafile(gdiMetafile, &destinationRectangle, &sourceRectangle);
|
|
}
|
|
|
|
|
|
//
|
|
// Draw a metafile to the device context.
|
|
//
|
|
COM_DECLSPEC_NOTHROW
|
|
void
|
|
DrawGdiMetafile(
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
CONST D2D1_RECT_F &destinationRectangle,
|
|
_In_ CONST D2D1_RECT_F *sourceRectangle = NULL
|
|
)
|
|
{
|
|
return DrawGdiMetafile(gdiMetafile, &destinationRectangle, sourceRectangle);
|
|
}
|
|
}; // interface ID2D1DeviceContext2
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1Device2
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("a44472e1-8dfb-4e60-8492-6e2861c9ca8b") ID2D1Device2 : public ID2D1Device1
|
|
{
|
|
|
|
|
|
//
|
|
// Creates a new device context with no initially assigned target.
|
|
//
|
|
STDMETHOD(CreateDeviceContext)(
|
|
D2D1_DEVICE_CONTEXT_OPTIONS options,
|
|
_Outptr_ ID2D1DeviceContext2 **deviceContext2
|
|
) PURE;
|
|
|
|
using ID2D1Device1::CreateDeviceContext;
|
|
|
|
using ID2D1Device::CreateDeviceContext;
|
|
|
|
|
|
//
|
|
// Flush all device contexts that reference a given bitmap.
|
|
//
|
|
STDMETHOD_(void, FlushDeviceContexts)(
|
|
_In_ ID2D1Bitmap *bitmap
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Returns the DXGI device associated with this D2D device.
|
|
//
|
|
STDMETHOD(GetDxgiDevice)(
|
|
_Outptr_ IDXGIDevice **dxgiDevice
|
|
) PURE;
|
|
}; // interface ID2D1Device2
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1Factory3
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("0869759f-4f00-413f-b03e-2bda45404d0f") ID2D1Factory3 : public ID2D1Factory2
|
|
{
|
|
|
|
|
|
//
|
|
// This creates a new Direct2D device from the given IDXGIDevice.
|
|
//
|
|
STDMETHOD(CreateDevice)(
|
|
_In_ IDXGIDevice *dxgiDevice,
|
|
_Outptr_ ID2D1Device2 **d2dDevice2
|
|
) PURE;
|
|
|
|
using ID2D1Factory2::CreateDevice;
|
|
|
|
using ID2D1Factory1::CreateDevice;
|
|
}; // interface ID2D1Factory3
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1CommandSink2
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("3bab440e-417e-47df-a2e2-bc0be6a00916") ID2D1CommandSink2 : public ID2D1CommandSink1
|
|
{
|
|
|
|
STDMETHOD(DrawInk)(
|
|
_In_ ID2D1Ink *ink,
|
|
_In_ ID2D1Brush *brush,
|
|
_In_opt_ ID2D1InkStyle *inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD(DrawGradientMesh)(
|
|
_In_ ID2D1GradientMesh *gradientMesh
|
|
) PURE;
|
|
|
|
STDMETHOD(DrawGdiMetafile)(
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
_In_opt_ CONST D2D1_RECT_F *destinationRectangle,
|
|
_In_opt_ CONST D2D1_RECT_F *sourceRectangle
|
|
) PURE;
|
|
|
|
using ID2D1CommandSink::DrawGdiMetafile;
|
|
}; // interface ID2D1CommandSink2
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1GdiMetafile1
|
|
//
|
|
// Synopsis:
|
|
// Interface encapsulating a GDI/GDI+ metafile.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("2e69f9e8-dd3f-4bf9-95ba-c04f49d788df") ID2D1GdiMetafile1 : public ID2D1GdiMetafile
|
|
{
|
|
|
|
|
|
//
|
|
// Returns the DPI reported by the metafile.
|
|
//
|
|
STDMETHOD(GetDpi)(
|
|
_Out_ FLOAT *dpiX,
|
|
_Out_ FLOAT *dpiY
|
|
) PURE;
|
|
|
|
|
|
//
|
|
// Gets the bounds (in DIPs) of the metafile (as specified by the frame rect
|
|
// declared in the metafile).
|
|
//
|
|
STDMETHOD(GetSourceBounds)(
|
|
_Out_ D2D1_RECT_F *bounds
|
|
) PURE;
|
|
}; // interface ID2D1GdiMetafile1
|
|
|
|
|
|
|
|
//+-----------------------------------------------------------------------------
|
|
//
|
|
// Interface:
|
|
// ID2D1GdiMetafileSink1
|
|
//
|
|
// Synopsis:
|
|
// User-implementable interface for introspecting on a metafile.
|
|
//
|
|
//------------------------------------------------------------------------------
|
|
interface DX_DECLARE_INTERFACE("fd0ecb6b-91e6-411e-8655-395e760f91b4") ID2D1GdiMetafileSink1 : public ID2D1GdiMetafileSink
|
|
{
|
|
|
|
|
|
//
|
|
// Callback for examining a metafile record.
|
|
//
|
|
STDMETHOD(ProcessRecord)(
|
|
DWORD recordType,
|
|
_In_opt_ CONST void *recordData,
|
|
DWORD recordDataSize,
|
|
UINT32 flags
|
|
) PURE;
|
|
|
|
using ID2D1GdiMetafileSink::ProcessRecord;
|
|
}; // interface ID2D1GdiMetafileSink1
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
EXTERN_C CONST IID IID_ID2D1InkStyle;
|
|
EXTERN_C CONST IID IID_ID2D1Ink;
|
|
EXTERN_C CONST IID IID_ID2D1GradientMesh;
|
|
EXTERN_C CONST IID IID_ID2D1ImageSource;
|
|
EXTERN_C CONST IID IID_ID2D1ImageSourceFromWic;
|
|
EXTERN_C CONST IID IID_ID2D1TransformedImageSource;
|
|
EXTERN_C CONST IID IID_ID2D1LookupTable3D;
|
|
EXTERN_C CONST IID IID_ID2D1DeviceContext2;
|
|
EXTERN_C CONST IID IID_ID2D1Device2;
|
|
EXTERN_C CONST IID IID_ID2D1Factory3;
|
|
EXTERN_C CONST IID IID_ID2D1CommandSink2;
|
|
EXTERN_C CONST IID IID_ID2D1GdiMetafile1;
|
|
EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1;
|
|
|
|
|
|
#ifdef D2D_USE_C_DEFINITIONS
|
|
|
|
|
|
typedef interface ID2D1InkStyle ID2D1InkStyle;
|
|
|
|
typedef struct ID2D1InkStyleVtbl
|
|
{
|
|
|
|
ID2D1ResourceVtbl Base;
|
|
|
|
|
|
STDMETHOD_(void, SetNibTransform)(
|
|
ID2D1InkStyle *This,
|
|
_In_ CONST D2D1_MATRIX_3X2_F *transform
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, GetNibTransform)(
|
|
ID2D1InkStyle *This,
|
|
_Out_ D2D1_MATRIX_3X2_F *transform
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, SetNibShape)(
|
|
ID2D1InkStyle *This,
|
|
D2D1_INK_NIB_SHAPE nibShape
|
|
) PURE;
|
|
|
|
STDMETHOD_(D2D1_INK_NIB_SHAPE, GetNibShape)(
|
|
ID2D1InkStyle *This
|
|
) PURE;
|
|
} ID2D1InkStyleVtbl;
|
|
|
|
interface ID2D1InkStyle
|
|
{
|
|
CONST struct ID2D1InkStyleVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1InkStyle_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1InkStyle_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1InkStyle_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1InkStyle_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1InkStyle_SetNibTransform(This, transform) \
|
|
((This)->lpVtbl->SetNibTransform(This, transform))
|
|
|
|
#define ID2D1InkStyle_GetNibTransform(This, transform) \
|
|
((This)->lpVtbl->GetNibTransform(This, transform))
|
|
|
|
#define ID2D1InkStyle_SetNibShape(This, nibShape) \
|
|
((This)->lpVtbl->SetNibShape(This, nibShape))
|
|
|
|
#define ID2D1InkStyle_GetNibShape(This) \
|
|
((This)->lpVtbl->GetNibShape(This))
|
|
|
|
typedef interface ID2D1Ink ID2D1Ink;
|
|
|
|
typedef struct ID2D1InkVtbl
|
|
{
|
|
|
|
ID2D1ResourceVtbl Base;
|
|
|
|
|
|
STDMETHOD_(void, SetStartPoint)(
|
|
ID2D1Ink *This,
|
|
_In_ CONST D2D1_INK_POINT *startPoint
|
|
) PURE;
|
|
|
|
STDMETHOD_(D2D1_INK_POINT, GetStartPoint)(
|
|
ID2D1Ink *This
|
|
) PURE;
|
|
|
|
STDMETHOD(AddSegments)(
|
|
ID2D1Ink *This,
|
|
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
STDMETHOD(RemoveSegmentsAtEnd)(
|
|
ID2D1Ink *This,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
STDMETHOD(SetSegments)(
|
|
ID2D1Ink *This,
|
|
UINT32 startSegment,
|
|
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
STDMETHOD(SetSegmentAtEnd)(
|
|
ID2D1Ink *This,
|
|
_In_ CONST D2D1_INK_BEZIER_SEGMENT *segment
|
|
) PURE;
|
|
|
|
STDMETHOD_(UINT32, GetSegmentCount)(
|
|
ID2D1Ink *This
|
|
) PURE;
|
|
|
|
STDMETHOD(GetSegments)(
|
|
ID2D1Ink *This,
|
|
UINT32 startSegment,
|
|
_Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments,
|
|
UINT32 segmentsCount
|
|
) PURE;
|
|
|
|
STDMETHOD(StreamAsGeometry)(
|
|
ID2D1Ink *This,
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
|
|
FLOAT flatteningTolerance,
|
|
_In_ ID2D1SimplifiedGeometrySink *geometrySink
|
|
) PURE;
|
|
|
|
STDMETHOD(GetBounds)(
|
|
ID2D1Ink *This,
|
|
_In_opt_ ID2D1InkStyle *inkStyle,
|
|
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
|
|
_Out_ D2D1_RECT_F *bounds
|
|
) PURE;
|
|
} ID2D1InkVtbl;
|
|
|
|
interface ID2D1Ink
|
|
{
|
|
CONST struct ID2D1InkVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1Ink_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1Ink_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1Ink_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1Ink_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1Ink_SetStartPoint(This, startPoint) \
|
|
((This)->lpVtbl->SetStartPoint(This, startPoint))
|
|
|
|
#define ID2D1Ink_GetStartPoint(This) \
|
|
((This)->lpVtbl->GetStartPoint(This))
|
|
|
|
#define ID2D1Ink_AddSegments(This, segments, segmentsCount) \
|
|
((This)->lpVtbl->AddSegments(This, segments, segmentsCount))
|
|
|
|
#define ID2D1Ink_RemoveSegmentsAtEnd(This, segmentsCount) \
|
|
((This)->lpVtbl->RemoveSegmentsAtEnd(This, segmentsCount))
|
|
|
|
#define ID2D1Ink_SetSegments(This, startSegment, segments, segmentsCount) \
|
|
((This)->lpVtbl->SetSegments(This, startSegment, segments, segmentsCount))
|
|
|
|
#define ID2D1Ink_SetSegmentAtEnd(This, segment) \
|
|
((This)->lpVtbl->SetSegmentAtEnd(This, segment))
|
|
|
|
#define ID2D1Ink_GetSegmentCount(This) \
|
|
((This)->lpVtbl->GetSegmentCount(This))
|
|
|
|
#define ID2D1Ink_GetSegments(This, startSegment, segments, segmentsCount) \
|
|
((This)->lpVtbl->GetSegments(This, startSegment, segments, segmentsCount))
|
|
|
|
#define ID2D1Ink_StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink) \
|
|
((This)->lpVtbl->StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink))
|
|
|
|
#define ID2D1Ink_GetBounds(This, inkStyle, worldTransform, bounds) \
|
|
((This)->lpVtbl->GetBounds(This, inkStyle, worldTransform, bounds))
|
|
|
|
typedef interface ID2D1GradientMesh ID2D1GradientMesh;
|
|
|
|
typedef struct ID2D1GradientMeshVtbl
|
|
{
|
|
|
|
ID2D1ResourceVtbl Base;
|
|
|
|
|
|
STDMETHOD_(UINT32, GetPatchCount)(
|
|
ID2D1GradientMesh *This
|
|
) PURE;
|
|
|
|
STDMETHOD(GetPatches)(
|
|
ID2D1GradientMesh *This,
|
|
UINT32 startIndex,
|
|
_Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches,
|
|
UINT32 patchesCount
|
|
) PURE;
|
|
} ID2D1GradientMeshVtbl;
|
|
|
|
interface ID2D1GradientMesh
|
|
{
|
|
CONST struct ID2D1GradientMeshVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1GradientMesh_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1GradientMesh_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1GradientMesh_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1GradientMesh_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1GradientMesh_GetPatchCount(This) \
|
|
((This)->lpVtbl->GetPatchCount(This))
|
|
|
|
#define ID2D1GradientMesh_GetPatches(This, startIndex, patches, patchesCount) \
|
|
((This)->lpVtbl->GetPatches(This, startIndex, patches, patchesCount))
|
|
|
|
typedef interface ID2D1ImageSource ID2D1ImageSource;
|
|
|
|
typedef struct ID2D1ImageSourceVtbl
|
|
{
|
|
|
|
ID2D1ImageVtbl Base;
|
|
|
|
|
|
STDMETHOD(OfferResources)(
|
|
ID2D1ImageSource *This
|
|
) PURE;
|
|
|
|
STDMETHOD(TryReclaimResources)(
|
|
ID2D1ImageSource *This,
|
|
_Out_ BOOL *resourcesDiscarded
|
|
) PURE;
|
|
} ID2D1ImageSourceVtbl;
|
|
|
|
interface ID2D1ImageSource
|
|
{
|
|
CONST struct ID2D1ImageSourceVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1ImageSource_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1ImageSource_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1ImageSource_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1ImageSource_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1ImageSource_OfferResources(This) \
|
|
((This)->lpVtbl->OfferResources(This))
|
|
|
|
#define ID2D1ImageSource_TryReclaimResources(This, resourcesDiscarded) \
|
|
((This)->lpVtbl->TryReclaimResources(This, resourcesDiscarded))
|
|
|
|
typedef interface ID2D1ImageSourceFromWic ID2D1ImageSourceFromWic;
|
|
|
|
typedef struct ID2D1ImageSourceFromWicVtbl
|
|
{
|
|
|
|
ID2D1ImageSourceVtbl Base;
|
|
|
|
|
|
STDMETHOD(EnsureCached)(
|
|
ID2D1ImageSourceFromWic *This,
|
|
_In_opt_ CONST D2D1_RECT_U *rectangleToFill
|
|
) PURE;
|
|
|
|
STDMETHOD(TrimCache)(
|
|
ID2D1ImageSourceFromWic *This,
|
|
_In_opt_ CONST D2D1_RECT_U *rectangleToPreserve
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, GetSource)(
|
|
ID2D1ImageSourceFromWic *This,
|
|
_Outptr_result_maybenull_ IWICBitmapSource **wicBitmapSource
|
|
) PURE;
|
|
} ID2D1ImageSourceFromWicVtbl;
|
|
|
|
interface ID2D1ImageSourceFromWic
|
|
{
|
|
CONST struct ID2D1ImageSourceFromWicVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1ImageSourceFromWic_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1ImageSourceFromWic_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1ImageSourceFromWic_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1ImageSourceFromWic_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1ImageSourceFromWic_OfferResources(This) \
|
|
((This)->lpVtbl->Base.OfferResources((ID2D1ImageSource *)This))
|
|
|
|
#define ID2D1ImageSourceFromWic_TryReclaimResources(This, resourcesDiscarded) \
|
|
((This)->lpVtbl->Base.TryReclaimResources((ID2D1ImageSource *)This, resourcesDiscarded))
|
|
|
|
#define ID2D1ImageSourceFromWic_EnsureCached(This, rectangleToFill) \
|
|
((This)->lpVtbl->EnsureCached(This, rectangleToFill))
|
|
|
|
#define ID2D1ImageSourceFromWic_TrimCache(This, rectangleToPreserve) \
|
|
((This)->lpVtbl->TrimCache(This, rectangleToPreserve))
|
|
|
|
#define ID2D1ImageSourceFromWic_GetSource(This, wicBitmapSource) \
|
|
((This)->lpVtbl->GetSource(This, wicBitmapSource))
|
|
|
|
typedef interface ID2D1TransformedImageSource ID2D1TransformedImageSource;
|
|
|
|
typedef struct ID2D1TransformedImageSourceVtbl
|
|
{
|
|
|
|
ID2D1ImageVtbl Base;
|
|
|
|
|
|
STDMETHOD_(void, GetSource)(
|
|
ID2D1TransformedImageSource *This,
|
|
_Outptr_result_maybenull_ ID2D1ImageSource **imageSource
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, GetProperties)(
|
|
ID2D1TransformedImageSource *This,
|
|
_Out_ D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties
|
|
) PURE;
|
|
} ID2D1TransformedImageSourceVtbl;
|
|
|
|
interface ID2D1TransformedImageSource
|
|
{
|
|
CONST struct ID2D1TransformedImageSourceVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1TransformedImageSource_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1TransformedImageSource_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1TransformedImageSource_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1TransformedImageSource_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1TransformedImageSource_GetSource(This, imageSource) \
|
|
((This)->lpVtbl->GetSource(This, imageSource))
|
|
|
|
#define ID2D1TransformedImageSource_GetProperties(This, properties) \
|
|
((This)->lpVtbl->GetProperties(This, properties))
|
|
|
|
typedef interface ID2D1LookupTable3D ID2D1LookupTable3D;
|
|
|
|
typedef struct ID2D1LookupTable3DVtbl
|
|
{
|
|
|
|
ID2D1ResourceVtbl Base;
|
|
|
|
} ID2D1LookupTable3DVtbl;
|
|
|
|
interface ID2D1LookupTable3D
|
|
{
|
|
CONST struct ID2D1LookupTable3DVtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1LookupTable3D_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1LookupTable3D_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1LookupTable3D_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1LookupTable3D_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
typedef interface ID2D1DeviceContext2 ID2D1DeviceContext2;
|
|
|
|
typedef struct ID2D1DeviceContext2Vtbl
|
|
{
|
|
|
|
ID2D1DeviceContext1Vtbl Base;
|
|
|
|
|
|
STDMETHOD(CreateInk)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ CONST D2D1_INK_POINT *startPoint,
|
|
_Outptr_ ID2D1Ink **ink
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateInkStyle)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties,
|
|
_Outptr_ ID2D1InkStyle **inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateGradientMesh)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches,
|
|
UINT32 patchesCount,
|
|
_Outptr_ ID2D1GradientMesh **gradientMesh
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateImageSourceFromWic)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ IWICBitmapSource *wicBitmapSource,
|
|
D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
|
|
D2D1_ALPHA_MODE alphaMode,
|
|
_Outptr_ ID2D1ImageSourceFromWic **imageSource
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateLookupTable3D)(
|
|
ID2D1DeviceContext2 *This,
|
|
D2D1_BUFFER_PRECISION precision,
|
|
_In_reads_(3) CONST UINT32 *extents,
|
|
_In_reads_(dataCount) CONST BYTE *data,
|
|
UINT32 dataCount,
|
|
_In_reads_(2) CONST UINT32 *strides,
|
|
_Outptr_ ID2D1LookupTable3D **lookupTable
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateImageSourceFromDxgi)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_reads_(surfaceCount) IDXGISurface **surfaces,
|
|
UINT32 surfaceCount,
|
|
DXGI_COLOR_SPACE_TYPE colorSpace,
|
|
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
|
|
_Outptr_ ID2D1ImageSource **imageSource
|
|
) PURE;
|
|
|
|
STDMETHOD(GetGradientMeshWorldBounds)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ ID2D1GradientMesh *gradientMesh,
|
|
_Out_ D2D1_RECT_F *pBounds
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, DrawInk)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ ID2D1Ink *ink,
|
|
_In_ ID2D1Brush *brush,
|
|
_In_opt_ ID2D1InkStyle *inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, DrawGradientMesh)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ ID2D1GradientMesh *gradientMesh
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, DrawGdiMetafile)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
_In_opt_ CONST D2D1_RECT_F *destinationRectangle,
|
|
_In_opt_ CONST D2D1_RECT_F *sourceRectangle
|
|
) PURE;
|
|
|
|
STDMETHOD(CreateTransformedImageSource)(
|
|
ID2D1DeviceContext2 *This,
|
|
_In_ ID2D1ImageSource *imageSource,
|
|
_In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties,
|
|
_Outptr_ ID2D1TransformedImageSource **transformedImageSource
|
|
) PURE;
|
|
} ID2D1DeviceContext2Vtbl;
|
|
|
|
interface ID2D1DeviceContext2
|
|
{
|
|
CONST struct ID2D1DeviceContext2Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1DeviceContext2_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1DeviceContext2_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1DeviceContext2_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1DeviceContext2_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1DeviceContext2_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
|
|
|
|
#define ID2D1DeviceContext2_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
|
|
|
|
#define ID2D1DeviceContext2_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
|
|
|
|
#define ID2D1DeviceContext2_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
|
|
|
|
#define ID2D1DeviceContext2_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
|
|
|
|
#define ID2D1DeviceContext2_CreateLayer(This, size, layer) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
|
|
|
|
#define ID2D1DeviceContext2_CreateMesh(This, mesh) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
|
|
|
|
#define ID2D1DeviceContext2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1DeviceContext2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1DeviceContext2_FillRectangle(This, rect, brush) \
|
|
((This)->lpVtbl->Base.Base.Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
|
|
|
|
#define ID2D1DeviceContext2_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1DeviceContext2_FillRoundedRectangle(This, roundedRect, brush) \
|
|
((This)->lpVtbl->Base.Base.Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
|
|
|
|
#define ID2D1DeviceContext2_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1DeviceContext2_FillEllipse(This, ellipse, brush) \
|
|
((This)->lpVtbl->Base.Base.Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
|
|
|
|
#define ID2D1DeviceContext2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1DeviceContext2_FillGeometry(This, geometry, brush, opacityBrush) \
|
|
((This)->lpVtbl->Base.Base.Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
|
|
|
|
#define ID2D1DeviceContext2_FillMesh(This, mesh, brush) \
|
|
((This)->lpVtbl->Base.Base.Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
|
|
|
|
#define ID2D1DeviceContext2_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
|
|
|
|
#define ID2D1DeviceContext2_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
|
|
((This)->lpVtbl->Base.Base.Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
|
|
|
|
#define ID2D1DeviceContext2_SetTransform(This, transform) \
|
|
((This)->lpVtbl->Base.Base.Base.SetTransform((ID2D1RenderTarget *)This, transform))
|
|
|
|
#define ID2D1DeviceContext2_GetTransform(This, transform) \
|
|
((This)->lpVtbl->Base.Base.Base.GetTransform((ID2D1RenderTarget *)This, transform))
|
|
|
|
#define ID2D1DeviceContext2_SetAntialiasMode(This, antialiasMode) \
|
|
((This)->lpVtbl->Base.Base.Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
|
|
|
|
#define ID2D1DeviceContext2_GetAntialiasMode(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetAntialiasMode((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_SetTextAntialiasMode(This, textAntialiasMode) \
|
|
((This)->lpVtbl->Base.Base.Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
|
|
|
|
#define ID2D1DeviceContext2_GetTextAntialiasMode(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_SetTextRenderingParams(This, textRenderingParams) \
|
|
((This)->lpVtbl->Base.Base.Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
|
|
|
|
#define ID2D1DeviceContext2_GetTextRenderingParams(This, textRenderingParams) \
|
|
((This)->lpVtbl->Base.Base.Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
|
|
|
|
#define ID2D1DeviceContext2_SetTags(This, tag1, tag2) \
|
|
((This)->lpVtbl->Base.Base.Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
|
|
|
|
#define ID2D1DeviceContext2_GetTags(This, tag1, tag2) \
|
|
((This)->lpVtbl->Base.Base.Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
|
|
|
|
#define ID2D1DeviceContext2_PopLayer(This) \
|
|
((This)->lpVtbl->Base.Base.Base.PopLayer((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_Flush(This, tag1, tag2) \
|
|
((This)->lpVtbl->Base.Base.Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
|
|
|
|
#define ID2D1DeviceContext2_SaveDrawingState(This, drawingStateBlock) \
|
|
((This)->lpVtbl->Base.Base.Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
|
|
|
|
#define ID2D1DeviceContext2_RestoreDrawingState(This, drawingStateBlock) \
|
|
((This)->lpVtbl->Base.Base.Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
|
|
|
|
#define ID2D1DeviceContext2_PushAxisAlignedClip(This, clipRect, antialiasMode) \
|
|
((This)->lpVtbl->Base.Base.Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
|
|
|
|
#define ID2D1DeviceContext2_PopAxisAlignedClip(This) \
|
|
((This)->lpVtbl->Base.Base.Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_Clear(This, clearColor) \
|
|
((This)->lpVtbl->Base.Base.Base.Clear((ID2D1RenderTarget *)This, clearColor))
|
|
|
|
#define ID2D1DeviceContext2_BeginDraw(This) \
|
|
((This)->lpVtbl->Base.Base.Base.BeginDraw((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_EndDraw(This, tag1, tag2) \
|
|
((This)->lpVtbl->Base.Base.Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
|
|
|
|
#define ID2D1DeviceContext2_GetPixelFormat(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetPixelFormat((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_SetDpi(This, dpiX, dpiY) \
|
|
((This)->lpVtbl->Base.Base.Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
|
|
|
|
#define ID2D1DeviceContext2_GetDpi(This, dpiX, dpiY) \
|
|
((This)->lpVtbl->Base.Base.Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
|
|
|
|
#define ID2D1DeviceContext2_GetSize(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetSize((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_GetPixelSize(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetPixelSize((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_GetMaximumBitmapSize(This) \
|
|
((This)->lpVtbl->Base.Base.Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
|
|
|
|
#define ID2D1DeviceContext2_IsSupported(This, renderTargetProperties) \
|
|
((This)->lpVtbl->Base.Base.Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
|
|
|
|
#define ID2D1DeviceContext2_CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap) \
|
|
((This)->lpVtbl->Base.Base.CreateBitmap((ID2D1DeviceContext *)This, size, sourceData, pitch, bitmapProperties, bitmap))
|
|
|
|
#define ID2D1DeviceContext2_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
|
|
((This)->lpVtbl->Base.Base.CreateBitmapFromWicBitmap((ID2D1DeviceContext *)This, wicBitmapSource, bitmapProperties, bitmap))
|
|
|
|
#define ID2D1DeviceContext2_CreateColorContext(This, space, profile, profileSize, colorContext) \
|
|
((This)->lpVtbl->Base.Base.CreateColorContext((ID2D1DeviceContext *)This, space, profile, profileSize, colorContext))
|
|
|
|
#define ID2D1DeviceContext2_CreateColorContextFromFilename(This, filename, colorContext) \
|
|
((This)->lpVtbl->Base.Base.CreateColorContextFromFilename((ID2D1DeviceContext *)This, filename, colorContext))
|
|
|
|
#define ID2D1DeviceContext2_CreateColorContextFromWicColorContext(This, wicColorContext, colorContext) \
|
|
((This)->lpVtbl->Base.Base.CreateColorContextFromWicColorContext((ID2D1DeviceContext *)This, wicColorContext, colorContext))
|
|
|
|
#define ID2D1DeviceContext2_CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap) \
|
|
((This)->lpVtbl->Base.Base.CreateBitmapFromDxgiSurface((ID2D1DeviceContext *)This, surface, bitmapProperties, bitmap))
|
|
|
|
#define ID2D1DeviceContext2_CreateEffect(This, effectId, effect) \
|
|
((This)->lpVtbl->Base.Base.CreateEffect((ID2D1DeviceContext *)This, effectId, effect))
|
|
|
|
#define ID2D1DeviceContext2_CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1) \
|
|
((This)->lpVtbl->Base.Base.CreateGradientStopCollection((ID2D1DeviceContext *)This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1))
|
|
|
|
#define ID2D1DeviceContext2_CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush) \
|
|
((This)->lpVtbl->Base.Base.CreateImageBrush((ID2D1DeviceContext *)This, image, imageBrushProperties, brushProperties, imageBrush))
|
|
|
|
#define ID2D1DeviceContext2_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
|
|
((This)->lpVtbl->Base.Base.CreateBitmapBrush((ID2D1DeviceContext *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
|
|
|
|
#define ID2D1DeviceContext2_CreateCommandList(This, commandList) \
|
|
((This)->lpVtbl->Base.Base.CreateCommandList((ID2D1DeviceContext *)This, commandList))
|
|
|
|
#define ID2D1DeviceContext2_IsDxgiFormatSupported(This, format) \
|
|
((This)->lpVtbl->Base.Base.IsDxgiFormatSupported((ID2D1DeviceContext *)This, format))
|
|
|
|
#define ID2D1DeviceContext2_IsBufferPrecisionSupported(This, bufferPrecision) \
|
|
((This)->lpVtbl->Base.Base.IsBufferPrecisionSupported((ID2D1DeviceContext *)This, bufferPrecision))
|
|
|
|
#define ID2D1DeviceContext2_GetImageLocalBounds(This, image, localBounds) \
|
|
((This)->lpVtbl->Base.Base.GetImageLocalBounds((ID2D1DeviceContext *)This, image, localBounds))
|
|
|
|
#define ID2D1DeviceContext2_GetImageWorldBounds(This, image, worldBounds) \
|
|
((This)->lpVtbl->Base.Base.GetImageWorldBounds((ID2D1DeviceContext *)This, image, worldBounds))
|
|
|
|
#define ID2D1DeviceContext2_GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds) \
|
|
((This)->lpVtbl->Base.Base.GetGlyphRunWorldBounds((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, measuringMode, bounds))
|
|
|
|
#define ID2D1DeviceContext2_GetDevice(This, device) \
|
|
((This)->lpVtbl->Base.Base.GetDevice((ID2D1DeviceContext *)This, device))
|
|
|
|
#define ID2D1DeviceContext2_SetTarget(This, image) \
|
|
((This)->lpVtbl->Base.Base.SetTarget((ID2D1DeviceContext *)This, image))
|
|
|
|
#define ID2D1DeviceContext2_GetTarget(This, image) \
|
|
((This)->lpVtbl->Base.Base.GetTarget((ID2D1DeviceContext *)This, image))
|
|
|
|
#define ID2D1DeviceContext2_SetRenderingControls(This, renderingControls) \
|
|
((This)->lpVtbl->Base.Base.SetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
|
|
|
|
#define ID2D1DeviceContext2_GetRenderingControls(This, renderingControls) \
|
|
((This)->lpVtbl->Base.Base.GetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
|
|
|
|
#define ID2D1DeviceContext2_SetPrimitiveBlend(This, primitiveBlend) \
|
|
((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1DeviceContext *)This, primitiveBlend))
|
|
|
|
#define ID2D1DeviceContext2_GetPrimitiveBlend(This) \
|
|
((This)->lpVtbl->Base.Base.GetPrimitiveBlend((ID2D1DeviceContext *)This))
|
|
|
|
#define ID2D1DeviceContext2_SetUnitMode(This, unitMode) \
|
|
((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1DeviceContext *)This, unitMode))
|
|
|
|
#define ID2D1DeviceContext2_GetUnitMode(This) \
|
|
((This)->lpVtbl->Base.Base.GetUnitMode((ID2D1DeviceContext *)This))
|
|
|
|
#define ID2D1DeviceContext2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
|
|
((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
|
|
|
|
#define ID2D1DeviceContext2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
|
|
((This)->lpVtbl->Base.Base.DrawImage((ID2D1DeviceContext *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
|
|
|
|
#define ID2D1DeviceContext2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
|
|
((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1DeviceContext *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
|
|
|
|
#define ID2D1DeviceContext2_PushLayer(This, layerParameters, layer) \
|
|
((This)->lpVtbl->Base.Base.PushLayer((ID2D1DeviceContext *)This, layerParameters, layer))
|
|
|
|
#define ID2D1DeviceContext2_InvalidateEffectInputRectangle(This, effect, input, inputRectangle) \
|
|
((This)->lpVtbl->Base.Base.InvalidateEffectInputRectangle((ID2D1DeviceContext *)This, effect, input, inputRectangle))
|
|
|
|
#define ID2D1DeviceContext2_GetEffectInvalidRectangleCount(This, effect, rectangleCount) \
|
|
((This)->lpVtbl->Base.Base.GetEffectInvalidRectangleCount((ID2D1DeviceContext *)This, effect, rectangleCount))
|
|
|
|
#define ID2D1DeviceContext2_GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount) \
|
|
((This)->lpVtbl->Base.Base.GetEffectInvalidRectangles((ID2D1DeviceContext *)This, effect, rectangles, rectanglesCount))
|
|
|
|
#define ID2D1DeviceContext2_GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount) \
|
|
((This)->lpVtbl->Base.Base.GetEffectRequiredInputRectangles((ID2D1DeviceContext *)This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount))
|
|
|
|
#define ID2D1DeviceContext2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
|
|
((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1DeviceContext *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
|
|
|
|
#define ID2D1DeviceContext2_CreateFilledGeometryRealization(This, geometry, flatteningTolerance, geometryRealization) \
|
|
((This)->lpVtbl->Base.CreateFilledGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, geometryRealization))
|
|
|
|
#define ID2D1DeviceContext2_CreateStrokedGeometryRealization(This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization) \
|
|
((This)->lpVtbl->Base.CreateStrokedGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization))
|
|
|
|
#define ID2D1DeviceContext2_DrawGeometryRealization(This, geometryRealization, brush) \
|
|
((This)->lpVtbl->Base.DrawGeometryRealization((ID2D1DeviceContext1 *)This, geometryRealization, brush))
|
|
|
|
#define ID2D1DeviceContext2_CreateInk(This, startPoint, ink) \
|
|
((This)->lpVtbl->CreateInk(This, startPoint, ink))
|
|
|
|
#define ID2D1DeviceContext2_CreateInkStyle(This, inkStyleProperties, inkStyle) \
|
|
((This)->lpVtbl->CreateInkStyle(This, inkStyleProperties, inkStyle))
|
|
|
|
#define ID2D1DeviceContext2_CreateGradientMesh(This, patches, patchesCount, gradientMesh) \
|
|
((This)->lpVtbl->CreateGradientMesh(This, patches, patchesCount, gradientMesh))
|
|
|
|
#define ID2D1DeviceContext2_CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource) \
|
|
((This)->lpVtbl->CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource))
|
|
|
|
#define ID2D1DeviceContext2_CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable) \
|
|
((This)->lpVtbl->CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable))
|
|
|
|
#define ID2D1DeviceContext2_CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource) \
|
|
((This)->lpVtbl->CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource))
|
|
|
|
#define ID2D1DeviceContext2_GetGradientMeshWorldBounds(This, gradientMesh, pBounds) \
|
|
((This)->lpVtbl->GetGradientMeshWorldBounds(This, gradientMesh, pBounds))
|
|
|
|
#define ID2D1DeviceContext2_DrawInk(This, ink, brush, inkStyle) \
|
|
((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle))
|
|
|
|
#define ID2D1DeviceContext2_DrawGradientMesh(This, gradientMesh) \
|
|
((This)->lpVtbl->DrawGradientMesh(This, gradientMesh))
|
|
|
|
#define ID2D1DeviceContext2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \
|
|
((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle))
|
|
|
|
#define ID2D1DeviceContext2_CreateTransformedImageSource(This, imageSource, properties, transformedImageSource) \
|
|
((This)->lpVtbl->CreateTransformedImageSource(This, imageSource, properties, transformedImageSource))
|
|
|
|
typedef interface ID2D1Device2 ID2D1Device2;
|
|
|
|
typedef struct ID2D1Device2Vtbl
|
|
{
|
|
|
|
ID2D1Device1Vtbl Base;
|
|
|
|
|
|
STDMETHOD(CreateDeviceContext)(
|
|
ID2D1Device2 *This,
|
|
D2D1_DEVICE_CONTEXT_OPTIONS options,
|
|
_Outptr_ ID2D1DeviceContext2 **deviceContext2
|
|
) PURE;
|
|
|
|
STDMETHOD_(void, FlushDeviceContexts)(
|
|
ID2D1Device2 *This,
|
|
_In_ ID2D1Bitmap *bitmap
|
|
) PURE;
|
|
|
|
STDMETHOD(GetDxgiDevice)(
|
|
ID2D1Device2 *This,
|
|
_Outptr_ IDXGIDevice **dxgiDevice
|
|
) PURE;
|
|
} ID2D1Device2Vtbl;
|
|
|
|
interface ID2D1Device2
|
|
{
|
|
CONST struct ID2D1Device2Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1Device2_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1Device2_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1Device2_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1Device2_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1Device2_CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl) \
|
|
((This)->lpVtbl->Base.Base.CreatePrintControl((ID2D1Device *)This, wicFactory, documentTarget, printControlProperties, printControl))
|
|
|
|
#define ID2D1Device2_SetMaximumTextureMemory(This, maximumInBytes) \
|
|
((This)->lpVtbl->Base.Base.SetMaximumTextureMemory((ID2D1Device *)This, maximumInBytes))
|
|
|
|
#define ID2D1Device2_GetMaximumTextureMemory(This) \
|
|
((This)->lpVtbl->Base.Base.GetMaximumTextureMemory((ID2D1Device *)This))
|
|
|
|
#define ID2D1Device2_ClearResources(This, millisecondsSinceUse) \
|
|
((This)->lpVtbl->Base.Base.ClearResources((ID2D1Device *)This, millisecondsSinceUse))
|
|
|
|
#define ID2D1Device2_GetRenderingPriority(This) \
|
|
((This)->lpVtbl->Base.GetRenderingPriority((ID2D1Device1 *)This))
|
|
|
|
#define ID2D1Device2_SetRenderingPriority(This, renderingPriority) \
|
|
((This)->lpVtbl->Base.SetRenderingPriority((ID2D1Device1 *)This, renderingPriority))
|
|
|
|
#define ID2D1Device2_CreateDeviceContext(This, options, deviceContext2) \
|
|
((This)->lpVtbl->CreateDeviceContext(This, options, deviceContext2))
|
|
|
|
#define ID2D1Device2_FlushDeviceContexts(This, bitmap) \
|
|
((This)->lpVtbl->FlushDeviceContexts(This, bitmap))
|
|
|
|
#define ID2D1Device2_GetDxgiDevice(This, dxgiDevice) \
|
|
((This)->lpVtbl->GetDxgiDevice(This, dxgiDevice))
|
|
|
|
typedef interface ID2D1Factory3 ID2D1Factory3;
|
|
|
|
typedef struct ID2D1Factory3Vtbl
|
|
{
|
|
|
|
ID2D1Factory2Vtbl Base;
|
|
|
|
|
|
STDMETHOD(CreateDevice)(
|
|
ID2D1Factory3 *This,
|
|
_In_ IDXGIDevice *dxgiDevice,
|
|
_Outptr_ ID2D1Device2 **d2dDevice2
|
|
) PURE;
|
|
} ID2D1Factory3Vtbl;
|
|
|
|
interface ID2D1Factory3
|
|
{
|
|
CONST struct ID2D1Factory3Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1Factory3_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1Factory3_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1Factory3_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1Factory3_ReloadSystemMetrics(This) \
|
|
((This)->lpVtbl->Base.Base.Base.ReloadSystemMetrics((ID2D1Factory *)This))
|
|
|
|
#define ID2D1Factory3_GetDesktopDpi(This, dpiX, dpiY) \
|
|
((This)->lpVtbl->Base.Base.Base.GetDesktopDpi((ID2D1Factory *)This, dpiX, dpiY))
|
|
|
|
#define ID2D1Factory3_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateRectangleGeometry((ID2D1Factory *)This, rectangle, rectangleGeometry))
|
|
|
|
#define ID2D1Factory3_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateRoundedRectangleGeometry((ID2D1Factory *)This, roundedRectangle, roundedRectangleGeometry))
|
|
|
|
#define ID2D1Factory3_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateEllipseGeometry((ID2D1Factory *)This, ellipse, ellipseGeometry))
|
|
|
|
#define ID2D1Factory3_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateGeometryGroup((ID2D1Factory *)This, fillMode, geometries, geometriesCount, geometryGroup))
|
|
|
|
#define ID2D1Factory3_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateTransformedGeometry((ID2D1Factory *)This, sourceGeometry, transform, transformedGeometry))
|
|
|
|
#define ID2D1Factory3_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateWicBitmapRenderTarget((ID2D1Factory *)This, target, renderTargetProperties, renderTarget))
|
|
|
|
#define ID2D1Factory3_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateHwndRenderTarget((ID2D1Factory *)This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget))
|
|
|
|
#define ID2D1Factory3_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateDxgiSurfaceRenderTarget((ID2D1Factory *)This, dxgiSurface, renderTargetProperties, renderTarget))
|
|
|
|
#define ID2D1Factory3_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \
|
|
((This)->lpVtbl->Base.Base.Base.CreateDCRenderTarget((ID2D1Factory *)This, renderTargetProperties, dcRenderTarget))
|
|
|
|
#define ID2D1Factory3_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.CreateStrokeStyle((ID2D1Factory1 *)This, strokeStyleProperties, dashes, dashesCount, strokeStyle))
|
|
|
|
#define ID2D1Factory3_CreatePathGeometry(This, pathGeometry) \
|
|
((This)->lpVtbl->Base.Base.CreatePathGeometry((ID2D1Factory1 *)This, pathGeometry))
|
|
|
|
#define ID2D1Factory3_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \
|
|
((This)->lpVtbl->Base.Base.CreateDrawingStateBlock((ID2D1Factory1 *)This, drawingStateDescription, textRenderingParams, drawingStateBlock))
|
|
|
|
#define ID2D1Factory3_CreateGdiMetafile(This, metafileStream, metafile) \
|
|
((This)->lpVtbl->Base.Base.CreateGdiMetafile((ID2D1Factory1 *)This, metafileStream, metafile))
|
|
|
|
#define ID2D1Factory3_RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
|
|
((This)->lpVtbl->Base.Base.RegisterEffectFromStream((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
|
|
|
|
#define ID2D1Factory3_RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
|
|
((This)->lpVtbl->Base.Base.RegisterEffectFromString((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
|
|
|
|
#define ID2D1Factory3_UnregisterEffect(This, classId) \
|
|
((This)->lpVtbl->Base.Base.UnregisterEffect((ID2D1Factory1 *)This, classId))
|
|
|
|
#define ID2D1Factory3_GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered) \
|
|
((This)->lpVtbl->Base.Base.GetRegisteredEffects((ID2D1Factory1 *)This, effects, effectsCount, effectsReturned, effectsRegistered))
|
|
|
|
#define ID2D1Factory3_GetEffectProperties(This, effectId, properties) \
|
|
((This)->lpVtbl->Base.Base.GetEffectProperties((ID2D1Factory1 *)This, effectId, properties))
|
|
|
|
#define ID2D1Factory3_CreateDevice(This, dxgiDevice, d2dDevice2) \
|
|
((This)->lpVtbl->CreateDevice(This, dxgiDevice, d2dDevice2))
|
|
|
|
typedef interface ID2D1CommandSink2 ID2D1CommandSink2;
|
|
|
|
typedef struct ID2D1CommandSink2Vtbl
|
|
{
|
|
|
|
ID2D1CommandSink1Vtbl Base;
|
|
|
|
|
|
STDMETHOD(DrawInk)(
|
|
ID2D1CommandSink2 *This,
|
|
_In_ ID2D1Ink *ink,
|
|
_In_ ID2D1Brush *brush,
|
|
_In_opt_ ID2D1InkStyle *inkStyle
|
|
) PURE;
|
|
|
|
STDMETHOD(DrawGradientMesh)(
|
|
ID2D1CommandSink2 *This,
|
|
_In_ ID2D1GradientMesh *gradientMesh
|
|
) PURE;
|
|
|
|
STDMETHOD(DrawGdiMetafile)(
|
|
ID2D1CommandSink2 *This,
|
|
_In_ ID2D1GdiMetafile *gdiMetafile,
|
|
_In_opt_ CONST D2D1_RECT_F *destinationRectangle,
|
|
_In_opt_ CONST D2D1_RECT_F *sourceRectangle
|
|
) PURE;
|
|
} ID2D1CommandSink2Vtbl;
|
|
|
|
interface ID2D1CommandSink2
|
|
{
|
|
CONST struct ID2D1CommandSink2Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1CommandSink2_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1CommandSink2_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1CommandSink2_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1CommandSink2_BeginDraw(This) \
|
|
((This)->lpVtbl->Base.Base.BeginDraw((ID2D1CommandSink *)This))
|
|
|
|
#define ID2D1CommandSink2_EndDraw(This) \
|
|
((This)->lpVtbl->Base.Base.EndDraw((ID2D1CommandSink *)This))
|
|
|
|
#define ID2D1CommandSink2_SetAntialiasMode(This, antialiasMode) \
|
|
((This)->lpVtbl->Base.Base.SetAntialiasMode((ID2D1CommandSink *)This, antialiasMode))
|
|
|
|
#define ID2D1CommandSink2_SetTags(This, tag1, tag2) \
|
|
((This)->lpVtbl->Base.Base.SetTags((ID2D1CommandSink *)This, tag1, tag2))
|
|
|
|
#define ID2D1CommandSink2_SetTextAntialiasMode(This, textAntialiasMode) \
|
|
((This)->lpVtbl->Base.Base.SetTextAntialiasMode((ID2D1CommandSink *)This, textAntialiasMode))
|
|
|
|
#define ID2D1CommandSink2_SetTextRenderingParams(This, textRenderingParams) \
|
|
((This)->lpVtbl->Base.Base.SetTextRenderingParams((ID2D1CommandSink *)This, textRenderingParams))
|
|
|
|
#define ID2D1CommandSink2_SetTransform(This, transform) \
|
|
((This)->lpVtbl->Base.Base.SetTransform((ID2D1CommandSink *)This, transform))
|
|
|
|
#define ID2D1CommandSink2_SetPrimitiveBlend(This, primitiveBlend) \
|
|
((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1CommandSink *)This, primitiveBlend))
|
|
|
|
#define ID2D1CommandSink2_SetUnitMode(This, unitMode) \
|
|
((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1CommandSink *)This, unitMode))
|
|
|
|
#define ID2D1CommandSink2_Clear(This, color) \
|
|
((This)->lpVtbl->Base.Base.Clear((ID2D1CommandSink *)This, color))
|
|
|
|
#define ID2D1CommandSink2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
|
|
((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1CommandSink *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
|
|
|
|
#define ID2D1CommandSink2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.DrawLine((ID2D1CommandSink *)This, point0, point1, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1CommandSink2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.DrawGeometry((ID2D1CommandSink *)This, geometry, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1CommandSink2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
|
|
((This)->lpVtbl->Base.Base.DrawRectangle((ID2D1CommandSink *)This, rect, brush, strokeWidth, strokeStyle))
|
|
|
|
#define ID2D1CommandSink2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
|
|
((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1CommandSink *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
|
|
|
|
#define ID2D1CommandSink2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
|
|
((This)->lpVtbl->Base.Base.DrawImage((ID2D1CommandSink *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
|
|
|
|
#define ID2D1CommandSink2_FillMesh(This, mesh, brush) \
|
|
((This)->lpVtbl->Base.Base.FillMesh((ID2D1CommandSink *)This, mesh, brush))
|
|
|
|
#define ID2D1CommandSink2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
|
|
((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1CommandSink *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
|
|
|
|
#define ID2D1CommandSink2_FillGeometry(This, geometry, brush, opacityBrush) \
|
|
((This)->lpVtbl->Base.Base.FillGeometry((ID2D1CommandSink *)This, geometry, brush, opacityBrush))
|
|
|
|
#define ID2D1CommandSink2_FillRectangle(This, rect, brush) \
|
|
((This)->lpVtbl->Base.Base.FillRectangle((ID2D1CommandSink *)This, rect, brush))
|
|
|
|
#define ID2D1CommandSink2_PushAxisAlignedClip(This, clipRect, antialiasMode) \
|
|
((This)->lpVtbl->Base.Base.PushAxisAlignedClip((ID2D1CommandSink *)This, clipRect, antialiasMode))
|
|
|
|
#define ID2D1CommandSink2_PushLayer(This, layerParameters1, layer) \
|
|
((This)->lpVtbl->Base.Base.PushLayer((ID2D1CommandSink *)This, layerParameters1, layer))
|
|
|
|
#define ID2D1CommandSink2_PopAxisAlignedClip(This) \
|
|
((This)->lpVtbl->Base.Base.PopAxisAlignedClip((ID2D1CommandSink *)This))
|
|
|
|
#define ID2D1CommandSink2_PopLayer(This) \
|
|
((This)->lpVtbl->Base.Base.PopLayer((ID2D1CommandSink *)This))
|
|
|
|
#define ID2D1CommandSink2_SetPrimitiveBlend1(This, primitiveBlend) \
|
|
((This)->lpVtbl->Base.SetPrimitiveBlend1((ID2D1CommandSink1 *)This, primitiveBlend))
|
|
|
|
#define ID2D1CommandSink2_DrawInk(This, ink, brush, inkStyle) \
|
|
((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle))
|
|
|
|
#define ID2D1CommandSink2_DrawGradientMesh(This, gradientMesh) \
|
|
((This)->lpVtbl->DrawGradientMesh(This, gradientMesh))
|
|
|
|
#define ID2D1CommandSink2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \
|
|
((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle))
|
|
|
|
typedef interface ID2D1GdiMetafile1 ID2D1GdiMetafile1;
|
|
|
|
typedef struct ID2D1GdiMetafile1Vtbl
|
|
{
|
|
|
|
ID2D1GdiMetafileVtbl Base;
|
|
|
|
|
|
STDMETHOD(GetDpi)(
|
|
ID2D1GdiMetafile1 *This,
|
|
_Out_ FLOAT *dpiX,
|
|
_Out_ FLOAT *dpiY
|
|
) PURE;
|
|
|
|
STDMETHOD(GetSourceBounds)(
|
|
ID2D1GdiMetafile1 *This,
|
|
_Out_ D2D1_RECT_F *bounds
|
|
) PURE;
|
|
} ID2D1GdiMetafile1Vtbl;
|
|
|
|
interface ID2D1GdiMetafile1
|
|
{
|
|
CONST struct ID2D1GdiMetafile1Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1GdiMetafile1_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1GdiMetafile1_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1GdiMetafile1_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1GdiMetafile1_GetFactory(This, factory) \
|
|
((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
|
|
|
|
#define ID2D1GdiMetafile1_Stream(This, sink) \
|
|
((This)->lpVtbl->Base.Stream((ID2D1GdiMetafile *)This, sink))
|
|
|
|
#define ID2D1GdiMetafile1_GetBounds(This, bounds) \
|
|
((This)->lpVtbl->Base.GetBounds((ID2D1GdiMetafile *)This, bounds))
|
|
|
|
#define ID2D1GdiMetafile1_GetDpi(This, dpiX, dpiY) \
|
|
((This)->lpVtbl->GetDpi(This, dpiX, dpiY))
|
|
|
|
#define ID2D1GdiMetafile1_GetSourceBounds(This, bounds) \
|
|
((This)->lpVtbl->GetSourceBounds(This, bounds))
|
|
|
|
typedef interface ID2D1GdiMetafileSink1 ID2D1GdiMetafileSink1;
|
|
|
|
typedef struct ID2D1GdiMetafileSink1Vtbl
|
|
{
|
|
|
|
ID2D1GdiMetafileSinkVtbl Base;
|
|
|
|
|
|
STDMETHOD(ProcessRecord)(
|
|
ID2D1GdiMetafileSink1 *This,
|
|
DWORD recordType,
|
|
_In_opt_ CONST void *recordData,
|
|
DWORD recordDataSize,
|
|
UINT32 flags
|
|
) PURE;
|
|
} ID2D1GdiMetafileSink1Vtbl;
|
|
|
|
interface ID2D1GdiMetafileSink1
|
|
{
|
|
CONST struct ID2D1GdiMetafileSink1Vtbl *lpVtbl;
|
|
};
|
|
|
|
|
|
#define ID2D1GdiMetafileSink1_QueryInterface(This, riid, ppv) \
|
|
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
|
|
|
|
#define ID2D1GdiMetafileSink1_AddRef(This) \
|
|
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
|
|
|
|
#define ID2D1GdiMetafileSink1_Release(This) \
|
|
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
|
|
|
|
#define ID2D1GdiMetafileSink1_ProcessRecord(This, recordType, recordData, recordDataSize, flags) \
|
|
((This)->lpVtbl->ProcessRecord(This, recordType, recordData, recordDataSize, flags))
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
|
|
void WINAPI
|
|
D2D1GetGradientMeshInteriorPointsFromCoonsPatch(
|
|
_In_ CONST D2D1_POINT_2F *pPoint0,
|
|
_In_ CONST D2D1_POINT_2F *pPoint1,
|
|
_In_ CONST D2D1_POINT_2F *pPoint2,
|
|
_In_ CONST D2D1_POINT_2F *pPoint3,
|
|
_In_ CONST D2D1_POINT_2F *pPoint4,
|
|
_In_ CONST D2D1_POINT_2F *pPoint5,
|
|
_In_ CONST D2D1_POINT_2F *pPoint6,
|
|
_In_ CONST D2D1_POINT_2F *pPoint7,
|
|
_In_ CONST D2D1_POINT_2F *pPoint8,
|
|
_In_ CONST D2D1_POINT_2F *pPoint9,
|
|
_In_ CONST D2D1_POINT_2F *pPoint10,
|
|
_In_ CONST D2D1_POINT_2F *pPoint11,
|
|
_Out_ D2D1_POINT_2F *pTensorPoint11,
|
|
_Out_ D2D1_POINT_2F *pTensorPoint12,
|
|
_Out_ D2D1_POINT_2F *pTensorPoint21,
|
|
_Out_ D2D1_POINT_2F *pTensorPoint22
|
|
);
|
|
#endif // #if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
|
|
#pragma endregion
|
|
#include <d2d1_3helper.h>
|
|
#endif // #ifndef _D2D1_3_H_
|