Headers diff for d2d1.dll between 6.2.9200.16765-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 d2d1.h (6.2.9200.16765-Windows_7.0)   d2d1.h (6.3.9600.17415-Windows_8.1) 
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved. // Copyright (c) Microsoft Corporation. All rights reserved.
// //
// This file is automatically generated. Please do not edit it directly. // This file is automatically generated. Please do not edit it directly.
// //
// File name: D2D1.h // File name: D2D1.h
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#ifdef _MSC_VER
#pragma once #pragma once
#endif // #ifdef _MSC_VER
#ifndef _D2D1_H_ #ifndef _D2D1_H_
#define _D2D1_H_ #define _D2D1_H_
#ifndef COM_NO_WINDOWS_H #ifndef COM_NO_WINDOWS_H
#include <windows.h> #include <windows.h>
#endif // #ifndef COM_NO_WINDOWS_H #endif // #ifndef COM_NO_WINDOWS_H
#include <unknwn.h> #include <unknwn.h>
#include <dcommon.h> #include <dcommon.h>
#include <D2DErr.h> #include <D2DErr.h>
#include <D2DBaseTypes.h> #include <D2DBaseTypes.h>
#include <dxgiformat.h> #include <dxgiformat.h>
#ifndef D2D_NO_INCLUDE_D3D10 #pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#include <d3d10_1.h> #include <d3d10_1.h>
#endif // #ifndef D2D_NO_INCLUDE_D3D10 #else
#include <d3dcommon.h>
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
// //
// We use the 'C' definitions if C++ is not defined // We use the 'C' definitions if C++ is not defined
// //
#ifndef __cplusplus #ifndef __cplusplus
#define D2D_USE_C_DEFINITIONS #define D2D_USE_C_DEFINITIONS
#endif #endif
#endif // #ifndef D2D_USE_C_DEFINITIONS #endif // #ifndef D2D_USE_C_DEFINITIONS
#ifndef D2D1_DECLARE_INTERFACE #include <winapifamily.h>
#define D2D1_DECLARE_INTERFACE(X) DECLSPEC_UUID(X) DECLSPEC_NOVTABLE
#endif
// //
// Forward declarations here // Forward declarations here
// //
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface IDWriteTextFormat IDWriteTextFormat; typedef interface IDWriteTextFormat IDWriteTextFormat;
typedef interface IDWriteTextLayout IDWriteTextLayout; typedef interface IDWriteTextLayout IDWriteTextLayout;
typedef interface IDWriteRenderingParams IDWriteRenderingParams; typedef interface IDWriteRenderingParams IDWriteRenderingParams;
typedef interface IDXGISurface IDXGISurface; typedef interface IDXGISurface IDXGISurface;
typedef interface IWICBitmap IWICBitmap; typedef interface IWICBitmap IWICBitmap;
typedef interface IWICBitmapSource IWICBitmapSource; typedef interface IWICBitmapSource IWICBitmapSource;
typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN;
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
skipping to change at line 81 skipping to change at line 87
typedef interface ID2D1Brush ID2D1Brush; typedef interface ID2D1Brush ID2D1Brush;
#endif #endif
#define D2D1_INVALID_TAG ULONGLONG_MAX #define D2D1_INVALID_TAG ULONGLONG_MAX
#define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f) #define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_ALPHA_MODE // D2D1_INTERPOLATION_MODE_DEFINITION
// //
// Synopsis: // Synopsis:
// Qualifies how alpha is to be treated in a bitmap or render target contai // This defines the superset of interpolation mode supported by D2D APIs
ning // and built-in effects
// alpha.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_ALPHA_MODE enum
{ {
D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0,
D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1,
D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2,
D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3,
D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4,
D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5,
D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6,
D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7
// };
// Alpha mode should be determined implicitly. Some target surfaces do n
ot supply
// or imply this information in which case alpha must be specified.
//
D2D1_ALPHA_MODE_UNKNOWN = 0,
//
// Treat the alpha as premultipled.
//
D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
//
// Opacity is in the 'A' component only.
//
D2D1_ALPHA_MODE_STRAIGHT = 2,
//
// Ignore any alpha channel information.
//
D2D1_ALPHA_MODE_IGNORE = 3,
D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_ALPHA_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_GAMMA // D2D1_GAMMA
// //
// Synopsis: // Synopsis:
// This determines what gamma is used for interpolation/blending. // This determines what gamma is used for interpolation/blending.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
skipping to change at line 176 skipping to change at line 168
D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff
} D2D1_OPACITY_MASK_CONTENT; } D2D1_OPACITY_MASK_CONTENT;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_EXTEND_MODE // D2D1_EXTEND_MODE
// //
// Synopsis: // Synopsis:
// Enum which descibes how to sample from a source outside it's base tile. // Enum which describes how to sample from a source outside its base tile.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_EXTEND_MODE typedef enum D2D1_EXTEND_MODE
{ {
// //
// Extend the edges of the source out by clamping sample points outside the source // Extend the edges of the source out by clamping sample points outside the source
// to the edges. // to the edges.
// //
D2D1_EXTEND_MODE_CLAMP = 0, D2D1_EXTEND_MODE_CLAMP = 0,
skipping to change at line 209 skipping to change at line 201
D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff
} D2D1_EXTEND_MODE; } D2D1_EXTEND_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_ANTIALIAS_MODE // D2D1_ANTIALIAS_MODE
// //
// Synopsis: // Synopsis:
// Enum which descibes the manner in which we render edges of non-text prim itives. // Enum which describes the manner in which we render edges of non-text pri mitives.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_ANTIALIAS_MODE typedef enum D2D1_ANTIALIAS_MODE
{ {
// //
// The edges of each primitive are antialiased sequentially. // The edges of each primitive are antialiased sequentially.
// //
D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
skipping to change at line 273 skipping to change at line 265
// D2D1_BITMAP_INTERPOLATION_MODE // D2D1_BITMAP_INTERPOLATION_MODE
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_BITMAP_INTERPOLATION_MODE typedef enum D2D1_BITMAP_INTERPOLATION_MODE
{ {
// //
// Nearest Neighbor filtering. Also known as nearest pixel or nearest po int // Nearest Neighbor filtering. Also known as nearest pixel or nearest po int
// sampling. // sampling.
// //
D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MOD E_DEFINITION_NEAREST_NEIGHBOR,
// //
// Linear filtering. // Linear filtering.
// //
D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = 1, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITI ON_LINEAR,
D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BITMAP_INTERPOLATION_MODE; } D2D1_BITMAP_INTERPOLATION_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Flag: // Flag:
// D2D1_DRAW_TEXT_OPTIONS // D2D1_DRAW_TEXT_OPTIONS
// //
// Synopsis: // Synopsis:
skipping to change at line 305 skipping to change at line 297
// //
// Do not snap the baseline of the text vertically. // Do not snap the baseline of the text vertically.
// //
D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001, D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
// //
// Clip the text to the content bounds. // Clip the text to the content bounds.
// //
D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002, D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002,
//
// Render color versions of glyphs if defined by the font.
//
D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004,
D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000, D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000,
D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_DRAW_TEXT_OPTIONS; } D2D1_DRAW_TEXT_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS); DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS);
//+-----------------------------------------------------------------------------
//
// Struct:
// D2D1_PIXEL_FORMAT
//
//------------------------------------------------------------------------------
typedef struct D2D1_PIXEL_FORMAT
{
DXGI_FORMAT format;
D2D1_ALPHA_MODE alphaMode;
} D2D1_PIXEL_FORMAT;
typedef D2D_POINT_2U D2D1_POINT_2U; typedef D2D_POINT_2U D2D1_POINT_2U;
typedef D2D_POINT_2F D2D1_POINT_2F; typedef D2D_POINT_2F D2D1_POINT_2F;
typedef D2D_RECT_F D2D1_RECT_F; typedef D2D_RECT_F D2D1_RECT_F;
typedef D2D_RECT_U D2D1_RECT_U; typedef D2D_RECT_U D2D1_RECT_U;
typedef D2D_SIZE_F D2D1_SIZE_F; typedef D2D_SIZE_F D2D1_SIZE_F;
typedef D2D_SIZE_U D2D1_SIZE_U; typedef D2D_SIZE_U D2D1_SIZE_U;
typedef D2D_COLOR_F D2D1_COLOR_F; typedef D2D_COLOR_F D2D1_COLOR_F;
typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
typedef UINT64 D2D1_TAG; typedef UINT64 D2D1_TAG;
skipping to change at line 441 skipping to change at line 425
D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff
} D2D1_ARC_SIZE; } D2D1_ARC_SIZE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_CAP_STYLE // D2D1_CAP_STYLE
// //
// Synopsis: // Synopsis:
// Enum which descibes the drawing of the ends of a line. // Enum which describes the drawing of the ends of a line.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_CAP_STYLE typedef enum D2D1_CAP_STYLE
{ {
// //
// Flat line cap. // Flat line cap.
// //
D2D1_CAP_STYLE_FLAT = 0, D2D1_CAP_STYLE_FLAT = 0,
skipping to change at line 494 skipping to change at line 478
D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff
} D2D1_DASH_STYLE; } D2D1_DASH_STYLE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_LINE_JOIN // D2D1_LINE_JOIN
// //
// Synopsis: // Synopsis:
// Enum which descibes the drawing of the corners on the line. // Enum which describes the drawing of the corners on the line.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_LINE_JOIN typedef enum D2D1_LINE_JOIN
{ {
// //
// Miter join. // Miter join.
// //
D2D1_LINE_JOIN_MITER = 0, D2D1_LINE_JOIN_MITER = 0,
skipping to change at line 640 skipping to change at line 624
D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_BEGIN; } D2D1_FIGURE_BEGIN;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_FIGURE_END // D2D1_FIGURE_END
// //
// Synopsis: // Synopsis:
// Indicates whether the figure ir open or closed on its end point. // Indicates whether the figure is open or closed on its end point.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_FIGURE_END typedef enum D2D1_FIGURE_END
{ {
D2D1_FIGURE_END_OPEN = 0, D2D1_FIGURE_END_OPEN = 0,
D2D1_FIGURE_END_CLOSED = 1, D2D1_FIGURE_END_CLOSED = 1,
D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_END; } D2D1_FIGURE_END;
skipping to change at line 863 skipping to change at line 847
// //
// The rectangular clip that will be applied to the layer. The clip is affec ted by // The rectangular clip that will be applied to the layer. The clip is affec ted by
// the world transform. Content outside of the content bounds will not rende r. // the world transform. Content outside of the content bounds will not rende r.
// //
D2D1_RECT_F contentBounds; D2D1_RECT_F contentBounds;
// //
// A general mask that can be optionally applied to the content. Content not inside // A general mask that can be optionally applied to the content. Content not inside
// the fill of the mask will not be rendered. // the fill of the mask will not be rendered.
// //
__field_ecount_opt(1) ID2D1Geometry *geometricMask; _Field_size_opt_(1) ID2D1Geometry *geometricMask;
// //
// Specifies whether the mask should be aliased or antialiased. // Specifies whether the mask should be aliased or antialiased.
// //
D2D1_ANTIALIAS_MODE maskAntialiasMode; D2D1_ANTIALIAS_MODE maskAntialiasMode;
// //
// An additional transform that may be applied to the mask in addition to th e // An additional transform that may be applied to the mask in addition to th e
// current world transform. // current world transform.
// //
skipping to change at line 887 skipping to change at line 871
// The opacity with which all of the content in the layer will be blended ba ck to // The opacity with which all of the content in the layer will be blended ba ck to
// the target when the layer is popped. // the target when the layer is popped.
// //
FLOAT opacity; FLOAT opacity;
// //
// An additional brush that can be applied to the layer. Only the opacity ch annel // An additional brush that can be applied to the layer. Only the opacity ch annel
// is sampled from this brush and multiplied both with the layer content and the // is sampled from this brush and multiplied both with the layer content and the
// over-all layer opacity. // over-all layer opacity.
// //
__field_ecount_opt(1) ID2D1Brush *opacityBrush; _Field_size_opt_(1) ID2D1Brush *opacityBrush;
// //
// Specifies if ClearType will be rendered into the layer. // Specifies if ClearType will be rendered into the layer.
// //
D2D1_LAYER_OPTIONS layerOptions; D2D1_LAYER_OPTIONS layerOptions;
} D2D1_LAYER_PARAMETERS; } D2D1_LAYER_PARAMETERS;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
skipping to change at line 956 skipping to change at line 940
{ {
// //
// The caller does not require a particular underlying D3D device level. // The caller does not require a particular underlying D3D device level.
// //
D2D1_FEATURE_LEVEL_DEFAULT = 0, D2D1_FEATURE_LEVEL_DEFAULT = 0,
// //
// The D3D device level is DX9 compatible. // The D3D device level is DX9 compatible.
// //
D2D1_FEATURE_LEVEL_9 = D3D10_FEATURE_LEVEL_9_1, D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1,
// //
// The D3D device level is DX10 compatible. // The D3D device level is DX10 compatible.
// //
D2D1_FEATURE_LEVEL_10 = D3D10_FEATURE_LEVEL_10_0, D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0,
D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff
} D2D1_FEATURE_LEVEL; } D2D1_FEATURE_LEVEL;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Flag: // Flag:
// D2D1_RENDER_TARGET_USAGE // D2D1_RENDER_TARGET_USAGE
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
skipping to change at line 983 skipping to change at line 967
{ {
D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000, D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
// //
// Rendering will occur locally, if a terminal-services session is estab lished, the // Rendering will occur locally, if a terminal-services session is estab lished, the
// bitmap updates will be sent to the terminal services client. // bitmap updates will be sent to the terminal services client.
// //
D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001, D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
// //
// The render target will allow a call to GetDC on the IGdiInteropRender Target // The render target will allow a call to GetDC on the ID2D1GdiInteropRe nderTarget
// interface. Rendering will also occur locally. // interface. Rendering will also occur locally.
// //
D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002, D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002,
D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff
} D2D1_RENDER_TARGET_USAGE; } D2D1_RENDER_TARGET_USAGE;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE); DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE);
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
skipping to change at line 1064 skipping to change at line 1048
// Flag: // Flag:
// D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS // D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
{ {
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
// //
// The compatible render target will allow a call to GetDC on the // The compatible render target will allow a call to GetDC on the
// IGdiInteropRenderTarget interface. This can be specified even if the parent // ID2D1GdiInteropRenderTarget interface. This can be specified even if the parent
// render target is not GDI compatible. // render target is not GDI compatible.
// //
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS; } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS); DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS);
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
skipping to change at line 1122 skipping to change at line 1106
D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DC_INITIALIZE_MODE; } D2D1_DC_INITIALIZE_MODE;
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Enum: // Enum:
// D2D1_DEBUG_LEVEL // D2D1_DEBUG_LEVEL
// //
// Synopsis: // Synopsis:
// Indicates the debug level to be outputed by the debug layer. // Indicates the debug level to be output by the debug layer.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
typedef enum D2D1_DEBUG_LEVEL typedef enum D2D1_DEBUG_LEVEL
{ {
D2D1_DEBUG_LEVEL_NONE = 0, D2D1_DEBUG_LEVEL_NONE = 0,
D2D1_DEBUG_LEVEL_ERROR = 1, D2D1_DEBUG_LEVEL_ERROR = 1,
D2D1_DEBUG_LEVEL_WARNING = 2, D2D1_DEBUG_LEVEL_WARNING = 2,
D2D1_DEBUG_LEVEL_INFORMATION = 3, D2D1_DEBUG_LEVEL_INFORMATION = 3,
D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff
skipping to change at line 1184 skipping to change at line 1168
{ {
// //
// Requests a certain level of debugging information from the debug layer. T his // Requests a certain level of debugging information from the debug layer. T his
// parameter is ignored if the debug layer DLL is not present. // parameter is ignored if the debug layer DLL is not present.
// //
D2D1_DEBUG_LEVEL debugLevel; D2D1_DEBUG_LEVEL debugLevel;
} D2D1_FACTORY_OPTIONS; } D2D1_FACTORY_OPTIONS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Resource // ID2D1Resource
// //
// Synopsis: // Synopsis:
// The root interface for all resources in D2D. // The root interface for all resources in D2D.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Re source : public IUnknown interface DX_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Reso urce : public IUnknown
{ {
// //
// Retrieve the factory associated with this resource. // Retrieve the factory associated with this resource.
// //
STDMETHOD_(void, GetFactory)( STDMETHOD_(void, GetFactory)(
__deref_out ID2D1Factory **factory _Outptr_ ID2D1Factory **factory
) CONST PURE; ) CONST PURE;
}; // interface ID2D1Resource }; // interface ID2D1Resource
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Image
//
//------------------------------------------------------------------------------
interface DX_DECLARE_INTERFACE("65019f75-8da2-497c-b32c-dfa34e48ede6") ID2D1Imag
e : public ID2D1Resource
{
}; // interface ID2D1Image
//+-----------------------------------------------------------------------------
//
// Interface:
// ID2D1Bitmap // ID2D1Bitmap
// //
// Synopsis: // Synopsis:
// Root bitmap resource, linearly scaled on a draw call. // Root bitmap resource, linearly scaled on a draw call.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bi tmap : public ID2D1Resource interface DX_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bitm ap : public ID2D1Image
{ {
// //
// Returns the size of the bitmap in resolution independent units. // Returns the size of the bitmap in resolution independent units.
// //
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the bitmap in resolution dependent units, (pixels). // Returns the size of the bitmap in resolution dependent units, (pixels).
skipping to change at line 1240 skipping to change at line 1240
// //
// Retrieve the format of the bitmap. // Retrieve the format of the bitmap.
// //
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE; ) CONST PURE;
// //
// Return the DPI of the bitmap. // Return the DPI of the bitmap.
// //
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) CONST PURE; ) CONST PURE;
STDMETHOD(CopyFromBitmap)( STDMETHOD(CopyFromBitmap)(
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromRenderTarget)( STDMETHOD(CopyFromRenderTarget)(
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1RenderTarget *renderTarget, _In_ ID2D1RenderTarget *renderTarget,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromMemory)( STDMETHOD(CopyFromMemory)(
__in_opt CONST D2D1_RECT_U *dstRect, _In_opt_ CONST D2D1_RECT_U *dstRect,
__in CONST void *srcData, _In_ CONST void *srcData,
UINT32 pitch UINT32 pitch
) PURE; ) PURE;
}; // interface ID2D1Bitmap }; // interface ID2D1Bitmap
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GradientStopCollection // ID2D1GradientStopCollection
// //
// Synopsis: // Synopsis:
// Represents an collection of gradient stops that can then be the source r esource // Represents an collection of gradient stops that can then be the source r esource
// for either a linear or radial gradient brush. // for either a linear or radial gradient brush.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1Gr adientStopCollection : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1Grad ientStopCollection : public ID2D1Resource
{ {
// //
// Returns the number of stops in the gradient. // Returns the number of stops in the gradient.
// //
STDMETHOD_(UINT32, GetGradientStopCount)( STDMETHOD_(UINT32, GetGradientStopCount)(
) CONST PURE; ) CONST PURE;
// //
// Copies the gradient stops from the collection into the caller's interface // Copies the gradient stops from the collection into the caller's interface
. . The
// returned colors have straight alpha.
// //
STDMETHOD_(void, GetGradientStops)( STDMETHOD_(void, GetGradientStops)(
__out_ecount(gradientStopsCount) D2D1_GRADIENT_STOP *gradientStops, _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through G
UINT gradientStopsCount etGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) CONST PURE; ) CONST PURE;
// //
// Returns whether the interpolation occurs with 1.0 or 2.2 gamma. // Returns whether the interpolation occurs with 1.0 or 2.2 gamma.
// //
STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)( STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(
) CONST PURE; ) CONST PURE;
skipping to change at line 1309 skipping to change at line 1310
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Brush // ID2D1Brush
// //
// Synopsis: // Synopsis:
// The root brush interface. All brushes can be used to fill or pen a geome try. // The root brush interface. All brushes can be used to fill or pen a geome try.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Br ush : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Brus h : public ID2D1Resource
{ {
// //
// Sets the opacity for when the brush is drawn over the entire fill of the brush. // Sets the opacity for when the brush is drawn over the entire fill of the brush.
// //
STDMETHOD_(void, SetOpacity)( STDMETHOD_(void, SetOpacity)(
FLOAT opacity FLOAT opacity
) PURE; ) PURE;
// //
// Sets the transform that applies to everything drawn by the brush. // Sets the transform that applies to everything drawn by the brush.
// //
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetOpacity)( STDMETHOD_(FLOAT, GetOpacity)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetTransform( SetTransform(
CONST D2D1_MATRIX_3X2_F &transform CONST D2D1_MATRIX_3X2_F &transform
) )
{ {
SetTransform(&transform); SetTransform(&transform);
} }
}; // interface ID2D1Brush }; // interface ID2D1Brush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1BitmapBrush // ID2D1BitmapBrush
// //
// Synopsis: // Synopsis:
// A bitmap brush allows a bitmap to be used to fill a geometry. // A bitmap brush allows a bitmap to be used to fill a geometry.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1Bi tmapBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1Bitm apBrush : public ID2D1Brush
{ {
// //
// Sets how the bitmap is to be treated outside of its natural extent on the X // Sets how the bitmap is to be treated outside of its natural extent on the X
// axis. // axis.
// //
STDMETHOD_(void, SetExtendModeX)( STDMETHOD_(void, SetExtendModeX)(
D2D1_EXTEND_MODE extendModeX D2D1_EXTEND_MODE extendModeX
) PURE; ) PURE;
skipping to change at line 1381 skipping to change at line 1383
// Sets the interpolation mode used when this brush is used. // Sets the interpolation mode used when this brush is used.
// //
STDMETHOD_(void, SetInterpolationMode)( STDMETHOD_(void, SetInterpolationMode)(
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
) PURE; ) PURE;
// //
// Sets the bitmap associated as the source of this brush. // Sets the bitmap associated as the source of this brush.
// //
STDMETHOD_(void, SetBitmap)( STDMETHOD_(void, SetBitmap)(
__in ID2D1Bitmap *bitmap _In_opt_ ID2D1Bitmap *bitmap
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)( STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetBitmap)( STDMETHOD_(void, GetBitmap)(
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) CONST PURE; ) CONST PURE;
}; // interface ID2D1BitmapBrush }; // interface ID2D1BitmapBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1SolidColorBrush // ID2D1SolidColorBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1So lidColorBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1Soli dColorBrush : public ID2D1Brush
{ {
STDMETHOD_(void, SetColor)( STDMETHOD_(void, SetColor)(
__in CONST D2D1_COLOR_F *color _In_ CONST D2D1_COLOR_F *color
) PURE; ) PURE;
STDMETHOD_(D2D1_COLOR_F, GetColor)( STDMETHOD_(D2D1_COLOR_F, GetColor)(
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetColor( SetColor(
CONST D2D1_COLOR_F &color CONST D2D1_COLOR_F &color
) )
{ {
SetColor(&color); SetColor(&color);
} }
}; // interface ID2D1SolidColorBrush }; // interface ID2D1SolidColorBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1LinearGradientBrush // ID2D1LinearGradientBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Li nearGradientBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Line arGradientBrush : public ID2D1Brush
{ {
STDMETHOD_(void, SetStartPoint)( STDMETHOD_(void, SetStartPoint)(
D2D1_POINT_2F startPoint D2D1_POINT_2F startPoint
) PURE; ) PURE;
// //
// Sets the end point of the gradient in local coordinate space. This is not // Sets the end point of the gradient in local coordinate space. This is not
// influenced by the geometry being filled. // influenced by the geometry being filled.
// //
skipping to change at line 1451 skipping to change at line 1454
D2D1_POINT_2F endPoint D2D1_POINT_2F endPoint
) PURE; ) PURE;
STDMETHOD_(D2D1_POINT_2F, GetStartPoint)( STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_POINT_2F, GetEndPoint)( STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) CONST PURE; ) CONST PURE;
}; // interface ID2D1LinearGradientBrush }; // interface ID2D1LinearGradientBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RadialGradientBrush // ID2D1RadialGradientBrush
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1Ra dialGradientBrush : public ID2D1Brush interface DX_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1Radi alGradientBrush : public ID2D1Brush
{ {
// //
// Sets the center of the radial gradient. This will be in local coordinates and // Sets the center of the radial gradient. This will be in local coordinates and
// will not depend on the geometry being filled. // will not depend on the geometry being filled.
// //
STDMETHOD_(void, SetCenter)( STDMETHOD_(void, SetCenter)(
D2D1_POINT_2F center D2D1_POINT_2F center
) PURE; ) PURE;
skipping to change at line 1500 skipping to change at line 1503
STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)( STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(FLOAT, GetRadiusX)( STDMETHOD_(FLOAT, GetRadiusX)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(FLOAT, GetRadiusY)( STDMETHOD_(FLOAT, GetRadiusY)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RadialGradientBrush }; // interface ID2D1RadialGradientBrush
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1StrokeStyle // ID2D1StrokeStyle
// //
// Synopsis: // Synopsis:
// Resource interface that holds pen style properties. // Resource interface that holds pen style properties.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1St rokeStyle : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1Stro keStyle : public ID2D1Resource
{ {
STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)( STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)( STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)( STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(
) CONST PURE; ) CONST PURE;
skipping to change at line 1545 skipping to change at line 1548
) CONST PURE; ) CONST PURE;
STDMETHOD_(UINT32, GetDashesCount)( STDMETHOD_(UINT32, GetDashesCount)(
) CONST PURE; ) CONST PURE;
// //
// Returns the dashes from the object into a user allocated array. The user must // Returns the dashes from the object into a user allocated array. The user must
// call GetDashesCount to retrieve the required size. // call GetDashesCount to retrieve the required size.
// //
STDMETHOD_(void, GetDashes)( STDMETHOD_(void, GetDashes)(
__out_ecount(dashesCount) FLOAT *dashes, _Out_writes_(dashesCount) FLOAT *dashes,
UINT dashesCount UINT32 dashesCount
) CONST PURE; ) CONST PURE;
}; // interface ID2D1StrokeStyle }; // interface ID2D1StrokeStyle
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Geometry // ID2D1Geometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometry : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom etry : public ID2D1Resource
{ {
// //
// Retrieve the bounds of the geometry, with an optional applied transform. // Retrieve the bounds of the geometry, with an optional applied transform.
// //
STDMETHOD(GetBounds)( STDMETHOD(GetBounds)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST PURE; ) CONST PURE;
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
STDMETHOD(GetWidenedBounds)( STDMETHOD(GetWidenedBounds)(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST PURE; ) CONST PURE;
// //
// Checks to see whether the corresponding penned and widened geometry conta ins the // Checks to see whether the corresponding penned and widened geometry conta ins the
// given point. // given point.
// //
STDMETHOD(StrokeContainsPoint)( STDMETHOD(StrokeContainsPoint)(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST PURE; ) CONST PURE;
// //
// Test whether the given fill of this geometry would contain this point. // Test whether the given fill of this geometry would contain this point.
// //
STDMETHOD(FillContainsPoint)( STDMETHOD(FillContainsPoint)(
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST PURE; ) CONST PURE;
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
STDMETHOD(CompareWithGeometry)( STDMETHOD(CompareWithGeometry)(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST PURE; ) CONST PURE;
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
STDMETHOD(Simplify)( STDMETHOD(Simplify)(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
STDMETHOD(Tessellate)( STDMETHOD(Tessellate)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST PURE; ) CONST PURE;
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
STDMETHOD(CombineWithGeometry)( STDMETHOD(CombineWithGeometry)(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
STDMETHOD(Outline)( STDMETHOD(Outline)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
STDMETHOD(ComputeArea)( STDMETHOD(ComputeArea)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) CONST PURE; ) CONST PURE;
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
STDMETHOD(ComputeLength)( STDMETHOD(ComputeLength)(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) CONST PURE; ) CONST PURE;
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
STDMETHOD(ComputePointAtLength)( STDMETHOD(ComputePointAtLength)(
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST PURE; ) CONST PURE;
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
STDMETHOD(Widen)( STDMETHOD(Widen)(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
// //
// Retrieve the bounds of the geometry, with an optional applied transform. // Retrieve the bounds of the geometry, with an optional applied transform.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetBounds( GetBounds(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetBounds(&worldTransform, bounds); return GetBounds(&worldTransform, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatt eningTolerance, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatt eningTolerance, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, bounds);
} }
// //
// Get the bounds of the corresponding geometry after it has been widened or have // Get the bounds of the corresponding geometry after it has been widened or have
// an optional pen style applied. // an optional pen style applied.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
GetWidenedBounds( GetWidenedBounds(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) CONST ) CONST
{ {
return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, bounds); return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, bounds);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, flatteningTolerance, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, flatteningTolerance, contains);
} }
// //
// Checks to see whether the corresponding penned and widened geometry conta ins the // Checks to see whether the corresponding penned and widened geometry conta ins the
// given point. // given point.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransfo rm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransfo rm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
StrokeContainsPoint( StrokeContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransf orm, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, &worldTransform, flatteningTolerance, co ntains); return FillContainsPoint(point, &worldTransform, flatteningTolerance, co ntains);
} }
// //
// Test whether the given fill of this geometry would contain this point. // Test whether the given fill of this geometry would contain this point.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_ TOLERANCE, contains); return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_ TOLERANCE, contains);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
FillContainsPoint( FillContainsPoint(
D2D1_POINT_2F point, D2D1_POINT_2F point,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out BOOL *contains _Out_ BOOL *contains
) CONST ) CONST
{ {
return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING _TOLERANCE, contains); return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING _TOLERANCE, contains);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatt eningTolerance, relation); return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatt eningTolerance, relation);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, relation); return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_D EFAULT_FLATTENING_TOLERANCE, relation);
} }
// //
// Compare how one geometry intersects or contains another geometry. // Compare how one geometry intersects or contains another geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CompareWithGeometry( CompareWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) CONST ) CONST
{ {
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, relation); return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_ DEFAULT_FLATTENING_TOLERANCE, relation);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, &worldTransform, flatteningToleran ce, geometrySink); return Simplify(simplificationOption, &worldTransform, flatteningToleran ce, geometrySink);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATT ENING_TOLERANCE, geometrySink); return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATT ENING_TOLERANCE, geometrySink);
} }
// //
// Converts a geometry to a simplified geometry that has arcs and quadratic beziers // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
// removed. // removed.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Simplify( Simplify(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink); return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink);
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(&worldTransform, flatteningTolerance, tessellationSink ); return Tessellate(&worldTransform, flatteningTolerance, tessellationSink );
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tes sellationSink); return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tes sellationSink);
} }
// //
// Tessellates a geometry into triangles. // Tessellates a geometry into triangles.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Tessellate( Tessellate(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) CONST ) CONST
{ {
return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, te ssellationSink); return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, te ssellationSink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, flatteningTolerance, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, flatteningTolerance, geometrySink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTran sform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTran sform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
} }
// //
// Performs a combine operation between the two geometries to produce a resu lting // Performs a combine operation between the two geometries to produce a resu lting
// geometry. // geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CombineWithGeometry( CombineWithGeometry(
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, CONST D2D1_MATRIX_3X2_F &inputGeometryTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTra nsform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(&worldTransform, flatteningTolerance, geometrySink); return Outline(&worldTransform, flatteningTolerance, geometrySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geomet rySink); return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geomet rySink);
} }
// //
// Computes the outline of the geometry. The result is written back into a // Computes the outline of the geometry. The result is written back into a
// simplified geometry sink. // simplified geometry sink.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Outline( Outline(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geome trySink); return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geome trySink);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(&worldTransform, flatteningTolerance, area); return ComputeArea(&worldTransform, flatteningTolerance, area);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, ar ea); return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, ar ea);
} }
// //
// Computes the area of the geometry. // Computes the area of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeArea( ComputeArea(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out FLOAT *area _Out_ FLOAT *area
) CONST ) CONST
{ {
return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, a rea); return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, a rea);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(&worldTransform, flatteningTolerance, length); return ComputeLength(&worldTransform, flatteningTolerance, length);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
} }
// //
// Computes the length of the geometry. // Computes the length of the geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputeLength( ComputeLength(
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out FLOAT *length _Out_ FLOAT *length
) CONST ) CONST
{ {
return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, &worldTransform, flatteningTolerance , point, unitTangentVector); return ComputePointAtLength(length, &worldTransform, flatteningTolerance , point, unitTangentVector);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTEN ING_TOLERANCE, point, unitTangentVector); return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTEN ING_TOLERANCE, point, unitTangentVector);
} }
// //
// Computes the point and tangent a given distance along the path. // Computes the point and tangent a given distance along the path.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
ComputePointAtLength( ComputePointAtLength(
FLOAT length, FLOAT length,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) CONST ) CONST
{ {
return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTE NING_TOLERANCE, point, unitTangentVector); return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTE NING_TOLERANCE, point, unitTangentVector);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolera nce, geometrySink); return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolera nce, geometrySink);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink); return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLAT TENING_TOLERANCE, geometrySink);
} }
// //
// Get the geometry and widen it as well as apply an optional pen style. // Get the geometry and widen it as well as apply an optional pen style.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Widen( Widen(
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
CONST D2D1_MATRIX_3X2_F &worldTransform, CONST D2D1_MATRIX_3X2_F &worldTransform,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST ) CONST
{ {
return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLA TTENING_TOLERANCE, geometrySink); return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLA TTENING_TOLERANCE, geometrySink);
} }
}; // interface ID2D1Geometry }; // interface ID2D1Geometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RectangleGeometry // ID2D1RectangleGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1Re ctangleGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1Rect angleGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetRect)( STDMETHOD_(void, GetRect)(
__out D2D1_RECT_F *rect _Out_ D2D1_RECT_F *rect
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RectangleGeometry }; // interface ID2D1RectangleGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RoundedRectangleGeometry // ID2D1RoundedRectangleGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1Ro undedRectangleGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1Roun dedRectangleGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetRoundedRect)( STDMETHOD_(void, GetRoundedRect)(
__out D2D1_ROUNDED_RECT *roundedRect _Out_ D2D1_ROUNDED_RECT *roundedRect
) CONST PURE; ) CONST PURE;
}; // interface ID2D1RoundedRectangleGeometry }; // interface ID2D1RoundedRectangleGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1EllipseGeometry // ID2D1EllipseGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1El lipseGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1Elli pseGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetEllipse)( STDMETHOD_(void, GetEllipse)(
__out D2D1_ELLIPSE *ellipse _Out_ D2D1_ELLIPSE *ellipse
) CONST PURE; ) CONST PURE;
}; // interface ID2D1EllipseGeometry }; // interface ID2D1EllipseGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GeometryGroup // ID2D1GeometryGroup
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometryGroup : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1Geom etryGroup : public ID2D1Geometry
{ {
STDMETHOD_(D2D1_FILL_MODE, GetFillMode)( STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(UINT32, GetSourceGeometryCount)( STDMETHOD_(UINT32, GetSourceGeometryCount)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetSourceGeometries)( STDMETHOD_(void, GetSourceGeometries)(
__out_ecount(geometriesCount) ID2D1Geometry **geometries, _Out_writes_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount UINT32 geometriesCount
) CONST PURE; ) CONST PURE;
}; // interface ID2D1GeometryGroup }; // interface ID2D1GeometryGroup
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1TransformedGeometry // ID2D1TransformedGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1Tr ansformedGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1Tran sformedGeometry : public ID2D1Geometry
{ {
STDMETHOD_(void, GetSourceGeometry)( STDMETHOD_(void, GetSourceGeometry)(
__deref_out ID2D1Geometry **sourceGeometry _Outptr_ ID2D1Geometry **sourceGeometry
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
}; // interface ID2D1TransformedGeometry }; // interface ID2D1TransformedGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1SimplifiedGeometrySink // ID2D1SimplifiedGeometrySink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1Si mplifiedGeometrySink : public IUnknown interface DX_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1Simp lifiedGeometrySink : public IUnknown
{ {
STDMETHOD_(void, SetFillMode)( STDMETHOD_(void, SetFillMode)(
D2D1_FILL_MODE fillMode D2D1_FILL_MODE fillMode
) PURE; ) PURE;
STDMETHOD_(void, SetSegmentFlags)( STDMETHOD_(void, SetSegmentFlags)(
D2D1_PATH_SEGMENT vertexFlags D2D1_PATH_SEGMENT vertexFlags
) PURE; ) PURE;
STDMETHOD_(void, BeginFigure)( STDMETHOD_(void, BeginFigure)(
D2D1_POINT_2F startPoint, D2D1_POINT_2F startPoint,
D2D1_FIGURE_BEGIN figureBegin D2D1_FIGURE_BEGIN figureBegin
) PURE; ) PURE;
STDMETHOD_(void, AddLines)( STDMETHOD_(void, AddLines)(
__in_ecount(pointsCount) CONST D2D1_POINT_2F *points, _In_reads_(pointsCount) CONST D2D1_POINT_2F *points,
UINT pointsCount UINT32 pointsCount
) PURE; ) PURE;
STDMETHOD_(void, AddBeziers)( STDMETHOD_(void, AddBeziers)(
__in_ecount(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, EndFigure)( STDMETHOD_(void, EndFigure)(
D2D1_FIGURE_END figureEnd D2D1_FIGURE_END figureEnd
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
) PURE; ) PURE;
}; // interface ID2D1SimplifiedGeometrySink }; // interface ID2D1SimplifiedGeometrySink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GeometrySink // ID2D1GeometrySink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1Ge ometrySink : public ID2D1SimplifiedGeometrySink interface DX_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1Geom etrySink : public ID2D1SimplifiedGeometrySink
{ {
STDMETHOD_(void, AddLine)( STDMETHOD_(void, AddLine)(
D2D1_POINT_2F point D2D1_POINT_2F point
) PURE; ) PURE;
STDMETHOD_(void, AddBezier)( STDMETHOD_(void, AddBezier)(
__in CONST D2D1_BEZIER_SEGMENT *bezier _In_ CONST D2D1_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBezier)( STDMETHOD_(void, AddQuadraticBezier)(
__in CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBeziers)( STDMETHOD_(void, AddQuadraticBeziers)(
__in_ecount(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, AddArc)( STDMETHOD_(void, AddArc)(
__in CONST D2D1_ARC_SEGMENT *arc _In_ CONST D2D1_ARC_SEGMENT *arc
) PURE; ) PURE;
COM_DECLSPEC_NOTHROW
void void
AddBezier( AddBezier(
CONST D2D1_BEZIER_SEGMENT &bezier CONST D2D1_BEZIER_SEGMENT &bezier
) )
{ {
AddBezier(&bezier); AddBezier(&bezier);
} }
COM_DECLSPEC_NOTHROW
void void
AddQuadraticBezier( AddQuadraticBezier(
CONST D2D1_QUADRATIC_BEZIER_SEGMENT &bezier CONST D2D1_QUADRATIC_BEZIER_SEGMENT &bezier
) )
{ {
AddQuadraticBezier(&bezier); AddQuadraticBezier(&bezier);
} }
COM_DECLSPEC_NOTHROW
void void
AddArc( AddArc(
CONST D2D1_ARC_SEGMENT &arc CONST D2D1_ARC_SEGMENT &arc
) )
{ {
AddArc(&arc); AddArc(&arc);
} }
}; // interface ID2D1GeometrySink }; // interface ID2D1GeometrySink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1TessellationSink // ID2D1TessellationSink
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1Te ssellationSink : public IUnknown interface DX_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1Tess ellationSink : public IUnknown
{ {
STDMETHOD_(void, AddTriangles)( STDMETHOD_(void, AddTriangles)(
__in_ecount(trianglesCount) CONST D2D1_TRIANGLE *triangles, _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles,
UINT trianglesCount UINT32 trianglesCount
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
) PURE; ) PURE;
}; // interface ID2D1TessellationSink }; // interface ID2D1TessellationSink
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1PathGeometry // ID2D1PathGeometry
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1Pa thGeometry : public ID2D1Geometry interface DX_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1Path Geometry : public ID2D1Geometry
{ {
// //
// Opens a geometry sink that will be used to create this path geometry. // Opens a geometry sink that will be used to create this path geometry.
// //
STDMETHOD(Open)( STDMETHOD(Open)(
__deref_out ID2D1GeometrySink **geometrySink _Outptr_ ID2D1GeometrySink **geometrySink
) PURE; ) PURE;
// //
// Retrieve the contents of this geometry. The caller passes an implementati on of a // Retrieve the contents of this geometry. The caller passes an implementati on of a
// ID2D1GeometrySink interface to receive the data. // ID2D1GeometrySink interface to receive the data.
// //
STDMETHOD(Stream)( STDMETHOD(Stream)(
__in ID2D1GeometrySink *geometrySink _In_ ID2D1GeometrySink *geometrySink
) CONST PURE; ) CONST PURE;
STDMETHOD(GetSegmentCount)( STDMETHOD(GetSegmentCount)(
__out UINT32 *count _Out_ UINT32 *count
) CONST PURE; ) CONST PURE;
STDMETHOD(GetFigureCount)( STDMETHOD(GetFigureCount)(
__out UINT32 *count _Out_ UINT32 *count
) CONST PURE; ) CONST PURE;
}; // interface ID2D1PathGeometry }; // interface ID2D1PathGeometry
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Mesh // ID2D1Mesh
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Me sh : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Mesh : public ID2D1Resource
{ {
// //
// Opens the mesh for population. // Opens the mesh for population.
// //
STDMETHOD(Open)( STDMETHOD(Open)(
__deref_out ID2D1TessellationSink **tessellationSink _Outptr_ ID2D1TessellationSink **tessellationSink
) PURE; ) PURE;
}; // interface ID2D1Mesh }; // interface ID2D1Mesh
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Layer // ID2D1Layer
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1La yer : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1Laye r : public ID2D1Resource
{ {
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
}; // interface ID2D1Layer }; // interface ID2D1Layer
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1DrawingStateBlock // ID2D1DrawingStateBlock
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1Dr awingStateBlock : public ID2D1Resource interface DX_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1Draw ingStateBlock : public ID2D1Resource
{ {
// //
// Retrieves the state currently contained within this state block resource. // Retrieves the state currently contained within this state block resource.
// //
STDMETHOD_(void, GetDescription)( STDMETHOD_(void, GetDescription)(
__out D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) CONST PURE; ) CONST PURE;
// //
// Sets the state description of this state block resource. // Sets the state description of this state block resource.
// //
STDMETHOD_(void, SetDescription)( STDMETHOD_(void, SetDescription)(
__in CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
// //
// Sets the text rendering parameters of this state block resource. // Sets the text rendering parameters of this state block resource.
// //
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
__in_opt IDWriteRenderingParams *textRenderingParams = NULL _In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE; ) PURE;
// //
// Retrieves the text rendering parameters contained within this state block // Retrieves the text rendering parameters contained within this state block
// resource. If a NULL text rendering parameter was specified, NULL will be // resource. If a NULL text rendering parameter was specified, NULL will be
// returned. // returned.
// //
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
void void
SetDescription( SetDescription(
CONST D2D1_DRAWING_STATE_DESCRIPTION &stateDescription CONST D2D1_DRAWING_STATE_DESCRIPTION &stateDescription
) )
{ {
SetDescription(&stateDescription); SetDescription(&stateDescription);
} }
}; // interface ID2D1DrawingStateBlock }; // interface ID2D1DrawingStateBlock
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1RenderTarget // ID2D1RenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Re nderTarget : public ID2D1Resource interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend erTarget : public ID2D1Resource
{ {
// //
// Create a D2D bitmap by copying from memory, or create uninitialized. // Create a D2D bitmap by copying from memory, or create uninitialized.
// //
STDMETHOD(CreateBitmap)( STDMETHOD(CreateBitmap)(
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
__in CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
STDMETHOD(CreateBitmapFromWicBitmap)( STDMETHOD(CreateBitmapFromWicBitmap)(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Create a D2D bitmap by sharing bits from another resource. The bitmap mus t be // Create a D2D bitmap by sharing bits from another resource. The bitmap mus t be
// compatible with the render target for the call to succeed. // compatible with the render target for the call to succeed.
// For example, an IWICBitmap can be shared with a software target, or a DXG I // For example, an IWICBitmap can be shared with a software target, or a DXG I
// surface can be shared with a DXGI render target. // surface can be shared with a DXGI render target.
// //
STDMETHOD(CreateSharedBitmap)( STDMETHOD(CreateSharedBitmap)(
__in REFIID riid, _In_ REFIID riid,
__inout void *data, _Inout_ void *data,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
STDMETHOD(CreateBitmapBrush)( STDMETHOD(CreateBitmapBrush)(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) PURE; ) PURE;
STDMETHOD(CreateSolidColorBrush)( STDMETHOD(CreateSolidColorBrush)(
__in CONST D2D1_COLOR_F *color, _In_ CONST D2D1_COLOR_F *color,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) PURE; ) PURE;
// //
// A gradient stop collection represents a set of stops in an ideal unit len gth. // A gradient stop collection represents a set of stops in an ideal unit len gth.
// This is the source resource for a linear gradient and radial gradient bru sh. // This is the source resource for a linear gradient and radial gradient bru sh.
// //
STDMETHOD(CreateGradientStopCollection)( STDMETHOD(CreateGradientStopCollection)(
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
__range(>=,1) UINT gradientStopsCount, _In_range_(>=,1) UINT32 gradientStopsCount,
// //
// Specifies which space the color interpolation occurs in. // Specifies which space the color interpolation occurs in.
// //
D2D1_GAMMA colorInterpolationGamma, D2D1_GAMMA colorInterpolationGamma,
// //
// Specifies how the gradient will be extended outside of the unit lengt h. // Specifies how the gradient will be extended outside of the unit lengt h.
// //
D2D1_EXTEND_MODE extendMode, D2D1_EXTEND_MODE extendMode,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
STDMETHOD(CreateLinearGradientBrush)( STDMETHOD(CreateLinearGradientBrush)(
__in CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateRadialGradientBrush)( STDMETHOD(CreateRadialGradientBrush)(
__in CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro _In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) PURE; ) PURE;
// //
// Creates a bitmap render target whose bitmap can be used as a source for // Creates a bitmap render target whose bitmap can be used as a source for
// rendering in the API. // rendering in the API.
// //
STDMETHOD(CreateCompatibleRenderTarget)( STDMETHOD(CreateCompatibleRenderTarget)(
// //
// The requested size of the target in DIPs. If the pixel size is not sp ecified, // The requested size of the target in DIPs. If the pixel size is not sp ecified,
// the DPI is inherited from the parent target. However, the render targ et will // the DPI is inherited from the parent target. However, the render targ et will
// never contain a fractional number of pixels. // never contain a fractional number of pixels.
// //
__in_opt CONST D2D1_SIZE_F *desiredSize, _In_opt_ CONST D2D1_SIZE_F *desiredSize,
// //
// The requested size of the render target in pixels. If the DIP size is also // The requested size of the render target in pixels. If the DIP size is also
// specified, the DPI is calculated from these two values. If the desire d size is // specified, the DPI is calculated from these two values. If the desire d size is
// not specified, the DPI is inherited from the parent render target. If neither // not specified, the DPI is inherited from the parent render target. If neither
// value is specified, the compatible render target will be the same siz e and have // value is specified, the compatible render target will be the same siz e and have
// the same DPI as the parent target. // the same DPI as the parent target.
// //
__in_opt CONST D2D1_SIZE_U *desiredPixelSize, _In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
// //
// The desired pixel format. The format must be compatible with the pare nt render // The desired pixel format. The format must be compatible with the pare nt render
// target type. If the format is not specified, it will be inherited fro m the // target type. If the format is not specified, it will be inherited fro m the
// parent render target. // parent render target.
// //
__in_opt CONST D2D1_PIXEL_FORMAT *desiredFormat, _In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
// //
// Allows the caller to retrieve a GDI compatible render target. // Allows the caller to retrieve a GDI compatible render target.
// //
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
// //
// The returned bitmap render target. // The returned bitmap render target.
// //
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) PURE; ) PURE;
// //
// Creates a layer resource that can be used on any target and which will re size // Creates a layer resource that can be used on any target and which will re size
// under the covers if necessary. // under the covers if necessary.
// //
STDMETHOD(CreateLayer)( STDMETHOD(CreateLayer)(
// //
// The resolution independent minimum size hint for the layer resource. Specify // The resolution independent minimum size hint for the layer resource. Specify
// this to prevent unwanted reallocation of the layer backing store. The size is in // this to prevent unwanted reallocation of the layer backing store. The size is in
// DIPs, but, it is unaffected by the current world transform. If the si ze is // DIPs, but, it is unaffected by the current world transform. If the si ze is
// unspecified, the returned resource is a placeholder and the backing s tore will // unspecified, the returned resource is a placeholder and the backing s tore will
// be allocated to be the minimum size that can hold the content when th e layer is // be allocated to be the minimum size that can hold the content when th e layer is
// pushed. // pushed.
// //
__in_opt CONST D2D1_SIZE_F *size, _In_opt_ CONST D2D1_SIZE_F *size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) PURE; ) PURE;
// //
// Create a D2D mesh. // Create a D2D mesh.
// //
STDMETHOD(CreateMesh)( STDMETHOD(CreateMesh)(
__deref_out ID2D1Mesh **mesh _Outptr_ ID2D1Mesh **mesh
) PURE; ) PURE;
STDMETHOD_(void, DrawLine)( STDMETHOD_(void, DrawLine)(
D2D1_POINT_2F point0, D2D1_POINT_2F point0,
D2D1_POINT_2F point1, D2D1_POINT_2F point1,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, DrawRectangle)( STDMETHOD_(void, DrawRectangle)(
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillRectangle)( STDMETHOD_(void, FillRectangle)(
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawRoundedRectangle)( STDMETHOD_(void, DrawRoundedRectangle)(
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillRoundedRectangle)( STDMETHOD_(void, FillRoundedRectangle)(
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawEllipse)( STDMETHOD_(void, DrawEllipse)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillEllipse)( STDMETHOD_(void, FillEllipse)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawGeometry)( STDMETHOD_(void, DrawGeometry)(
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE; ) PURE;
STDMETHOD_(void, FillGeometry)( STDMETHOD_(void, FillGeometry)(
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
// //
// An optionally specified opacity brush. Only the alpha channel of the // An optionally specified opacity brush. Only the alpha channel of the
// corresponding brush will be sampled and will be applied to the entire fill of // corresponding brush will be sampled and will be applied to the entire fill of
// the geometry. If this brush is specified, the fill brush must be a bi tmap brush // the geometry. If this brush is specified, the fill brush must be a bi tmap brush
// with an extend mode of D2D1_EXTEND_MODE_CLAMP. // with an extend mode of D2D1_EXTEND_MODE_CLAMP.
// //
__in_opt ID2D1Brush *opacityBrush = NULL _In_opt_ ID2D1Brush *opacityBrush = NULL
) PURE; ) PURE;
// //
// Fill a mesh. Since meshes can only render aliased content, the render tar get // Fill a mesh. Since meshes can only render aliased content, the render tar get
// antialiasing mode must be set to aliased. // antialiasing mode must be set to aliased.
// //
STDMETHOD_(void, FillMesh)( STDMETHOD_(void, FillMesh)(
__in ID2D1Mesh *mesh, _In_ ID2D1Mesh *mesh,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
// //
// Fill using the opacity channel of the supplied bitmap as a mask. The alph // Fill using the alpha channel of the supplied opacity mask bitmap. The bru
a sh
// channel of the bitmap is used to represent the coverage of the geometry a // opacity will be modulated by the mask. The render target antialiasing mod
t each e must
// pixel, and this is filled appropriately with the brush. The render target // be set to aliased.
// antialiasing mode must be set to aliased.
// //
STDMETHOD_(void, FillOpacityMask)( STDMETHOD_(void, FillOpacityMask)(
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
__in_opt CONST D2D1_RECT_F *destinationRectangle = NULL, _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) PURE; ) PURE;
STDMETHOD_(void, DrawBitmap)( STDMETHOD_(void, DrawBitmap)(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_F *destinationRectangle = NULL, _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL,
FLOAT opacity = 1.0f, FLOAT opacity = 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) PURE; ) PURE;
// //
// Draws the text within the given layout rectangle and by default also snap s and // Draws the text within the given layout rectangle and by default also snap s and
// clips it to the content bounds. // clips it to the content bounds.
// //
STDMETHOD_(void, DrawText)( STDMETHOD_(void, DrawText)(
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
__in CONST D2D1_RECT_F *layoutRect, _In_ CONST D2D1_RECT_F *layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) PURE; ) PURE;
// //
// Draw a snapped text layout object. Since the layout is not subsequently c hanged, // Draw a snapped text layout object. Since the layout is not subsequently c hanged,
// this can be more effecient than DrawText when drawing the same layout // this can be more efficient than DrawText when drawing the same layout
// repeatedly. // repeatedly.
// //
STDMETHOD_(void, DrawTextLayout)( STDMETHOD_(void, DrawTextLayout)(
D2D1_POINT_2F origin, D2D1_POINT_2F origin,
__in IDWriteTextLayout *textLayout, _In_ IDWriteTextLayout *textLayout,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
// //
// The specified text options. NOTE: By default the text is clipped to t he layout // The specified text options. NOTE: By default the text is clipped to t he layout
// bounds. This is derived from the origin and the layout bounds of the // bounds. This is derived from the origin and the layout bounds of the
// corresponding IDWriteTextLayout object. // corresponding IDWriteTextLayout object.
// //
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE
) PURE; ) PURE;
STDMETHOD_(void, DrawGlyphRun)( STDMETHOD_(void, DrawGlyphRun)(
D2D1_POINT_2F baselineOrigin, D2D1_POINT_2F baselineOrigin,
__in CONST DWRITE_GLYPH_RUN *glyphRun, _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
__in ID2D1Brush *foregroundBrush, _In_ ID2D1Brush *foregroundBrush,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetAntialiasMode)( STDMETHOD_(void, SetAntialiasMode)(
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)( STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetTextAntialiasMode)( STDMETHOD_(void, SetTextAntialiasMode)(
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)( STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(
) CONST PURE; ) CONST PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
__in_opt IDWriteRenderingParams *textRenderingParams = NULL _In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE; ) PURE;
// //
// Retrieve the text render parameters. NOTE: If NULL is specified to // Retrieve the text render parameters. NOTE: If NULL is specified to
// SetTextRenderingParameters, NULL will be returned. // SetTextRenderingParameters, NULL will be returned.
// //
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE; ) CONST PURE;
// //
// Set a tag to correspond to the succeeding primitives. If an error occurs // Set a tag to correspond to the succeeding primitives. If an error occurs
// rendering a primtive, the tags can be returned from the Flush or EndDraw call. // rendering a primitive, the tags can be returned from the Flush or EndDraw call.
// //
STDMETHOD_(void, SetTags)( STDMETHOD_(void, SetTags)(
D2D1_TAG tag1, D2D1_TAG tag1,
D2D1_TAG tag2 D2D1_TAG tag2
) PURE; ) PURE;
// //
// Retrieves the currently set tags. This does not retrieve the tags corresp onding // Retrieves the currently set tags. This does not retrieve the tags corresp onding
// to any primitive that is in error. // to any primitive that is in error.
// //
STDMETHOD_(void, GetTags)( STDMETHOD_(void, GetTags)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) CONST PURE; ) CONST PURE;
// //
// Start a layer of drawing calls. The way in which the layer must be resolv ed is // Start a layer of drawing calls. The way in which the layer must be resolv ed is
// specified first as well as the logical resource that stores the layer // specified first as well as the logical resource that stores the layer
// parameters. The supplied layer resource might grow if the specified conte nt // parameters. The supplied layer resource might grow if the specified conte nt
// cannot fit inside it. The layer will grow monitonically on each axis. // cannot fit inside it. The layer will grow monotonically on each axis. If
a NULL
// ID2D1Layer is provided, then a layer resource will be allocated automatic
ally.
// //
STDMETHOD_(void, PushLayer)( STDMETHOD_(void, PushLayer)(
__in CONST D2D1_LAYER_PARAMETERS *layerParameters, _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) PURE; ) PURE;
// //
// Ends a layer that was defined with particular layer resources. // Ends a layer that was defined with particular layer resources.
// //
STDMETHOD_(void, PopLayer)( STDMETHOD_(void, PopLayer)(
) PURE; ) PURE;
STDMETHOD(Flush)( STDMETHOD(Flush)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) PURE; ) PURE;
// //
// Gets the current drawing state and saves it into the supplied // Gets the current drawing state and saves it into the supplied
// IDrawingStatckBlock. // IDrawingStatckBlock.
// //
STDMETHOD_(void, SaveDrawingState)( STDMETHOD_(void, SaveDrawingState)(
__inout ID2D1DrawingStateBlock *drawingStateBlock _Inout_ ID2D1DrawingStateBlock *drawingStateBlock
) CONST PURE; ) CONST PURE;
// //
// Copies the state stored in the block interface. // Copies the state stored in the block interface.
// //
STDMETHOD_(void, RestoreDrawingState)( STDMETHOD_(void, RestoreDrawingState)(
__in ID2D1DrawingStateBlock *drawingStateBlock _In_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
// //
// Pushes a clip. The clip can be antialiased. The clip must be axis aligned . If // Pushes a clip. The clip can be antialiased. The clip must be axis aligned . If
// the current world transform is not axis preserving, then the bounding box of the // the current world transform is not axis preserving, then the bounding box of the
// transformed clip rect will be used. The clip will remain in effect until a // transformed clip rect will be used. The clip will remain in effect until a
// PopAxisAligned clip call is made. // PopAxisAligned clip call is made.
// //
STDMETHOD_(void, PushAxisAlignedClip)( STDMETHOD_(void, PushAxisAlignedClip)(
__in CONST D2D1_RECT_F *clipRect, _In_ CONST D2D1_RECT_F *clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(void, PopAxisAlignedClip)( STDMETHOD_(void, PopAxisAlignedClip)(
) PURE; ) PURE;
STDMETHOD_(void, Clear)( STDMETHOD_(void, Clear)(
__in_opt CONST D2D1_COLOR_F *clearColor = NULL _In_opt_ CONST D2D1_COLOR_F *clearColor = NULL
) PURE; ) PURE;
// //
// Start drawing on this render target. Draw calls can only be issued betwee n a // Start drawing on this render target. Draw calls can only be issued betwee n a
// BeginDraw and EndDraw call. // BeginDraw and EndDraw call.
// //
STDMETHOD_(void, BeginDraw)( STDMETHOD_(void, BeginDraw)(
) PURE; ) PURE;
// //
// Ends drawing on the render target, error results can be retrieved at this time, // Ends drawing on the render target, error results can be retrieved at this time,
// or when calling flush. // or when calling flush.
// //
STDMETHOD(EndDraw)( STDMETHOD(EndDraw)(
__out_opt D2D1_TAG *tag1 = NULL, _Out_opt_ D2D1_TAG *tag1 = NULL,
__out_opt D2D1_TAG *tag2 = NULL _Out_opt_ D2D1_TAG *tag2 = NULL
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE; ) CONST PURE;
// //
// Sets the DPI on the render target. This results in the render target bein g // Sets the DPI on the render target. This results in the render target bein g
// interpretted to a different scale. Neither DPI can be negative. If zero i s // interpreted to a different scale. Neither DPI can be negative. If zero is
// specified for both, the system DPI is chosen. If one is zero and the othe r // specified for both, the system DPI is chosen. If one is zero and the othe r
// unspecified, the DPI is not changed. // unspecified, the DPI is not changed.
// //
STDMETHOD_(void, SetDpi)( STDMETHOD_(void, SetDpi)(
FLOAT dpiX, FLOAT dpiX,
FLOAT dpiY FLOAT dpiY
) PURE; ) PURE;
// //
// Return the current DPI from the target. // Return the current DPI from the target.
// //
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the render target in DIPs. // Returns the size of the render target in DIPs.
// //
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns the size of the render target in pixels. // Returns the size of the render target in pixels.
skipping to change at line 2962 skipping to change at line 3006
STDMETHOD_(UINT32, GetMaximumBitmapSize)( STDMETHOD_(UINT32, GetMaximumBitmapSize)(
) CONST PURE; ) CONST PURE;
// //
// Returns true if the given properties are supported by this render target. The // Returns true if the given properties are supported by this render target. The
// DPI is ignored. NOTE: If the render target type is software, then neither // DPI is ignored. NOTE: If the render target type is software, then neither
// D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be // D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be
// supported. // supported.
// //
STDMETHOD_(BOOL, IsSupported)( STDMETHOD_(BOOL, IsSupported)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmap( CreateBitmap(
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap); return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmap( CreateBitmap(
D2D1_SIZE_U size, D2D1_SIZE_U size,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmap(size, NULL, 0, &bitmapProperties, bitmap); return CreateBitmap(size, NULL, 0, &bitmapProperties, bitmap);
} }
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapFromWicBitmap( CreateBitmapFromWicBitmap(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bit map); return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bit map);
} }
// //
// Create a D2D bitmap by copying a WIC bitmap. // Create a D2D bitmap by copying a WIC bitmap.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapFromWicBitmap( CreateBitmapFromWicBitmap(
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) )
{ {
return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap); return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush); return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBru sh); return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBru sh);
} }
// //
// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
// or pen a geometry. // or pen a geometry.
// //
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateBitmapBrush( CreateBitmapBrush(
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) )
{ {
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushPropertie s, bitmapBrush); return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushPropertie s, bitmapBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateSolidColorBrush( CreateSolidColorBrush(
CONST D2D1_COLOR_F &color, CONST D2D1_COLOR_F &color,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) )
{ {
return CreateSolidColorBrush(&color, NULL, solidColorBrush); return CreateSolidColorBrush(&color, NULL, solidColorBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateSolidColorBrush( CreateSolidColorBrush(
CONST D2D1_COLOR_F &color, CONST D2D1_COLOR_F &color,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) )
{ {
return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush); return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateGradientStopCollection( CreateGradientStopCollection(
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
UINT gradientStopsCount, UINT32 gradientStopsCount,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) )
{ {
return CreateGradientStopCollection(gradientStops, gradientStopsCount, D 2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection); return CreateGradientStopCollection(gradientStops, gradientStopsCount, D 2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLinearGradientBrush( CreateLinearGradientBrush(
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es, CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) )
{ {
return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, g radientStopCollection, linearGradientBrush); return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, g radientStopCollection, linearGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLinearGradientBrush( CreateLinearGradientBrush(
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es, CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperti es,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) )
{ {
return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushP roperties, gradientStopCollection, linearGradientBrush); return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushP roperties, gradientStopCollection, linearGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRadialGradientBrush( CreateRadialGradientBrush(
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es, CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) )
{ {
return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, g radientStopCollection, radialGradientBrush); return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, g radientStopCollection, radialGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRadialGradientBrush( CreateRadialGradientBrush(
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es, CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperti es,
CONST D2D1_BRUSH_PROPERTIES &brushProperties, CONST D2D1_BRUSH_PROPERTIES &brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) )
{ {
return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushP roperties, gradientStopCollection, radialGradientBrush); return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushP roperties, gradientStopCollection, radialGradientBrush);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RE NDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RE NDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPA TIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPA TIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NUL L, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NUL L, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat, D2D1_PIXEL_FORMAT desiredFormat,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateCompatibleRenderTarget( CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize, D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize, D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat, D2D1_PIXEL_FORMAT desiredFormat,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) )
{ {
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, options, bitmapRenderTarget); return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &de siredFormat, options, bitmapRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLayer( CreateLayer(
D2D1_SIZE_F size, D2D1_SIZE_F size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) )
{ {
return CreateLayer(&size, layer); return CreateLayer(&size, layer);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateLayer( CreateLayer(
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) )
{ {
return CreateLayer(NULL, layer); return CreateLayer(NULL, layer);
} }
COM_DECLSPEC_NOTHROW
void void
DrawRectangle( DrawRectangle(
CONST D2D1_RECT_F &rect, CONST D2D1_RECT_F &rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawRectangle(&rect, brush, strokeWidth, strokeStyle); DrawRectangle(&rect, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillRectangle( FillRectangle(
CONST D2D1_RECT_F &rect, CONST D2D1_RECT_F &rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillRectangle(&rect, brush); FillRectangle(&rect, brush);
} }
COM_DECLSPEC_NOTHROW
void void
DrawRoundedRectangle( DrawRoundedRectangle(
CONST D2D1_ROUNDED_RECT &roundedRect, CONST D2D1_ROUNDED_RECT &roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle); DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillRoundedRectangle( FillRoundedRectangle(
CONST D2D1_ROUNDED_RECT &roundedRect, CONST D2D1_ROUNDED_RECT &roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillRoundedRectangle(&roundedRect, brush); FillRoundedRectangle(&roundedRect, brush);
} }
COM_DECLSPEC_NOTHROW
void void
DrawEllipse( DrawEllipse(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth = 1.0f, FLOAT strokeWidth = 1.0f,
__in_opt ID2D1StrokeStyle *strokeStyle = NULL _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) )
{ {
DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle); DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle);
} }
COM_DECLSPEC_NOTHROW
void void
FillEllipse( FillEllipse(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) )
{ {
FillEllipse(&ellipse, brush); FillEllipse(&ellipse, brush);
} }
COM_DECLSPEC_NOTHROW
void void
FillOpacityMask( FillOpacityMask(
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
CONST D2D1_RECT_F &sourceRectangle CONST D2D1_RECT_F &sourceRectangle
) )
{ {
FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sou rceRectangle); FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sou rceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
DrawBitmap( DrawBitmap(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
FLOAT opacity = 1.0f, FLOAT opacity = 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLA TION_MODE_LINEAR,
__in_opt CONST D2D1_RECT_F *sourceRectangle = NULL _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) )
{ {
DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, so urceRectangle); DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, so urceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
DrawBitmap( DrawBitmap(
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
CONST D2D1_RECT_F &destinationRectangle, CONST D2D1_RECT_F &destinationRectangle,
FLOAT opacity, FLOAT opacity,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
CONST D2D1_RECT_F &sourceRectangle CONST D2D1_RECT_F &sourceRectangle
) )
{ {
DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &s ourceRectangle); DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &s ourceRectangle);
} }
COM_DECLSPEC_NOTHROW
void void
SetTransform( SetTransform(
CONST D2D1_MATRIX_3X2_F &transform CONST D2D1_MATRIX_3X2_F &transform
) )
{ {
SetTransform(&transform); SetTransform(&transform);
} }
COM_DECLSPEC_NOTHROW
void void
PushLayer( PushLayer(
CONST D2D1_LAYER_PARAMETERS &layerParameters, CONST D2D1_LAYER_PARAMETERS &layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) )
{ {
PushLayer(&layerParameters, layer); PushLayer(&layerParameters, layer);
} }
COM_DECLSPEC_NOTHROW
void void
PushAxisAlignedClip( PushAxisAlignedClip(
CONST D2D1_RECT_F &clipRect, CONST D2D1_RECT_F &clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) )
{ {
return PushAxisAlignedClip(&clipRect, antialiasMode); return PushAxisAlignedClip(&clipRect, antialiasMode);
} }
COM_DECLSPEC_NOTHROW
void void
Clear( Clear(
CONST D2D1_COLOR_F &clearColor CONST D2D1_COLOR_F &clearColor
) )
{ {
return Clear(&clearColor); return Clear(&clearColor);
} }
// //
// Draws the text within the given layout rectangle and by default also snap s and // Draws the text within the given layout rectangle and by default also snap s and
// clips it. // clips it.
// //
COM_DECLSPEC_NOTHROW
void void
DrawText( DrawText(
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
CONST D2D1_RECT_F &layoutRect, CONST D2D1_RECT_F &layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) )
{ {
return DrawText(string, stringLength, textFormat, &layoutRect, defaultFo regroundBrush, options, measuringMode); return DrawText(string, stringLength, textFormat, &layoutRect, defaultFo regroundBrush, options, measuringMode);
} }
COM_DECLSPEC_NOTHROW
BOOL BOOL
IsSupported( IsSupported(
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties
) CONST ) CONST
{ {
return IsSupported(&renderTargetProperties); return IsSupported(&renderTargetProperties);
} }
}; // interface ID2D1RenderTarget }; // interface ID2D1RenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1BitmapRenderTarget // ID2D1BitmapRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1Bi tmapRenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1Bitm apRenderTarget : public ID2D1RenderTarget
{ {
STDMETHOD(GetBitmap)( STDMETHOD(GetBitmap)(
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
}; // interface ID2D1BitmapRenderTarget }; // interface ID2D1BitmapRenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1HwndRenderTarget // ID2D1HwndRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1Hw ndRenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1Hwnd RenderTarget : public ID2D1RenderTarget
{ {
STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)( STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
) PURE; ) PURE;
// //
// Resize the buffer underlying the render target. This operation might fail if // Resize the buffer underlying the render target. This operation might fail if
// there is insufficent video memory or system memory, or if the render targ et is // there is insufficient video memory or system memory, or if the render tar get is
// resized beyond the maximum bitmap size. If the method fails, the render t arget // resized beyond the maximum bitmap size. If the method fails, the render t arget
// will be placed in a zombie state and D2DERR_RECREATE_TARGET will be retur ned // will be placed in a zombie state and D2DERR_RECREATE_TARGET will be retur ned
// from it when EndDraw is called. In addition an appropriate failure result will // from it when EndDraw is called. In addition an appropriate failure result will
// be returned from Resize. // be returned from Resize.
// //
STDMETHOD(Resize)( STDMETHOD(Resize)(
__in CONST D2D1_SIZE_U *pixelSize _In_ CONST D2D1_SIZE_U *pixelSize
) PURE; ) PURE;
STDMETHOD_(HWND, GetHwnd)( STDMETHOD_(HWND, GetHwnd)(
) CONST PURE; ) CONST PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
Resize( Resize(
CONST D2D1_SIZE_U &pixelSize CONST D2D1_SIZE_U &pixelSize
) )
{ {
return Resize(&pixelSize); return Resize(&pixelSize);
} }
}; // interface ID2D1HwndRenderTarget }; // interface ID2D1HwndRenderTarget
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1GdiInteropRenderTarget // ID2D1GdiInteropRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1Gd iInteropRenderTarget : public IUnknown interface DX_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1GdiI nteropRenderTarget : public IUnknown
{ {
STDMETHOD(GetDC)( STDMETHOD(GetDC)(
D2D1_DC_INITIALIZE_MODE mode, D2D1_DC_INITIALIZE_MODE mode,
__out HDC *hdc _Out_ HDC *hdc
) PURE; ) PURE;
STDMETHOD(ReleaseDC)( STDMETHOD(ReleaseDC)(
__in_opt CONST RECT *update _In_opt_ CONST RECT *update
) PURE; ) PURE;
}; // interface ID2D1GdiInteropRenderTarget }; // interface ID2D1GdiInteropRenderTarget
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1DCRenderTarget // ID2D1DCRenderTarget
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DC RenderTarget : public ID2D1RenderTarget interface DX_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DCRe nderTarget : public ID2D1RenderTarget
{ {
STDMETHOD(BindDC)( STDMETHOD(BindDC)(
__in CONST HDC hDC, _In_ CONST HDC hDC,
__in CONST RECT *pSubRect _In_ CONST RECT *pSubRect
) PURE; ) PURE;
}; // interface ID2D1DCRenderTarget }; // interface ID2D1DCRenderTarget
//+----------------------------------------------------------------------------- //+-----------------------------------------------------------------------------
// //
// Interface: // Interface:
// ID2D1Factory // ID2D1Factory
// //
// Synopsis: // Synopsis:
// The root factory interface for all of D2D's objects. // The root factory interface for all of D2D's objects.
// //
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
interface D2D1_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fa ctory : public IUnknown interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact ory : public IUnknown
{ {
// //
// Cause the factory to refresh any system metrics that it might have been s napped // Cause the factory to refresh any system metrics that it might have been s napped
// on factory creation. // on factory creation.
// //
STDMETHOD(ReloadSystemMetrics)( STDMETHOD(ReloadSystemMetrics)(
) PURE; ) PURE;
// //
// Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetr ics. // Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetr ics.
// //
STDMETHOD_(void, GetDesktopDpi)( STDMETHOD_(void, GetDesktopDpi)(
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CreateRectangleGeometry)( STDMETHOD(CreateRectangleGeometry)(
__in CONST D2D1_RECT_F *rectangle, _In_ CONST D2D1_RECT_F *rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateRoundedRectangleGeometry)( STDMETHOD(CreateRoundedRectangleGeometry)(
__in CONST D2D1_ROUNDED_RECT *roundedRectangle, _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateEllipseGeometry)( STDMETHOD(CreateEllipseGeometry)(
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) PURE; ) PURE;
// //
// Create a geometry which holds other geometries. // Create a geometry which holds other geometries.
// //
STDMETHOD(CreateGeometryGroup)( STDMETHOD(CreateGeometryGroup)(
D2D1_FILL_MODE fillMode, D2D1_FILL_MODE fillMode,
__in_ecount(geometriesCount) ID2D1Geometry **geometries, _In_reads_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount, UINT32 geometriesCount,
__deref_out ID2D1GeometryGroup **geometryGroup _Outptr_ ID2D1GeometryGroup **geometryGroup
) PURE; ) PURE;
STDMETHOD(CreateTransformedGeometry)( STDMETHOD(CreateTransformedGeometry)(
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
__in CONST D2D1_MATRIX_3X2_F *transform, _In_ CONST D2D1_MATRIX_3X2_F *transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) PURE; ) PURE;
// //
// Returns an initially empty path geometry interface. A geometry sink is cr eated // Returns an initially empty path geometry interface. A geometry sink is cr eated
// off the interface to populate it. // off the interface to populate it.
// //
STDMETHOD(CreatePathGeometry)( STDMETHOD(CreatePathGeometry)(
__deref_out ID2D1PathGeometry **pathGeometry _Outptr_ ID2D1PathGeometry **pathGeometry
) PURE; ) PURE;
// //
// Allows a non-default stroke style to be specified for a given geometry at draw // Allows a non-default stroke style to be specified for a given geometry at draw
// time. // time.
// //
STDMETHOD(CreateStrokeStyle)( STDMETHOD(CreateStrokeStyle)(
__in CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, _In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
__in_ecount_opt(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) PURE; ) PURE;
// //
// Creates a new drawing state block, this can be used in subsequent // Creates a new drawing state block, this can be used in subsequent
// SaveDrawingState and RestoreDrawingState operations on the render target. // SaveDrawingState and RestoreDrawingState operations on the render target.
// //
STDMETHOD(CreateDrawingStateBlock)( STDMETHOD(CreateDrawingStateBlock)(
__in_opt CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
__in_opt IDWriteRenderingParams *textRenderingParams, _In_opt_ IDWriteRenderingParams *textRenderingParams,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) PURE; ) PURE;
// //
// Creates a render target which is a source of bitmaps. // Creates a render target which is a source of bitmaps.
// //
STDMETHOD(CreateWicBitmapRenderTarget)( STDMETHOD(CreateWicBitmapRenderTarget)(
__in IWICBitmap *target, _In_ IWICBitmap *target,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
// //
// Creates a render target that appears on the display. // Creates a render target that appears on the display.
// //
STDMETHOD(CreateHwndRenderTarget)( STDMETHOD(CreateHwndRenderTarget)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__in CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie _In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie
s, s,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) PURE; ) PURE;
// //
// Creates a render target that draws to a DXGI Surface. The device that own s the // Creates a render target that draws to a DXGI Surface. The device that own s the
// surface is used for rendering. // surface is used for rendering.
// //
STDMETHOD(CreateDxgiSurfaceRenderTarget)( STDMETHOD(CreateDxgiSurfaceRenderTarget)(
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
// //
// Creates a render target that draws to a GDI device context. // Creates a render target that draws to a GDI device context.
// //
STDMETHOD(CreateDCRenderTarget)( STDMETHOD(CreateDCRenderTarget)(
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1DCRenderTarget **dcRenderTarget _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
) PURE; ) PURE;
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRectangleGeometry( CreateRectangleGeometry(
CONST D2D1_RECT_F &rectangle, CONST D2D1_RECT_F &rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) )
{ {
return CreateRectangleGeometry(&rectangle, rectangleGeometry); return CreateRectangleGeometry(&rectangle, rectangleGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateRoundedRectangleGeometry( CreateRoundedRectangleGeometry(
CONST D2D1_ROUNDED_RECT &roundedRectangle, CONST D2D1_ROUNDED_RECT &roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) )
{ {
return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangl eGeometry); return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangl eGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateEllipseGeometry( CreateEllipseGeometry(
CONST D2D1_ELLIPSE &ellipse, CONST D2D1_ELLIPSE &ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) )
{ {
return CreateEllipseGeometry(&ellipse, ellipseGeometry); return CreateEllipseGeometry(&ellipse, ellipseGeometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateTransformedGeometry( CreateTransformedGeometry(
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
CONST D2D1_MATRIX_3X2_F &transform, CONST D2D1_MATRIX_3X2_F &transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) )
{ {
return CreateTransformedGeometry(sourceGeometry, &transform, transformed Geometry); return CreateTransformedGeometry(sourceGeometry, &transform, transformed Geometry);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateStrokeStyle( CreateStrokeStyle(
CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties, CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties,
__in_ecount(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) )
{ {
return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, st rokeStyle); return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, st rokeStyle);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDrawingStateBlock( CreateDrawingStateBlock(
CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription, CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) )
{ {
return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingSt ateBlock); return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingSt ateBlock);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDrawingStateBlock( CreateDrawingStateBlock(
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) )
{ {
return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock); return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateWicBitmapRenderTarget( CreateWicBitmapRenderTarget(
__in IWICBitmap *target, _In_ IWICBitmap *target,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) )
{ {
return CreateWicBitmapRenderTarget(target, &renderTargetProperties, rend erTarget); return CreateWicBitmapRenderTarget(target, &renderTargetProperties, rend erTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateHwndRenderTarget( CreateHwndRenderTarget(
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties, CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) )
{ {
return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTarget Properties, hwndRenderTarget); return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTarget Properties, hwndRenderTarget);
} }
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
CreateDxgiSurfaceRenderTarget( CreateDxgiSurfaceRenderTarget(
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) )
{ {
return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetPropertie s, renderTarget); return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetPropertie s, renderTarget);
} }
}; // interface ID2D1Factory }; // interface ID2D1Factory
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
EXTERN_C CONST IID IID_ID2D1Resource; EXTERN_C CONST IID IID_ID2D1Resource;
EXTERN_C CONST IID IID_ID2D1Image;
EXTERN_C CONST IID IID_ID2D1Bitmap; EXTERN_C CONST IID IID_ID2D1Bitmap;
EXTERN_C CONST IID IID_ID2D1GradientStopCollection; EXTERN_C CONST IID IID_ID2D1GradientStopCollection;
EXTERN_C CONST IID IID_ID2D1Brush; EXTERN_C CONST IID IID_ID2D1Brush;
EXTERN_C CONST IID IID_ID2D1BitmapBrush; EXTERN_C CONST IID IID_ID2D1BitmapBrush;
EXTERN_C CONST IID IID_ID2D1SolidColorBrush; EXTERN_C CONST IID IID_ID2D1SolidColorBrush;
EXTERN_C CONST IID IID_ID2D1LinearGradientBrush; EXTERN_C CONST IID IID_ID2D1LinearGradientBrush;
EXTERN_C CONST IID IID_ID2D1RadialGradientBrush; EXTERN_C CONST IID IID_ID2D1RadialGradientBrush;
EXTERN_C CONST IID IID_ID2D1StrokeStyle; EXTERN_C CONST IID IID_ID2D1StrokeStyle;
EXTERN_C CONST IID IID_ID2D1Geometry; EXTERN_C CONST IID IID_ID2D1Geometry;
EXTERN_C CONST IID IID_ID2D1RectangleGeometry; EXTERN_C CONST IID IID_ID2D1RectangleGeometry;
skipping to change at line 3679 skipping to change at line 3789
EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink; EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink;
EXTERN_C CONST IID IID_ID2D1GeometrySink; EXTERN_C CONST IID IID_ID2D1GeometrySink;
EXTERN_C CONST IID IID_ID2D1TessellationSink; EXTERN_C CONST IID IID_ID2D1TessellationSink;
EXTERN_C CONST IID IID_ID2D1PathGeometry; EXTERN_C CONST IID IID_ID2D1PathGeometry;
EXTERN_C CONST IID IID_ID2D1Mesh; EXTERN_C CONST IID IID_ID2D1Mesh;
EXTERN_C CONST IID IID_ID2D1Layer; EXTERN_C CONST IID IID_ID2D1Layer;
EXTERN_C CONST IID IID_ID2D1DrawingStateBlock; EXTERN_C CONST IID IID_ID2D1DrawingStateBlock;
EXTERN_C CONST IID IID_ID2D1RenderTarget; EXTERN_C CONST IID IID_ID2D1RenderTarget;
EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget; EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget;
EXTERN_C CONST IID IID_ID2D1HwndRenderTarget; EXTERN_C CONST IID IID_ID2D1HwndRenderTarget;
EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget;
EXTERN_C CONST IID IID_ID2D1DCRenderTarget; EXTERN_C CONST IID IID_ID2D1DCRenderTarget;
EXTERN_C CONST IID IID_ID2D1Factory; EXTERN_C CONST IID IID_ID2D1Factory;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef D2D_USE_C_DEFINITIONS #ifdef D2D_USE_C_DEFINITIONS
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface ID2D1Resource ID2D1Resource; typedef interface ID2D1Resource ID2D1Resource;
typedef struct ID2D1ResourceVtbl typedef struct ID2D1ResourceVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD_(void, GetFactory)( STDMETHOD_(void, GetFactory)(
ID2D1Resource *This, ID2D1Resource *This,
__deref_out ID2D1Factory **factory _Outptr_ ID2D1Factory **factory
) PURE; ) PURE;
} ID2D1ResourceVtbl; } ID2D1ResourceVtbl;
interface ID2D1Resource interface ID2D1Resource
{ {
CONST struct ID2D1ResourceVtbl *lpVtbl; CONST struct ID2D1ResourceVtbl *lpVtbl;
}; };
#define ID2D1Resource_QueryInterface(This, riid, ppv) \ #define ID2D1Resource_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Resource_AddRef(This) \ #define ID2D1Resource_AddRef(This) \
((This)->lpVtbl->Base.AddRef((IUnknown *)This)) ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
#define ID2D1Resource_Release(This) \ #define ID2D1Resource_Release(This) \
((This)->lpVtbl->Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Release((IUnknown *)This))
#define ID2D1Resource_GetFactory(This, factory) \ #define ID2D1Resource_GetFactory(This, factory) \
((This)->lpVtbl->GetFactory(This, factory)) ((This)->lpVtbl->GetFactory(This, factory))
typedef interface ID2D1Image ID2D1Image;
typedef struct ID2D1ImageVtbl
{
ID2D1ResourceVtbl Base;
} ID2D1ImageVtbl;
interface ID2D1Image
{
CONST struct ID2D1ImageVtbl *lpVtbl;
};
#define ID2D1Image_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Image_AddRef(This) \
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
#define ID2D1Image_Release(This) \
((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
#define ID2D1Image_GetFactory(This, factory) \
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
typedef interface ID2D1Bitmap ID2D1Bitmap; typedef interface ID2D1Bitmap ID2D1Bitmap;
typedef struct ID2D1BitmapVtbl typedef struct ID2D1BitmapVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ImageVtbl Base;
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)( STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
ID2D1Bitmap *This ID2D1Bitmap *This
) PURE; ) PURE;
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CopyFromBitmap)( STDMETHOD(CopyFromBitmap)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromRenderTarget)( STDMETHOD(CopyFromRenderTarget)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_POINT_2U *destPoint, _In_opt_ CONST D2D1_POINT_2U *destPoint,
__in ID2D1RenderTarget *renderTarget, _In_ ID2D1RenderTarget *renderTarget,
__in_opt CONST D2D1_RECT_U *srcRect _In_opt_ CONST D2D1_RECT_U *srcRect
) PURE; ) PURE;
STDMETHOD(CopyFromMemory)( STDMETHOD(CopyFromMemory)(
ID2D1Bitmap *This, ID2D1Bitmap *This,
__in_opt CONST D2D1_RECT_U *dstRect, _In_opt_ CONST D2D1_RECT_U *dstRect,
__in CONST void *srcData, _In_ CONST void *srcData,
UINT32 pitch UINT32 pitch
) PURE; ) PURE;
} ID2D1BitmapVtbl; } ID2D1BitmapVtbl;
interface ID2D1Bitmap interface ID2D1Bitmap
{ {
CONST struct ID2D1BitmapVtbl *lpVtbl; CONST struct ID2D1BitmapVtbl *lpVtbl;
}; };
#define ID2D1Bitmap_QueryInterface(This, riid, ppv) \ #define ID2D1Bitmap_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
#define ID2D1Bitmap_AddRef(This) \ #define ID2D1Bitmap_AddRef(This) \
((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
#define ID2D1Bitmap_Release(This) \ #define ID2D1Bitmap_Release(This) \
((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
#define ID2D1Bitmap_GetFactory(This, factory) \ #define ID2D1Bitmap_GetFactory(This, factory) \
((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
#define ID2D1Bitmap_GetSize(This) \ #define ID2D1Bitmap_GetSize(This) \
((This)->lpVtbl->GetSize(This)) ((This)->lpVtbl->GetSize(This))
#define ID2D1Bitmap_GetPixelSize(This) \ #define ID2D1Bitmap_GetPixelSize(This) \
((This)->lpVtbl->GetPixelSize(This)) ((This)->lpVtbl->GetPixelSize(This))
#define ID2D1Bitmap_GetPixelFormat(This) \ #define ID2D1Bitmap_GetPixelFormat(This) \
((This)->lpVtbl->GetPixelFormat(This)) ((This)->lpVtbl->GetPixelFormat(This))
skipping to change at line 3813 skipping to change at line 3962
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(UINT32, GetGradientStopCount)( STDMETHOD_(UINT32, GetGradientStopCount)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStops)( STDMETHOD_(void, GetGradientStops)(
ID2D1GradientStopCollection *This, ID2D1GradientStopCollection *This,
__out_ecount(gradientStopsCount) D2D1_GRADIENT_STOP *gradientStops, _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through G
UINT gradientStopsCount etGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) PURE; ) PURE;
STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)( STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(
ID2D1GradientStopCollection *This ID2D1GradientStopCollection *This
) PURE; ) PURE;
} ID2D1GradientStopCollectionVtbl; } ID2D1GradientStopCollectionVtbl;
skipping to change at line 3869 skipping to change at line 4018
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(void, SetOpacity)( STDMETHOD_(void, SetOpacity)(
ID2D1Brush *This, ID2D1Brush *This,
FLOAT opacity FLOAT opacity
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
ID2D1Brush *This, ID2D1Brush *This,
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetOpacity)( STDMETHOD_(FLOAT, GetOpacity)(
ID2D1Brush *This ID2D1Brush *This
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1Brush *This, ID2D1Brush *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
} ID2D1BrushVtbl; } ID2D1BrushVtbl;
interface ID2D1Brush interface ID2D1Brush
{ {
CONST struct ID2D1BrushVtbl *lpVtbl; CONST struct ID2D1BrushVtbl *lpVtbl;
}; };
#define ID2D1Brush_QueryInterface(This, riid, ppv) \ #define ID2D1Brush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 3935 skipping to change at line 4084
D2D1_EXTEND_MODE extendModeY D2D1_EXTEND_MODE extendModeY
) PURE; ) PURE;
STDMETHOD_(void, SetInterpolationMode)( STDMETHOD_(void, SetInterpolationMode)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
) PURE; ) PURE;
STDMETHOD_(void, SetBitmap)( STDMETHOD_(void, SetBitmap)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
__in ID2D1Bitmap *bitmap _In_opt_ ID2D1Bitmap *bitmap
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)( STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(
ID2D1BitmapBrush *This ID2D1BitmapBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetBitmap)( STDMETHOD_(void, GetBitmap)(
ID2D1BitmapBrush *This, ID2D1BitmapBrush *This,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
} ID2D1BitmapBrushVtbl; } ID2D1BitmapBrushVtbl;
interface ID2D1BitmapBrush interface ID2D1BitmapBrush
{ {
CONST struct ID2D1BitmapBrushVtbl *lpVtbl; CONST struct ID2D1BitmapBrushVtbl *lpVtbl;
}; };
#define ID2D1BitmapBrush_QueryInterface(This, riid, ppv) \ #define ID2D1BitmapBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4018 skipping to change at line 4167
typedef interface ID2D1SolidColorBrush ID2D1SolidColorBrush; typedef interface ID2D1SolidColorBrush ID2D1SolidColorBrush;
typedef struct ID2D1SolidColorBrushVtbl typedef struct ID2D1SolidColorBrushVtbl
{ {
ID2D1BrushVtbl Base; ID2D1BrushVtbl Base;
STDMETHOD_(void, SetColor)( STDMETHOD_(void, SetColor)(
ID2D1SolidColorBrush *This, ID2D1SolidColorBrush *This,
__in CONST D2D1_COLOR_F *color _In_ CONST D2D1_COLOR_F *color
) PURE; ) PURE;
STDMETHOD_(D2D1_COLOR_F, GetColor)( STDMETHOD_(D2D1_COLOR_F, GetColor)(
ID2D1SolidColorBrush *This ID2D1SolidColorBrush *This
) PURE; ) PURE;
} ID2D1SolidColorBrushVtbl; } ID2D1SolidColorBrushVtbl;
interface ID2D1SolidColorBrush interface ID2D1SolidColorBrush
{ {
CONST struct ID2D1SolidColorBrushVtbl *lpVtbl; CONST struct ID2D1SolidColorBrushVtbl *lpVtbl;
skipping to change at line 4088 skipping to change at line 4237
STDMETHOD_(D2D1_POINT_2F, GetStartPoint)( STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(
ID2D1LinearGradientBrush *This ID2D1LinearGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(D2D1_POINT_2F, GetEndPoint)( STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(
ID2D1LinearGradientBrush *This ID2D1LinearGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
ID2D1LinearGradientBrush *This, ID2D1LinearGradientBrush *This,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
} ID2D1LinearGradientBrushVtbl; } ID2D1LinearGradientBrushVtbl;
interface ID2D1LinearGradientBrush interface ID2D1LinearGradientBrush
{ {
CONST struct ID2D1LinearGradientBrushVtbl *lpVtbl; CONST struct ID2D1LinearGradientBrushVtbl *lpVtbl;
}; };
#define ID2D1LinearGradientBrush_QueryInterface(This, riid, ppv) \ #define ID2D1LinearGradientBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4181 skipping to change at line 4330
STDMETHOD_(FLOAT, GetRadiusX)( STDMETHOD_(FLOAT, GetRadiusX)(
ID2D1RadialGradientBrush *This ID2D1RadialGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(FLOAT, GetRadiusY)( STDMETHOD_(FLOAT, GetRadiusY)(
ID2D1RadialGradientBrush *This ID2D1RadialGradientBrush *This
) PURE; ) PURE;
STDMETHOD_(void, GetGradientStopCollection)( STDMETHOD_(void, GetGradientStopCollection)(
ID2D1RadialGradientBrush *This, ID2D1RadialGradientBrush *This,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
} ID2D1RadialGradientBrushVtbl; } ID2D1RadialGradientBrushVtbl;
interface ID2D1RadialGradientBrush interface ID2D1RadialGradientBrush
{ {
CONST struct ID2D1RadialGradientBrushVtbl *lpVtbl; CONST struct ID2D1RadialGradientBrushVtbl *lpVtbl;
}; };
#define ID2D1RadialGradientBrush_QueryInterface(This, riid, ppv) \ #define ID2D1RadialGradientBrush_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4282 skipping to change at line 4431
STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)( STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(
ID2D1StrokeStyle *This ID2D1StrokeStyle *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetDashesCount)( STDMETHOD_(UINT32, GetDashesCount)(
ID2D1StrokeStyle *This ID2D1StrokeStyle *This
) PURE; ) PURE;
STDMETHOD_(void, GetDashes)( STDMETHOD_(void, GetDashes)(
ID2D1StrokeStyle *This, ID2D1StrokeStyle *This,
__out_ecount(dashesCount) FLOAT *dashes, _Out_writes_(dashesCount) FLOAT *dashes,
UINT dashesCount UINT32 dashesCount
) PURE; ) PURE;
} ID2D1StrokeStyleVtbl; } ID2D1StrokeStyleVtbl;
interface ID2D1StrokeStyle interface ID2D1StrokeStyle
{ {
CONST struct ID2D1StrokeStyleVtbl *lpVtbl; CONST struct ID2D1StrokeStyleVtbl *lpVtbl;
}; };
#define ID2D1StrokeStyle_QueryInterface(This, riid, ppv) \ #define ID2D1StrokeStyle_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4340 skipping to change at line 4489
typedef interface ID2D1Geometry ID2D1Geometry; typedef interface ID2D1Geometry ID2D1Geometry;
typedef struct ID2D1GeometryVtbl typedef struct ID2D1GeometryVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(GetBounds)( STDMETHOD(GetBounds)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) PURE; ) PURE;
STDMETHOD(GetWidenedBounds)( STDMETHOD(GetWidenedBounds)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_RECT_F *bounds _Out_ D2D1_RECT_F *bounds
) PURE; ) PURE;
STDMETHOD(StrokeContainsPoint)( STDMETHOD(StrokeContainsPoint)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_POINT_2F point, D2D1_POINT_2F point,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) PURE; ) PURE;
STDMETHOD(FillContainsPoint)( STDMETHOD(FillContainsPoint)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_POINT_2F point, D2D1_POINT_2F point,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out BOOL *contains _Out_ BOOL *contains
) PURE; ) PURE;
STDMETHOD(CompareWithGeometry)( STDMETHOD(CompareWithGeometry)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out D2D1_GEOMETRY_RELATION *relation _Out_ D2D1_GEOMETRY_RELATION *relation
) PURE; ) PURE;
STDMETHOD(Simplify)( STDMETHOD(Simplify)(
ID2D1Geometry *This, ID2D1Geometry *This,
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(Tessellate)( STDMETHOD(Tessellate)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1TessellationSink *tessellationSink _In_ ID2D1TessellationSink *tessellationSink
) PURE; ) PURE;
STDMETHOD(CombineWithGeometry)( STDMETHOD(CombineWithGeometry)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in ID2D1Geometry *inputGeometry, _In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode, D2D1_COMBINE_MODE combineMode,
__in_opt CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(Outline)( STDMETHOD(Outline)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(ComputeArea)( STDMETHOD(ComputeArea)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *area _Out_ FLOAT *area
) PURE; ) PURE;
STDMETHOD(ComputeLength)( STDMETHOD(ComputeLength)(
ID2D1Geometry *This, ID2D1Geometry *This,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out FLOAT *length _Out_ FLOAT *length
) PURE; ) PURE;
STDMETHOD(ComputePointAtLength)( STDMETHOD(ComputePointAtLength)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT length, FLOAT length,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__out_opt D2D1_POINT_2F *point, _Out_opt_ D2D1_POINT_2F *point,
__out_opt D2D1_POINT_2F *unitTangentVector _Out_opt_ D2D1_POINT_2F *unitTangentVector
) PURE; ) PURE;
STDMETHOD(Widen)( STDMETHOD(Widen)(
ID2D1Geometry *This, ID2D1Geometry *This,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle, _In_opt_ ID2D1StrokeStyle *strokeStyle,
__in_opt CONST D2D1_MATRIX_3X2_F *worldTransform, _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance, FLOAT flatteningTolerance,
__in ID2D1SimplifiedGeometrySink *geometrySink _In_ ID2D1SimplifiedGeometrySink *geometrySink
) PURE; ) PURE;
} ID2D1GeometryVtbl; } ID2D1GeometryVtbl;
interface ID2D1Geometry interface ID2D1Geometry
{ {
CONST struct ID2D1GeometryVtbl *lpVtbl; CONST struct ID2D1GeometryVtbl *lpVtbl;
}; };
#define ID2D1Geometry_QueryInterface(This, riid, ppv) \ #define ID2D1Geometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4508 skipping to change at line 4657
typedef interface ID2D1RectangleGeometry ID2D1RectangleGeometry; typedef interface ID2D1RectangleGeometry ID2D1RectangleGeometry;
typedef struct ID2D1RectangleGeometryVtbl typedef struct ID2D1RectangleGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetRect)( STDMETHOD_(void, GetRect)(
ID2D1RectangleGeometry *This, ID2D1RectangleGeometry *This,
__out D2D1_RECT_F *rect _Out_ D2D1_RECT_F *rect
) PURE; ) PURE;
} ID2D1RectangleGeometryVtbl; } ID2D1RectangleGeometryVtbl;
interface ID2D1RectangleGeometry interface ID2D1RectangleGeometry
{ {
CONST struct ID2D1RectangleGeometryVtbl *lpVtbl; CONST struct ID2D1RectangleGeometryVtbl *lpVtbl;
}; };
#define ID2D1RectangleGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1RectangleGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4580 skipping to change at line 4729
typedef interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry; typedef interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry;
typedef struct ID2D1RoundedRectangleGeometryVtbl typedef struct ID2D1RoundedRectangleGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetRoundedRect)( STDMETHOD_(void, GetRoundedRect)(
ID2D1RoundedRectangleGeometry *This, ID2D1RoundedRectangleGeometry *This,
__out D2D1_ROUNDED_RECT *roundedRect _Out_ D2D1_ROUNDED_RECT *roundedRect
) PURE; ) PURE;
} ID2D1RoundedRectangleGeometryVtbl; } ID2D1RoundedRectangleGeometryVtbl;
interface ID2D1RoundedRectangleGeometry interface ID2D1RoundedRectangleGeometry
{ {
CONST struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl; CONST struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl;
}; };
#define ID2D1RoundedRectangleGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1RoundedRectangleGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4652 skipping to change at line 4801
typedef interface ID2D1EllipseGeometry ID2D1EllipseGeometry; typedef interface ID2D1EllipseGeometry ID2D1EllipseGeometry;
typedef struct ID2D1EllipseGeometryVtbl typedef struct ID2D1EllipseGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetEllipse)( STDMETHOD_(void, GetEllipse)(
ID2D1EllipseGeometry *This, ID2D1EllipseGeometry *This,
__out D2D1_ELLIPSE *ellipse _Out_ D2D1_ELLIPSE *ellipse
) PURE; ) PURE;
} ID2D1EllipseGeometryVtbl; } ID2D1EllipseGeometryVtbl;
interface ID2D1EllipseGeometry interface ID2D1EllipseGeometry
{ {
CONST struct ID2D1EllipseGeometryVtbl *lpVtbl; CONST struct ID2D1EllipseGeometryVtbl *lpVtbl;
}; };
#define ID2D1EllipseGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1EllipseGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4732 skipping to change at line 4881
STDMETHOD_(D2D1_FILL_MODE, GetFillMode)( STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(
ID2D1GeometryGroup *This ID2D1GeometryGroup *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetSourceGeometryCount)( STDMETHOD_(UINT32, GetSourceGeometryCount)(
ID2D1GeometryGroup *This ID2D1GeometryGroup *This
) PURE; ) PURE;
STDMETHOD_(void, GetSourceGeometries)( STDMETHOD_(void, GetSourceGeometries)(
ID2D1GeometryGroup *This, ID2D1GeometryGroup *This,
__out_ecount(geometriesCount) ID2D1Geometry **geometries, _Out_writes_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount UINT32 geometriesCount
) PURE; ) PURE;
} ID2D1GeometryGroupVtbl; } ID2D1GeometryGroupVtbl;
interface ID2D1GeometryGroup interface ID2D1GeometryGroup
{ {
CONST struct ID2D1GeometryGroupVtbl *lpVtbl; CONST struct ID2D1GeometryGroupVtbl *lpVtbl;
}; };
#define ID2D1GeometryGroup_QueryInterface(This, riid, ppv) \ #define ID2D1GeometryGroup_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4811 skipping to change at line 4960
typedef interface ID2D1TransformedGeometry ID2D1TransformedGeometry; typedef interface ID2D1TransformedGeometry ID2D1TransformedGeometry;
typedef struct ID2D1TransformedGeometryVtbl typedef struct ID2D1TransformedGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD_(void, GetSourceGeometry)( STDMETHOD_(void, GetSourceGeometry)(
ID2D1TransformedGeometry *This, ID2D1TransformedGeometry *This,
__deref_out ID2D1Geometry **sourceGeometry _Outptr_ ID2D1Geometry **sourceGeometry
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1TransformedGeometry *This, ID2D1TransformedGeometry *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
} ID2D1TransformedGeometryVtbl; } ID2D1TransformedGeometryVtbl;
interface ID2D1TransformedGeometry interface ID2D1TransformedGeometry
{ {
CONST struct ID2D1TransformedGeometryVtbl *lpVtbl; CONST struct ID2D1TransformedGeometryVtbl *lpVtbl;
}; };
#define ID2D1TransformedGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1TransformedGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 4907 skipping to change at line 5056
) PURE; ) PURE;
STDMETHOD_(void, BeginFigure)( STDMETHOD_(void, BeginFigure)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
D2D1_POINT_2F startPoint, D2D1_POINT_2F startPoint,
D2D1_FIGURE_BEGIN figureBegin D2D1_FIGURE_BEGIN figureBegin
) PURE; ) PURE;
STDMETHOD_(void, AddLines)( STDMETHOD_(void, AddLines)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
__in_ecount(pointsCount) CONST D2D1_POINT_2F *points, _In_reads_(pointsCount) CONST D2D1_POINT_2F *points,
UINT pointsCount UINT32 pointsCount
) PURE; ) PURE;
STDMETHOD_(void, AddBeziers)( STDMETHOD_(void, AddBeziers)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
__in_ecount(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, EndFigure)( STDMETHOD_(void, EndFigure)(
ID2D1SimplifiedGeometrySink *This, ID2D1SimplifiedGeometrySink *This,
D2D1_FIGURE_END figureEnd D2D1_FIGURE_END figureEnd
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
ID2D1SimplifiedGeometrySink *This ID2D1SimplifiedGeometrySink *This
) PURE; ) PURE;
skipping to change at line 4976 skipping to change at line 5125
ID2D1SimplifiedGeometrySinkVtbl Base; ID2D1SimplifiedGeometrySinkVtbl Base;
STDMETHOD_(void, AddLine)( STDMETHOD_(void, AddLine)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
D2D1_POINT_2F point D2D1_POINT_2F point
) PURE; ) PURE;
STDMETHOD_(void, AddBezier)( STDMETHOD_(void, AddBezier)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_BEZIER_SEGMENT *bezier _In_ CONST D2D1_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBezier)( STDMETHOD_(void, AddQuadraticBezier)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
) PURE; ) PURE;
STDMETHOD_(void, AddQuadraticBeziers)( STDMETHOD_(void, AddQuadraticBeziers)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in_ecount(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
UINT beziersCount UINT32 beziersCount
) PURE; ) PURE;
STDMETHOD_(void, AddArc)( STDMETHOD_(void, AddArc)(
ID2D1GeometrySink *This, ID2D1GeometrySink *This,
__in CONST D2D1_ARC_SEGMENT *arc _In_ CONST D2D1_ARC_SEGMENT *arc
) PURE; ) PURE;
} ID2D1GeometrySinkVtbl; } ID2D1GeometrySinkVtbl;
interface ID2D1GeometrySink interface ID2D1GeometrySink
{ {
CONST struct ID2D1GeometrySinkVtbl *lpVtbl; CONST struct ID2D1GeometrySinkVtbl *lpVtbl;
}; };
#define ID2D1GeometrySink_QueryInterface(This, riid, ppv) \ #define ID2D1GeometrySink_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5055 skipping to change at line 5204
typedef interface ID2D1TessellationSink ID2D1TessellationSink; typedef interface ID2D1TessellationSink ID2D1TessellationSink;
typedef struct ID2D1TessellationSinkVtbl typedef struct ID2D1TessellationSinkVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD_(void, AddTriangles)( STDMETHOD_(void, AddTriangles)(
ID2D1TessellationSink *This, ID2D1TessellationSink *This,
__in_ecount(trianglesCount) CONST D2D1_TRIANGLE *triangles, _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles,
UINT trianglesCount UINT32 trianglesCount
) PURE; ) PURE;
STDMETHOD(Close)( STDMETHOD(Close)(
ID2D1TessellationSink *This ID2D1TessellationSink *This
) PURE; ) PURE;
} ID2D1TessellationSinkVtbl; } ID2D1TessellationSinkVtbl;
interface ID2D1TessellationSink interface ID2D1TessellationSink
{ {
CONST struct ID2D1TessellationSinkVtbl *lpVtbl; CONST struct ID2D1TessellationSinkVtbl *lpVtbl;
skipping to change at line 5093 skipping to change at line 5242
typedef interface ID2D1PathGeometry ID2D1PathGeometry; typedef interface ID2D1PathGeometry ID2D1PathGeometry;
typedef struct ID2D1PathGeometryVtbl typedef struct ID2D1PathGeometryVtbl
{ {
ID2D1GeometryVtbl Base; ID2D1GeometryVtbl Base;
STDMETHOD(Open)( STDMETHOD(Open)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__deref_out ID2D1GeometrySink **geometrySink _Outptr_ ID2D1GeometrySink **geometrySink
) PURE; ) PURE;
STDMETHOD(Stream)( STDMETHOD(Stream)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__in ID2D1GeometrySink *geometrySink _In_ ID2D1GeometrySink *geometrySink
) PURE; ) PURE;
STDMETHOD(GetSegmentCount)( STDMETHOD(GetSegmentCount)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__out UINT32 *count _Out_ UINT32 *count
) PURE; ) PURE;
STDMETHOD(GetFigureCount)( STDMETHOD(GetFigureCount)(
ID2D1PathGeometry *This, ID2D1PathGeometry *This,
__out UINT32 *count _Out_ UINT32 *count
) PURE; ) PURE;
} ID2D1PathGeometryVtbl; } ID2D1PathGeometryVtbl;
interface ID2D1PathGeometry interface ID2D1PathGeometry
{ {
CONST struct ID2D1PathGeometryVtbl *lpVtbl; CONST struct ID2D1PathGeometryVtbl *lpVtbl;
}; };
#define ID2D1PathGeometry_QueryInterface(This, riid, ppv) \ #define ID2D1PathGeometry_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5189 skipping to change at line 5338
typedef interface ID2D1Mesh ID2D1Mesh; typedef interface ID2D1Mesh ID2D1Mesh;
typedef struct ID2D1MeshVtbl typedef struct ID2D1MeshVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(Open)( STDMETHOD(Open)(
ID2D1Mesh *This, ID2D1Mesh *This,
__deref_out ID2D1TessellationSink **tessellationSink _Outptr_ ID2D1TessellationSink **tessellationSink
) PURE; ) PURE;
} ID2D1MeshVtbl; } ID2D1MeshVtbl;
interface ID2D1Mesh interface ID2D1Mesh
{ {
CONST struct ID2D1MeshVtbl *lpVtbl; CONST struct ID2D1MeshVtbl *lpVtbl;
}; };
#define ID2D1Mesh_QueryInterface(This, riid, ppv) \ #define ID2D1Mesh_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5254 skipping to change at line 5403
typedef interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock; typedef interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock;
typedef struct ID2D1DrawingStateBlockVtbl typedef struct ID2D1DrawingStateBlockVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD_(void, GetDescription)( STDMETHOD_(void, GetDescription)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__out D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
STDMETHOD_(void, SetDescription)( STDMETHOD_(void, SetDescription)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__in CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE; ) PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__in_opt IDWriteRenderingParams *textRenderingParams _In_opt_ IDWriteRenderingParams *textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
ID2D1DrawingStateBlock *This, ID2D1DrawingStateBlock *This,
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) PURE; ) PURE;
} ID2D1DrawingStateBlockVtbl; } ID2D1DrawingStateBlockVtbl;
interface ID2D1DrawingStateBlock interface ID2D1DrawingStateBlock
{ {
CONST struct ID2D1DrawingStateBlockVtbl *lpVtbl; CONST struct ID2D1DrawingStateBlockVtbl *lpVtbl;
}; };
#define ID2D1DrawingStateBlock_QueryInterface(This, riid, ppv) \ #define ID2D1DrawingStateBlock_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5312 skipping to change at line 5461
typedef interface ID2D1RenderTarget ID2D1RenderTarget; typedef interface ID2D1RenderTarget ID2D1RenderTarget;
typedef struct ID2D1RenderTargetVtbl typedef struct ID2D1RenderTargetVtbl
{ {
ID2D1ResourceVtbl Base; ID2D1ResourceVtbl Base;
STDMETHOD(CreateBitmap)( STDMETHOD(CreateBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_SIZE_U size, D2D1_SIZE_U size,
__in_opt CONST void *srcData, _In_opt_ CONST void *srcData,
UINT32 pitch, UINT32 pitch,
__in CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateBitmapFromWicBitmap)( STDMETHOD(CreateBitmapFromWicBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in IWICBitmapSource *wicBitmapSource, _In_ IWICBitmapSource *wicBitmapSource,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateSharedBitmap)( STDMETHOD(CreateSharedBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in REFIID riid, _In_ REFIID riid,
__inout void *data, _Inout_ void *data,
__in_opt CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
STDMETHOD(CreateBitmapBrush)( STDMETHOD(CreateBitmapBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *bitmap, _In_opt_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1BitmapBrush **bitmapBrush _Outptr_ ID2D1BitmapBrush **bitmapBrush
) PURE; ) PURE;
STDMETHOD(CreateSolidColorBrush)( STDMETHOD(CreateSolidColorBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_COLOR_F *color, _In_ CONST D2D1_COLOR_F *color,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__deref_out ID2D1SolidColorBrush **solidColorBrush _Outptr_ ID2D1SolidColorBrush **solidColorBrush
) PURE; ) PURE;
STDMETHOD(CreateGradientStopCollection)( STDMETHOD(CreateGradientStopCollection)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_ecount(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
__range(>=,1) UINT gradientStopsCount, _In_range_(>=,1) UINT32 gradientStopsCount,
D2D1_GAMMA colorInterpolationGamma, D2D1_GAMMA colorInterpolationGamma,
D2D1_EXTEND_MODE extendMode, D2D1_EXTEND_MODE extendMode,
__deref_out ID2D1GradientStopCollection **gradientStopCollection _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE; ) PURE;
STDMETHOD(CreateLinearGradientBrush)( STDMETHOD(CreateLinearGradientBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1LinearGradientBrush **linearGradientBrush _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateRadialGradientBrush)( STDMETHOD(CreateRadialGradientBrush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro _In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushPro
perties, perties,
__in_opt CONST D2D1_BRUSH_PROPERTIES *brushProperties, _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
__in ID2D1GradientStopCollection *gradientStopCollection, _In_ ID2D1GradientStopCollection *gradientStopCollection,
__deref_out ID2D1RadialGradientBrush **radialGradientBrush _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) PURE; ) PURE;
STDMETHOD(CreateCompatibleRenderTarget)( STDMETHOD(CreateCompatibleRenderTarget)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_SIZE_F *desiredSize, _In_opt_ CONST D2D1_SIZE_F *desiredSize,
__in_opt CONST D2D1_SIZE_U *desiredPixelSize, _In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
__in_opt CONST D2D1_PIXEL_FORMAT *desiredFormat, _In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
__deref_out ID2D1BitmapRenderTarget **bitmapRenderTarget _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) PURE; ) PURE;
STDMETHOD(CreateLayer)( STDMETHOD(CreateLayer)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_SIZE_F *size, _In_opt_ CONST D2D1_SIZE_F *size,
__deref_out ID2D1Layer **layer _Outptr_ ID2D1Layer **layer
) PURE; ) PURE;
STDMETHOD(CreateMesh)( STDMETHOD(CreateMesh)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__deref_out ID2D1Mesh **mesh _Outptr_ ID2D1Mesh **mesh
) PURE; ) PURE;
STDMETHOD_(void, DrawLine)( STDMETHOD_(void, DrawLine)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F point0, D2D1_POINT_2F point0,
D2D1_POINT_2F point1, D2D1_POINT_2F point1,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, DrawRectangle)( STDMETHOD_(void, DrawRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillRectangle)( STDMETHOD_(void, FillRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *rect, _In_ CONST D2D1_RECT_F *rect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawRoundedRectangle)( STDMETHOD_(void, DrawRoundedRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillRoundedRectangle)( STDMETHOD_(void, FillRoundedRectangle)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ROUNDED_RECT *roundedRect, _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawEllipse)( STDMETHOD_(void, DrawEllipse)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillEllipse)( STDMETHOD_(void, FillEllipse)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, DrawGeometry)( STDMETHOD_(void, DrawGeometry)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
FLOAT strokeWidth, FLOAT strokeWidth,
__in_opt ID2D1StrokeStyle *strokeStyle _In_opt_ ID2D1StrokeStyle *strokeStyle
) PURE; ) PURE;
STDMETHOD_(void, FillGeometry)( STDMETHOD_(void, FillGeometry)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Geometry *geometry, _In_ ID2D1Geometry *geometry,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
__in_opt ID2D1Brush *opacityBrush _In_opt_ ID2D1Brush *opacityBrush
) PURE; ) PURE;
STDMETHOD_(void, FillMesh)( STDMETHOD_(void, FillMesh)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Mesh *mesh, _In_ ID2D1Mesh *mesh,
__in ID2D1Brush *brush _In_ ID2D1Brush *brush
) PURE; ) PURE;
STDMETHOD_(void, FillOpacityMask)( STDMETHOD_(void, FillOpacityMask)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *opacityMask, _In_ ID2D1Bitmap *opacityMask,
__in ID2D1Brush *brush, _In_ ID2D1Brush *brush,
D2D1_OPACITY_MASK_CONTENT content, D2D1_OPACITY_MASK_CONTENT content,
__in_opt CONST D2D1_RECT_F *destinationRectangle, _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
__in_opt CONST D2D1_RECT_F *sourceRectangle _In_opt_ CONST D2D1_RECT_F *sourceRectangle
) PURE; ) PURE;
STDMETHOD_(void, DrawBitmap)( STDMETHOD_(void, DrawBitmap)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1Bitmap *bitmap, _In_ ID2D1Bitmap *bitmap,
__in_opt CONST D2D1_RECT_F *destinationRectangle, _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
FLOAT opacity, FLOAT opacity,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
__in_opt CONST D2D1_RECT_F *sourceRectangle _In_opt_ CONST D2D1_RECT_F *sourceRectangle
) PURE; ) PURE;
STDMETHOD_(void, DrawText)( STDMETHOD_(void, DrawText)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_ecount(stringLength) CONST WCHAR *string, _In_reads_(stringLength) CONST WCHAR *string,
UINT stringLength, UINT32 stringLength,
__in IDWriteTextFormat *textFormat, _In_ IDWriteTextFormat *textFormat,
__in CONST D2D1_RECT_F *layoutRect, _In_ CONST D2D1_RECT_F *layoutRect,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options, D2D1_DRAW_TEXT_OPTIONS options,
DWRITE_MEASURING_MODE measuringMode DWRITE_MEASURING_MODE measuringMode
) PURE; ) PURE;
STDMETHOD_(void, DrawTextLayout)( STDMETHOD_(void, DrawTextLayout)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F origin, D2D1_POINT_2F origin,
__in IDWriteTextLayout *textLayout, _In_ IDWriteTextLayout *textLayout,
__in ID2D1Brush *defaultForegroundBrush, _In_ ID2D1Brush *defaultForegroundBrush,
D2D1_DRAW_TEXT_OPTIONS options D2D1_DRAW_TEXT_OPTIONS options
) PURE; ) PURE;
STDMETHOD_(void, DrawGlyphRun)( STDMETHOD_(void, DrawGlyphRun)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_POINT_2F baselineOrigin, D2D1_POINT_2F baselineOrigin,
__in CONST DWRITE_GLYPH_RUN *glyphRun, _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
__in ID2D1Brush *foregroundBrush, _In_ ID2D1Brush *foregroundBrush,
DWRITE_MEASURING_MODE measuringMode DWRITE_MEASURING_MODE measuringMode
) PURE; ) PURE;
STDMETHOD_(void, SetTransform)( STDMETHOD_(void, SetTransform)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_MATRIX_3X2_F *transform _In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, GetTransform)( STDMETHOD_(void, GetTransform)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out D2D1_MATRIX_3X2_F *transform _Out_ D2D1_MATRIX_3X2_F *transform
) PURE; ) PURE;
STDMETHOD_(void, SetAntialiasMode)( STDMETHOD_(void, SetAntialiasMode)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)( STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
skipping to change at line 5540 skipping to change at line 5689
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
) PURE; ) PURE;
STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)( STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, SetTextRenderingParams)( STDMETHOD_(void, SetTextRenderingParams)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt IDWriteRenderingParams *textRenderingParams _In_opt_ IDWriteRenderingParams *textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, GetTextRenderingParams)( STDMETHOD_(void, GetTextRenderingParams)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__deref_out_opt IDWriteRenderingParams **textRenderingParams _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) PURE; ) PURE;
STDMETHOD_(void, SetTags)( STDMETHOD_(void, SetTags)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
D2D1_TAG tag1, D2D1_TAG tag1,
D2D1_TAG tag2 D2D1_TAG tag2
) PURE; ) PURE;
STDMETHOD_(void, GetTags)( STDMETHOD_(void, GetTags)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(void, PushLayer)( STDMETHOD_(void, PushLayer)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_LAYER_PARAMETERS *layerParameters, _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
__in ID2D1Layer *layer _In_opt_ ID2D1Layer *layer
) PURE; ) PURE;
STDMETHOD_(void, PopLayer)( STDMETHOD_(void, PopLayer)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD(Flush)( STDMETHOD(Flush)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(void, SaveDrawingState)( STDMETHOD_(void, SaveDrawingState)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__inout ID2D1DrawingStateBlock *drawingStateBlock _Inout_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
STDMETHOD_(void, RestoreDrawingState)( STDMETHOD_(void, RestoreDrawingState)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in ID2D1DrawingStateBlock *drawingStateBlock _In_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE; ) PURE;
STDMETHOD_(void, PushAxisAlignedClip)( STDMETHOD_(void, PushAxisAlignedClip)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RECT_F *clipRect, _In_ CONST D2D1_RECT_F *clipRect,
D2D1_ANTIALIAS_MODE antialiasMode D2D1_ANTIALIAS_MODE antialiasMode
) PURE; ) PURE;
STDMETHOD_(void, PopAxisAlignedClip)( STDMETHOD_(void, PopAxisAlignedClip)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, Clear)( STDMETHOD_(void, Clear)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in_opt CONST D2D1_COLOR_F *clearColor _In_opt_ CONST D2D1_COLOR_F *clearColor
) PURE; ) PURE;
STDMETHOD_(void, BeginDraw)( STDMETHOD_(void, BeginDraw)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD(EndDraw)( STDMETHOD(EndDraw)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out_opt D2D1_TAG *tag1, _Out_opt_ D2D1_TAG *tag1,
__out_opt D2D1_TAG *tag2 _Out_opt_ D2D1_TAG *tag2
) PURE; ) PURE;
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(void, SetDpi)( STDMETHOD_(void, SetDpi)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
FLOAT dpiX, FLOAT dpiX,
FLOAT dpiY FLOAT dpiY
) PURE; ) PURE;
STDMETHOD_(void, GetDpi)( STDMETHOD_(void, GetDpi)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_F, GetSize)( STDMETHOD_(D2D1_SIZE_F, GetSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)( STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(UINT32, GetMaximumBitmapSize)( STDMETHOD_(UINT32, GetMaximumBitmapSize)(
ID2D1RenderTarget *This ID2D1RenderTarget *This
) PURE; ) PURE;
STDMETHOD_(BOOL, IsSupported)( STDMETHOD_(BOOL, IsSupported)(
ID2D1RenderTarget *This, ID2D1RenderTarget *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
) PURE; ) PURE;
} ID2D1RenderTargetVtbl; } ID2D1RenderTargetVtbl;
interface ID2D1RenderTarget interface ID2D1RenderTarget
{ {
CONST struct ID2D1RenderTargetVtbl *lpVtbl; CONST struct ID2D1RenderTargetVtbl *lpVtbl;
}; };
#define ID2D1RenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1RenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 5830 skipping to change at line 5979
typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget; typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget;
typedef struct ID2D1BitmapRenderTargetVtbl typedef struct ID2D1BitmapRenderTargetVtbl
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD(GetBitmap)( STDMETHOD(GetBitmap)(
ID2D1BitmapRenderTarget *This, ID2D1BitmapRenderTarget *This,
__deref_out ID2D1Bitmap **bitmap _Outptr_ ID2D1Bitmap **bitmap
) PURE; ) PURE;
} ID2D1BitmapRenderTargetVtbl; } ID2D1BitmapRenderTargetVtbl;
interface ID2D1BitmapRenderTarget interface ID2D1BitmapRenderTarget
{ {
CONST struct ID2D1BitmapRenderTargetVtbl *lpVtbl; CONST struct ID2D1BitmapRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1BitmapRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1BitmapRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6026 skipping to change at line 6175
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)( STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
ID2D1HwndRenderTarget *This ID2D1HwndRenderTarget *This
) PURE; ) PURE;
STDMETHOD(Resize)( STDMETHOD(Resize)(
ID2D1HwndRenderTarget *This, ID2D1HwndRenderTarget *This,
__in CONST D2D1_SIZE_U *pixelSize _In_ CONST D2D1_SIZE_U *pixelSize
) PURE; ) PURE;
STDMETHOD_(HWND, GetHwnd)( STDMETHOD_(HWND, GetHwnd)(
ID2D1HwndRenderTarget *This ID2D1HwndRenderTarget *This
) PURE; ) PURE;
} ID2D1HwndRenderTargetVtbl; } ID2D1HwndRenderTargetVtbl;
interface ID2D1HwndRenderTarget interface ID2D1HwndRenderTarget
{ {
CONST struct ID2D1HwndRenderTargetVtbl *lpVtbl; CONST struct ID2D1HwndRenderTargetVtbl *lpVtbl;
skipping to change at line 6219 skipping to change at line 6368
#define ID2D1HwndRenderTarget_CheckWindowState(This) \ #define ID2D1HwndRenderTarget_CheckWindowState(This) \
((This)->lpVtbl->CheckWindowState(This)) ((This)->lpVtbl->CheckWindowState(This))
#define ID2D1HwndRenderTarget_Resize(This, pixelSize) \ #define ID2D1HwndRenderTarget_Resize(This, pixelSize) \
((This)->lpVtbl->Resize(This, pixelSize)) ((This)->lpVtbl->Resize(This, pixelSize))
#define ID2D1HwndRenderTarget_GetHwnd(This) \ #define ID2D1HwndRenderTarget_GetHwnd(This) \
((This)->lpVtbl->GetHwnd(This)) ((This)->lpVtbl->GetHwnd(This))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget; typedef interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget;
typedef struct ID2D1GdiInteropRenderTargetVtbl typedef struct ID2D1GdiInteropRenderTargetVtbl
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD(GetDC)( STDMETHOD(GetDC)(
ID2D1GdiInteropRenderTarget *This, ID2D1GdiInteropRenderTarget *This,
D2D1_DC_INITIALIZE_MODE mode, D2D1_DC_INITIALIZE_MODE mode,
__out HDC *hdc _Out_ HDC *hdc
) PURE; ) PURE;
STDMETHOD(ReleaseDC)( STDMETHOD(ReleaseDC)(
ID2D1GdiInteropRenderTarget *This, ID2D1GdiInteropRenderTarget *This,
__in_opt CONST RECT *update _In_opt_ CONST RECT *update
) PURE; ) PURE;
} ID2D1GdiInteropRenderTargetVtbl; } ID2D1GdiInteropRenderTargetVtbl;
interface ID2D1GdiInteropRenderTarget interface ID2D1GdiInteropRenderTarget
{ {
CONST struct ID2D1GdiInteropRenderTargetVtbl *lpVtbl; CONST struct ID2D1GdiInteropRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1GdiInteropRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1GdiInteropRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6258 skipping to change at line 6413
#define ID2D1GdiInteropRenderTarget_Release(This) \ #define ID2D1GdiInteropRenderTarget_Release(This) \
((This)->lpVtbl->Base.Release((IUnknown *)This)) ((This)->lpVtbl->Base.Release((IUnknown *)This))
#define ID2D1GdiInteropRenderTarget_GetDC(This, mode, hdc) \ #define ID2D1GdiInteropRenderTarget_GetDC(This, mode, hdc) \
((This)->lpVtbl->GetDC(This, mode, hdc)) ((This)->lpVtbl->GetDC(This, mode, hdc))
#define ID2D1GdiInteropRenderTarget_ReleaseDC(This, update) \ #define ID2D1GdiInteropRenderTarget_ReleaseDC(This, update) \
((This)->lpVtbl->ReleaseDC(This, update)) ((This)->lpVtbl->ReleaseDC(This, update))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface ID2D1DCRenderTarget ID2D1DCRenderTarget; typedef interface ID2D1DCRenderTarget ID2D1DCRenderTarget;
typedef struct ID2D1DCRenderTargetVtbl typedef struct ID2D1DCRenderTargetVtbl
{ {
ID2D1RenderTargetVtbl Base; ID2D1RenderTargetVtbl Base;
STDMETHOD(BindDC)( STDMETHOD(BindDC)(
ID2D1DCRenderTarget *This, ID2D1DCRenderTarget *This,
__in CONST HDC hDC, _In_ CONST HDC hDC,
__in CONST RECT *pSubRect _In_ CONST RECT *pSubRect
) PURE; ) PURE;
} ID2D1DCRenderTargetVtbl; } ID2D1DCRenderTargetVtbl;
interface ID2D1DCRenderTarget interface ID2D1DCRenderTarget
{ {
CONST struct ID2D1DCRenderTargetVtbl *lpVtbl; CONST struct ID2D1DCRenderTargetVtbl *lpVtbl;
}; };
#define ID2D1DCRenderTarget_QueryInterface(This, riid, ppv) \ #define ID2D1DCRenderTarget_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6464 skipping to change at line 6625
{ {
IUnknownVtbl Base; IUnknownVtbl Base;
STDMETHOD(ReloadSystemMetrics)( STDMETHOD(ReloadSystemMetrics)(
ID2D1Factory *This ID2D1Factory *This
) PURE; ) PURE;
STDMETHOD_(void, GetDesktopDpi)( STDMETHOD_(void, GetDesktopDpi)(
ID2D1Factory *This, ID2D1Factory *This,
__out FLOAT *dpiX, _Out_ FLOAT *dpiX,
__out FLOAT *dpiY _Out_ FLOAT *dpiY
) PURE; ) PURE;
STDMETHOD(CreateRectangleGeometry)( STDMETHOD(CreateRectangleGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RECT_F *rectangle, _In_ CONST D2D1_RECT_F *rectangle,
__deref_out ID2D1RectangleGeometry **rectangleGeometry _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateRoundedRectangleGeometry)( STDMETHOD(CreateRoundedRectangleGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_ROUNDED_RECT *roundedRectangle, _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
__deref_out ID2D1RoundedRectangleGeometry **roundedRectangleGeometry _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) PURE; ) PURE;
STDMETHOD(CreateEllipseGeometry)( STDMETHOD(CreateEllipseGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_ELLIPSE *ellipse, _In_ CONST D2D1_ELLIPSE *ellipse,
__deref_out ID2D1EllipseGeometry **ellipseGeometry _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) PURE; ) PURE;
STDMETHOD(CreateGeometryGroup)( STDMETHOD(CreateGeometryGroup)(
ID2D1Factory *This, ID2D1Factory *This,
D2D1_FILL_MODE fillMode, D2D1_FILL_MODE fillMode,
__in_ecount(geometriesCount) ID2D1Geometry **geometries, _In_reads_(geometriesCount) ID2D1Geometry **geometries,
UINT geometriesCount, UINT32 geometriesCount,
__deref_out ID2D1GeometryGroup **geometryGroup _Outptr_ ID2D1GeometryGroup **geometryGroup
) PURE; ) PURE;
STDMETHOD(CreateTransformedGeometry)( STDMETHOD(CreateTransformedGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__in ID2D1Geometry *sourceGeometry, _In_ ID2D1Geometry *sourceGeometry,
__in CONST D2D1_MATRIX_3X2_F *transform, _In_ CONST D2D1_MATRIX_3X2_F *transform,
__deref_out ID2D1TransformedGeometry **transformedGeometry _Outptr_ ID2D1TransformedGeometry **transformedGeometry
) PURE; ) PURE;
STDMETHOD(CreatePathGeometry)( STDMETHOD(CreatePathGeometry)(
ID2D1Factory *This, ID2D1Factory *This,
__deref_out ID2D1PathGeometry **pathGeometry _Outptr_ ID2D1PathGeometry **pathGeometry
) PURE; ) PURE;
STDMETHOD(CreateStrokeStyle)( STDMETHOD(CreateStrokeStyle)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, _In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
__in_ecount_opt(dashesCount) CONST FLOAT *dashes, _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT dashesCount, UINT32 dashesCount,
__deref_out ID2D1StrokeStyle **strokeStyle _Outptr_ ID2D1StrokeStyle **strokeStyle
) PURE; ) PURE;
STDMETHOD(CreateDrawingStateBlock)( STDMETHOD(CreateDrawingStateBlock)(
ID2D1Factory *This, ID2D1Factory *This,
__in_opt CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
__in_opt IDWriteRenderingParams *textRenderingParams, _In_opt_ IDWriteRenderingParams *textRenderingParams,
__deref_out ID2D1DrawingStateBlock **drawingStateBlock _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) PURE; ) PURE;
STDMETHOD(CreateWicBitmapRenderTarget)( STDMETHOD(CreateWicBitmapRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in IWICBitmap *target, _In_ IWICBitmap *target,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
STDMETHOD(CreateHwndRenderTarget)( STDMETHOD(CreateHwndRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__in CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie _In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetPropertie
s, s,
__deref_out ID2D1HwndRenderTarget **hwndRenderTarget _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) PURE; ) PURE;
STDMETHOD(CreateDxgiSurfaceRenderTarget)( STDMETHOD(CreateDxgiSurfaceRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in IDXGISurface *dxgiSurface, _In_ IDXGISurface *dxgiSurface,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1RenderTarget **renderTarget _Outptr_ ID2D1RenderTarget **renderTarget
) PURE; ) PURE;
STDMETHOD(CreateDCRenderTarget)( STDMETHOD(CreateDCRenderTarget)(
ID2D1Factory *This, ID2D1Factory *This,
__in CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
__deref_out ID2D1DCRenderTarget **dcRenderTarget _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
) PURE; ) PURE;
} ID2D1FactoryVtbl; } ID2D1FactoryVtbl;
interface ID2D1Factory interface ID2D1Factory
{ {
CONST struct ID2D1FactoryVtbl *lpVtbl; CONST struct ID2D1FactoryVtbl *lpVtbl;
}; };
#define ID2D1Factory_QueryInterface(This, riid, ppv) \ #define ID2D1Factory_QueryInterface(This, riid, ppv) \
((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv)) ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
skipping to change at line 6605 skipping to change at line 6766
#define ID2D1Factory_CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget) \ #define ID2D1Factory_CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget) \
((This)->lpVtbl->CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget)) ((This)->lpVtbl->CreateHwndRenderTarget(This, renderTargetProperties, hwndRe nderTargetProperties, hwndRenderTarget))
#define ID2D1Factory_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget) \ #define ID2D1Factory_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget) \
((This)->lpVtbl->CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget)) ((This)->lpVtbl->CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTarg etProperties, renderTarget))
#define ID2D1Factory_CreateDCRenderTarget(This, renderTargetProperties, dcRender Target) \ #define ID2D1Factory_CreateDCRenderTarget(This, renderTargetProperties, dcRender Target) \
((This)->lpVtbl->CreateDCRenderTarget(This, renderTargetProperties, dcRender Target)) ((This)->lpVtbl->CreateDCRenderTarget(This, renderTargetProperties, dcRender Target))
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C"
{ {
#endif #endif
// //
// This export cannot be in a namespace because compiler name mangling isn't consistent // This export cannot be in a namespace because compiler name mangling isn't consistent
// also, this must be 'C' callable. // also, this must be 'C' callable.
// //
HRESULT WINAPI HRESULT WINAPI
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in REFIID riid, _In_ REFIID riid,
__in_opt CONST D2D1_FACTORY_OPTIONS *pFactoryOptions, _In_opt_ CONST D2D1_FACTORY_OPTIONS *pFactoryOptions,
__out void **ppIFactory _Out_ void **ppIFactory
); );
void WINAPI void WINAPI
D2D1MakeRotateMatrix( D2D1MakeRotateMatrix(
__in FLOAT angle, _In_ FLOAT angle,
__in D2D1_POINT_2F center, _In_ D2D1_POINT_2F center,
__out D2D1_MATRIX_3X2_F *matrix _Out_ D2D1_MATRIX_3X2_F *matrix
); );
void WINAPI void WINAPI
D2D1MakeSkewMatrix( D2D1MakeSkewMatrix(
__in FLOAT angleX, _In_ FLOAT angleX,
__in FLOAT angleY, _In_ FLOAT angleY,
__in D2D1_POINT_2F center, _In_ D2D1_POINT_2F center,
__out D2D1_MATRIX_3X2_F *matrix _Out_ D2D1_MATRIX_3X2_F *matrix
); );
BOOL WINAPI BOOL WINAPI
D2D1IsMatrixInvertible( D2D1IsMatrixInvertible(
__in CONST D2D1_MATRIX_3X2_F *matrix _In_ CONST D2D1_MATRIX_3X2_F *matrix
); );
BOOL WINAPI BOOL WINAPI
D2D1InvertMatrix( D2D1InvertMatrix(
__inout D2D1_MATRIX_3X2_F *matrix _Inout_ D2D1_MATRIX_3X2_F *matrix
); );
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#ifndef D2D1FORCEINLINE #ifndef D2D1FORCEINLINE
#define D2D1FORCEINLINE FORCEINLINE #define D2D1FORCEINLINE FORCEINLINE
#endif // #ifndef D2D1FORCEINLINE #endif // #ifndef D2D1FORCEINLINE
#include <d2d1helper.h> #include <d2d1helper.h>
#ifndef D2D_USE_C_DEFINITIONS #ifndef D2D_USE_C_DEFINITIONS
COM_DECLSPEC_NOTHROW
inline inline
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in REFIID riid, _In_ REFIID riid,
__out void **factory _Out_ void **factory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
riid, riid,
NULL, NULL,
factory); factory);
} }
template<class Factory> template<class Factory>
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__out Factory **factory _Out_ Factory **factory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
__uuidof(Factory), __uuidof(Factory),
reinterpret_cast<void **>(factory)); reinterpret_cast<void **>(factory));
} }
template<class Factory> template<class Factory>
COM_DECLSPEC_NOTHROW
HRESULT HRESULT
D2D1CreateFactory( D2D1CreateFactory(
__in D2D1_FACTORY_TYPE factoryType, _In_ D2D1_FACTORY_TYPE factoryType,
__in CONST D2D1_FACTORY_OPTIONS &factoryOptions, _In_ CONST D2D1_FACTORY_OPTIONS &factoryOptions,
__out Factory **ppFactory _Out_ Factory **ppFactory
) )
{ {
return return
D2D1CreateFactory( D2D1CreateFactory(
factoryType, factoryType,
__uuidof(Factory), __uuidof(Factory),
&factoryOptions, &factoryOptions,
reinterpret_cast<void **>(ppFactory)); reinterpret_cast<void **>(ppFactory));
} }
#endif // #ifndef D2D_USE_C_DEFINITIONS #endif // #ifndef D2D_USE_C_DEFINITIONS
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif // #ifndef _D2D1_H_ #endif // #ifndef _D2D1_H_
 End of changes. 550 change blocks. 
699 lines changed or deleted 876 lines changed or added

This html diff was produced by rfcdiff 1.41.