diff --git a/3rdparty/minidx12/Include/d2d1.h b/3rdparty/minidx12/Include/d2d1.h
index 36d032e469..93d43912f7 100644
--- a/3rdparty/minidx12/Include/d2d1.h
+++ b/3rdparty/minidx12/Include/d2d1.h
@@ -82,16 +82,10 @@ typedef interface ID2D1Brush ID2D1Brush;
#define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f)
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_INTERPOLATION_MODE_DEFINITION
-//
-// Synopsis:
-// This defines the superset of interpolation mode supported by D2D APIs
-// and built-in effects
-//
-//------------------------------------------------------------------------------
+///
+/// This defines the superset of interpolation mode supported by D2D APIs
+/// and built-in effects
+///
enum
{
D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0,
@@ -106,209 +100,180 @@ enum
};
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GAMMA
-//
-// Synopsis:
-// This determines what gamma is used for interpolation/blending.
-//
-//------------------------------------------------------------------------------
+///
+/// This determines what gamma is used for interpolation/blending.
+///
typedef enum D2D1_GAMMA
{
-
- //
- // Colors are manipulated in 2.2 gamma color space.
- //
- D2D1_GAMMA_2_2 = 0,
-
- //
- // Colors are manipulated in 1.0 gamma color space.
- //
- D2D1_GAMMA_1_0 = 1,
- D2D1_GAMMA_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Colors are manipulated in 2.2 gamma color space.
+ ///
+ D2D1_GAMMA_2_2 = 0,
+
+ ///
+ /// Colors are manipulated in 1.0 gamma color space.
+ ///
+ D2D1_GAMMA_1_0 = 1,
+ D2D1_GAMMA_FORCE_DWORD = 0xffffffff
} D2D1_GAMMA;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_OPACITY_MASK_CONTENT
-//
-// Synopsis:
-// Specifies what the contents are of an opacity mask.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies what the contents are of an opacity mask.
+///
typedef enum D2D1_OPACITY_MASK_CONTENT
{
-
- //
- // The mask contains geometries or bitmaps.
- //
- D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0,
-
- //
- // The mask contains text rendered using one of the natural text modes.
- //
- D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1,
-
- //
- // The mask contains text rendered using one of the GDI compatible text modes.
- //
- D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2,
- D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The mask contains geometries or bitmaps.
+ ///
+ D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0,
+
+ ///
+ /// The mask contains text rendered using one of the natural text modes.
+ ///
+ D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1,
+
+ ///
+ /// The mask contains text rendered using one of the GDI compatible text modes.
+ ///
+ D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2,
+ D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD = 0xffffffff
} D2D1_OPACITY_MASK_CONTENT;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_EXTEND_MODE
-//
-// Synopsis:
-// Enum which describes how to sample from a source outside its base tile.
-//
-//------------------------------------------------------------------------------
+///
+/// Enum which describes how to sample from a source outside its base tile.
+///
typedef enum D2D1_EXTEND_MODE
{
-
- //
- // Extend the edges of the source out by clamping sample points outside the source
- // to the edges.
- //
- D2D1_EXTEND_MODE_CLAMP = 0,
-
- //
- // The base tile is drawn untransformed and the remainder are filled by repeating
- // the base tile.
- //
- D2D1_EXTEND_MODE_WRAP = 1,
-
- //
- // The same as wrap, but alternate tiles are flipped The base tile is drawn
- // untransformed.
- //
- D2D1_EXTEND_MODE_MIRROR = 2,
- D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Extend the edges of the source out by clamping sample points outside the source
+ /// to the edges.
+ ///
+ D2D1_EXTEND_MODE_CLAMP = 0,
+
+ ///
+ /// The base tile is drawn untransformed and the remainder are filled by repeating
+ /// the base tile.
+ ///
+ D2D1_EXTEND_MODE_WRAP = 1,
+
+ ///
+ /// The same as wrap, but alternate tiles are flipped The base tile is drawn
+ /// untransformed.
+ ///
+ D2D1_EXTEND_MODE_MIRROR = 2,
+ D2D1_EXTEND_MODE_FORCE_DWORD = 0xffffffff
} D2D1_EXTEND_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ANTIALIAS_MODE
-//
-// Synopsis:
-// Enum which describes the manner in which we render edges of non-text primitives.
-//
-//------------------------------------------------------------------------------
+///
+/// Enum which describes the manner in which we render edges of non-text primitives.
+///
typedef enum D2D1_ANTIALIAS_MODE
{
-
- //
- // The edges of each primitive are antialiased sequentially.
- //
- D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
-
- //
- // Each pixel is rendered if its pixel center is contained by the geometry.
- //
- D2D1_ANTIALIAS_MODE_ALIASED = 1,
- D2D1_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The edges of each primitive are antialiased sequentially.
+ ///
+ D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
+
+ ///
+ /// Each pixel is rendered if its pixel center is contained by the geometry.
+ ///
+ D2D1_ANTIALIAS_MODE_ALIASED = 1,
+ D2D1_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff
} D2D1_ANTIALIAS_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TEXT_ANTIALIAS_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the antialiasing mode used for drawing text.
+///
typedef enum D2D1_TEXT_ANTIALIAS_MODE
{
-
- //
- // Render text using the current system setting.
- //
- D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0,
-
- //
- // Render text using ClearType.
- //
- D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1,
-
- //
- // Render text using gray-scale.
- //
- D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2,
-
- //
- // Render text aliased.
- //
- D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3,
- D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Render text using the current system setting.
+ ///
+ D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0,
+
+ ///
+ /// Render text using ClearType.
+ ///
+ D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1,
+
+ ///
+ /// Render text using gray-scale.
+ ///
+ D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2,
+
+ ///
+ /// Render text aliased.
+ ///
+ D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3,
+ D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD = 0xffffffff
} D2D1_TEXT_ANTIALIAS_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BITMAP_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the algorithm that is used when images are scaled or rotated. Note
+/// Starting in Windows 8, more interpolations modes are available. See
+/// D2D1_INTERPOLATION_MODE for more info.
+///
typedef enum D2D1_BITMAP_INTERPOLATION_MODE
{
-
- //
- // Nearest Neighbor filtering. Also known as nearest pixel or nearest point
- // sampling.
- //
- D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR,
-
- //
- // Linear filtering.
- //
- D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR,
- D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Nearest Neighbor filtering. Also known as nearest pixel or nearest point
+ /// sampling.
+ ///
+ D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR,
+
+ ///
+ /// Linear filtering.
+ ///
+ D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR,
+ D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BITMAP_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_DRAW_TEXT_OPTIONS
-//
-// Synopsis:
-// Modifications made to the draw text call that influence how the text is
-// rendered.
-//
-//------------------------------------------------------------------------------
+///
+/// Modifications made to the draw text call that influence how the text is
+/// rendered.
+///
typedef enum D2D1_DRAW_TEXT_OPTIONS
{
-
- //
- // Do not snap the baseline of the text vertically.
- //
- D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
-
- //
- // Clip the text to the content bounds.
- //
- 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_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Do not snap the baseline of the text vertically.
+ ///
+ D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
+
+ ///
+ /// Clip the text to the content bounds.
+ ///
+ D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002,
+
+ ///
+ /// Render color versions of glyphs if defined by the font.
+ ///
+ D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004,
+
+ ///
+ /// Bitmap origins of color glyph bitmaps are not snapped.
+ ///
+ D2D1_DRAW_TEXT_OPTIONS_DISABLE_COLOR_BITMAP_SNAPPING = 0x00000008,
+ D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000,
+ D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_DRAW_TEXT_OPTIONS;
@@ -324,12 +289,9 @@ typedef D2D_COLOR_F D2D1_COLOR_F;
typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
typedef UINT64 D2D1_TAG;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BITMAP_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the pixel format and dpi of a bitmap.
+///
typedef struct D2D1_BITMAP_PROPERTIES
{
D2D1_PIXEL_FORMAT pixelFormat;
@@ -339,12 +301,9 @@ typedef struct D2D1_BITMAP_PROPERTIES
} D2D1_BITMAP_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_GRADIENT_STOP
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the position and color of a gradient stop.
+///
typedef struct D2D1_GRADIENT_STOP
{
FLOAT position;
@@ -353,12 +312,9 @@ typedef struct D2D1_GRADIENT_STOP
} D2D1_GRADIENT_STOP;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BRUSH_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the opacity and transformation of a brush.
+///
typedef struct D2D1_BRUSH_PROPERTIES
{
FLOAT opacity;
@@ -367,12 +323,9 @@ typedef struct D2D1_BRUSH_PROPERTIES
} D2D1_BRUSH_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BITMAP_BRUSH_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush.
+///
typedef struct D2D1_BITMAP_BRUSH_PROPERTIES
{
D2D1_EXTEND_MODE extendModeX;
@@ -382,12 +335,10 @@ typedef struct D2D1_BITMAP_BRUSH_PROPERTIES
} D2D1_BITMAP_BRUSH_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the starting point and endpoint of the gradient axis for an
+/// ID2D1LinearGradientBrush.
+///
typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
{
D2D1_POINT_2F startPoint;
@@ -396,12 +347,10 @@ typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
} D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the gradient origin offset and the size and position of the gradient
+/// ellipse for an ID2D1RadialGradientBrush.
+///
typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
{
D2D1_POINT_2F center;
@@ -412,258 +361,205 @@ typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
} D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ARC_SIZE
-//
-// Synopsis:
-// Differentiates which of the two possible arcs could match the given arc
-// parameters.
-//
-//------------------------------------------------------------------------------
+///
+/// Differentiates which of the two possible arcs could match the given arc
+/// parameters.
+///
typedef enum D2D1_ARC_SIZE
{
- D2D1_ARC_SIZE_SMALL = 0,
- D2D1_ARC_SIZE_LARGE = 1,
- D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff
+ D2D1_ARC_SIZE_SMALL = 0,
+ D2D1_ARC_SIZE_LARGE = 1,
+ D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff
} D2D1_ARC_SIZE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CAP_STYLE
-//
-// Synopsis:
-// Enum which describes the drawing of the ends of a line.
-//
-//------------------------------------------------------------------------------
+///
+/// Enum which describes the drawing of the ends of a line.
+///
typedef enum D2D1_CAP_STYLE
{
-
- //
- // Flat line cap.
- //
- D2D1_CAP_STYLE_FLAT = 0,
-
- //
- // Square line cap.
- //
- D2D1_CAP_STYLE_SQUARE = 1,
-
- //
- // Round line cap.
- //
- D2D1_CAP_STYLE_ROUND = 2,
-
- //
- // Triangle line cap.
- //
- D2D1_CAP_STYLE_TRIANGLE = 3,
- D2D1_CAP_STYLE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Flat line cap.
+ ///
+ D2D1_CAP_STYLE_FLAT = 0,
+
+ ///
+ /// Square line cap.
+ ///
+ D2D1_CAP_STYLE_SQUARE = 1,
+
+ ///
+ /// Round line cap.
+ ///
+ D2D1_CAP_STYLE_ROUND = 2,
+
+ ///
+ /// Triangle line cap.
+ ///
+ D2D1_CAP_STYLE_TRIANGLE = 3,
+ D2D1_CAP_STYLE_FORCE_DWORD = 0xffffffff
} D2D1_CAP_STYLE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DASH_STYLE
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the sequence of dashes and gaps in a stroke.
+///
typedef enum D2D1_DASH_STYLE
{
- D2D1_DASH_STYLE_SOLID = 0,
- D2D1_DASH_STYLE_DASH = 1,
- D2D1_DASH_STYLE_DOT = 2,
- D2D1_DASH_STYLE_DASH_DOT = 3,
- D2D1_DASH_STYLE_DASH_DOT_DOT = 4,
- D2D1_DASH_STYLE_CUSTOM = 5,
- D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff
+ D2D1_DASH_STYLE_SOLID = 0,
+ D2D1_DASH_STYLE_DASH = 1,
+ D2D1_DASH_STYLE_DOT = 2,
+ D2D1_DASH_STYLE_DASH_DOT = 3,
+ D2D1_DASH_STYLE_DASH_DOT_DOT = 4,
+ D2D1_DASH_STYLE_CUSTOM = 5,
+ D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff
} D2D1_DASH_STYLE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_LINE_JOIN
-//
-// Synopsis:
-// Enum which describes the drawing of the corners on the line.
-//
-//------------------------------------------------------------------------------
+///
+/// Enum which describes the drawing of the corners on the line.
+///
typedef enum D2D1_LINE_JOIN
{
-
- //
- // Miter join.
- //
- D2D1_LINE_JOIN_MITER = 0,
-
- //
- // Bevel join.
- //
- D2D1_LINE_JOIN_BEVEL = 1,
-
- //
- // Round join.
- //
- D2D1_LINE_JOIN_ROUND = 2,
-
- //
- // Miter/Bevel join.
- //
- D2D1_LINE_JOIN_MITER_OR_BEVEL = 3,
- D2D1_LINE_JOIN_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Miter join.
+ ///
+ D2D1_LINE_JOIN_MITER = 0,
+
+ ///
+ /// Bevel join.
+ ///
+ D2D1_LINE_JOIN_BEVEL = 1,
+
+ ///
+ /// Round join.
+ ///
+ D2D1_LINE_JOIN_ROUND = 2,
+
+ ///
+ /// Miter/Bevel join.
+ ///
+ D2D1_LINE_JOIN_MITER_OR_BEVEL = 3,
+ D2D1_LINE_JOIN_FORCE_DWORD = 0xffffffff
} D2D1_LINE_JOIN;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COMBINE_MODE
-//
-// Synopsis:
-// This enumeration describes the type of combine operation to be performed.
-//
-//------------------------------------------------------------------------------
+///
+/// This enumeration describes the type of combine operation to be performed.
+///
typedef enum D2D1_COMBINE_MODE
{
-
- //
- // Produce a geometry representing the set of points contained in either
- // the first or the second geometry.
- //
- D2D1_COMBINE_MODE_UNION = 0,
-
- //
- // Produce a geometry representing the set of points common to the first
- // and the second geometries.
- //
- D2D1_COMBINE_MODE_INTERSECT = 1,
-
- //
- // Produce a geometry representing the set of points contained in the
- // first geometry or the second geometry, but not both.
- //
- D2D1_COMBINE_MODE_XOR = 2,
-
- //
- // Produce a geometry representing the set of points contained in the
- // first geometry but not the second geometry.
- //
- D2D1_COMBINE_MODE_EXCLUDE = 3,
- D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Produce a geometry representing the set of points contained in either the first
+ /// or the second geometry.
+ ///
+ D2D1_COMBINE_MODE_UNION = 0,
+
+ ///
+ /// Produce a geometry representing the set of points common to the first and the
+ /// second geometries.
+ ///
+ D2D1_COMBINE_MODE_INTERSECT = 1,
+
+ ///
+ /// Produce a geometry representing the set of points contained in the first
+ /// geometry or the second geometry, but not both.
+ ///
+ D2D1_COMBINE_MODE_XOR = 2,
+
+ ///
+ /// Produce a geometry representing the set of points contained in the first
+ /// geometry but not the second geometry.
+ ///
+ D2D1_COMBINE_MODE_EXCLUDE = 3,
+ D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_COMBINE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GEOMETRY_RELATION
-//
-//------------------------------------------------------------------------------
+///
+/// Describes how one geometry object is spatially related to another geometry
+/// object.
+///
typedef enum D2D1_GEOMETRY_RELATION
{
-
- //
- // The relation between the geometries couldn't be determined. This value is never
- // returned by any D2D method.
- //
- D2D1_GEOMETRY_RELATION_UNKNOWN = 0,
-
- //
- // The two geometries do not intersect at all.
- //
- D2D1_GEOMETRY_RELATION_DISJOINT = 1,
-
- //
- // The passed in geometry is entirely contained by the object.
- //
- D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2,
-
- //
- // The object entirely contains the passed in geometry.
- //
- D2D1_GEOMETRY_RELATION_CONTAINS = 3,
-
- //
- // The two geometries overlap but neither completely contains the other.
- //
- D2D1_GEOMETRY_RELATION_OVERLAP = 4,
- D2D1_GEOMETRY_RELATION_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The relation between the geometries couldn't be determined. This value is never
+ /// returned by any D2D method.
+ ///
+ D2D1_GEOMETRY_RELATION_UNKNOWN = 0,
+
+ ///
+ /// The two geometries do not intersect at all.
+ ///
+ D2D1_GEOMETRY_RELATION_DISJOINT = 1,
+
+ ///
+ /// The passed in geometry is entirely contained by the object.
+ ///
+ D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2,
+
+ ///
+ /// The object entirely contains the passed in geometry.
+ ///
+ D2D1_GEOMETRY_RELATION_CONTAINS = 3,
+
+ ///
+ /// The two geometries overlap but neither completely contains the other.
+ ///
+ D2D1_GEOMETRY_RELATION_OVERLAP = 4,
+ D2D1_GEOMETRY_RELATION_FORCE_DWORD = 0xffffffff
} D2D1_GEOMETRY_RELATION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GEOMETRY_SIMPLIFICATION_OPTION
-//
-// Synopsis:
-// Specifies how simple the output of a simplified geometry sink should be.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how simple the output of a simplified geometry sink should be.
+///
typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION
{
- D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0,
- D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1,
- D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD = 0xffffffff
+ D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0,
+ D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1,
+ D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD = 0xffffffff
} D2D1_GEOMETRY_SIMPLIFICATION_OPTION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FIGURE_BEGIN
-//
-// Synopsis:
-// Indicates whether the given figure is filled or hollow.
-//
-//------------------------------------------------------------------------------
+///
+/// Indicates whether the given figure is filled or hollow.
+///
typedef enum D2D1_FIGURE_BEGIN
{
- D2D1_FIGURE_BEGIN_FILLED = 0,
- D2D1_FIGURE_BEGIN_HOLLOW = 1,
- D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff
+ D2D1_FIGURE_BEGIN_FILLED = 0,
+ D2D1_FIGURE_BEGIN_HOLLOW = 1,
+ D2D1_FIGURE_BEGIN_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_BEGIN;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FIGURE_END
-//
-// Synopsis:
-// Indicates whether the figure is open or closed on its end point.
-//
-//------------------------------------------------------------------------------
+///
+/// Indicates whether the figure is open or closed on its end point.
+///
typedef enum D2D1_FIGURE_END
{
- D2D1_FIGURE_END_OPEN = 0,
- D2D1_FIGURE_END_CLOSED = 1,
- D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff
+ D2D1_FIGURE_END_OPEN = 0,
+ D2D1_FIGURE_END_CLOSED = 1,
+ D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff
} D2D1_FIGURE_END;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BEZIER_SEGMENT
-//
-// Synopsis:
-// Describes a cubic bezier in a path.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a cubic bezier in a path.
+///
typedef struct D2D1_BEZIER_SEGMENT
{
D2D1_POINT_2F point1;
@@ -673,15 +569,9 @@ typedef struct D2D1_BEZIER_SEGMENT
} D2D1_BEZIER_SEGMENT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_TRIANGLE
-//
-// Synopsis:
-// Describes a triangle.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a triangle.
+///
typedef struct D2D1_TRIANGLE
{
D2D1_POINT_2F point1;
@@ -691,67 +581,50 @@ typedef struct D2D1_TRIANGLE
} D2D1_TRIANGLE;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_PATH_SEGMENT
-//
-// Synopsis:
-// Indicates whether the given segment should be stroked, or, if the join between
-// this segment and the previous one should be smooth.
-//
-//------------------------------------------------------------------------------
+///
+/// Indicates whether the given segment should be stroked, or, if the join between
+/// this segment and the previous one should be smooth.
+///
typedef enum D2D1_PATH_SEGMENT
{
- D2D1_PATH_SEGMENT_NONE = 0x00000000,
- D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001,
- D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002,
- D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff
+ D2D1_PATH_SEGMENT_NONE = 0x00000000,
+ D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001,
+ D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002,
+ D2D1_PATH_SEGMENT_FORCE_DWORD = 0xffffffff
} D2D1_PATH_SEGMENT;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_PATH_SEGMENT);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SWEEP_DIRECTION
-//
-//------------------------------------------------------------------------------
+///
+/// Defines the direction that an elliptical arc is drawn.
+///
typedef enum D2D1_SWEEP_DIRECTION
{
- D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0,
- D2D1_SWEEP_DIRECTION_CLOCKWISE = 1,
- D2D1_SWEEP_DIRECTION_FORCE_DWORD = 0xffffffff
+ D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0,
+ D2D1_SWEEP_DIRECTION_CLOCKWISE = 1,
+ D2D1_SWEEP_DIRECTION_FORCE_DWORD = 0xffffffff
} D2D1_SWEEP_DIRECTION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FILL_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how the intersecting areas of geometries or figures are combined to
+/// form the area of the composite geometry.
+///
typedef enum D2D1_FILL_MODE
{
- D2D1_FILL_MODE_ALTERNATE = 0,
- D2D1_FILL_MODE_WINDING = 1,
- D2D1_FILL_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_FILL_MODE_ALTERNATE = 0,
+ D2D1_FILL_MODE_WINDING = 1,
+ D2D1_FILL_MODE_FORCE_DWORD = 0xffffffff
} D2D1_FILL_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_ARC_SEGMENT
-//
-// Synopsis:
-// Describes an arc that is defined as part of a path.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes an arc that is defined as part of a path.
+///
typedef struct D2D1_ARC_SEGMENT
{
D2D1_POINT_2F point;
@@ -763,12 +636,9 @@ typedef struct D2D1_ARC_SEGMENT
} D2D1_ARC_SEGMENT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_QUADRATIC_BEZIER_SEGMENT
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the control point and end point for a quadratic Bezier segment.
+///
typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT
{
D2D1_POINT_2F point1;
@@ -777,12 +647,9 @@ typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT
} D2D1_QUADRATIC_BEZIER_SEGMENT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_ELLIPSE
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the center point, x-radius, and y-radius of an ellipse.
+///
typedef struct D2D1_ELLIPSE
{
D2D1_POINT_2F point;
@@ -792,12 +659,9 @@ typedef struct D2D1_ELLIPSE
} D2D1_ELLIPSE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_ROUNDED_RECT
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the dimensions and corner radii of a rounded rectangle.
+///
typedef struct D2D1_ROUNDED_RECT
{
D2D1_RECT_F rect;
@@ -807,15 +671,9 @@ typedef struct D2D1_ROUNDED_RECT
} D2D1_ROUNDED_RECT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_STROKE_STYLE_PROPERTIES
-//
-// Synopsis:
-// Properties, aside from the width, that allow geometric penning to be specified.
-//
-//------------------------------------------------------------------------------
+///
+/// Properties, aside from the width, that allow geometric penning to be specified.
+///
typedef struct D2D1_STROKE_STYLE_PROPERTIES
{
D2D1_CAP_STYLE startCap;
@@ -829,225 +687,202 @@ typedef struct D2D1_STROKE_STYLE_PROPERTIES
} D2D1_STROKE_STYLE_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_LAYER_OPTIONS
-//
-// Synopsis:
-// Specified options that can be applied when a layer resource is applied to create
-// a layer.
-//
-//------------------------------------------------------------------------------
+///
+/// Specified options that can be applied when a layer resource is applied to create
+/// a layer.
+///
typedef enum D2D1_LAYER_OPTIONS
{
- D2D1_LAYER_OPTIONS_NONE = 0x00000000,
-
- //
- // The layer will render correctly for ClearType text. If the render target was set
- // to ClearType previously, the layer will continue to render ClearType. If the
- // render target was set to ClearType and this option is not specified, the render
- // target will be set to render gray-scale until the layer is popped. The caller
- // can override this default by calling SetTextAntialiasMode while within the
- // layer. This flag is slightly slower than the default.
- //
- D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001,
- D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_LAYER_OPTIONS_NONE = 0x00000000,
+
+ ///
+ /// The layer will render correctly for ClearType text. If the render target was set
+ /// to ClearType previously, the layer will continue to render ClearType. If the
+ /// render target was set to ClearType and this option is not specified, the render
+ /// target will be set to render gray-scale until the layer is popped. The caller
+ /// can override this default by calling SetTextAntialiasMode while within the
+ /// layer. This flag is slightly slower than the default.
+ ///
+ D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001,
+ D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_LAYER_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_LAYER_PARAMETERS
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the content bounds, mask information, opacity settings, and other
+/// options for a layer resource.
+///
typedef struct D2D1_LAYER_PARAMETERS
{
- //
- // The rectangular clip that will be applied to the layer. The clip is affected by
- // the world transform. Content outside of the content bounds will not render.
- //
+ ///
+ /// The rectangular clip that will be applied to the layer. The clip is affected by
+ /// the world transform. Content outside of the content bounds will not render.
+ ///
D2D1_RECT_F contentBounds;
- //
- // A general mask that can be optionally applied to the content. Content not inside
- // the fill of the mask will not be rendered.
- //
+ ///
+ /// A general mask that can be optionally applied to the content. Content not inside
+ /// the fill of the mask will not be rendered.
+ ///
_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;
- //
- // An additional transform that may be applied to the mask in addition to the
- // current world transform.
- //
+ ///
+ /// An additional transform that may be applied to the mask in addition to the
+ /// current world transform.
+ ///
D2D1_MATRIX_3X2_F maskTransform;
- //
- // The opacity with which all of the content in the layer will be blended back to
- // the target when the layer is popped.
- //
+ ///
+ /// The opacity with which all of the content in the layer will be blended back to
+ /// the target when the layer is popped.
+ ///
FLOAT opacity;
- //
- // An additional brush that can be applied to the layer. Only the opacity channel
- // is sampled from this brush and multiplied both with the layer content and the
- // over-all layer opacity.
- //
+ ///
+ /// An additional brush that can be applied to the layer. Only the opacity channel
+ /// is sampled from this brush and multiplied both with the layer content and the
+ /// over-all layer opacity.
+ ///
_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_PARAMETERS;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_WINDOW_STATE
-//
-//------------------------------------------------------------------------------
+///
+/// Describes whether a window is occluded.
+///
typedef enum D2D1_WINDOW_STATE
{
- D2D1_WINDOW_STATE_NONE = 0x0000000,
- D2D1_WINDOW_STATE_OCCLUDED = 0x0000001,
- D2D1_WINDOW_STATE_FORCE_DWORD = 0xffffffff
+ D2D1_WINDOW_STATE_NONE = 0x0000000,
+ D2D1_WINDOW_STATE_OCCLUDED = 0x0000001,
+ D2D1_WINDOW_STATE_FORCE_DWORD = 0xffffffff
} D2D1_WINDOW_STATE;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_WINDOW_STATE);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_RENDER_TARGET_TYPE
-//
-//------------------------------------------------------------------------------
+///
+/// Describes whether a render target uses hardware or software rendering, or if
+/// Direct2D should select the rendering mode.
+///
typedef enum D2D1_RENDER_TARGET_TYPE
{
-
- //
- // D2D is free to choose the render target type for the caller.
- //
- D2D1_RENDER_TARGET_TYPE_DEFAULT = 0,
-
- //
- // The render target will render using the CPU.
- //
- D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1,
-
- //
- // The render target will render using the GPU.
- //
- D2D1_RENDER_TARGET_TYPE_HARDWARE = 2,
- D2D1_RENDER_TARGET_TYPE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// D2D is free to choose the render target type for the caller.
+ ///
+ D2D1_RENDER_TARGET_TYPE_DEFAULT = 0,
+
+ ///
+ /// The render target will render using the CPU.
+ ///
+ D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1,
+
+ ///
+ /// The render target will render using the GPU.
+ ///
+ D2D1_RENDER_TARGET_TYPE_HARDWARE = 2,
+ D2D1_RENDER_TARGET_TYPE_FORCE_DWORD = 0xffffffff
} D2D1_RENDER_TARGET_TYPE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FEATURE_LEVEL
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the minimum DirectX support required for hardware rendering by a
+/// render target.
+///
typedef enum D2D1_FEATURE_LEVEL
{
-
- //
- // The caller does not require a particular underlying D3D device level.
- //
- D2D1_FEATURE_LEVEL_DEFAULT = 0,
-
- //
- // The D3D device level is DX9 compatible.
- //
- D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1,
-
- //
- // The D3D device level is DX10 compatible.
- //
- D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0,
- D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The caller does not require a particular underlying D3D device level.
+ ///
+ D2D1_FEATURE_LEVEL_DEFAULT = 0,
+
+ ///
+ /// The D3D device level is DX9 compatible.
+ ///
+ D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1,
+
+ ///
+ /// The D3D device level is DX10 compatible.
+ ///
+ D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0,
+ D2D1_FEATURE_LEVEL_FORCE_DWORD = 0xffffffff
} D2D1_FEATURE_LEVEL;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_RENDER_TARGET_USAGE
-//
-//------------------------------------------------------------------------------
+///
+/// Describes how a render target is remoted and whether it should be
+/// GDI-compatible. This enumeration allows a bitwise combination of its member
+/// values.
+///
typedef enum D2D1_RENDER_TARGET_USAGE
{
- D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
-
- //
- // Rendering will occur locally, if a terminal-services session is established, the
- // bitmap updates will be sent to the terminal services client.
- //
- D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
-
- //
- // The render target will allow a call to GetDC on the ID2D1GdiInteropRenderTarget
- // interface. Rendering will also occur locally.
- //
- D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002,
- D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff
+ D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
+
+ ///
+ /// Rendering will occur locally, if a terminal-services session is established, the
+ /// bitmap updates will be sent to the terminal services client.
+ ///
+ D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
+
+ ///
+ /// The render target will allow a call to GetDC on the ID2D1GdiInteropRenderTarget
+ /// interface. Rendering will also occur locally.
+ ///
+ D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002,
+ D2D1_RENDER_TARGET_USAGE_FORCE_DWORD = 0xffffffff
} D2D1_RENDER_TARGET_USAGE;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE);
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_PRESENT_OPTIONS
-//
-// Synopsis:
-// Describes how present should behave.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes how present should behave.
+///
typedef enum D2D1_PRESENT_OPTIONS
{
- D2D1_PRESENT_OPTIONS_NONE = 0x00000000,
-
- //
- // Keep the target contents intact through present.
- //
- D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001,
-
- //
- // Do not wait for display refresh to commit changes to display.
- //
- D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002,
- D2D1_PRESENT_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_PRESENT_OPTIONS_NONE = 0x00000000,
+
+ ///
+ /// Keep the target contents intact through present.
+ ///
+ D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001,
+
+ ///
+ /// Do not wait for display refresh to commit changes to display.
+ ///
+ D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002,
+ D2D1_PRESENT_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_PRESENT_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_PRESENT_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_RENDER_TARGET_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Contains rendering options (hardware or software), pixel format, DPI
+/// information, remoting options, and Direct3D support requirements for a render
+/// target.
+///
typedef struct D2D1_RENDER_TARGET_PROPERTIES
{
D2D1_RENDER_TARGET_TYPE type;
@@ -1060,12 +895,10 @@ typedef struct D2D1_RENDER_TARGET_PROPERTIES
} D2D1_RENDER_TARGET_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_HWND_RENDER_TARGET_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Contains the HWND, pixel size, and presentation options for an
+/// ID2D1HwndRenderTarget.
+///
typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES
{
HWND hwnd;
@@ -1075,39 +908,31 @@ typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES
} D2D1_HWND_RENDER_TARGET_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies additional features supportable by a compatible render target when it
+/// is created. This enumeration allows a bitwise combination of its member values.
+///
typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
{
- D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
-
- //
- // The compatible render target will allow a call to GetDC on the
- // ID2D1GdiInteropRenderTarget interface. This can be specified even if the parent
- // render target is not GDI compatible.
- //
- D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001,
- D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
+
+ ///
+ /// The compatible render target will allow a call to GetDC on the
+ /// ID2D1GdiInteropRenderTarget interface. This can be specified even if the parent
+ /// render target is not GDI compatible.
+ ///
+ D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001,
+ D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_DRAWING_STATE_DESCRIPTION
-//
-// Synopsis:
-// Allows the drawing state to be atomically created. This also specifies the
-// drawing state that is saved into an IDrawingStateBlock object.
-//
-//------------------------------------------------------------------------------
+///
+/// Allows the drawing state to be atomically created. This also specifies the
+/// drawing state that is saved into an IDrawingStateBlock object.
+///
typedef struct D2D1_DRAWING_STATE_DESCRIPTION
{
D2D1_ANTIALIAS_MODE antialiasMode;
@@ -1119,95 +944,75 @@ typedef struct D2D1_DRAWING_STATE_DESCRIPTION
} D2D1_DRAWING_STATE_DESCRIPTION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DC_INITIALIZE_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how a device context is initialized for GDI rendering when it is
+/// retrieved from the render target.
+///
typedef enum D2D1_DC_INITIALIZE_MODE
{
-
- //
- // The contents of the D2D render target will be copied to the DC.
- //
- D2D1_DC_INITIALIZE_MODE_COPY = 0,
-
- //
- // The contents of the DC will be cleared.
- //
- D2D1_DC_INITIALIZE_MODE_CLEAR = 1,
- D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The contents of the D2D render target will be copied to the DC.
+ ///
+ D2D1_DC_INITIALIZE_MODE_COPY = 0,
+
+ ///
+ /// The contents of the DC will be cleared.
+ ///
+ D2D1_DC_INITIALIZE_MODE_CLEAR = 1,
+ D2D1_DC_INITIALIZE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DC_INITIALIZE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DEBUG_LEVEL
-//
-// Synopsis:
-// Indicates the debug level to be output by the debug layer.
-//
-//------------------------------------------------------------------------------
+///
+/// Indicates the debug level to be output by the debug layer.
+///
typedef enum D2D1_DEBUG_LEVEL
{
- D2D1_DEBUG_LEVEL_NONE = 0,
- D2D1_DEBUG_LEVEL_ERROR = 1,
- D2D1_DEBUG_LEVEL_WARNING = 2,
- D2D1_DEBUG_LEVEL_INFORMATION = 3,
- D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff
+ D2D1_DEBUG_LEVEL_NONE = 0,
+ D2D1_DEBUG_LEVEL_ERROR = 1,
+ D2D1_DEBUG_LEVEL_WARNING = 2,
+ D2D1_DEBUG_LEVEL_INFORMATION = 3,
+ D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff
} D2D1_DEBUG_LEVEL;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FACTORY_TYPE
-//
-// Synopsis:
-// Specifies the threading model of the created factory and all of its derived
-// resources.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the threading model of the created factory and all of its derived
+/// resources.
+///
typedef enum D2D1_FACTORY_TYPE
{
-
- //
- // The resulting factory and derived resources may only be invoked serially.
- // Reference counts on resources are interlocked, however, resource and render
- // target state is not protected from multi-threaded access.
- //
- D2D1_FACTORY_TYPE_SINGLE_THREADED = 0,
-
- //
- // The resulting factory may be invoked from multiple threads. Returned resources
- // use interlocked reference counting and their state is protected.
- //
- D2D1_FACTORY_TYPE_MULTI_THREADED = 1,
- D2D1_FACTORY_TYPE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The resulting factory and derived resources may only be invoked serially.
+ /// Reference counts on resources are interlocked, however, resource and render
+ /// target state is not protected from multi-threaded access.
+ ///
+ D2D1_FACTORY_TYPE_SINGLE_THREADED = 0,
+
+ ///
+ /// The resulting factory may be invoked from multiple threads. Returned resources
+ /// use interlocked reference counting and their state is protected.
+ ///
+ D2D1_FACTORY_TYPE_MULTI_THREADED = 1,
+ D2D1_FACTORY_TYPE_FORCE_DWORD = 0xffffffff
} D2D1_FACTORY_TYPE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_FACTORY_OPTIONS
-//
-// Synopsis:
-// Allows additional parameters for factory creation.
-//
-//------------------------------------------------------------------------------
+///
+/// Allows additional parameters for factory creation.
+///
typedef struct D2D1_FACTORY_OPTIONS
{
- //
- // Requests a certain level of debugging information from the debug layer. This
- // parameter is ignored if the debug layer DLL is not present.
- //
+ ///
+ /// Requests a certain level of debugging information from the debug layer. This
+ /// parameter is ignored if the debug layer DLL is not present.
+ ///
D2D1_DEBUG_LEVEL debugLevel;
} D2D1_FACTORY_OPTIONS;
@@ -1223,79 +1028,56 @@ typedef struct D2D1_FACTORY_OPTIONS
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Resource
-//
-// Synopsis:
-// The root interface for all resources in D2D.
-//
-//------------------------------------------------------------------------------
+///
+/// The root interface for all resources in D2D.
+///
interface DX_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Resource : public IUnknown
{
-
- //
- // Retrieve the factory associated with this resource.
- //
+ ///
+ /// Retrieve the factory associated with this resource.
+ ///
STDMETHOD_(void, GetFactory)(
_Outptr_ ID2D1Factory **factory
) CONST PURE;
}; // interface ID2D1Resource
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Image
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a producer of pixels that can fill an arbitrary 2D plane.
+///
interface DX_DECLARE_INTERFACE("65019f75-8da2-497c-b32c-dfa34e48ede6") ID2D1Image : public ID2D1Resource
{
}; // interface ID2D1Image
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Bitmap
-//
-// Synopsis:
-// Root bitmap resource, linearly scaled on a draw call.
-//
-//------------------------------------------------------------------------------
+///
+/// Root bitmap resource, linearly scaled on a draw call.
+///
interface DX_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bitmap : 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)(
) CONST PURE;
-
- //
- // Returns the size of the bitmap in resolution dependent units, (pixels).
- //
+ ///
+ /// Returns the size of the bitmap in resolution dependent units, (pixels).
+ ///
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
) CONST PURE;
-
- //
- // Retrieve the format of the bitmap.
- //
+ ///
+ /// Retrieve the format of the bitmap.
+ ///
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE;
-
- //
- // Return the DPI of the bitmap.
- //
+ ///
+ /// Return the DPI of the bitmap.
+ ///
STDMETHOD_(void, GetDpi)(
_Out_ FLOAT *dpiX,
_Out_ FLOAT *dpiY
@@ -1321,41 +1103,31 @@ interface DX_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bitm
}; // interface ID2D1Bitmap
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GradientStopCollection
-//
-// Synopsis:
-// Represents an collection of gradient stops that can then be the source resource
-// for either a linear or radial gradient brush.
-//
-//------------------------------------------------------------------------------
+///
+/// Represents an collection of gradient stops that can then be the source resource
+/// for either a linear or radial gradient brush.
+///
interface DX_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1GradientStopCollection : public ID2D1Resource
{
-
- //
- // Returns the number of stops in the gradient.
- //
+ ///
+ /// Returns the number of stops in the gradient.
+ ///
STDMETHOD_(UINT32, GetGradientStopCount)(
) CONST PURE;
-
- //
- // Copies the gradient stops from the collection into the caller's interface. The
- // returned colors have straight alpha.
- //
+ ///
+ /// Copies the gradient stops from the collection into the caller's interface. The
+ /// returned colors have straight alpha.
+ ///
STDMETHOD_(void, GetGradientStops)(
_Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) 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)(
) CONST PURE;
@@ -1364,31 +1136,22 @@ interface DX_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1Grad
}; // interface ID2D1GradientStopCollection
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Brush
-//
-// Synopsis:
-// The root brush interface. All brushes can be used to fill or pen a geometry.
-//
-//------------------------------------------------------------------------------
+///
+/// The root brush interface. All brushes can be used to fill or pen a geometry.
+///
interface DX_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Brush : 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)(
FLOAT opacity
) 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)(
_In_ CONST D2D1_MATRIX_3X2_F *transform
) PURE;
@@ -1411,49 +1174,38 @@ interface DX_DECLARE_INTERFACE("2cd906a8-12e2-11dc-9fed-001143a055f9") ID2D1Brus
}; // interface ID2D1Brush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1BitmapBrush
-//
-// 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 DX_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1BitmapBrush : public ID2D1Brush
{
-
- //
- // Sets how the bitmap is to be treated outside of its natural extent on the X
- // axis.
- //
+ ///
+ /// Sets how the bitmap is to be treated outside of its natural extent on the X
+ /// axis.
+ ///
STDMETHOD_(void, SetExtendModeX)(
D2D1_EXTEND_MODE extendModeX
) PURE;
-
- //
- // Sets how the bitmap is to be treated outside of its natural extent on the X
- // axis.
- //
+ ///
+ /// Sets how the bitmap is to be treated outside of its natural extent on the X
+ /// axis.
+ ///
STDMETHOD_(void, SetExtendModeY)(
D2D1_EXTEND_MODE extendModeY
) PURE;
-
- //
- // Sets the interpolation mode used when this brush is used.
- //
+ ///
+ /// Sets the interpolation mode used when this brush is used.
+ ///
STDMETHOD_(void, SetInterpolationMode)(
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
) PURE;
-
- //
- // Sets the bitmap associated as the source of this brush.
- //
+ ///
+ /// Sets the bitmap associated as the source of this brush.
+ ///
STDMETHOD_(void, SetBitmap)(
_In_opt_ ID2D1Bitmap *bitmap
) PURE;
@@ -1468,18 +1220,14 @@ interface DX_DECLARE_INTERFACE("2cd906aa-12e2-11dc-9fed-001143a055f9") ID2D1Bitm
) CONST PURE;
STDMETHOD_(void, GetBitmap)(
- _Outptr_ ID2D1Bitmap **bitmap
+ _Outptr_result_maybenull_ ID2D1Bitmap **bitmap
) CONST PURE;
}; // interface ID2D1BitmapBrush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1SolidColorBrush
-//
-//------------------------------------------------------------------------------
+///
+/// Paints an area with a solid color.
+///
interface DX_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1SolidColorBrush : public ID2D1Brush
{
@@ -1501,13 +1249,9 @@ interface DX_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1Soli
}; // interface ID2D1SolidColorBrush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1LinearGradientBrush
-//
-//------------------------------------------------------------------------------
+///
+/// Paints an area with a linear gradient.
+///
interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1LinearGradientBrush : public ID2D1Brush
{
@@ -1515,11 +1259,10 @@ interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Line
D2D1_POINT_2F startPoint
) PURE;
-
- //
- // Sets the end point of the gradient in local coordinate space. This is not
- // influenced by the geometry being filled.
- //
+ ///
+ /// Sets the end point of the gradient in local coordinate space. This is not
+ /// influenced by the geometry being filled.
+ ///
STDMETHOD_(void, SetEndPoint)(
D2D1_POINT_2F endPoint
) PURE;
@@ -1536,29 +1279,23 @@ interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1Line
}; // interface ID2D1LinearGradientBrush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1RadialGradientBrush
-//
-//------------------------------------------------------------------------------
+///
+/// Paints an area with a radial gradient.
+///
interface DX_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1RadialGradientBrush : public ID2D1Brush
{
-
- //
- // Sets the center of the radial gradient. This will be in local coordinates and
- // will not depend on the geometry being filled.
- //
+ ///
+ /// Sets the center of the radial gradient. This will be in local coordinates and
+ /// will not depend on the geometry being filled.
+ ///
STDMETHOD_(void, SetCenter)(
D2D1_POINT_2F center
) PURE;
-
- //
- // Sets offset of the origin relative to the radial gradient center.
- //
+ ///
+ /// Sets offset of the origin relative to the radial gradient center.
+ ///
STDMETHOD_(void, SetGradientOriginOffset)(
D2D1_POINT_2F gradientOriginOffset
) PURE;
@@ -1589,16 +1326,9 @@ interface DX_DECLARE_INTERFACE("2cd906ac-12e2-11dc-9fed-001143a055f9") ID2D1Radi
}; // interface ID2D1RadialGradientBrush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1StrokeStyle
-//
-// Synopsis:
-// Resource interface that holds pen style properties.
-//
-//------------------------------------------------------------------------------
+///
+/// Resource interface that holds pen style properties.
+///
interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1StrokeStyle : public ID2D1Resource
{
@@ -1626,11 +1356,10 @@ interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1Stro
STDMETHOD_(UINT32, GetDashesCount)(
) CONST PURE;
-
- //
- // Returns the dashes from the object into a user allocated array. The user must
- // call GetDashesCount to retrieve the required size.
- //
+ ///
+ /// Returns the dashes from the object into a user allocated array. The user must
+ /// call GetDashesCount to retrieve the required size.
+ ///
STDMETHOD_(void, GetDashes)(
_Out_writes_(dashesCount) FLOAT *dashes,
UINT32 dashesCount
@@ -1638,30 +1367,26 @@ interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1Stro
}; // interface ID2D1StrokeStyle
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Geometry
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a geometry resource and defines a set of helper methods for
+/// manipulating and measuring geometric shapes. Interfaces that inherit from
+/// ID2D1Geometry define specific shapes.
+///
interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geometry : 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)(
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
_Out_ D2D1_RECT_F *bounds
) CONST PURE;
-
- //
- // Get the bounds of the corresponding geometry after it has been widened or have
- // an optional pen style applied.
- //
+ ///
+ /// Get the bounds of the corresponding geometry after it has been widened or have
+ /// an optional pen style applied.
+ ///
STDMETHOD(GetWidenedBounds)(
FLOAT strokeWidth,
_In_opt_ ID2D1StrokeStyle *strokeStyle,
@@ -1670,11 +1395,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_Out_ D2D1_RECT_F *bounds
) CONST PURE;
-
- //
- // Checks to see whether the corresponding penned and widened geometry contains the
- // given point.
- //
+ ///
+ /// Checks to see whether the corresponding penned and widened geometry contains the
+ /// given point.
+ ///
STDMETHOD(StrokeContainsPoint)(
D2D1_POINT_2F point,
FLOAT strokeWidth,
@@ -1684,10 +1408,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_Out_ BOOL *contains
) 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)(
D2D1_POINT_2F point,
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
@@ -1695,10 +1418,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_Out_ BOOL *contains
) CONST PURE;
-
- //
- // Compare how one geometry intersects or contains another geometry.
- //
+ ///
+ /// Compare how one geometry intersects or contains another geometry.
+ ///
STDMETHOD(CompareWithGeometry)(
_In_ ID2D1Geometry *inputGeometry,
_In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
@@ -1706,11 +1428,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_Out_ D2D1_GEOMETRY_RELATION *relation
) CONST PURE;
-
- //
- // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
- // removed.
- //
+ ///
+ /// Converts a geometry to a simplified geometry that has arcs and quadratic beziers
+ /// removed.
+ ///
STDMETHOD(Simplify)(
D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
@@ -1718,21 +1439,19 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE;
-
- //
- // Tessellates a geometry into triangles.
- //
+ ///
+ /// Tessellates a geometry into triangles.
+ ///
STDMETHOD(Tessellate)(
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance,
_In_ ID2D1TessellationSink *tessellationSink
) CONST PURE;
-
- //
- // Performs a combine operation between the two geometries to produce a resulting
- // geometry.
- //
+ ///
+ /// Performs a combine operation between the two geometries to produce a resulting
+ /// geometry.
+ ///
STDMETHOD(CombineWithGeometry)(
_In_ ID2D1Geometry *inputGeometry,
D2D1_COMBINE_MODE combineMode,
@@ -1741,41 +1460,37 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE;
-
- //
- // Computes the outline of the geometry. The result is written back into a
- // simplified geometry sink.
- //
+ ///
+ /// Computes the outline of the geometry. The result is written back into a
+ /// simplified geometry sink.
+ ///
STDMETHOD(Outline)(
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance,
_In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE;
-
- //
- // Computes the area of the geometry.
- //
+ ///
+ /// Computes the area of the geometry.
+ ///
STDMETHOD(ComputeArea)(
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance,
_Out_ FLOAT *area
) CONST PURE;
-
- //
- // Computes the length of the geometry.
- //
+ ///
+ /// Computes the length of the geometry.
+ ///
STDMETHOD(ComputeLength)(
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
FLOAT flatteningTolerance,
_Out_ FLOAT *length
) 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)(
FLOAT length,
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
@@ -1784,10 +1499,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_Out_opt_ D2D1_POINT_2F *unitTangentVector
) 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)(
FLOAT strokeWidth,
_In_opt_ ID2D1StrokeStyle *strokeStyle,
@@ -1796,10 +1510,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
_In_ ID2D1SimplifiedGeometrySink *geometrySink
) 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
GetBounds(
@@ -1810,11 +1523,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return GetBounds(&worldTransform, bounds);
}
-
- //
- // Get the bounds of the corresponding geometry after it has been widened or have
- // an optional pen style applied.
- //
+ ///
+ /// Get the bounds of the corresponding geometry after it has been widened or have
+ /// an optional pen style applied.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
GetWidenedBounds(
@@ -1828,11 +1540,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, bounds);
}
-
- //
- // Get the bounds of the corresponding geometry after it has been widened or have
- // an optional pen style applied.
- //
+ ///
+ /// Get the bounds of the corresponding geometry after it has been widened or have
+ /// an optional pen style applied.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
GetWidenedBounds(
@@ -1845,11 +1556,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, bounds);
}
-
- //
- // Get the bounds of the corresponding geometry after it has been widened or have
- // an optional pen style applied.
- //
+ ///
+ /// Get the bounds of the corresponding geometry after it has been widened or have
+ /// an optional pen style applied.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
GetWidenedBounds(
@@ -1876,11 +1586,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, contains);
}
-
- //
- // Checks to see whether the corresponding penned and widened geometry contains the
- // given point.
- //
+ ///
+ /// Checks to see whether the corresponding penned and widened geometry contains the
+ /// given point.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
StrokeContainsPoint(
@@ -1919,10 +1628,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return FillContainsPoint(point, &worldTransform, flatteningTolerance, contains);
}
-
- //
- // 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
FillContainsPoint(
@@ -1945,10 +1653,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
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
CompareWithGeometry(
@@ -1961,10 +1668,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatteningTolerance, relation);
}
-
- //
- // Compare how one geometry intersects or contains another geometry.
- //
+ ///
+ /// Compare how one geometry intersects or contains another geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CompareWithGeometry(
@@ -1976,10 +1682,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_DEFAULT_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
CompareWithGeometry(
@@ -1991,11 +1696,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, relation);
}
-
- //
- // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
- // removed.
- //
+ ///
+ /// Converts a geometry to a simplified geometry that has arcs and quadratic beziers
+ /// removed.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Simplify(
@@ -2008,11 +1712,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Simplify(simplificationOption, &worldTransform, flatteningTolerance, geometrySink);
}
-
- //
- // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
- // removed.
- //
+ ///
+ /// Converts a geometry to a simplified geometry that has arcs and quadratic beziers
+ /// removed.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Simplify(
@@ -2024,11 +1727,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Converts a geometry to a simplified geometry that has arcs and quadratic beziers
- // removed.
- //
+ ///
+ /// Converts a geometry to a simplified geometry that has arcs and quadratic beziers
+ /// removed.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Simplify(
@@ -2040,10 +1742,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Tessellates a geometry into triangles.
- //
+ ///
+ /// Tessellates a geometry into triangles.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Tessellate(
@@ -2055,10 +1756,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Tessellate(&worldTransform, flatteningTolerance, tessellationSink);
}
-
- //
- // Tessellates a geometry into triangles.
- //
+ ///
+ /// Tessellates a geometry into triangles.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Tessellate(
@@ -2069,10 +1769,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink);
}
-
- //
- // Tessellates a geometry into triangles.
- //
+ ///
+ /// Tessellates a geometry into triangles.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Tessellate(
@@ -2083,11 +1782,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink);
}
-
- //
- // Performs a combine operation between the two geometries to produce a resulting
- // geometry.
- //
+ ///
+ /// Performs a combine operation between the two geometries to produce a resulting
+ /// geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CombineWithGeometry(
@@ -2101,11 +1799,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, flatteningTolerance, geometrySink);
}
-
- //
- // Performs a combine operation between the two geometries to produce a resulting
- // geometry.
- //
+ ///
+ /// Performs a combine operation between the two geometries to produce a resulting
+ /// geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CombineWithGeometry(
@@ -2118,11 +1815,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Performs a combine operation between the two geometries to produce a resulting
- // geometry.
- //
+ ///
+ /// Performs a combine operation between the two geometries to produce a resulting
+ /// geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CombineWithGeometry(
@@ -2135,11 +1831,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Computes the outline of the geometry. The result is written back into a
- // simplified geometry sink.
- //
+ ///
+ /// Computes the outline of the geometry. The result is written back into a
+ /// simplified geometry sink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Outline(
@@ -2151,11 +1846,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Outline(&worldTransform, flatteningTolerance, geometrySink);
}
-
- //
- // Computes the outline of the geometry. The result is written back into a
- // simplified geometry sink.
- //
+ ///
+ /// Computes the outline of the geometry. The result is written back into a
+ /// simplified geometry sink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Outline(
@@ -2166,11 +1860,10 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Computes the outline of the geometry. The result is written back into a
- // simplified geometry sink.
- //
+ ///
+ /// Computes the outline of the geometry. The result is written back into a
+ /// simplified geometry sink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
Outline(
@@ -2181,10 +1874,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Computes the area of the geometry.
- //
+ ///
+ /// Computes the area of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeArea(
@@ -2196,10 +1888,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputeArea(&worldTransform, flatteningTolerance, area);
}
-
- //
- // Computes the area of the geometry.
- //
+ ///
+ /// Computes the area of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeArea(
@@ -2210,10 +1901,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area);
}
-
- //
- // Computes the area of the geometry.
- //
+ ///
+ /// Computes the area of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeArea(
@@ -2224,10 +1914,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area);
}
-
- //
- // Computes the length of the geometry.
- //
+ ///
+ /// Computes the length of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeLength(
@@ -2239,10 +1928,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputeLength(&worldTransform, flatteningTolerance, length);
}
-
- //
- // Computes the length of the geometry.
- //
+ ///
+ /// Computes the length of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeLength(
@@ -2253,10 +1941,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
}
-
- //
- // Computes the length of the geometry.
- //
+ ///
+ /// Computes the length of the geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
ComputeLength(
@@ -2267,10 +1954,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
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
ComputePointAtLength(
@@ -2284,10 +1970,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
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
ComputePointAtLength(
@@ -2300,10 +1985,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTENING_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
ComputePointAtLength(
@@ -2316,10 +2000,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTENING_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
Widen(
@@ -2333,10 +2016,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, 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
Widen(
@@ -2349,10 +2031,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_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
Widen(
@@ -2367,13 +2048,9 @@ interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geom
}; // interface ID2D1Geometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1RectangleGeometry
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a two-dimensional rectangle.
+///
interface DX_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1RectangleGeometry : public ID2D1Geometry
{
@@ -2383,13 +2060,9 @@ interface DX_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1Rect
}; // interface ID2D1RectangleGeometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1RoundedRectangleGeometry
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a rounded rectangle.
+///
interface DX_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1RoundedRectangleGeometry : public ID2D1Geometry
{
@@ -2399,13 +2072,9 @@ interface DX_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1Roun
}; // interface ID2D1RoundedRectangleGeometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1EllipseGeometry
-//
-//------------------------------------------------------------------------------
+///
+/// Represents an ellipse.
+///
interface DX_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1EllipseGeometry : public ID2D1Geometry
{
@@ -2415,13 +2084,9 @@ interface DX_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1Elli
}; // interface ID2D1EllipseGeometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GeometryGroup
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a composite geometry, composed of other ID2D1Geometry objects.
+///
interface DX_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1GeometryGroup : public ID2D1Geometry
{
@@ -2438,13 +2103,9 @@ interface DX_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1Geom
}; // interface ID2D1GeometryGroup
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1TransformedGeometry
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a geometry that has been transformed.
+///
interface DX_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1TransformedGeometry : public ID2D1Geometry
{
@@ -2458,13 +2119,10 @@ interface DX_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1Tran
}; // interface ID2D1TransformedGeometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1SimplifiedGeometrySink
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a geometric path that does not contain quadratic bezier curves or
+/// arcs.
+///
interface DX_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1SimplifiedGeometrySink : public IUnknown
{
@@ -2500,13 +2158,10 @@ interface DX_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1Simp
}; // interface ID2D1SimplifiedGeometrySink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GeometrySink
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a geometric path that can contain lines, arcs, cubic Bezier curves,
+/// and quadratic Bezier curves.
+///
interface DX_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1GeometrySink : public ID2D1SimplifiedGeometrySink
{
@@ -2560,13 +2215,9 @@ interface DX_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1Geom
}; // interface ID2D1GeometrySink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1TessellationSink
-//
-//------------------------------------------------------------------------------
+///
+/// Populates an ID2D1Mesh object with triangles.
+///
interface DX_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1TessellationSink : public IUnknown
{
@@ -2580,29 +2231,23 @@ interface DX_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1Tess
}; // interface ID2D1TessellationSink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1PathGeometry
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a complex shape that may be composed of arcs, curves, and lines.
+///
interface DX_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1PathGeometry : 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)(
- _Outptr_ ID2D1GeometrySink **geometrySink
+ _COM_Outptr_ ID2D1GeometrySink **geometrySink
) PURE;
-
- //
- // Retrieve the contents of this geometry. The caller passes an implementation of a
- // ID2D1GeometrySink interface to receive the data.
- //
+ ///
+ /// Retrieve the contents of this geometry. The caller passes an implementation of a
+ /// ID2D1GeometrySink interface to receive the data.
+ ///
STDMETHOD(Stream)(
_In_ ID2D1GeometrySink *geometrySink
) CONST PURE;
@@ -2617,33 +2262,24 @@ interface DX_DECLARE_INTERFACE("2cd906a5-12e2-11dc-9fed-001143a055f9") ID2D1Path
}; // interface ID2D1PathGeometry
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Mesh
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a set of vertices that form a list of triangles.
+///
interface DX_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Mesh : public ID2D1Resource
{
-
- //
- // Opens the mesh for population.
- //
+ ///
+ /// Opens the mesh for population.
+ ///
STDMETHOD(Open)(
- _Outptr_ ID2D1TessellationSink **tessellationSink
+ _COM_Outptr_ ID2D1TessellationSink **tessellationSink
) PURE;
}; // interface ID2D1Mesh
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Layer
-//
-//------------------------------------------------------------------------------
+///
+/// Represents the backing store required to render a layer.
+///
interface DX_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1Layer : public ID2D1Resource
{
@@ -2652,46 +2288,39 @@ interface DX_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1Laye
}; // interface ID2D1Layer
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DrawingStateBlock
-//
-//------------------------------------------------------------------------------
+///
+/// Represents the drawing state of a render target: the antialiasing mode,
+/// transform, tags, and text-rendering options.
+///
interface DX_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1DrawingStateBlock : 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)(
_Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) CONST PURE;
-
- //
- // Sets the state description of this state block resource.
- //
+ ///
+ /// Sets the state description of this state block resource.
+ ///
STDMETHOD_(void, SetDescription)(
_In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
) PURE;
-
- //
- // Sets the text rendering parameters of this state block resource.
- //
+ ///
+ /// Sets the text rendering parameters of this state block resource.
+ ///
STDMETHOD_(void, SetTextRenderingParams)(
_In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE;
-
- //
- // Retrieves the text rendering parameters contained within this state block
- // resource. If a NULL text rendering parameter was specified, NULL will be
- // returned.
- //
+ ///
+ /// Retrieves the text rendering parameters contained within this state block
+ /// resource. If a NULL text rendering parameter was specified, NULL will be
+ /// returned.
+ ///
STDMETHOD_(void, GetTextRenderingParams)(
_Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE;
@@ -2707,171 +2336,140 @@ interface DX_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1Draw
}; // interface ID2D1DrawingStateBlock
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1RenderTarget
-//
-//------------------------------------------------------------------------------
+///
+/// Represents an object that can receive drawing commands. Interfaces that inherit
+/// from ID2D1RenderTarget render the drawing commands they receive in different
+/// ways.
+///
interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1RenderTarget : 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)(
D2D1_SIZE_U size,
_In_opt_ CONST void *srcData,
UINT32 pitch,
_In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
) PURE;
-
- //
- // Create a D2D bitmap by copying a WIC bitmap.
- //
+ ///
+ /// Create a D2D bitmap by copying a WIC bitmap.
+ ///
STDMETHOD(CreateBitmapFromWicBitmap)(
_In_ IWICBitmapSource *wicBitmapSource,
_In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
) PURE;
-
- //
- // Create a D2D bitmap by sharing bits from another resource. The bitmap must be
- // compatible with the render target for the call to succeed.
- // For example, an IWICBitmap can be shared with a software target, or a DXGI
- // surface can be shared with a DXGI render target.
- //
+ ///
+ /// Create a D2D bitmap by sharing bits from another resource. The bitmap must be
+ /// compatible with the render target for the call to succeed. For example, an
+ /// IWICBitmap can be shared with a software target, or a DXGI surface can be shared
+ /// with a DXGI render target.
+ ///
STDMETHOD(CreateSharedBitmap)(
_In_ REFIID riid,
_Inout_ void *data,
_In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
) PURE;
-
- //
- // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
- // or pen a geometry.
- //
+ ///
+ /// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
+ /// or pen a geometry.
+ ///
STDMETHOD(CreateBitmapBrush)(
_In_opt_ ID2D1Bitmap *bitmap,
_In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1BitmapBrush **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush **bitmapBrush
) PURE;
STDMETHOD(CreateSolidColorBrush)(
_In_ CONST D2D1_COLOR_F *color,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1SolidColorBrush **solidColorBrush
+ _COM_Outptr_ ID2D1SolidColorBrush **solidColorBrush
) PURE;
-
- //
- // A gradient stop collection represents a set of stops in an ideal unit length.
- // This is the source resource for a linear gradient and radial gradient brush.
- //
+ ///
+ /// A gradient stop collection represents a set of stops in an ideal unit length.
+ /// This is the source resource for a linear gradient and radial gradient brush.
+ ///
+ /// Specifies which space the color
+ /// interpolation occurs in.
+ /// Specifies how the gradient will be extended outside of
+ /// the unit length.
STDMETHOD(CreateGradientStopCollection)(
_In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
_In_range_(>=,1) UINT32 gradientStopsCount,
-
- //
- // Specifies which space the color interpolation occurs in.
- //
D2D1_GAMMA colorInterpolationGamma,
-
- //
- // Specifies how the gradient will be extended outside of the unit length.
- //
D2D1_EXTEND_MODE extendMode,
- _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
+ _COM_Outptr_ ID2D1GradientStopCollection **gradientStopCollection
) PURE;
STDMETHOD(CreateLinearGradientBrush)(
_In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
+ _COM_Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
) PURE;
STDMETHOD(CreateRadialGradientBrush)(
_In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
+ _COM_Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
) PURE;
-
- //
- // Creates a bitmap render target whose bitmap can be used as a source for
- // rendering in the API.
- //
+ ///
+ /// Creates a bitmap render target whose bitmap can be used as a source for
+ /// rendering in the API.
+ ///
+ /// The requested size of the target in DIPs. If the pixel
+ /// size is not specified, the DPI is inherited from the parent target. However, the
+ /// render target will never contain a fractional number of pixels.
+ /// 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 desired size is not specified, the DPI is inherited from the
+ /// parent render target. If neither value is specified, the compatible render
+ /// target will be the same size and have the same DPI as the parent target.
+ /// The desired pixel format. The format must be
+ /// compatible with the parent render target type. If the format is not specified,
+ /// it will be inherited from the parent render target.
+ /// Allows the caller to retrieve a GDI compatible render
+ /// target.
+ /// The returned bitmap render target.
STDMETHOD(CreateCompatibleRenderTarget)(
-
- //
- // The requested size of the target in DIPs. If the pixel size is not specified,
- // the DPI is inherited from the parent target. However, the render target will
- // never contain a fractional number of pixels.
- //
_In_opt_ CONST D2D1_SIZE_F *desiredSize,
-
- //
- // 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 desired size is
- // not specified, the DPI is inherited from the parent render target. If neither
- // value is specified, the compatible render target will be the same size and have
- // the same DPI as the parent target.
- //
_In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
-
- //
- // The desired pixel format. The format must be compatible with the parent render
- // target type. If the format is not specified, it will be inherited from the
- // parent render target.
- //
_In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
-
- //
- // Allows the caller to retrieve a GDI compatible render target.
- //
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
-
- //
- // The returned bitmap render target.
- //
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
) PURE;
-
- //
- // Creates a layer resource that can be used on any target and which will resize
- // under the covers if necessary.
- //
+ ///
+ /// Creates a layer resource that can be used on any target and which will resize
+ /// under the covers if necessary.
+ ///
+ /// 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 DIPs, but, it is unaffected by the current world
+ /// transform. If the size is unspecified, the returned resource is a placeholder
+ /// and the backing store will be allocated to be the minimum size that can hold the
+ /// content when the layer is pushed.
STDMETHOD(CreateLayer)(
-
- //
- // 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
- // DIPs, but, it is unaffected by the current world transform. If the size is
- // unspecified, the returned resource is a placeholder and the backing store will
- // be allocated to be the minimum size that can hold the content when the layer is
- // pushed.
- //
_In_opt_ CONST D2D1_SIZE_F *size,
- _Outptr_ ID2D1Layer **layer
+ _COM_Outptr_ ID2D1Layer **layer
) PURE;
-
- //
- // Create a D2D mesh.
- //
+ ///
+ /// Create a D2D mesh.
+ ///
STDMETHOD(CreateMesh)(
- _Outptr_ ID2D1Mesh **mesh
+ _COM_Outptr_ ID2D1Mesh **mesh
) PURE;
STDMETHOD_(void, DrawLine)(
@@ -2925,35 +2523,30 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_In_opt_ ID2D1StrokeStyle *strokeStyle = NULL
) PURE;
+ /// 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 the geometry. If this brush is specified, the fill brush must be
+ /// a bitmap brush with an extend mode of D2D1_EXTEND_MODE_CLAMP.
STDMETHOD_(void, FillGeometry)(
_In_ ID2D1Geometry *geometry,
_In_ ID2D1Brush *brush,
-
- //
- // 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
- // the geometry. If this brush is specified, the fill brush must be a bitmap brush
- // with an extend mode of D2D1_EXTEND_MODE_CLAMP.
- //
_In_opt_ ID2D1Brush *opacityBrush = NULL
) PURE;
-
- //
- // Fill a mesh. Since meshes can only render aliased content, the render target
- // antialiasing mode must be set to aliased.
- //
+ ///
+ /// Fill a mesh. Since meshes can only render aliased content, the render target
+ /// antialiasing mode must be set to aliased.
+ ///
STDMETHOD_(void, FillMesh)(
_In_ ID2D1Mesh *mesh,
_In_ ID2D1Brush *brush
) PURE;
-
- //
- // Fill using the alpha channel of the supplied opacity mask bitmap. The brush
- // opacity will be modulated by the mask. The render target antialiasing mode must
- // be set to aliased.
- //
+ ///
+ /// Fill using the alpha channel of the supplied opacity mask bitmap. The brush
+ /// opacity will be modulated by the mask. The render target antialiasing mode must
+ /// be set to aliased.
+ ///
STDMETHOD_(void, FillOpacityMask)(
_In_ ID2D1Bitmap *opacityMask,
_In_ ID2D1Brush *brush,
@@ -2970,37 +2563,32 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL
) PURE;
-
- //
- // Draws the text within the given layout rectangle and by default also snaps and
- // clips it to the content bounds.
- //
+ ///
+ /// Draws the text within the given layout rectangle and by default also performs
+ /// baseline snapping.
+ ///
STDMETHOD_(void, DrawText)(
_In_reads_(stringLength) CONST WCHAR *string,
UINT32 stringLength,
_In_ IDWriteTextFormat *textFormat,
_In_ CONST D2D1_RECT_F *layoutRect,
- _In_ ID2D1Brush *defaultForegroundBrush,
+ _In_ ID2D1Brush *defaultFillBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
) PURE;
-
- //
- // Draw a snapped text layout object. Since the layout is not subsequently changed,
- // this can be more efficient than DrawText when drawing the same layout
- // repeatedly.
- //
+ ///
+ /// Draw a text layout object. If the layout is not subsequently changed, this can
+ /// be more efficient than DrawText when drawing the same layout repeatedly.
+ ///
+ /// The specified text options. If D2D1_DRAW_TEXT_OPTIONS_CLIP
+ /// is used, the text is clipped to the layout bounds. These bounds are derived from
+ /// the origin and the layout bounds of the corresponding IDWriteTextLayout object.
+ ///
STDMETHOD_(void, DrawTextLayout)(
D2D1_POINT_2F origin,
_In_ IDWriteTextLayout *textLayout,
- _In_ ID2D1Brush *defaultForegroundBrush,
-
- //
- // The specified text options. NOTE: By default the text is clipped to the layout
- // bounds. This is derived from the origin and the layout bounds of the
- // corresponding IDWriteTextLayout object.
- //
+ _In_ ID2D1Brush *defaultFillBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE
) PURE;
@@ -3037,52 +2625,47 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_In_opt_ IDWriteRenderingParams *textRenderingParams = NULL
) PURE;
-
- //
- // Retrieve the text render parameters. NOTE: If NULL is specified to
- // SetTextRenderingParameters, NULL will be returned.
- //
+ ///
+ /// Retrieve the text render parameters. NOTE: If NULL is specified to
+ /// SetTextRenderingParameters, NULL will be returned.
+ ///
STDMETHOD_(void, GetTextRenderingParams)(
_Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
) CONST PURE;
-
- //
- // Set a tag to correspond to the succeeding primitives. If an error occurs
- // rendering a primitive, the tags can be returned from the Flush or EndDraw call.
- //
+ ///
+ /// Set a tag to correspond to the succeeding primitives. If an error occurs
+ /// rendering a primitive, the tags can be returned from the Flush or EndDraw call.
+ ///
STDMETHOD_(void, SetTags)(
D2D1_TAG tag1,
D2D1_TAG tag2
) PURE;
-
- //
- // Retrieves the currently set tags. This does not retrieve the tags corresponding
- // to any primitive that is in error.
- //
+ ///
+ /// Retrieves the currently set tags. This does not retrieve the tags corresponding
+ /// to any primitive that is in error.
+ ///
STDMETHOD_(void, GetTags)(
_Out_opt_ D2D1_TAG *tag1 = NULL,
_Out_opt_ D2D1_TAG *tag2 = NULL
) CONST PURE;
-
- //
- // Start a layer of drawing calls. The way in which the layer must be resolved is
- // specified first as well as the logical resource that stores the layer
- // parameters. The supplied layer resource might grow if the specified content
- // 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 automatically.
- //
+ ///
+ /// Start a layer of drawing calls. The way in which the layer must be resolved is
+ /// specified first as well as the logical resource that stores the layer
+ /// parameters. The supplied layer resource might grow if the specified content
+ /// 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 automatically.
+ ///
STDMETHOD_(void, PushLayer)(
_In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
_In_opt_ ID2D1Layer *layer
) PURE;
-
- //
- // Ends a layer that was defined with particular layer resources.
- //
+ ///
+ /// Ends a layer that was defined with particular layer resources.
+ ///
STDMETHOD_(void, PopLayer)(
) PURE;
@@ -3091,30 +2674,27 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_Out_opt_ D2D1_TAG *tag2 = NULL
) PURE;
-
- //
- // Gets the current drawing state and saves it into the supplied
- // IDrawingStatckBlock.
- //
+ ///
+ /// Gets the current drawing state and saves it into the supplied
+ /// IDrawingStatckBlock.
+ ///
STDMETHOD_(void, SaveDrawingState)(
_Inout_ ID2D1DrawingStateBlock *drawingStateBlock
) CONST PURE;
-
- //
- // Copies the state stored in the block interface.
- //
+ ///
+ /// Copies the state stored in the block interface.
+ ///
STDMETHOD_(void, RestoreDrawingState)(
_In_ ID2D1DrawingStateBlock *drawingStateBlock
) PURE;
-
- //
- // 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
- // transformed clip rect will be used. The clip will remain in effect until a
- // PopAxisAligned clip call is made.
- //
+ ///
+ /// 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
+ /// transformed clip rect will be used. The clip will remain in effect until a
+ /// PopAxisAligned clip call is made.
+ ///
STDMETHOD_(void, PushAxisAlignedClip)(
_In_ CONST D2D1_RECT_F *clipRect,
D2D1_ANTIALIAS_MODE antialiasMode
@@ -3127,19 +2707,17 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_In_opt_ CONST D2D1_COLOR_F *clearColor = NULL
) PURE;
-
- //
- // Start drawing on this render target. Draw calls can only be issued between a
- // BeginDraw and EndDraw call.
- //
+ ///
+ /// Start drawing on this render target. Draw calls can only be issued between a
+ /// BeginDraw and EndDraw call.
+ ///
STDMETHOD_(void, BeginDraw)(
) PURE;
-
- //
- // Ends drawing on the render target, error results can be retrieved at this time,
- // or when calling flush.
- //
+ ///
+ /// Ends drawing on the render target, error results can be retrieved at this time,
+ /// or when calling flush.
+ ///
STDMETHOD(EndDraw)(
_Out_opt_ D2D1_TAG *tag1 = NULL,
_Out_opt_ D2D1_TAG *tag2 = NULL
@@ -3148,56 +2726,50 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
) CONST PURE;
-
- //
- // Sets the DPI on the render target. This results in the render target being
- // 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 other
- // unspecified, the DPI is not changed.
- //
+ ///
+ /// Sets the DPI on the render target. This results in the render target being
+ /// 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 other
+ /// unspecified, the DPI is not changed.
+ ///
STDMETHOD_(void, SetDpi)(
FLOAT dpiX,
FLOAT dpiY
) PURE;
-
- //
- // Return the current DPI from the target.
- //
+ ///
+ /// Return the current DPI from the target.
+ ///
STDMETHOD_(void, GetDpi)(
_Out_ FLOAT *dpiX,
_Out_ FLOAT *dpiY
) 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)(
) CONST PURE;
-
- //
- // Returns the size of the render target in pixels.
- //
+ ///
+ /// Returns the size of the render target in pixels.
+ ///
STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
) CONST PURE;
-
- //
- // Returns the maximum bitmap and render target size that is guaranteed to be
- // supported by the render target.
- //
+ ///
+ /// Returns the maximum bitmap and render target size that is guaranteed to be
+ /// supported by the render target.
+ ///
STDMETHOD_(UINT32, GetMaximumBitmapSize)(
) CONST PURE;
-
- //
- // 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
- // D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be
- // supported.
- //
+ ///
+ /// 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
+ /// D2D1_FEATURE_LEVEL_9 nor D2D1_FEATURE_LEVEL_10 will be considered to be
+ /// supported.
+ ///
STDMETHOD_(BOOL, IsSupported)(
_In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
) CONST PURE;
@@ -3209,7 +2781,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
_In_opt_ CONST void *srcData,
UINT32 pitch,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
)
{
return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap);
@@ -3220,84 +2792,79 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateBitmap(
D2D1_SIZE_U size,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **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
CreateBitmapFromWicBitmap(
_In_ IWICBitmapSource *wicBitmapSource,
CONST D2D1_BITMAP_PROPERTIES &bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
)
{
return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap);
}
-
- //
- // Create a D2D bitmap by copying a WIC bitmap.
- //
+ ///
+ /// Create a D2D bitmap by copying a WIC bitmap.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapFromWicBitmap(
_In_ IWICBitmapSource *wicBitmapSource,
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
)
{
return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
}
-
- //
- // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
- // or pen a geometry.
- //
+ ///
+ /// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
+ /// or pen a geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapBrush(
_In_opt_ ID2D1Bitmap *bitmap,
- _Outptr_ ID2D1BitmapBrush **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
}
-
- //
- // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
- // or pen a geometry.
- //
+ ///
+ /// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
+ /// or pen a geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapBrush(
_In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
- _Outptr_ ID2D1BitmapBrush **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBrush);
}
-
- //
- // Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
- // or pen a geometry.
- //
+ ///
+ /// Creates a bitmap brush. The bitmap is scaled, rotated, skewed or tiled to fill
+ /// or pen a geometry.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapBrush(
_In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
- _Outptr_ ID2D1BitmapBrush **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush);
@@ -3307,7 +2874,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
HRESULT
CreateSolidColorBrush(
CONST D2D1_COLOR_F &color,
- _Outptr_ ID2D1SolidColorBrush **solidColorBrush
+ _COM_Outptr_ ID2D1SolidColorBrush **solidColorBrush
)
{
return CreateSolidColorBrush(&color, NULL, solidColorBrush);
@@ -3318,7 +2885,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateSolidColorBrush(
CONST D2D1_COLOR_F &color,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
- _Outptr_ ID2D1SolidColorBrush **solidColorBrush
+ _COM_Outptr_ ID2D1SolidColorBrush **solidColorBrush
)
{
return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush);
@@ -3329,7 +2896,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateGradientStopCollection(
_In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount,
- _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
+ _COM_Outptr_ ID2D1GradientStopCollection **gradientStopCollection
)
{
return CreateGradientStopCollection(gradientStops, gradientStopsCount, D2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection);
@@ -3340,7 +2907,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateLinearGradientBrush(
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
+ _COM_Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
)
{
return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, gradientStopCollection, linearGradientBrush);
@@ -3352,7 +2919,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
+ _COM_Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
)
{
return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushProperties, gradientStopCollection, linearGradientBrush);
@@ -3363,7 +2930,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateRadialGradientBrush(
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
+ _COM_Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
)
{
return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, gradientStopCollection, radialGradientBrush);
@@ -3375,7 +2942,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
_In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
+ _COM_Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
)
{
return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushProperties, gradientStopCollection, radialGradientBrush);
@@ -3384,7 +2951,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
COM_DECLSPEC_NOTHROW
HRESULT
CreateCompatibleRenderTarget(
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
)
{
return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
@@ -3394,7 +2961,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
HRESULT
CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize,
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
)
{
return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
@@ -3405,7 +2972,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize,
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
)
{
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
@@ -3417,7 +2984,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
D2D1_SIZE_F desiredSize,
D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat,
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
)
{
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
@@ -3430,7 +2997,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
D2D1_SIZE_U desiredPixelSize,
D2D1_PIXEL_FORMAT desiredFormat,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
+ _COM_Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
)
{
return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, options, bitmapRenderTarget);
@@ -3440,7 +3007,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
HRESULT
CreateLayer(
D2D1_SIZE_F size,
- _Outptr_ ID2D1Layer **layer
+ _COM_Outptr_ ID2D1Layer **layer
)
{
return CreateLayer(&size, layer);
@@ -3449,7 +3016,7 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
COM_DECLSPEC_NOTHROW
HRESULT
CreateLayer(
- _Outptr_ ID2D1Layer **layer
+ _COM_Outptr_ ID2D1Layer **layer
)
{
return CreateLayer(NULL, layer);
@@ -3598,11 +3165,10 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
return Clear(&clearColor);
}
-
- //
- // Draws the text within the given layout rectangle and by default also snaps and
- // clips it.
- //
+ ///
+ /// Draws the text within the given layout rectangle and by default also performs
+ /// baseline snapping.
+ ///
COM_DECLSPEC_NOTHROW
void
DrawText(
@@ -3610,12 +3176,12 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
UINT32 stringLength,
_In_ IDWriteTextFormat *textFormat,
CONST D2D1_RECT_F &layoutRect,
- _In_ ID2D1Brush *defaultForegroundBrush,
+ _In_ ID2D1Brush *defaultFillBrush,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
)
{
- return DrawText(string, stringLength, textFormat, &layoutRect, defaultForegroundBrush, options, measuringMode);
+ return DrawText(string, stringLength, textFormat, &layoutRect, defaultFillBrush, options, measuringMode);
}
COM_DECLSPEC_NOTHROW
@@ -3629,44 +3195,36 @@ interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1Rend
}; // interface ID2D1RenderTarget
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1BitmapRenderTarget
-//
-//------------------------------------------------------------------------------
+///
+/// Renders to an intermediate texture created by the CreateCompatibleRenderTarget
+/// method.
+///
interface DX_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1BitmapRenderTarget : public ID2D1RenderTarget
{
STDMETHOD(GetBitmap)(
- _Outptr_ ID2D1Bitmap **bitmap
+ _COM_Outptr_ ID2D1Bitmap **bitmap
) PURE;
}; // interface ID2D1BitmapRenderTarget
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1HwndRenderTarget
-//
-//------------------------------------------------------------------------------
+///
+/// Renders drawing instructions to a window.
+///
interface DX_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1HwndRenderTarget : public ID2D1RenderTarget
{
STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
) PURE;
-
- //
- // Resize the buffer underlying the render target. This operation might fail if
- // there is insufficient video memory or system memory, or if the render target is
- // resized beyond the maximum bitmap size. If the method fails, the render target
- // will be placed in a zombie state and D2DERR_RECREATE_TARGET will be returned
- // from it when EndDraw is called. In addition an appropriate failure result will
- // be returned from Resize.
- //
+ ///
+ /// Resize the buffer underlying the render target. This operation might fail if
+ /// there is insufficient video memory or system memory, or if the render target is
+ /// resized beyond the maximum bitmap size. If the method fails, the render target
+ /// will be placed in a zombie state and D2DERR_RECREATE_TARGET will be returned
+ /// from it when EndDraw is called. In addition an appropriate failure result will
+ /// be returned from Resize.
+ ///
STDMETHOD(Resize)(
_In_ CONST D2D1_SIZE_U *pixelSize
) PURE;
@@ -3692,13 +3250,9 @@ interface DX_DECLARE_INTERFACE("2cd90698-12e2-11dc-9fed-001143a055f9") ID2D1Hwnd
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GdiInteropRenderTarget
-//
-//------------------------------------------------------------------------------
+///
+/// Provides access to an device context that can accept GDI drawing commands.
+///
interface DX_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1GdiInteropRenderTarget : public IUnknown
{
@@ -3720,13 +3274,9 @@ interface DX_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1GdiI
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DCRenderTarget
-//
-//------------------------------------------------------------------------------
+///
+/// Issues drawing commands to a GDI device context.
+///
interface DX_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DCRenderTarget : public ID2D1RenderTarget
{
@@ -3737,31 +3287,22 @@ interface DX_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DCRe
}; // interface ID2D1DCRenderTarget
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Factory
-//
-// Synopsis:
-// The root factory interface for all of D2D's objects.
-//
-//------------------------------------------------------------------------------
+///
+/// The root factory interface for all of D2D's objects.
+///
interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Factory : public IUnknown
{
-
- //
- // Cause the factory to refresh any system metrics that it might have been snapped
- // on factory creation.
- //
+ ///
+ /// Cause the factory to refresh any system metrics that it might have been snapped
+ /// on factory creation.
+ ///
STDMETHOD(ReloadSystemMetrics)(
) PURE;
-
- //
- // Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetrics.
- //
+ ///
+ /// Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetrics.
+ ///
STDMETHOD_(void, GetDesktopDpi)(
_Out_ FLOAT *dpiX,
_Out_ FLOAT *dpiY
@@ -3769,113 +3310,105 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
STDMETHOD(CreateRectangleGeometry)(
_In_ CONST D2D1_RECT_F *rectangle,
- _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
+ _COM_Outptr_ ID2D1RectangleGeometry **rectangleGeometry
) PURE;
STDMETHOD(CreateRoundedRectangleGeometry)(
_In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
- _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
+ _COM_Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
) PURE;
STDMETHOD(CreateEllipseGeometry)(
_In_ CONST D2D1_ELLIPSE *ellipse,
- _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
+ _COM_Outptr_ ID2D1EllipseGeometry **ellipseGeometry
) PURE;
-
- //
- // Create a geometry which holds other geometries.
- //
+ ///
+ /// Create a geometry which holds other geometries.
+ ///
STDMETHOD(CreateGeometryGroup)(
D2D1_FILL_MODE fillMode,
_In_reads_(geometriesCount) ID2D1Geometry **geometries,
UINT32 geometriesCount,
- _Outptr_ ID2D1GeometryGroup **geometryGroup
+ _COM_Outptr_ ID2D1GeometryGroup **geometryGroup
) PURE;
STDMETHOD(CreateTransformedGeometry)(
_In_ ID2D1Geometry *sourceGeometry,
_In_ CONST D2D1_MATRIX_3X2_F *transform,
- _Outptr_ ID2D1TransformedGeometry **transformedGeometry
+ _COM_Outptr_ ID2D1TransformedGeometry **transformedGeometry
) PURE;
-
- //
- // Returns an initially empty path geometry interface. A geometry sink is created
- // off the interface to populate it.
- //
+ ///
+ /// Returns an initially empty path geometry interface. A geometry sink is created
+ /// off the interface to populate it.
+ ///
STDMETHOD(CreatePathGeometry)(
- _Outptr_ ID2D1PathGeometry **pathGeometry
+ _COM_Outptr_ ID2D1PathGeometry **pathGeometry
) PURE;
-
- //
- // Allows a non-default stroke style to be specified for a given geometry at draw
- // time.
- //
+ ///
+ /// Allows a non-default stroke style to be specified for a given geometry at draw
+ /// time.
+ ///
STDMETHOD(CreateStrokeStyle)(
_In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
_In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle **strokeStyle
+ _COM_Outptr_ ID2D1StrokeStyle **strokeStyle
) PURE;
-
- //
- // Creates a new drawing state block, this can be used in subsequent
- // SaveDrawingState and RestoreDrawingState operations on the render target.
- //
+ ///
+ /// Creates a new drawing state block, this can be used in subsequent
+ /// SaveDrawingState and RestoreDrawingState operations on the render target.
+ ///
STDMETHOD(CreateDrawingStateBlock)(
_In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
_In_opt_ IDWriteRenderingParams *textRenderingParams,
- _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
) PURE;
-
- //
- // Creates a render target which is a source of bitmaps.
- //
+ ///
+ /// Creates a render target which is a source of bitmaps.
+ ///
STDMETHOD(CreateWicBitmapRenderTarget)(
_In_ IWICBitmap *target,
_In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
+ _COM_Outptr_ ID2D1RenderTarget **renderTarget
) PURE;
-
- //
- // Creates a render target that appears on the display.
- //
+ ///
+ /// Creates a render target that appears on the display.
+ ///
STDMETHOD(CreateHwndRenderTarget)(
_In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
_In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties,
- _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
+ _COM_Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
) PURE;
-
- //
- // Creates a render target that draws to a DXGI Surface. The device that owns the
- // surface is used for rendering.
- //
+ ///
+ /// Creates a render target that draws to a DXGI Surface. The device that owns the
+ /// surface is used for rendering.
+ ///
STDMETHOD(CreateDxgiSurfaceRenderTarget)(
_In_ IDXGISurface *dxgiSurface,
_In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
+ _COM_Outptr_ ID2D1RenderTarget **renderTarget
) 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)(
_In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
+ _COM_Outptr_ ID2D1DCRenderTarget **dcRenderTarget
) PURE;
COM_DECLSPEC_NOTHROW
HRESULT
CreateRectangleGeometry(
CONST D2D1_RECT_F &rectangle,
- _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
+ _COM_Outptr_ ID2D1RectangleGeometry **rectangleGeometry
)
{
return CreateRectangleGeometry(&rectangle, rectangleGeometry);
@@ -3885,7 +3418,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
HRESULT
CreateRoundedRectangleGeometry(
CONST D2D1_ROUNDED_RECT &roundedRectangle,
- _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
+ _COM_Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
)
{
return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangleGeometry);
@@ -3895,7 +3428,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
HRESULT
CreateEllipseGeometry(
CONST D2D1_ELLIPSE &ellipse,
- _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
+ _COM_Outptr_ ID2D1EllipseGeometry **ellipseGeometry
)
{
return CreateEllipseGeometry(&ellipse, ellipseGeometry);
@@ -3906,7 +3439,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
CreateTransformedGeometry(
_In_ ID2D1Geometry *sourceGeometry,
CONST D2D1_MATRIX_3X2_F &transform,
- _Outptr_ ID2D1TransformedGeometry **transformedGeometry
+ _COM_Outptr_ ID2D1TransformedGeometry **transformedGeometry
)
{
return CreateTransformedGeometry(sourceGeometry, &transform, transformedGeometry);
@@ -3918,7 +3451,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties,
_In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle **strokeStyle
+ _COM_Outptr_ ID2D1StrokeStyle **strokeStyle
)
{
return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle);
@@ -3928,7 +3461,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
HRESULT
CreateDrawingStateBlock(
CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription,
- _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
)
{
return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock);
@@ -3937,7 +3470,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
COM_DECLSPEC_NOTHROW
HRESULT
CreateDrawingStateBlock(
- _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
)
{
return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
@@ -3948,7 +3481,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
CreateWicBitmapRenderTarget(
_In_ IWICBitmap *target,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
+ _COM_Outptr_ ID2D1RenderTarget **renderTarget
)
{
return CreateWicBitmapRenderTarget(target, &renderTargetProperties, renderTarget);
@@ -3959,7 +3492,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
CreateHwndRenderTarget(
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties,
- _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
+ _COM_Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
)
{
return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTargetProperties, hwndRenderTarget);
@@ -3970,7 +3503,7 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact
CreateDxgiSurfaceRenderTarget(
_In_ IDXGISurface *dxgiSurface,
CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
+ _COM_Outptr_ ID2D1RenderTarget **renderTarget
)
{
return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetProperties, renderTarget);
@@ -4042,2616 +3575,56 @@ EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget;
typedef interface ID2D1Resource ID2D1Resource;
-typedef struct ID2D1ResourceVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD_(void, GetFactory)(
- ID2D1Resource *This,
- _Outptr_ ID2D1Factory **factory
- ) PURE;
-} ID2D1ResourceVtbl;
-
-interface ID2D1Resource
-{
- CONST struct ID2D1ResourceVtbl *lpVtbl;
-};
-
-
-#define ID2D1Resource_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Resource_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1Resource_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1Resource_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 struct ID2D1BitmapVtbl
-{
-
- ID2D1ImageVtbl Base;
-
-
- STDMETHOD_(D2D1_SIZE_F, GetSize)(
- ID2D1Bitmap *This
- ) PURE;
-
- STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
- ID2D1Bitmap *This
- ) PURE;
-
- STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
- ID2D1Bitmap *This
- ) PURE;
-
- STDMETHOD_(void, GetDpi)(
- ID2D1Bitmap *This,
- _Out_ FLOAT *dpiX,
- _Out_ FLOAT *dpiY
- ) PURE;
-
- STDMETHOD(CopyFromBitmap)(
- ID2D1Bitmap *This,
- _In_opt_ CONST D2D1_POINT_2U *destPoint,
- _In_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_RECT_U *srcRect
- ) PURE;
-
- STDMETHOD(CopyFromRenderTarget)(
- ID2D1Bitmap *This,
- _In_opt_ CONST D2D1_POINT_2U *destPoint,
- _In_ ID2D1RenderTarget *renderTarget,
- _In_opt_ CONST D2D1_RECT_U *srcRect
- ) PURE;
-
- STDMETHOD(CopyFromMemory)(
- ID2D1Bitmap *This,
- _In_opt_ CONST D2D1_RECT_U *dstRect,
- _In_ CONST void *srcData,
- UINT32 pitch
- ) PURE;
-} ID2D1BitmapVtbl;
-
-interface ID2D1Bitmap
-{
- CONST struct ID2D1BitmapVtbl *lpVtbl;
-};
-
-
-#define ID2D1Bitmap_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Bitmap_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Bitmap_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Bitmap_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Bitmap_GetSize(This) \
- ((This)->lpVtbl->GetSize(This))
-
-#define ID2D1Bitmap_GetPixelSize(This) \
- ((This)->lpVtbl->GetPixelSize(This))
-
-#define ID2D1Bitmap_GetPixelFormat(This) \
- ((This)->lpVtbl->GetPixelFormat(This))
-
-#define ID2D1Bitmap_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->GetDpi(This, dpiX, dpiY))
-
-#define ID2D1Bitmap_CopyFromBitmap(This, destPoint, bitmap, srcRect) \
- ((This)->lpVtbl->CopyFromBitmap(This, destPoint, bitmap, srcRect))
-
-#define ID2D1Bitmap_CopyFromRenderTarget(This, destPoint, renderTarget, srcRect) \
- ((This)->lpVtbl->CopyFromRenderTarget(This, destPoint, renderTarget, srcRect))
-
-#define ID2D1Bitmap_CopyFromMemory(This, dstRect, srcData, pitch) \
- ((This)->lpVtbl->CopyFromMemory(This, dstRect, srcData, pitch))
-
typedef interface ID2D1GradientStopCollection ID2D1GradientStopCollection;
-typedef struct ID2D1GradientStopCollectionVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(UINT32, GetGradientStopCount)(
- ID2D1GradientStopCollection *This
- ) PURE;
-
- STDMETHOD_(void, GetGradientStops)(
- ID2D1GradientStopCollection *This,
- _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
- UINT32 gradientStopsCount
- ) PURE;
-
- STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(
- ID2D1GradientStopCollection *This
- ) PURE;
-
- STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(
- ID2D1GradientStopCollection *This
- ) PURE;
-} ID2D1GradientStopCollectionVtbl;
-
-interface ID2D1GradientStopCollection
-{
- CONST struct ID2D1GradientStopCollectionVtbl *lpVtbl;
-};
-
-
-#define ID2D1GradientStopCollection_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GradientStopCollection_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GradientStopCollection_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GradientStopCollection_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GradientStopCollection_GetGradientStopCount(This) \
- ((This)->lpVtbl->GetGradientStopCount(This))
-
-#define ID2D1GradientStopCollection_GetGradientStops(This, gradientStops, gradientStopsCount) \
- ((This)->lpVtbl->GetGradientStops(This, gradientStops, gradientStopsCount))
-
-#define ID2D1GradientStopCollection_GetColorInterpolationGamma(This) \
- ((This)->lpVtbl->GetColorInterpolationGamma(This))
-
-#define ID2D1GradientStopCollection_GetExtendMode(This) \
- ((This)->lpVtbl->GetExtendMode(This))
-
typedef interface ID2D1Brush ID2D1Brush;
-typedef struct ID2D1BrushVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(void, SetOpacity)(
- ID2D1Brush *This,
- FLOAT opacity
- ) PURE;
-
- STDMETHOD_(void, SetTransform)(
- ID2D1Brush *This,
- _In_ CONST D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD_(FLOAT, GetOpacity)(
- ID2D1Brush *This
- ) PURE;
-
- STDMETHOD_(void, GetTransform)(
- ID2D1Brush *This,
- _Out_ D2D1_MATRIX_3X2_F *transform
- ) PURE;
-} ID2D1BrushVtbl;
-
-interface ID2D1Brush
-{
- CONST struct ID2D1BrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1Brush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Brush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Brush_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Brush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Brush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->SetOpacity(This, opacity))
-
-#define ID2D1Brush_SetTransform(This, transform) \
- ((This)->lpVtbl->SetTransform(This, transform))
-
-#define ID2D1Brush_GetOpacity(This) \
- ((This)->lpVtbl->GetOpacity(This))
-
-#define ID2D1Brush_GetTransform(This, transform) \
- ((This)->lpVtbl->GetTransform(This, transform))
-
typedef interface ID2D1BitmapBrush ID2D1BitmapBrush;
-typedef struct ID2D1BitmapBrushVtbl
-{
-
- ID2D1BrushVtbl Base;
-
-
- STDMETHOD_(void, SetExtendModeX)(
- ID2D1BitmapBrush *This,
- D2D1_EXTEND_MODE extendModeX
- ) PURE;
-
- STDMETHOD_(void, SetExtendModeY)(
- ID2D1BitmapBrush *This,
- D2D1_EXTEND_MODE extendModeY
- ) PURE;
-
- STDMETHOD_(void, SetInterpolationMode)(
- ID2D1BitmapBrush *This,
- D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
- ) PURE;
-
- STDMETHOD_(void, SetBitmap)(
- ID2D1BitmapBrush *This,
- _In_opt_ ID2D1Bitmap *bitmap
- ) PURE;
-
- STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
- ID2D1BitmapBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
- ID2D1BitmapBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(
- ID2D1BitmapBrush *This
- ) PURE;
-
- STDMETHOD_(void, GetBitmap)(
- ID2D1BitmapBrush *This,
- _Outptr_ ID2D1Bitmap **bitmap
- ) PURE;
-} ID2D1BitmapBrushVtbl;
-
-interface ID2D1BitmapBrush
-{
- CONST struct ID2D1BitmapBrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1BitmapBrush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1BitmapBrush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1BitmapBrush_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1BitmapBrush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1BitmapBrush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1BitmapBrush_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1BitmapBrush_GetOpacity(This) \
- ((This)->lpVtbl->Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1BitmapBrush_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1BitmapBrush_SetExtendModeX(This, extendModeX) \
- ((This)->lpVtbl->SetExtendModeX(This, extendModeX))
-
-#define ID2D1BitmapBrush_SetExtendModeY(This, extendModeY) \
- ((This)->lpVtbl->SetExtendModeY(This, extendModeY))
-
-#define ID2D1BitmapBrush_SetInterpolationMode(This, interpolationMode) \
- ((This)->lpVtbl->SetInterpolationMode(This, interpolationMode))
-
-#define ID2D1BitmapBrush_SetBitmap(This, bitmap) \
- ((This)->lpVtbl->SetBitmap(This, bitmap))
-
-#define ID2D1BitmapBrush_GetExtendModeX(This) \
- ((This)->lpVtbl->GetExtendModeX(This))
-
-#define ID2D1BitmapBrush_GetExtendModeY(This) \
- ((This)->lpVtbl->GetExtendModeY(This))
-
-#define ID2D1BitmapBrush_GetInterpolationMode(This) \
- ((This)->lpVtbl->GetInterpolationMode(This))
-
-#define ID2D1BitmapBrush_GetBitmap(This, bitmap) \
- ((This)->lpVtbl->GetBitmap(This, bitmap))
-
typedef interface ID2D1SolidColorBrush ID2D1SolidColorBrush;
-typedef struct ID2D1SolidColorBrushVtbl
-{
-
- ID2D1BrushVtbl Base;
-
-
- STDMETHOD_(void, SetColor)(
- ID2D1SolidColorBrush *This,
- _In_ CONST D2D1_COLOR_F *color
- ) PURE;
-
- STDMETHOD_(D2D1_COLOR_F, GetColor)(
- ID2D1SolidColorBrush *This
- ) PURE;
-} ID2D1SolidColorBrushVtbl;
-
-interface ID2D1SolidColorBrush
-{
- CONST struct ID2D1SolidColorBrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1SolidColorBrush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1SolidColorBrush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1SolidColorBrush_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1SolidColorBrush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1SolidColorBrush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1SolidColorBrush_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1SolidColorBrush_GetOpacity(This) \
- ((This)->lpVtbl->Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1SolidColorBrush_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1SolidColorBrush_SetColor(This, color) \
- ((This)->lpVtbl->SetColor(This, color))
-
-#define ID2D1SolidColorBrush_GetColor(This) \
- ((This)->lpVtbl->GetColor(This))
-
typedef interface ID2D1LinearGradientBrush ID2D1LinearGradientBrush;
-typedef struct ID2D1LinearGradientBrushVtbl
-{
-
- ID2D1BrushVtbl Base;
-
-
- STDMETHOD_(void, SetStartPoint)(
- ID2D1LinearGradientBrush *This,
- D2D1_POINT_2F startPoint
- ) PURE;
-
- STDMETHOD_(void, SetEndPoint)(
- ID2D1LinearGradientBrush *This,
- D2D1_POINT_2F endPoint
- ) PURE;
-
- STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(
- ID2D1LinearGradientBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(
- ID2D1LinearGradientBrush *This
- ) PURE;
-
- STDMETHOD_(void, GetGradientStopCollection)(
- ID2D1LinearGradientBrush *This,
- _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
- ) PURE;
-} ID2D1LinearGradientBrushVtbl;
-
-interface ID2D1LinearGradientBrush
-{
- CONST struct ID2D1LinearGradientBrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1LinearGradientBrush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1LinearGradientBrush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1LinearGradientBrush_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1LinearGradientBrush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1LinearGradientBrush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1LinearGradientBrush_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1LinearGradientBrush_GetOpacity(This) \
- ((This)->lpVtbl->Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1LinearGradientBrush_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1LinearGradientBrush_SetStartPoint(This, startPoint) \
- ((This)->lpVtbl->SetStartPoint(This, startPoint))
-
-#define ID2D1LinearGradientBrush_SetEndPoint(This, endPoint) \
- ((This)->lpVtbl->SetEndPoint(This, endPoint))
-
-#define ID2D1LinearGradientBrush_GetStartPoint(This) \
- ((This)->lpVtbl->GetStartPoint(This))
-
-#define ID2D1LinearGradientBrush_GetEndPoint(This) \
- ((This)->lpVtbl->GetEndPoint(This))
-
-#define ID2D1LinearGradientBrush_GetGradientStopCollection(This, gradientStopCollection) \
- ((This)->lpVtbl->GetGradientStopCollection(This, gradientStopCollection))
-
typedef interface ID2D1RadialGradientBrush ID2D1RadialGradientBrush;
-typedef struct ID2D1RadialGradientBrushVtbl
-{
-
- ID2D1BrushVtbl Base;
-
-
- STDMETHOD_(void, SetCenter)(
- ID2D1RadialGradientBrush *This,
- D2D1_POINT_2F center
- ) PURE;
-
- STDMETHOD_(void, SetGradientOriginOffset)(
- ID2D1RadialGradientBrush *This,
- D2D1_POINT_2F gradientOriginOffset
- ) PURE;
-
- STDMETHOD_(void, SetRadiusX)(
- ID2D1RadialGradientBrush *This,
- FLOAT radiusX
- ) PURE;
-
- STDMETHOD_(void, SetRadiusY)(
- ID2D1RadialGradientBrush *This,
- FLOAT radiusY
- ) PURE;
-
- STDMETHOD_(D2D1_POINT_2F, GetCenter)(
- ID2D1RadialGradientBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(
- ID2D1RadialGradientBrush *This
- ) PURE;
-
- STDMETHOD_(FLOAT, GetRadiusX)(
- ID2D1RadialGradientBrush *This
- ) PURE;
-
- STDMETHOD_(FLOAT, GetRadiusY)(
- ID2D1RadialGradientBrush *This
- ) PURE;
-
- STDMETHOD_(void, GetGradientStopCollection)(
- ID2D1RadialGradientBrush *This,
- _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
- ) PURE;
-} ID2D1RadialGradientBrushVtbl;
-
-interface ID2D1RadialGradientBrush
-{
- CONST struct ID2D1RadialGradientBrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1RadialGradientBrush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1RadialGradientBrush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1RadialGradientBrush_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1RadialGradientBrush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1RadialGradientBrush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1RadialGradientBrush_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1RadialGradientBrush_GetOpacity(This) \
- ((This)->lpVtbl->Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1RadialGradientBrush_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1RadialGradientBrush_SetCenter(This, center) \
- ((This)->lpVtbl->SetCenter(This, center))
-
-#define ID2D1RadialGradientBrush_SetGradientOriginOffset(This, gradientOriginOffset) \
- ((This)->lpVtbl->SetGradientOriginOffset(This, gradientOriginOffset))
-
-#define ID2D1RadialGradientBrush_SetRadiusX(This, radiusX) \
- ((This)->lpVtbl->SetRadiusX(This, radiusX))
-
-#define ID2D1RadialGradientBrush_SetRadiusY(This, radiusY) \
- ((This)->lpVtbl->SetRadiusY(This, radiusY))
-
-#define ID2D1RadialGradientBrush_GetCenter(This) \
- ((This)->lpVtbl->GetCenter(This))
-
-#define ID2D1RadialGradientBrush_GetGradientOriginOffset(This) \
- ((This)->lpVtbl->GetGradientOriginOffset(This))
-
-#define ID2D1RadialGradientBrush_GetRadiusX(This) \
- ((This)->lpVtbl->GetRadiusX(This))
-
-#define ID2D1RadialGradientBrush_GetRadiusY(This) \
- ((This)->lpVtbl->GetRadiusY(This))
-
-#define ID2D1RadialGradientBrush_GetGradientStopCollection(This, gradientStopCollection) \
- ((This)->lpVtbl->GetGradientStopCollection(This, gradientStopCollection))
-
typedef interface ID2D1StrokeStyle ID2D1StrokeStyle;
-typedef struct ID2D1StrokeStyleVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(FLOAT, GetMiterLimit)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(D2D1_LINE_JOIN, GetLineJoin)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(FLOAT, GetDashOffset)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(UINT32, GetDashesCount)(
- ID2D1StrokeStyle *This
- ) PURE;
-
- STDMETHOD_(void, GetDashes)(
- ID2D1StrokeStyle *This,
- _Out_writes_(dashesCount) FLOAT *dashes,
- UINT32 dashesCount
- ) PURE;
-} ID2D1StrokeStyleVtbl;
-
-interface ID2D1StrokeStyle
-{
- CONST struct ID2D1StrokeStyleVtbl *lpVtbl;
-};
-
-
-#define ID2D1StrokeStyle_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1StrokeStyle_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1StrokeStyle_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1StrokeStyle_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1StrokeStyle_GetStartCap(This) \
- ((This)->lpVtbl->GetStartCap(This))
-
-#define ID2D1StrokeStyle_GetEndCap(This) \
- ((This)->lpVtbl->GetEndCap(This))
-
-#define ID2D1StrokeStyle_GetDashCap(This) \
- ((This)->lpVtbl->GetDashCap(This))
-
-#define ID2D1StrokeStyle_GetMiterLimit(This) \
- ((This)->lpVtbl->GetMiterLimit(This))
-
-#define ID2D1StrokeStyle_GetLineJoin(This) \
- ((This)->lpVtbl->GetLineJoin(This))
-
-#define ID2D1StrokeStyle_GetDashOffset(This) \
- ((This)->lpVtbl->GetDashOffset(This))
-
-#define ID2D1StrokeStyle_GetDashStyle(This) \
- ((This)->lpVtbl->GetDashStyle(This))
-
-#define ID2D1StrokeStyle_GetDashesCount(This) \
- ((This)->lpVtbl->GetDashesCount(This))
-
-#define ID2D1StrokeStyle_GetDashes(This, dashes, dashesCount) \
- ((This)->lpVtbl->GetDashes(This, dashes, dashesCount))
-
typedef interface ID2D1Geometry ID2D1Geometry;
-typedef struct ID2D1GeometryVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD(GetBounds)(
- ID2D1Geometry *This,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-
- STDMETHOD(GetWidenedBounds)(
- ID2D1Geometry *This,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-
- STDMETHOD(StrokeContainsPoint)(
- ID2D1Geometry *This,
- D2D1_POINT_2F point,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ BOOL *contains
- ) PURE;
-
- STDMETHOD(FillContainsPoint)(
- ID2D1Geometry *This,
- D2D1_POINT_2F point,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ BOOL *contains
- ) PURE;
-
- STDMETHOD(CompareWithGeometry)(
- ID2D1Geometry *This,
- _In_ ID2D1Geometry *inputGeometry,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
- FLOAT flatteningTolerance,
- _Out_ D2D1_GEOMETRY_RELATION *relation
- ) PURE;
-
- STDMETHOD(Simplify)(
- ID2D1Geometry *This,
- D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1SimplifiedGeometrySink *geometrySink
- ) PURE;
-
- STDMETHOD(Tessellate)(
- ID2D1Geometry *This,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1TessellationSink *tessellationSink
- ) PURE;
-
- STDMETHOD(CombineWithGeometry)(
- ID2D1Geometry *This,
- _In_ ID2D1Geometry *inputGeometry,
- D2D1_COMBINE_MODE combineMode,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1SimplifiedGeometrySink *geometrySink
- ) PURE;
-
- STDMETHOD(Outline)(
- ID2D1Geometry *This,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1SimplifiedGeometrySink *geometrySink
- ) PURE;
-
- STDMETHOD(ComputeArea)(
- ID2D1Geometry *This,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ FLOAT *area
- ) PURE;
-
- STDMETHOD(ComputeLength)(
- ID2D1Geometry *This,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ FLOAT *length
- ) PURE;
-
- STDMETHOD(ComputePointAtLength)(
- ID2D1Geometry *This,
- FLOAT length,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_opt_ D2D1_POINT_2F *point,
- _Out_opt_ D2D1_POINT_2F *unitTangentVector
- ) PURE;
-
- STDMETHOD(Widen)(
- ID2D1Geometry *This,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1SimplifiedGeometrySink *geometrySink
- ) PURE;
-} ID2D1GeometryVtbl;
-
-interface ID2D1Geometry
-{
- CONST struct ID2D1GeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1Geometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Geometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Geometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Geometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Geometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->GetBounds(This, worldTransform, bounds))
-
-#define ID2D1Geometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1Geometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1Geometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1Geometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1Geometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1Geometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Tessellate(This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1Geometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1Geometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Outline(This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1Geometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->ComputeArea(This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1Geometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->ComputeLength(This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1Geometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1Geometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
typedef interface ID2D1RectangleGeometry ID2D1RectangleGeometry;
-typedef struct ID2D1RectangleGeometryVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD_(void, GetRect)(
- ID2D1RectangleGeometry *This,
- _Out_ D2D1_RECT_F *rect
- ) PURE;
-} ID2D1RectangleGeometryVtbl;
-
-interface ID2D1RectangleGeometry
-{
- CONST struct ID2D1RectangleGeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1RectangleGeometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1RectangleGeometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1RectangleGeometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1RectangleGeometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1RectangleGeometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1RectangleGeometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1RectangleGeometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1RectangleGeometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1RectangleGeometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1RectangleGeometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RectangleGeometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1RectangleGeometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RectangleGeometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RectangleGeometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1RectangleGeometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1RectangleGeometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1RectangleGeometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RectangleGeometry_GetRect(This, rect) \
- ((This)->lpVtbl->GetRect(This, rect))
-
typedef interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry;
-typedef struct ID2D1RoundedRectangleGeometryVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD_(void, GetRoundedRect)(
- ID2D1RoundedRectangleGeometry *This,
- _Out_ D2D1_ROUNDED_RECT *roundedRect
- ) PURE;
-} ID2D1RoundedRectangleGeometryVtbl;
-
-interface ID2D1RoundedRectangleGeometry
-{
- CONST struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1RoundedRectangleGeometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1RoundedRectangleGeometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1RoundedRectangleGeometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1RoundedRectangleGeometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1RoundedRectangleGeometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1RoundedRectangleGeometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1RoundedRectangleGeometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1RoundedRectangleGeometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1RoundedRectangleGeometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1RoundedRectangleGeometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RoundedRectangleGeometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1RoundedRectangleGeometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RoundedRectangleGeometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RoundedRectangleGeometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1RoundedRectangleGeometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1RoundedRectangleGeometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1RoundedRectangleGeometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1RoundedRectangleGeometry_GetRoundedRect(This, roundedRect) \
- ((This)->lpVtbl->GetRoundedRect(This, roundedRect))
-
typedef interface ID2D1EllipseGeometry ID2D1EllipseGeometry;
-typedef struct ID2D1EllipseGeometryVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD_(void, GetEllipse)(
- ID2D1EllipseGeometry *This,
- _Out_ D2D1_ELLIPSE *ellipse
- ) PURE;
-} ID2D1EllipseGeometryVtbl;
-
-interface ID2D1EllipseGeometry
-{
- CONST struct ID2D1EllipseGeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1EllipseGeometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1EllipseGeometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1EllipseGeometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1EllipseGeometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1EllipseGeometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1EllipseGeometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1EllipseGeometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1EllipseGeometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1EllipseGeometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1EllipseGeometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1EllipseGeometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1EllipseGeometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1EllipseGeometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1EllipseGeometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1EllipseGeometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1EllipseGeometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1EllipseGeometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1EllipseGeometry_GetEllipse(This, ellipse) \
- ((This)->lpVtbl->GetEllipse(This, ellipse))
-
typedef interface ID2D1GeometryGroup ID2D1GeometryGroup;
-typedef struct ID2D1GeometryGroupVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(
- ID2D1GeometryGroup *This
- ) PURE;
-
- STDMETHOD_(UINT32, GetSourceGeometryCount)(
- ID2D1GeometryGroup *This
- ) PURE;
-
- STDMETHOD_(void, GetSourceGeometries)(
- ID2D1GeometryGroup *This,
- _Out_writes_(geometriesCount) ID2D1Geometry **geometries,
- UINT32 geometriesCount
- ) PURE;
-} ID2D1GeometryGroupVtbl;
-
-interface ID2D1GeometryGroup
-{
- CONST struct ID2D1GeometryGroupVtbl *lpVtbl;
-};
-
-
-#define ID2D1GeometryGroup_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GeometryGroup_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GeometryGroup_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GeometryGroup_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GeometryGroup_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1GeometryGroup_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1GeometryGroup_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1GeometryGroup_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1GeometryGroup_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1GeometryGroup_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1GeometryGroup_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1GeometryGroup_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1GeometryGroup_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1GeometryGroup_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1GeometryGroup_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1GeometryGroup_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1GeometryGroup_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1GeometryGroup_GetFillMode(This) \
- ((This)->lpVtbl->GetFillMode(This))
-
-#define ID2D1GeometryGroup_GetSourceGeometryCount(This) \
- ((This)->lpVtbl->GetSourceGeometryCount(This))
-
-#define ID2D1GeometryGroup_GetSourceGeometries(This, geometries, geometriesCount) \
- ((This)->lpVtbl->GetSourceGeometries(This, geometries, geometriesCount))
-
typedef interface ID2D1TransformedGeometry ID2D1TransformedGeometry;
-typedef struct ID2D1TransformedGeometryVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD_(void, GetSourceGeometry)(
- ID2D1TransformedGeometry *This,
- _Outptr_ ID2D1Geometry **sourceGeometry
- ) PURE;
-
- STDMETHOD_(void, GetTransform)(
- ID2D1TransformedGeometry *This,
- _Out_ D2D1_MATRIX_3X2_F *transform
- ) PURE;
-} ID2D1TransformedGeometryVtbl;
-
-interface ID2D1TransformedGeometry
-{
- CONST struct ID2D1TransformedGeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1TransformedGeometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1TransformedGeometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1TransformedGeometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1TransformedGeometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1TransformedGeometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1TransformedGeometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1TransformedGeometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1TransformedGeometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1TransformedGeometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1TransformedGeometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1TransformedGeometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1TransformedGeometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1TransformedGeometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1TransformedGeometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1TransformedGeometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1TransformedGeometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1TransformedGeometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1TransformedGeometry_GetSourceGeometry(This, sourceGeometry) \
- ((This)->lpVtbl->GetSourceGeometry(This, sourceGeometry))
-
-#define ID2D1TransformedGeometry_GetTransform(This, transform) \
- ((This)->lpVtbl->GetTransform(This, transform))
-
typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink;
-typedef struct ID2D1SimplifiedGeometrySinkVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD_(void, SetFillMode)(
- ID2D1SimplifiedGeometrySink *This,
- D2D1_FILL_MODE fillMode
- ) PURE;
-
- STDMETHOD_(void, SetSegmentFlags)(
- ID2D1SimplifiedGeometrySink *This,
- D2D1_PATH_SEGMENT vertexFlags
- ) PURE;
-
- STDMETHOD_(void, BeginFigure)(
- ID2D1SimplifiedGeometrySink *This,
- D2D1_POINT_2F startPoint,
- D2D1_FIGURE_BEGIN figureBegin
- ) PURE;
-
- STDMETHOD_(void, AddLines)(
- ID2D1SimplifiedGeometrySink *This,
- _In_reads_(pointsCount) CONST D2D1_POINT_2F *points,
- UINT32 pointsCount
- ) PURE;
-
- STDMETHOD_(void, AddBeziers)(
- ID2D1SimplifiedGeometrySink *This,
- _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers,
- UINT32 beziersCount
- ) PURE;
-
- STDMETHOD_(void, EndFigure)(
- ID2D1SimplifiedGeometrySink *This,
- D2D1_FIGURE_END figureEnd
- ) PURE;
-
- STDMETHOD(Close)(
- ID2D1SimplifiedGeometrySink *This
- ) PURE;
-} ID2D1SimplifiedGeometrySinkVtbl;
-
-interface ID2D1SimplifiedGeometrySink
-{
- CONST struct ID2D1SimplifiedGeometrySinkVtbl *lpVtbl;
-};
-
-
-#define ID2D1SimplifiedGeometrySink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1SimplifiedGeometrySink_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1SimplifiedGeometrySink_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1SimplifiedGeometrySink_SetFillMode(This, fillMode) \
- ((This)->lpVtbl->SetFillMode(This, fillMode))
-
-#define ID2D1SimplifiedGeometrySink_SetSegmentFlags(This, vertexFlags) \
- ((This)->lpVtbl->SetSegmentFlags(This, vertexFlags))
-
-#define ID2D1SimplifiedGeometrySink_BeginFigure(This, startPoint, figureBegin) \
- ((This)->lpVtbl->BeginFigure(This, startPoint, figureBegin))
-
-#define ID2D1SimplifiedGeometrySink_AddLines(This, points, pointsCount) \
- ((This)->lpVtbl->AddLines(This, points, pointsCount))
-
-#define ID2D1SimplifiedGeometrySink_AddBeziers(This, beziers, beziersCount) \
- ((This)->lpVtbl->AddBeziers(This, beziers, beziersCount))
-
-#define ID2D1SimplifiedGeometrySink_EndFigure(This, figureEnd) \
- ((This)->lpVtbl->EndFigure(This, figureEnd))
-
-#define ID2D1SimplifiedGeometrySink_Close(This) \
- ((This)->lpVtbl->Close(This))
-
typedef interface ID2D1GeometrySink ID2D1GeometrySink;
-typedef struct ID2D1GeometrySinkVtbl
-{
-
- ID2D1SimplifiedGeometrySinkVtbl Base;
-
-
- STDMETHOD_(void, AddLine)(
- ID2D1GeometrySink *This,
- D2D1_POINT_2F point
- ) PURE;
-
- STDMETHOD_(void, AddBezier)(
- ID2D1GeometrySink *This,
- _In_ CONST D2D1_BEZIER_SEGMENT *bezier
- ) PURE;
-
- STDMETHOD_(void, AddQuadraticBezier)(
- ID2D1GeometrySink *This,
- _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
- ) PURE;
-
- STDMETHOD_(void, AddQuadraticBeziers)(
- ID2D1GeometrySink *This,
- _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
- UINT32 beziersCount
- ) PURE;
-
- STDMETHOD_(void, AddArc)(
- ID2D1GeometrySink *This,
- _In_ CONST D2D1_ARC_SEGMENT *arc
- ) PURE;
-} ID2D1GeometrySinkVtbl;
-
-interface ID2D1GeometrySink
-{
- CONST struct ID2D1GeometrySinkVtbl *lpVtbl;
-};
-
-
-#define ID2D1GeometrySink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GeometrySink_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GeometrySink_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GeometrySink_SetFillMode(This, fillMode) \
- ((This)->lpVtbl->Base.SetFillMode((ID2D1SimplifiedGeometrySink *)This, fillMode))
-
-#define ID2D1GeometrySink_SetSegmentFlags(This, vertexFlags) \
- ((This)->lpVtbl->Base.SetSegmentFlags((ID2D1SimplifiedGeometrySink *)This, vertexFlags))
-
-#define ID2D1GeometrySink_BeginFigure(This, startPoint, figureBegin) \
- ((This)->lpVtbl->Base.BeginFigure((ID2D1SimplifiedGeometrySink *)This, startPoint, figureBegin))
-
-#define ID2D1GeometrySink_AddLines(This, points, pointsCount) \
- ((This)->lpVtbl->Base.AddLines((ID2D1SimplifiedGeometrySink *)This, points, pointsCount))
-
-#define ID2D1GeometrySink_AddBeziers(This, beziers, beziersCount) \
- ((This)->lpVtbl->Base.AddBeziers((ID2D1SimplifiedGeometrySink *)This, beziers, beziersCount))
-
-#define ID2D1GeometrySink_EndFigure(This, figureEnd) \
- ((This)->lpVtbl->Base.EndFigure((ID2D1SimplifiedGeometrySink *)This, figureEnd))
-
-#define ID2D1GeometrySink_Close(This) \
- ((This)->lpVtbl->Base.Close((ID2D1SimplifiedGeometrySink *)This))
-
-#define ID2D1GeometrySink_AddLine(This, point) \
- ((This)->lpVtbl->AddLine(This, point))
-
-#define ID2D1GeometrySink_AddBezier(This, bezier) \
- ((This)->lpVtbl->AddBezier(This, bezier))
-
-#define ID2D1GeometrySink_AddQuadraticBezier(This, bezier) \
- ((This)->lpVtbl->AddQuadraticBezier(This, bezier))
-
-#define ID2D1GeometrySink_AddQuadraticBeziers(This, beziers, beziersCount) \
- ((This)->lpVtbl->AddQuadraticBeziers(This, beziers, beziersCount))
-
-#define ID2D1GeometrySink_AddArc(This, arc) \
- ((This)->lpVtbl->AddArc(This, arc))
-
typedef interface ID2D1TessellationSink ID2D1TessellationSink;
-typedef struct ID2D1TessellationSinkVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD_(void, AddTriangles)(
- ID2D1TessellationSink *This,
- _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles,
- UINT32 trianglesCount
- ) PURE;
-
- STDMETHOD(Close)(
- ID2D1TessellationSink *This
- ) PURE;
-} ID2D1TessellationSinkVtbl;
-
-interface ID2D1TessellationSink
-{
- CONST struct ID2D1TessellationSinkVtbl *lpVtbl;
-};
-
-
-#define ID2D1TessellationSink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1TessellationSink_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1TessellationSink_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1TessellationSink_AddTriangles(This, triangles, trianglesCount) \
- ((This)->lpVtbl->AddTriangles(This, triangles, trianglesCount))
-
-#define ID2D1TessellationSink_Close(This) \
- ((This)->lpVtbl->Close(This))
-
typedef interface ID2D1PathGeometry ID2D1PathGeometry;
-typedef struct ID2D1PathGeometryVtbl
-{
-
- ID2D1GeometryVtbl Base;
-
-
- STDMETHOD(Open)(
- ID2D1PathGeometry *This,
- _Outptr_ ID2D1GeometrySink **geometrySink
- ) PURE;
-
- STDMETHOD(Stream)(
- ID2D1PathGeometry *This,
- _In_ ID2D1GeometrySink *geometrySink
- ) PURE;
-
- STDMETHOD(GetSegmentCount)(
- ID2D1PathGeometry *This,
- _Out_ UINT32 *count
- ) PURE;
-
- STDMETHOD(GetFigureCount)(
- ID2D1PathGeometry *This,
- _Out_ UINT32 *count
- ) PURE;
-} ID2D1PathGeometryVtbl;
-
-interface ID2D1PathGeometry
-{
- CONST struct ID2D1PathGeometryVtbl *lpVtbl;
-};
-
-
-#define ID2D1PathGeometry_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1PathGeometry_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1PathGeometry_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1PathGeometry_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1PathGeometry_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1PathGeometry_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1PathGeometry_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1PathGeometry_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1PathGeometry_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1PathGeometry_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1PathGeometry_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1PathGeometry_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1PathGeometry_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1PathGeometry_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry_Open(This, geometrySink) \
- ((This)->lpVtbl->Open(This, geometrySink))
-
-#define ID2D1PathGeometry_Stream(This, geometrySink) \
- ((This)->lpVtbl->Stream(This, geometrySink))
-
-#define ID2D1PathGeometry_GetSegmentCount(This, count) \
- ((This)->lpVtbl->GetSegmentCount(This, count))
-
-#define ID2D1PathGeometry_GetFigureCount(This, count) \
- ((This)->lpVtbl->GetFigureCount(This, count))
-
typedef interface ID2D1Mesh ID2D1Mesh;
-typedef struct ID2D1MeshVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD(Open)(
- ID2D1Mesh *This,
- _Outptr_ ID2D1TessellationSink **tessellationSink
- ) PURE;
-} ID2D1MeshVtbl;
-
-interface ID2D1Mesh
-{
- CONST struct ID2D1MeshVtbl *lpVtbl;
-};
-
-
-#define ID2D1Mesh_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Mesh_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Mesh_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Mesh_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Mesh_Open(This, tessellationSink) \
- ((This)->lpVtbl->Open(This, tessellationSink))
-
typedef interface ID2D1Layer ID2D1Layer;
-typedef struct ID2D1LayerVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(D2D1_SIZE_F, GetSize)(
- ID2D1Layer *This
- ) PURE;
-} ID2D1LayerVtbl;
-
-interface ID2D1Layer
-{
- CONST struct ID2D1LayerVtbl *lpVtbl;
-};
-
-
-#define ID2D1Layer_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Layer_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Layer_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Layer_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Layer_GetSize(This) \
- ((This)->lpVtbl->GetSize(This))
-
typedef interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock;
-typedef struct ID2D1DrawingStateBlockVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(void, GetDescription)(
- ID2D1DrawingStateBlock *This,
- _Out_ D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
- ) PURE;
-
- STDMETHOD_(void, SetDescription)(
- ID2D1DrawingStateBlock *This,
- _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription
- ) PURE;
-
- STDMETHOD_(void, SetTextRenderingParams)(
- ID2D1DrawingStateBlock *This,
- _In_opt_ IDWriteRenderingParams *textRenderingParams
- ) PURE;
-
- STDMETHOD_(void, GetTextRenderingParams)(
- ID2D1DrawingStateBlock *This,
- _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
- ) PURE;
-} ID2D1DrawingStateBlockVtbl;
-
-interface ID2D1DrawingStateBlock
-{
- CONST struct ID2D1DrawingStateBlockVtbl *lpVtbl;
-};
-
-
-#define ID2D1DrawingStateBlock_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DrawingStateBlock_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DrawingStateBlock_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DrawingStateBlock_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DrawingStateBlock_GetDescription(This, stateDescription) \
- ((This)->lpVtbl->GetDescription(This, stateDescription))
-
-#define ID2D1DrawingStateBlock_SetDescription(This, stateDescription) \
- ((This)->lpVtbl->SetDescription(This, stateDescription))
-
-#define ID2D1DrawingStateBlock_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->SetTextRenderingParams(This, textRenderingParams))
-
-#define ID2D1DrawingStateBlock_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->GetTextRenderingParams(This, textRenderingParams))
-
typedef interface ID2D1RenderTarget ID2D1RenderTarget;
-typedef struct ID2D1RenderTargetVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD(CreateBitmap)(
- ID2D1RenderTarget *This,
- D2D1_SIZE_U size,
- _In_opt_ CONST void *srcData,
- UINT32 pitch,
- _In_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
- ) PURE;
-
- STDMETHOD(CreateBitmapFromWicBitmap)(
- ID2D1RenderTarget *This,
- _In_ IWICBitmapSource *wicBitmapSource,
- _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
- ) PURE;
-
- STDMETHOD(CreateSharedBitmap)(
- ID2D1RenderTarget *This,
- _In_ REFIID riid,
- _Inout_ void *data,
- _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties,
- _Outptr_ ID2D1Bitmap **bitmap
- ) PURE;
-
- STDMETHOD(CreateBitmapBrush)(
- ID2D1RenderTarget *This,
- _In_opt_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1BitmapBrush **bitmapBrush
- ) PURE;
-
- STDMETHOD(CreateSolidColorBrush)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_COLOR_F *color,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1SolidColorBrush **solidColorBrush
- ) PURE;
-
- STDMETHOD(CreateGradientStopCollection)(
- ID2D1RenderTarget *This,
- _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops,
- _In_range_(>=,1) UINT32 gradientStopsCount,
- D2D1_GAMMA colorInterpolationGamma,
- D2D1_EXTEND_MODE extendMode,
- _Outptr_ ID2D1GradientStopCollection **gradientStopCollection
- ) PURE;
-
- STDMETHOD(CreateLinearGradientBrush)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush
- ) PURE;
-
- STDMETHOD(CreateRadialGradientBrush)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _In_ ID2D1GradientStopCollection *gradientStopCollection,
- _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush
- ) PURE;
-
- STDMETHOD(CreateCompatibleRenderTarget)(
- ID2D1RenderTarget *This,
- _In_opt_ CONST D2D1_SIZE_F *desiredSize,
- _In_opt_ CONST D2D1_SIZE_U *desiredPixelSize,
- _In_opt_ CONST D2D1_PIXEL_FORMAT *desiredFormat,
- D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,
- _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget
- ) PURE;
-
- STDMETHOD(CreateLayer)(
- ID2D1RenderTarget *This,
- _In_opt_ CONST D2D1_SIZE_F *size,
- _Outptr_ ID2D1Layer **layer
- ) PURE;
-
- STDMETHOD(CreateMesh)(
- ID2D1RenderTarget *This,
- _Outptr_ ID2D1Mesh **mesh
- ) PURE;
-
- STDMETHOD_(void, DrawLine)(
- ID2D1RenderTarget *This,
- D2D1_POINT_2F point0,
- D2D1_POINT_2F point1,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD_(void, DrawRectangle)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_RECT_F *rect,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD_(void, FillRectangle)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_RECT_F *rect,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD_(void, DrawRoundedRectangle)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD_(void, FillRoundedRectangle)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_ROUNDED_RECT *roundedRect,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD_(void, DrawEllipse)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_ELLIPSE *ellipse,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD_(void, FillEllipse)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_ELLIPSE *ellipse,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD_(void, DrawGeometry)(
- ID2D1RenderTarget *This,
- _In_ ID2D1Geometry *geometry,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD_(void, FillGeometry)(
- ID2D1RenderTarget *This,
- _In_ ID2D1Geometry *geometry,
- _In_ ID2D1Brush *brush,
- _In_opt_ ID2D1Brush *opacityBrush
- ) PURE;
-
- STDMETHOD_(void, FillMesh)(
- ID2D1RenderTarget *This,
- _In_ ID2D1Mesh *mesh,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD_(void, FillOpacityMask)(
- ID2D1RenderTarget *This,
- _In_ ID2D1Bitmap *opacityMask,
- _In_ ID2D1Brush *brush,
- D2D1_OPACITY_MASK_CONTENT content,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-
- STDMETHOD_(void, DrawBitmap)(
- ID2D1RenderTarget *This,
- _In_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- FLOAT opacity,
- D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-
- STDMETHOD_(void, DrawText)(
- ID2D1RenderTarget *This,
- _In_reads_(stringLength) CONST WCHAR *string,
- UINT32 stringLength,
- _In_ IDWriteTextFormat *textFormat,
- _In_ CONST D2D1_RECT_F *layoutRect,
- _In_ ID2D1Brush *defaultForegroundBrush,
- D2D1_DRAW_TEXT_OPTIONS options,
- DWRITE_MEASURING_MODE measuringMode
- ) PURE;
-
- STDMETHOD_(void, DrawTextLayout)(
- ID2D1RenderTarget *This,
- D2D1_POINT_2F origin,
- _In_ IDWriteTextLayout *textLayout,
- _In_ ID2D1Brush *defaultForegroundBrush,
- D2D1_DRAW_TEXT_OPTIONS options
- ) PURE;
-
- STDMETHOD_(void, DrawGlyphRun)(
- ID2D1RenderTarget *This,
- D2D1_POINT_2F baselineOrigin,
- _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
- _In_ ID2D1Brush *foregroundBrush,
- DWRITE_MEASURING_MODE measuringMode
- ) PURE;
-
- STDMETHOD_(void, SetTransform)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD_(void, GetTransform)(
- ID2D1RenderTarget *This,
- _Out_ D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD_(void, SetAntialiasMode)(
- ID2D1RenderTarget *This,
- D2D1_ANTIALIAS_MODE antialiasMode
- ) PURE;
-
- STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(void, SetTextAntialiasMode)(
- ID2D1RenderTarget *This,
- D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
- ) PURE;
-
- STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(void, SetTextRenderingParams)(
- ID2D1RenderTarget *This,
- _In_opt_ IDWriteRenderingParams *textRenderingParams
- ) PURE;
-
- STDMETHOD_(void, GetTextRenderingParams)(
- ID2D1RenderTarget *This,
- _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams
- ) PURE;
-
- STDMETHOD_(void, SetTags)(
- ID2D1RenderTarget *This,
- D2D1_TAG tag1,
- D2D1_TAG tag2
- ) PURE;
-
- STDMETHOD_(void, GetTags)(
- ID2D1RenderTarget *This,
- _Out_opt_ D2D1_TAG *tag1,
- _Out_opt_ D2D1_TAG *tag2
- ) PURE;
-
- STDMETHOD_(void, PushLayer)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters,
- _In_opt_ ID2D1Layer *layer
- ) PURE;
-
- STDMETHOD_(void, PopLayer)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD(Flush)(
- ID2D1RenderTarget *This,
- _Out_opt_ D2D1_TAG *tag1,
- _Out_opt_ D2D1_TAG *tag2
- ) PURE;
-
- STDMETHOD_(void, SaveDrawingState)(
- ID2D1RenderTarget *This,
- _Inout_ ID2D1DrawingStateBlock *drawingStateBlock
- ) PURE;
-
- STDMETHOD_(void, RestoreDrawingState)(
- ID2D1RenderTarget *This,
- _In_ ID2D1DrawingStateBlock *drawingStateBlock
- ) PURE;
-
- STDMETHOD_(void, PushAxisAlignedClip)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_RECT_F *clipRect,
- D2D1_ANTIALIAS_MODE antialiasMode
- ) PURE;
-
- STDMETHOD_(void, PopAxisAlignedClip)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(void, Clear)(
- ID2D1RenderTarget *This,
- _In_opt_ CONST D2D1_COLOR_F *clearColor
- ) PURE;
-
- STDMETHOD_(void, BeginDraw)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD(EndDraw)(
- ID2D1RenderTarget *This,
- _Out_opt_ D2D1_TAG *tag1,
- _Out_opt_ D2D1_TAG *tag2
- ) PURE;
-
- STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(void, SetDpi)(
- ID2D1RenderTarget *This,
- FLOAT dpiX,
- FLOAT dpiY
- ) PURE;
-
- STDMETHOD_(void, GetDpi)(
- ID2D1RenderTarget *This,
- _Out_ FLOAT *dpiX,
- _Out_ FLOAT *dpiY
- ) PURE;
-
- STDMETHOD_(D2D1_SIZE_F, GetSize)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(UINT32, GetMaximumBitmapSize)(
- ID2D1RenderTarget *This
- ) PURE;
-
- STDMETHOD_(BOOL, IsSupported)(
- ID2D1RenderTarget *This,
- _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties
- ) PURE;
-} ID2D1RenderTargetVtbl;
-
-interface ID2D1RenderTarget
-{
- CONST struct ID2D1RenderTargetVtbl *lpVtbl;
-};
-
-
-#define ID2D1RenderTarget_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1RenderTarget_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1RenderTarget_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1RenderTarget_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1RenderTarget_CreateBitmap(This, size, srcData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateBitmap(This, size, srcData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1RenderTarget_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1RenderTarget_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1RenderTarget_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1RenderTarget_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->CreateSolidColorBrush(This, color, brushProperties, solidColorBrush))
-
-#define ID2D1RenderTarget_CreateGradientStopCollection(This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection) \
- ((This)->lpVtbl->CreateGradientStopCollection(This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection))
-
-#define ID2D1RenderTarget_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1RenderTarget_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1RenderTarget_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1RenderTarget_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->CreateLayer(This, size, layer))
-
-#define ID2D1RenderTarget_CreateMesh(This, mesh) \
- ((This)->lpVtbl->CreateMesh(This, mesh))
-
-#define ID2D1RenderTarget_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1RenderTarget_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawRectangle(This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1RenderTarget_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->FillRectangle(This, rect, brush))
-
-#define ID2D1RenderTarget_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1RenderTarget_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->FillRoundedRectangle(This, roundedRect, brush))
-
-#define ID2D1RenderTarget_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1RenderTarget_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->FillEllipse(This, ellipse, brush))
-
-#define ID2D1RenderTarget_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1RenderTarget_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->FillGeometry(This, geometry, brush, opacityBrush))
-
-#define ID2D1RenderTarget_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->FillMesh(This, mesh, brush))
-
-#define ID2D1RenderTarget_FillOpacityMask(This, opacityMask, brush, content, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->FillOpacityMask(This, opacityMask, brush, content, destinationRectangle, sourceRectangle))
-
-#define ID2D1RenderTarget_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle) \
- ((This)->lpVtbl->DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle))
-
-#define ID2D1RenderTarget_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1RenderTarget_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1RenderTarget_DrawGlyphRun(This, baselineOrigin, glyphRun, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->DrawGlyphRun(This, baselineOrigin, glyphRun, foregroundBrush, measuringMode))
-
-#define ID2D1RenderTarget_SetTransform(This, transform) \
- ((This)->lpVtbl->SetTransform(This, transform))
-
-#define ID2D1RenderTarget_GetTransform(This, transform) \
- ((This)->lpVtbl->GetTransform(This, transform))
-
-#define ID2D1RenderTarget_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->SetAntialiasMode(This, antialiasMode))
-
-#define ID2D1RenderTarget_GetAntialiasMode(This) \
- ((This)->lpVtbl->GetAntialiasMode(This))
-
-#define ID2D1RenderTarget_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->SetTextAntialiasMode(This, textAntialiasMode))
-
-#define ID2D1RenderTarget_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->GetTextAntialiasMode(This))
-
-#define ID2D1RenderTarget_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->SetTextRenderingParams(This, textRenderingParams))
-
-#define ID2D1RenderTarget_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->GetTextRenderingParams(This, textRenderingParams))
-
-#define ID2D1RenderTarget_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->SetTags(This, tag1, tag2))
-
-#define ID2D1RenderTarget_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->GetTags(This, tag1, tag2))
-
-#define ID2D1RenderTarget_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->PushLayer(This, layerParameters, layer))
-
-#define ID2D1RenderTarget_PopLayer(This) \
- ((This)->lpVtbl->PopLayer(This))
-
-#define ID2D1RenderTarget_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Flush(This, tag1, tag2))
-
-#define ID2D1RenderTarget_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->SaveDrawingState(This, drawingStateBlock))
-
-#define ID2D1RenderTarget_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->RestoreDrawingState(This, drawingStateBlock))
-
-#define ID2D1RenderTarget_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->PushAxisAlignedClip(This, clipRect, antialiasMode))
-
-#define ID2D1RenderTarget_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->PopAxisAlignedClip(This))
-
-#define ID2D1RenderTarget_Clear(This, clearColor) \
- ((This)->lpVtbl->Clear(This, clearColor))
-
-#define ID2D1RenderTarget_BeginDraw(This) \
- ((This)->lpVtbl->BeginDraw(This))
-
-#define ID2D1RenderTarget_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->EndDraw(This, tag1, tag2))
-
-#define ID2D1RenderTarget_GetPixelFormat(This) \
- ((This)->lpVtbl->GetPixelFormat(This))
-
-#define ID2D1RenderTarget_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->SetDpi(This, dpiX, dpiY))
-
-#define ID2D1RenderTarget_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->GetDpi(This, dpiX, dpiY))
-
-#define ID2D1RenderTarget_GetSize(This) \
- ((This)->lpVtbl->GetSize(This))
-
-#define ID2D1RenderTarget_GetPixelSize(This) \
- ((This)->lpVtbl->GetPixelSize(This))
-
-#define ID2D1RenderTarget_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->GetMaximumBitmapSize(This))
-
-#define ID2D1RenderTarget_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->IsSupported(This, renderTargetProperties))
-
typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget;
-typedef struct ID2D1BitmapRenderTargetVtbl
-{
-
- ID2D1RenderTargetVtbl Base;
-
-
- STDMETHOD(GetBitmap)(
- ID2D1BitmapRenderTarget *This,
- _Outptr_ ID2D1Bitmap **bitmap
- ) PURE;
-} ID2D1BitmapRenderTargetVtbl;
-
-interface ID2D1BitmapRenderTarget
-{
- CONST struct ID2D1BitmapRenderTargetVtbl *lpVtbl;
-};
-
-
-#define ID2D1BitmapRenderTarget_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1BitmapRenderTarget_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1BitmapRenderTarget_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1BitmapRenderTarget_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1BitmapRenderTarget_CreateBitmap(This, size, srcData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget *)This, size, srcData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1BitmapRenderTarget_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget *)This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1BitmapRenderTarget_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1BitmapRenderTarget_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1BitmapRenderTarget_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1BitmapRenderTarget_CreateGradientStopCollection(This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection) \
- ((This)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget *)This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection))
-
-#define ID2D1BitmapRenderTarget_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1BitmapRenderTarget_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1BitmapRenderTarget_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1BitmapRenderTarget_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1BitmapRenderTarget_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1BitmapRenderTarget_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1BitmapRenderTarget_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1BitmapRenderTarget_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1BitmapRenderTarget_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1BitmapRenderTarget_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1BitmapRenderTarget_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1BitmapRenderTarget_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1BitmapRenderTarget_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1BitmapRenderTarget_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1BitmapRenderTarget_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1BitmapRenderTarget_FillOpacityMask(This, opacityMask, brush, content, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget *)This, opacityMask, brush, content, destinationRectangle, sourceRectangle))
-
-#define ID2D1BitmapRenderTarget_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle) \
- ((This)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle))
-
-#define ID2D1BitmapRenderTarget_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1BitmapRenderTarget_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1BitmapRenderTarget_DrawGlyphRun(This, baselineOrigin, glyphRun, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget *)This, baselineOrigin, glyphRun, foregroundBrush, measuringMode))
-
-#define ID2D1BitmapRenderTarget_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1BitmapRenderTarget_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1BitmapRenderTarget_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1BitmapRenderTarget_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1BitmapRenderTarget_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1BitmapRenderTarget_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1BitmapRenderTarget_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1BitmapRenderTarget_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1BitmapRenderTarget_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->Base.PushLayer((ID2D1RenderTarget *)This, layerParameters, layer))
-
-#define ID2D1BitmapRenderTarget_PopLayer(This) \
- ((This)->lpVtbl->Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1BitmapRenderTarget_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1BitmapRenderTarget_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1BitmapRenderTarget_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1BitmapRenderTarget_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1BitmapRenderTarget_BeginDraw(This) \
- ((This)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1BitmapRenderTarget_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1BitmapRenderTarget_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1BitmapRenderTarget_GetSize(This) \
- ((This)->lpVtbl->Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_GetPixelSize(This) \
- ((This)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1BitmapRenderTarget_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1BitmapRenderTarget_GetBitmap(This, bitmap) \
- ((This)->lpVtbl->GetBitmap(This, bitmap))
-
typedef interface ID2D1HwndRenderTarget ID2D1HwndRenderTarget;
-typedef struct ID2D1HwndRenderTargetVtbl
-{
-
- ID2D1RenderTargetVtbl Base;
-
-
- STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(
- ID2D1HwndRenderTarget *This
- ) PURE;
-
- STDMETHOD(Resize)(
- ID2D1HwndRenderTarget *This,
- _In_ CONST D2D1_SIZE_U *pixelSize
- ) PURE;
-
- STDMETHOD_(HWND, GetHwnd)(
- ID2D1HwndRenderTarget *This
- ) PURE;
-} ID2D1HwndRenderTargetVtbl;
-
-interface ID2D1HwndRenderTarget
-{
- CONST struct ID2D1HwndRenderTargetVtbl *lpVtbl;
-};
-
-
-#define ID2D1HwndRenderTarget_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1HwndRenderTarget_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1HwndRenderTarget_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1HwndRenderTarget_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1HwndRenderTarget_CreateBitmap(This, size, srcData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget *)This, size, srcData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1HwndRenderTarget_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget *)This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1HwndRenderTarget_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1HwndRenderTarget_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1HwndRenderTarget_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1HwndRenderTarget_CreateGradientStopCollection(This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection) \
- ((This)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget *)This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection))
-
-#define ID2D1HwndRenderTarget_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1HwndRenderTarget_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1HwndRenderTarget_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1HwndRenderTarget_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1HwndRenderTarget_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1HwndRenderTarget_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1HwndRenderTarget_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1HwndRenderTarget_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1HwndRenderTarget_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1HwndRenderTarget_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1HwndRenderTarget_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1HwndRenderTarget_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1HwndRenderTarget_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1HwndRenderTarget_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1HwndRenderTarget_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1HwndRenderTarget_FillOpacityMask(This, opacityMask, brush, content, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget *)This, opacityMask, brush, content, destinationRectangle, sourceRectangle))
-
-#define ID2D1HwndRenderTarget_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle) \
- ((This)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle))
-
-#define ID2D1HwndRenderTarget_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1HwndRenderTarget_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1HwndRenderTarget_DrawGlyphRun(This, baselineOrigin, glyphRun, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget *)This, baselineOrigin, glyphRun, foregroundBrush, measuringMode))
-
-#define ID2D1HwndRenderTarget_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1HwndRenderTarget_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1HwndRenderTarget_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1HwndRenderTarget_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1HwndRenderTarget_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1HwndRenderTarget_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1HwndRenderTarget_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1HwndRenderTarget_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1HwndRenderTarget_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->Base.PushLayer((ID2D1RenderTarget *)This, layerParameters, layer))
-
-#define ID2D1HwndRenderTarget_PopLayer(This) \
- ((This)->lpVtbl->Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1HwndRenderTarget_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1HwndRenderTarget_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1HwndRenderTarget_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1HwndRenderTarget_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1HwndRenderTarget_BeginDraw(This) \
- ((This)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1HwndRenderTarget_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1HwndRenderTarget_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1HwndRenderTarget_GetSize(This) \
- ((This)->lpVtbl->Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_GetPixelSize(This) \
- ((This)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1HwndRenderTarget_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1HwndRenderTarget_CheckWindowState(This) \
- ((This)->lpVtbl->CheckWindowState(This))
-
-#define ID2D1HwndRenderTarget_Resize(This, pixelSize) \
- ((This)->lpVtbl->Resize(This, pixelSize))
-
-#define ID2D1HwndRenderTarget_GetHwnd(This) \
- ((This)->lpVtbl->GetHwnd(This))
-
-
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
@@ -6660,46 +3633,6 @@ interface ID2D1HwndRenderTarget
typedef interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget;
-typedef struct ID2D1GdiInteropRenderTargetVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD(GetDC)(
- ID2D1GdiInteropRenderTarget *This,
- D2D1_DC_INITIALIZE_MODE mode,
- _Out_ HDC *hdc
- ) PURE;
-
- STDMETHOD(ReleaseDC)(
- ID2D1GdiInteropRenderTarget *This,
- _In_opt_ CONST RECT *update
- ) PURE;
-} ID2D1GdiInteropRenderTargetVtbl;
-
-interface ID2D1GdiInteropRenderTarget
-{
- CONST struct ID2D1GdiInteropRenderTargetVtbl *lpVtbl;
-};
-
-
-#define ID2D1GdiInteropRenderTarget_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GdiInteropRenderTarget_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1GdiInteropRenderTarget_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1GdiInteropRenderTarget_GetDC(This, mode, hdc) \
- ((This)->lpVtbl->GetDC(This, mode, hdc))
-
-#define ID2D1GdiInteropRenderTarget_ReleaseDC(This, update) \
- ((This)->lpVtbl->ReleaseDC(This, update))
-
-
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
@@ -6708,356 +3641,8 @@ interface ID2D1GdiInteropRenderTarget
typedef interface ID2D1DCRenderTarget ID2D1DCRenderTarget;
-typedef struct ID2D1DCRenderTargetVtbl
-{
-
- ID2D1RenderTargetVtbl Base;
-
-
- STDMETHOD(BindDC)(
- ID2D1DCRenderTarget *This,
- _In_ CONST HDC hDC,
- _In_ CONST RECT *pSubRect
- ) PURE;
-} ID2D1DCRenderTargetVtbl;
-
-interface ID2D1DCRenderTarget
-{
- CONST struct ID2D1DCRenderTargetVtbl *lpVtbl;
-};
-
-
-#define ID2D1DCRenderTarget_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DCRenderTarget_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DCRenderTarget_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DCRenderTarget_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DCRenderTarget_CreateBitmap(This, size, srcData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget *)This, size, srcData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1DCRenderTarget_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget *)This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1DCRenderTarget_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1DCRenderTarget_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1DCRenderTarget_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1DCRenderTarget_CreateGradientStopCollection(This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection) \
- ((This)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget *)This, gradientStops, gradientStopsCount, colorInterpolationGamma, extendMode, gradientStopCollection))
-
-#define ID2D1DCRenderTarget_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1DCRenderTarget_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1DCRenderTarget_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1DCRenderTarget_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1DCRenderTarget_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1DCRenderTarget_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DCRenderTarget_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DCRenderTarget_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1DCRenderTarget_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DCRenderTarget_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1DCRenderTarget_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DCRenderTarget_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1DCRenderTarget_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DCRenderTarget_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1DCRenderTarget_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1DCRenderTarget_FillOpacityMask(This, opacityMask, brush, content, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget *)This, opacityMask, brush, content, destinationRectangle, sourceRectangle))
-
-#define ID2D1DCRenderTarget_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle) \
- ((This)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle))
-
-#define ID2D1DCRenderTarget_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1DCRenderTarget_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1DCRenderTarget_DrawGlyphRun(This, baselineOrigin, glyphRun, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget *)This, baselineOrigin, glyphRun, foregroundBrush, measuringMode))
-
-#define ID2D1DCRenderTarget_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DCRenderTarget_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DCRenderTarget_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1DCRenderTarget_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1DCRenderTarget_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DCRenderTarget_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DCRenderTarget_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DCRenderTarget_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DCRenderTarget_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->Base.PushLayer((ID2D1RenderTarget *)This, layerParameters, layer))
-
-#define ID2D1DCRenderTarget_PopLayer(This) \
- ((This)->lpVtbl->Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DCRenderTarget_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DCRenderTarget_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DCRenderTarget_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1DCRenderTarget_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1DCRenderTarget_BeginDraw(This) \
- ((This)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DCRenderTarget_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DCRenderTarget_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DCRenderTarget_GetSize(This) \
- ((This)->lpVtbl->Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_GetPixelSize(This) \
- ((This)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DCRenderTarget_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1DCRenderTarget_BindDC(This, hDC, pSubRect) \
- ((This)->lpVtbl->BindDC(This, hDC, pSubRect))
-
typedef interface ID2D1Factory ID2D1Factory;
-typedef struct ID2D1FactoryVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD(ReloadSystemMetrics)(
- ID2D1Factory *This
- ) PURE;
-
- STDMETHOD_(void, GetDesktopDpi)(
- ID2D1Factory *This,
- _Out_ FLOAT *dpiX,
- _Out_ FLOAT *dpiY
- ) PURE;
-
- STDMETHOD(CreateRectangleGeometry)(
- ID2D1Factory *This,
- _In_ CONST D2D1_RECT_F *rectangle,
- _Outptr_ ID2D1RectangleGeometry **rectangleGeometry
- ) PURE;
-
- STDMETHOD(CreateRoundedRectangleGeometry)(
- ID2D1Factory *This,
- _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle,
- _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry
- ) PURE;
-
- STDMETHOD(CreateEllipseGeometry)(
- ID2D1Factory *This,
- _In_ CONST D2D1_ELLIPSE *ellipse,
- _Outptr_ ID2D1EllipseGeometry **ellipseGeometry
- ) PURE;
-
- STDMETHOD(CreateGeometryGroup)(
- ID2D1Factory *This,
- D2D1_FILL_MODE fillMode,
- _In_reads_(geometriesCount) ID2D1Geometry **geometries,
- UINT32 geometriesCount,
- _Outptr_ ID2D1GeometryGroup **geometryGroup
- ) PURE;
-
- STDMETHOD(CreateTransformedGeometry)(
- ID2D1Factory *This,
- _In_ ID2D1Geometry *sourceGeometry,
- _In_ CONST D2D1_MATRIX_3X2_F *transform,
- _Outptr_ ID2D1TransformedGeometry **transformedGeometry
- ) PURE;
-
- STDMETHOD(CreatePathGeometry)(
- ID2D1Factory *This,
- _Outptr_ ID2D1PathGeometry **pathGeometry
- ) PURE;
-
- STDMETHOD(CreateStrokeStyle)(
- ID2D1Factory *This,
- _In_ CONST D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties,
- _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
- UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle **strokeStyle
- ) PURE;
-
- STDMETHOD(CreateDrawingStateBlock)(
- ID2D1Factory *This,
- _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription,
- _In_opt_ IDWriteRenderingParams *textRenderingParams,
- _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock
- ) PURE;
-
- STDMETHOD(CreateWicBitmapRenderTarget)(
- ID2D1Factory *This,
- _In_ IWICBitmap *target,
- _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
- ) PURE;
-
- STDMETHOD(CreateHwndRenderTarget)(
- ID2D1Factory *This,
- _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _In_ CONST D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties,
- _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget
- ) PURE;
-
- STDMETHOD(CreateDxgiSurfaceRenderTarget)(
- ID2D1Factory *This,
- _In_ IDXGISurface *dxgiSurface,
- _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1RenderTarget **renderTarget
- ) PURE;
-
- STDMETHOD(CreateDCRenderTarget)(
- ID2D1Factory *This,
- _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
- _Outptr_ ID2D1DCRenderTarget **dcRenderTarget
- ) PURE;
-} ID2D1FactoryVtbl;
-
-interface ID2D1Factory
-{
- CONST struct ID2D1FactoryVtbl *lpVtbl;
-};
-
-
-#define ID2D1Factory_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Factory_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1Factory_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1Factory_ReloadSystemMetrics(This) \
- ((This)->lpVtbl->ReloadSystemMetrics(This))
-
-#define ID2D1Factory_GetDesktopDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->GetDesktopDpi(This, dpiX, dpiY))
-
-#define ID2D1Factory_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \
- ((This)->lpVtbl->CreateRectangleGeometry(This, rectangle, rectangleGeometry))
-
-#define ID2D1Factory_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \
- ((This)->lpVtbl->CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry))
-
-#define ID2D1Factory_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \
- ((This)->lpVtbl->CreateEllipseGeometry(This, ellipse, ellipseGeometry))
-
-#define ID2D1Factory_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \
- ((This)->lpVtbl->CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup))
-
-#define ID2D1Factory_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \
- ((This)->lpVtbl->CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry))
-
-#define ID2D1Factory_CreatePathGeometry(This, pathGeometry) \
- ((This)->lpVtbl->CreatePathGeometry(This, pathGeometry))
-
-#define ID2D1Factory_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \
- ((This)->lpVtbl->CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle))
-
-#define ID2D1Factory_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \
- ((This)->lpVtbl->CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock))
-
-#define ID2D1Factory_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \
- ((This)->lpVtbl->CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget))
-
-#define ID2D1Factory_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \
- ((This)->lpVtbl->CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget))
-
-
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
diff --git a/3rdparty/minidx12/Include/d2d1_1.h b/3rdparty/minidx12/Include/d2d1_1.h
index 12749f9980..1c25241303 100644
--- a/3rdparty/minidx12/Include/d2d1_1.h
+++ b/3rdparty/minidx12/Include/d2d1_1.h
@@ -36,15 +36,9 @@ typedef interface IDWriteFactory IDWriteFactory;
typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION;
typedef struct D2D1_PROPERTY_BINDING D2D1_PROPERTY_BINDING;
-//+-----------------------------------------------------------------------------
-//
-// Function Pointer:
-// PD2D1_EFFECT_FACTORY
-//
-// Synopsis:
-// Function pointer to construct a new effect once registered.
-//
-//------------------------------------------------------------------------------
+///
+/// Function pointer to construct a new effect once registered.
+///
typedef HRESULT (CALLBACK *PD2D1_EFFECT_FACTORY)(
_Outptr_ IUnknown **effectImpl
);
@@ -63,424 +57,338 @@ typedef interface ID2D1Effect ID2D1Effect;
typedef D2D_RECT_L D2D1_RECT_L;
typedef D2D_POINT_2L D2D1_POINT_2L;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_PROPERTY_TYPE
-//
-// Synopsis:
-// This defines the valid property types that can be used in an effect property
-// interface.
-//
-//------------------------------------------------------------------------------
+///
+/// This defines the valid property types that can be used in an effect property
+/// interface.
+///
typedef enum D2D1_PROPERTY_TYPE
{
- D2D1_PROPERTY_TYPE_UNKNOWN = 0,
- D2D1_PROPERTY_TYPE_STRING = 1,
- D2D1_PROPERTY_TYPE_BOOL = 2,
- D2D1_PROPERTY_TYPE_UINT32 = 3,
- D2D1_PROPERTY_TYPE_INT32 = 4,
- D2D1_PROPERTY_TYPE_FLOAT = 5,
- D2D1_PROPERTY_TYPE_VECTOR2 = 6,
- D2D1_PROPERTY_TYPE_VECTOR3 = 7,
- D2D1_PROPERTY_TYPE_VECTOR4 = 8,
- D2D1_PROPERTY_TYPE_BLOB = 9,
- D2D1_PROPERTY_TYPE_IUNKNOWN = 10,
- D2D1_PROPERTY_TYPE_ENUM = 11,
- D2D1_PROPERTY_TYPE_ARRAY = 12,
- D2D1_PROPERTY_TYPE_CLSID = 13,
- D2D1_PROPERTY_TYPE_MATRIX_3X2 = 14,
- D2D1_PROPERTY_TYPE_MATRIX_4X3 = 15,
- D2D1_PROPERTY_TYPE_MATRIX_4X4 = 16,
- D2D1_PROPERTY_TYPE_MATRIX_5X4 = 17,
- D2D1_PROPERTY_TYPE_COLOR_CONTEXT = 18,
- D2D1_PROPERTY_TYPE_FORCE_DWORD = 0xffffffff
+ D2D1_PROPERTY_TYPE_UNKNOWN = 0,
+ D2D1_PROPERTY_TYPE_STRING = 1,
+ D2D1_PROPERTY_TYPE_BOOL = 2,
+ D2D1_PROPERTY_TYPE_UINT32 = 3,
+ D2D1_PROPERTY_TYPE_INT32 = 4,
+ D2D1_PROPERTY_TYPE_FLOAT = 5,
+ D2D1_PROPERTY_TYPE_VECTOR2 = 6,
+ D2D1_PROPERTY_TYPE_VECTOR3 = 7,
+ D2D1_PROPERTY_TYPE_VECTOR4 = 8,
+ D2D1_PROPERTY_TYPE_BLOB = 9,
+ D2D1_PROPERTY_TYPE_IUNKNOWN = 10,
+ D2D1_PROPERTY_TYPE_ENUM = 11,
+ D2D1_PROPERTY_TYPE_ARRAY = 12,
+ D2D1_PROPERTY_TYPE_CLSID = 13,
+ D2D1_PROPERTY_TYPE_MATRIX_3X2 = 14,
+ D2D1_PROPERTY_TYPE_MATRIX_4X3 = 15,
+ D2D1_PROPERTY_TYPE_MATRIX_4X4 = 16,
+ D2D1_PROPERTY_TYPE_MATRIX_5X4 = 17,
+ D2D1_PROPERTY_TYPE_COLOR_CONTEXT = 18,
+ D2D1_PROPERTY_TYPE_FORCE_DWORD = 0xffffffff
} D2D1_PROPERTY_TYPE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_PROPERTY
-//
-// Synopsis:
-// This defines the list of system properties present on the root effect property
-// interface.
-//
-//------------------------------------------------------------------------------
+///
+/// This defines the list of system properties present on the root effect property
+/// interface.
+///
typedef enum D2D1_PROPERTY
{
- D2D1_PROPERTY_CLSID = 0x80000000,
- D2D1_PROPERTY_DISPLAYNAME = 0x80000001,
- D2D1_PROPERTY_AUTHOR = 0x80000002,
- D2D1_PROPERTY_CATEGORY = 0x80000003,
- D2D1_PROPERTY_DESCRIPTION = 0x80000004,
- D2D1_PROPERTY_INPUTS = 0x80000005,
- D2D1_PROPERTY_CACHED = 0x80000006,
- D2D1_PROPERTY_PRECISION = 0x80000007,
- D2D1_PROPERTY_MIN_INPUTS = 0x80000008,
- D2D1_PROPERTY_MAX_INPUTS = 0x80000009,
- D2D1_PROPERTY_FORCE_DWORD = 0xffffffff
+ D2D1_PROPERTY_CLSID = 0x80000000,
+ D2D1_PROPERTY_DISPLAYNAME = 0x80000001,
+ D2D1_PROPERTY_AUTHOR = 0x80000002,
+ D2D1_PROPERTY_CATEGORY = 0x80000003,
+ D2D1_PROPERTY_DESCRIPTION = 0x80000004,
+ D2D1_PROPERTY_INPUTS = 0x80000005,
+ D2D1_PROPERTY_CACHED = 0x80000006,
+ D2D1_PROPERTY_PRECISION = 0x80000007,
+ D2D1_PROPERTY_MIN_INPUTS = 0x80000008,
+ D2D1_PROPERTY_MAX_INPUTS = 0x80000009,
+ D2D1_PROPERTY_FORCE_DWORD = 0xffffffff
} D2D1_PROPERTY;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SUBPROPERTY
-//
-// Synopsis:
-// This defines the indices of sub-properties that may be present on any parent
-// property.
-//
-//------------------------------------------------------------------------------
+///
+/// This defines the indices of sub-properties that may be present on any parent
+/// property.
+///
typedef enum D2D1_SUBPROPERTY
{
- D2D1_SUBPROPERTY_DISPLAYNAME = 0x80000000,
- D2D1_SUBPROPERTY_ISREADONLY = 0x80000001,
- D2D1_SUBPROPERTY_MIN = 0x80000002,
- D2D1_SUBPROPERTY_MAX = 0x80000003,
- D2D1_SUBPROPERTY_DEFAULT = 0x80000004,
- D2D1_SUBPROPERTY_FIELDS = 0x80000005,
- D2D1_SUBPROPERTY_INDEX = 0x80000006,
- D2D1_SUBPROPERTY_FORCE_DWORD = 0xffffffff
+ D2D1_SUBPROPERTY_DISPLAYNAME = 0x80000000,
+ D2D1_SUBPROPERTY_ISREADONLY = 0x80000001,
+ D2D1_SUBPROPERTY_MIN = 0x80000002,
+ D2D1_SUBPROPERTY_MAX = 0x80000003,
+ D2D1_SUBPROPERTY_DEFAULT = 0x80000004,
+ D2D1_SUBPROPERTY_FIELDS = 0x80000005,
+ D2D1_SUBPROPERTY_INDEX = 0x80000006,
+ D2D1_SUBPROPERTY_FORCE_DWORD = 0xffffffff
} D2D1_SUBPROPERTY;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_BITMAP_OPTIONS
-//
-// Synopsis:
-// Specifies how the bitmap can be used.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how the bitmap can be used.
+///
typedef enum D2D1_BITMAP_OPTIONS
{
-
- //
- // The bitmap is created with default properties.
- //
- D2D1_BITMAP_OPTIONS_NONE = 0x00000000,
-
- //
- // The bitmap can be specified as a target in ID2D1DeviceContext::SetTarget
- //
- D2D1_BITMAP_OPTIONS_TARGET = 0x00000001,
-
- //
- // The bitmap cannot be used as an input to DrawBitmap, DrawImage, in a bitmap
- // brush or as an input to an effect.
- //
- D2D1_BITMAP_OPTIONS_CANNOT_DRAW = 0x00000002,
-
- //
- // The bitmap can be read from the CPU.
- //
- D2D1_BITMAP_OPTIONS_CPU_READ = 0x00000004,
-
- //
- // The bitmap works with the ID2D1GdiInteropRenderTarget::GetDC API.
- //
- D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE = 0x00000008,
- D2D1_BITMAP_OPTIONS_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The bitmap is created with default properties.
+ ///
+ D2D1_BITMAP_OPTIONS_NONE = 0x00000000,
+
+ ///
+ /// The bitmap can be specified as a target in ID2D1DeviceContext::SetTarget
+ ///
+ D2D1_BITMAP_OPTIONS_TARGET = 0x00000001,
+
+ ///
+ /// The bitmap cannot be used as an input to DrawBitmap, DrawImage, in a bitmap
+ /// brush or as an input to an effect.
+ ///
+ D2D1_BITMAP_OPTIONS_CANNOT_DRAW = 0x00000002,
+
+ ///
+ /// The bitmap can be read from the CPU.
+ ///
+ D2D1_BITMAP_OPTIONS_CPU_READ = 0x00000004,
+
+ ///
+ /// The bitmap works with the ID2D1GdiInteropRenderTarget::GetDC API.
+ ///
+ D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE = 0x00000008,
+ D2D1_BITMAP_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_BITMAP_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_BITMAP_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COMPOSITE_MODE
-//
-// Synopsis:
-// Specifies the composite mode that will be applied.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the composite mode that will be applied.
+///
typedef enum D2D1_COMPOSITE_MODE
{
- D2D1_COMPOSITE_MODE_SOURCE_OVER = 0,
- D2D1_COMPOSITE_MODE_DESTINATION_OVER = 1,
- D2D1_COMPOSITE_MODE_SOURCE_IN = 2,
- D2D1_COMPOSITE_MODE_DESTINATION_IN = 3,
- D2D1_COMPOSITE_MODE_SOURCE_OUT = 4,
- D2D1_COMPOSITE_MODE_DESTINATION_OUT = 5,
- D2D1_COMPOSITE_MODE_SOURCE_ATOP = 6,
- D2D1_COMPOSITE_MODE_DESTINATION_ATOP = 7,
- D2D1_COMPOSITE_MODE_XOR = 8,
- D2D1_COMPOSITE_MODE_PLUS = 9,
- D2D1_COMPOSITE_MODE_SOURCE_COPY = 10,
- D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY = 11,
- D2D1_COMPOSITE_MODE_MASK_INVERT = 12,
- D2D1_COMPOSITE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_COMPOSITE_MODE_SOURCE_OVER = 0,
+ D2D1_COMPOSITE_MODE_DESTINATION_OVER = 1,
+ D2D1_COMPOSITE_MODE_SOURCE_IN = 2,
+ D2D1_COMPOSITE_MODE_DESTINATION_IN = 3,
+ D2D1_COMPOSITE_MODE_SOURCE_OUT = 4,
+ D2D1_COMPOSITE_MODE_DESTINATION_OUT = 5,
+ D2D1_COMPOSITE_MODE_SOURCE_ATOP = 6,
+ D2D1_COMPOSITE_MODE_DESTINATION_ATOP = 7,
+ D2D1_COMPOSITE_MODE_XOR = 8,
+ D2D1_COMPOSITE_MODE_PLUS = 9,
+ D2D1_COMPOSITE_MODE_SOURCE_COPY = 10,
+ D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY = 11,
+ D2D1_COMPOSITE_MODE_MASK_INVERT = 12,
+ D2D1_COMPOSITE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_COMPOSITE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BUFFER_PRECISION
-//
-// Synopsis:
-// This specifies the precision that should be used in buffers allocated by D2D.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies the precision that should be used in buffers allocated by D2D.
+///
typedef enum D2D1_BUFFER_PRECISION
{
- D2D1_BUFFER_PRECISION_UNKNOWN = 0,
- D2D1_BUFFER_PRECISION_8BPC_UNORM = 1,
- D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB = 2,
- D2D1_BUFFER_PRECISION_16BPC_UNORM = 3,
- D2D1_BUFFER_PRECISION_16BPC_FLOAT = 4,
- D2D1_BUFFER_PRECISION_32BPC_FLOAT = 5,
- D2D1_BUFFER_PRECISION_FORCE_DWORD = 0xffffffff
+ D2D1_BUFFER_PRECISION_UNKNOWN = 0,
+ D2D1_BUFFER_PRECISION_8BPC_UNORM = 1,
+ D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB = 2,
+ D2D1_BUFFER_PRECISION_16BPC_UNORM = 3,
+ D2D1_BUFFER_PRECISION_16BPC_FLOAT = 4,
+ D2D1_BUFFER_PRECISION_32BPC_FLOAT = 5,
+ D2D1_BUFFER_PRECISION_FORCE_DWORD = 0xffffffff
} D2D1_BUFFER_PRECISION;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_MAP_OPTIONS
-//
-// Synopsis:
-// This describes how the individual mapping operation should be performed.
-//
-//------------------------------------------------------------------------------
+///
+/// This describes how the individual mapping operation should be performed.
+///
typedef enum D2D1_MAP_OPTIONS
{
-
- //
- // The mapped pointer has undefined behavior.
- //
- D2D1_MAP_OPTIONS_NONE = 0,
-
- //
- // The mapped pointer can be read from.
- //
- D2D1_MAP_OPTIONS_READ = 1,
-
- //
- // The mapped pointer can be written to.
- //
- D2D1_MAP_OPTIONS_WRITE = 2,
-
- //
- // The previous contents of the bitmap are discarded when it is mapped.
- //
- D2D1_MAP_OPTIONS_DISCARD = 4,
- D2D1_MAP_OPTIONS_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The mapped pointer has undefined behavior.
+ ///
+ D2D1_MAP_OPTIONS_NONE = 0,
+
+ ///
+ /// The mapped pointer can be read from.
+ ///
+ D2D1_MAP_OPTIONS_READ = 1,
+
+ ///
+ /// The mapped pointer can be written to.
+ ///
+ D2D1_MAP_OPTIONS_WRITE = 2,
+
+ ///
+ /// The previous contents of the bitmap are discarded when it is mapped.
+ ///
+ D2D1_MAP_OPTIONS_DISCARD = 4,
+ D2D1_MAP_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_MAP_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_MAP_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_INTERPOLATION_MODE
-//
-// Synopsis:
-// This is used to specify the quality of image scaling with
-// ID2D1DeviceContext::DrawImage and with the 2D Affine Transform Effect.
-//
-//------------------------------------------------------------------------------
+///
+/// This is used to specify the quality of image scaling with
+/// ID2D1DeviceContext::DrawImage and with the 2D Affine Transform Effect.
+///
typedef enum D2D1_INTERPOLATION_MODE
{
- D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR,
- D2D1_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR,
- D2D1_INTERPOLATION_MODE_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC,
- D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR,
- D2D1_INTERPOLATION_MODE_ANISOTROPIC = D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC,
- D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC,
- D2D1_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR,
+ D2D1_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR,
+ D2D1_INTERPOLATION_MODE_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC,
+ D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR,
+ D2D1_INTERPOLATION_MODE_ANISOTROPIC = D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC,
+ D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC,
+ D2D1_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_UNIT_MODE
-//
-// Synopsis:
-// This specifies what units should be accepted by the D2D API.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies what units should be accepted by the D2D API.
+///
typedef enum D2D1_UNIT_MODE
{
- D2D1_UNIT_MODE_DIPS = 0,
- D2D1_UNIT_MODE_PIXELS = 1,
- D2D1_UNIT_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_UNIT_MODE_DIPS = 0,
+ D2D1_UNIT_MODE_PIXELS = 1,
+ D2D1_UNIT_MODE_FORCE_DWORD = 0xffffffff
} D2D1_UNIT_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLOR_SPACE
-//
-// Synopsis:
-// Defines a color space.
-//
-//------------------------------------------------------------------------------
+///
+/// Defines a color space.
+///
typedef enum D2D1_COLOR_SPACE
{
-
- //
- // The color space is described by accompanying data, such as a color profile.
- //
- D2D1_COLOR_SPACE_CUSTOM = 0,
-
- //
- // The sRGB color space.
- //
- D2D1_COLOR_SPACE_SRGB = 1,
-
- //
- // The scRGB color space.
- //
- D2D1_COLOR_SPACE_SCRGB = 2,
- D2D1_COLOR_SPACE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The color space is described by accompanying data, such as a color profile.
+ ///
+ D2D1_COLOR_SPACE_CUSTOM = 0,
+
+ ///
+ /// The sRGB color space.
+ ///
+ D2D1_COLOR_SPACE_SRGB = 1,
+
+ ///
+ /// The scRGB color space.
+ ///
+ D2D1_COLOR_SPACE_SCRGB = 2,
+ D2D1_COLOR_SPACE_FORCE_DWORD = 0xffffffff
} D2D1_COLOR_SPACE;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_DEVICE_CONTEXT_OPTIONS
-//
-// Synopsis:
-// This specifies options that apply to the device context for its lifetime.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies options that apply to the device context for its lifetime.
+///
typedef enum D2D1_DEVICE_CONTEXT_OPTIONS
{
- D2D1_DEVICE_CONTEXT_OPTIONS_NONE = 0,
-
- //
- // Geometry rendering will be performed on many threads in parallel, a single
- // thread is the default.
- //
- D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS = 1,
- D2D1_DEVICE_CONTEXT_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_DEVICE_CONTEXT_OPTIONS_NONE = 0,
+
+ ///
+ /// Geometry rendering will be performed on many threads in parallel, a single
+ /// thread is the default.
+ ///
+ D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS = 1,
+ D2D1_DEVICE_CONTEXT_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_DEVICE_CONTEXT_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_DEVICE_CONTEXT_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_STROKE_TRANSFORM_TYPE
-//
-//------------------------------------------------------------------------------
+///
+/// Defines how the world transform, dots per inch (dpi), and stroke width affect
+/// the shape of the pen used to stroke a primitive.
+///
typedef enum D2D1_STROKE_TRANSFORM_TYPE
{
-
- //
- // The stroke respects the world transform, the DPI, and the stroke width.
- //
- D2D1_STROKE_TRANSFORM_TYPE_NORMAL = 0,
-
- //
- // The stroke does not respect the world transform, but it does respect the DPI and
- // the stroke width.
- //
- D2D1_STROKE_TRANSFORM_TYPE_FIXED = 1,
-
- //
- // The stroke is forced to one pixel wide.
- //
- D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE = 2,
- D2D1_STROKE_TRANSFORM_TYPE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// The stroke respects the world transform, the DPI, and the stroke width.
+ ///
+ D2D1_STROKE_TRANSFORM_TYPE_NORMAL = 0,
+
+ ///
+ /// The stroke does not respect the world transform, but it does respect the DPI and
+ /// the stroke width.
+ ///
+ D2D1_STROKE_TRANSFORM_TYPE_FIXED = 1,
+
+ ///
+ /// The stroke is forced to one pixel wide.
+ ///
+ D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE = 2,
+ D2D1_STROKE_TRANSFORM_TYPE_FORCE_DWORD = 0xffffffff
} D2D1_STROKE_TRANSFORM_TYPE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_PRIMITIVE_BLEND
-//
-// Synopsis:
-// A blend mode that applies to all primitives drawn on the context.
-//
-//------------------------------------------------------------------------------
+///
+/// A blend mode that applies to all primitives drawn on the context.
+///
typedef enum D2D1_PRIMITIVE_BLEND
{
- D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0,
- D2D1_PRIMITIVE_BLEND_COPY = 1,
- D2D1_PRIMITIVE_BLEND_MIN = 2,
- D2D1_PRIMITIVE_BLEND_ADD = 3,
- D2D1_PRIMITIVE_BLEND_FORCE_DWORD = 0xffffffff
+ D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0,
+ D2D1_PRIMITIVE_BLEND_COPY = 1,
+ D2D1_PRIMITIVE_BLEND_MIN = 2,
+ D2D1_PRIMITIVE_BLEND_ADD = 3,
+ D2D1_PRIMITIVE_BLEND_FORCE_DWORD = 0xffffffff
} D2D1_PRIMITIVE_BLEND;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_THREADING_MODE
-//
-// Synopsis:
-// This specifies the threading mode used while simultaneously creating the device,
-// factory, and device context.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies the threading mode used while simultaneously creating the device,
+/// factory, and device context.
+///
typedef enum D2D1_THREADING_MODE
{
-
- //
- // Resources may only be invoked serially. Reference counts on resources are
- // interlocked, however, resource and render target state is not protected from
- // multi-threaded access
- //
- D2D1_THREADING_MODE_SINGLE_THREADED = D2D1_FACTORY_TYPE_SINGLE_THREADED,
-
- //
- // Resources may be invoked from multiple threads. Resources use interlocked
- // reference counting and their state is protected.
- //
- D2D1_THREADING_MODE_MULTI_THREADED = D2D1_FACTORY_TYPE_MULTI_THREADED,
- D2D1_THREADING_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Resources may only be invoked serially. Reference counts on resources are
+ /// interlocked, however, resource and render target state is not protected from
+ /// multi-threaded access
+ ///
+ D2D1_THREADING_MODE_SINGLE_THREADED = D2D1_FACTORY_TYPE_SINGLE_THREADED,
+
+ ///
+ /// Resources may be invoked from multiple threads. Resources use interlocked
+ /// reference counting and their state is protected.
+ ///
+ D2D1_THREADING_MODE_MULTI_THREADED = D2D1_FACTORY_TYPE_MULTI_THREADED,
+ D2D1_THREADING_MODE_FORCE_DWORD = 0xffffffff
} D2D1_THREADING_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLOR_INTERPOLATION_MODE
-//
-// Synopsis:
-// This specifies how colors are interpolated.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies how colors are interpolated.
+///
typedef enum D2D1_COLOR_INTERPOLATION_MODE
{
-
- //
- // Colors will be interpolated in straight alpha space.
- //
- D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT = 0,
-
- //
- // Colors will be interpolated in premultiplied alpha space.
- //
- D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED = 1,
- D2D1_COLOR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Colors will be interpolated in straight alpha space.
+ ///
+ D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT = 0,
+
+ ///
+ /// Colors will be interpolated in premultiplied alpha space.
+ ///
+ D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED = 1,
+ D2D1_COLOR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_COLOR_INTERPOLATION_MODE;
@@ -488,39 +396,27 @@ typedef D2D_VECTOR_2F D2D1_VECTOR_2F;
typedef D2D_VECTOR_3F D2D1_VECTOR_3F;
typedef D2D_VECTOR_4F D2D1_VECTOR_4F;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BITMAP_PROPERTIES1
-//
-// Synopsis:
-// Extended bitmap properties.
-//
-//------------------------------------------------------------------------------
+///
+/// Extended bitmap properties.
+///
typedef struct D2D1_BITMAP_PROPERTIES1
{
D2D1_PIXEL_FORMAT pixelFormat;
FLOAT dpiX;
FLOAT dpiY;
- //
- // Specifies how the bitmap can be used.
- //
+ ///
+ /// Specifies how the bitmap can be used.
+ ///
D2D1_BITMAP_OPTIONS bitmapOptions;
_Field_size_opt_(1) ID2D1ColorContext *colorContext;
} D2D1_BITMAP_PROPERTIES1;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_MAPPED_RECT
-//
-// Synopsis:
-// Describes mapped memory from the ID2D1Bitmap1::Map API.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes mapped memory from the ID2D1Bitmap1::Map API.
+///
typedef struct D2D1_MAPPED_RECT
{
UINT32 pitch;
@@ -529,57 +425,45 @@ typedef struct D2D1_MAPPED_RECT
} D2D1_MAPPED_RECT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_RENDERING_CONTROLS
-//
-// Synopsis:
-// This controls advanced settings of the Direct2D imaging pipeline.
-//
-//------------------------------------------------------------------------------
+///
+/// This controls advanced settings of the Direct2D imaging pipeline.
+///
typedef struct D2D1_RENDERING_CONTROLS
{
- //
- // The default buffer precision, used if the precision isn't otherwise specified.
- //
+ ///
+ /// The default buffer precision, used if the precision isn't otherwise specified.
+ ///
D2D1_BUFFER_PRECISION bufferPrecision;
- //
- // The size of allocated tiles used to render imaging effects.
- //
+ ///
+ /// The size of allocated tiles used to render imaging effects.
+ ///
D2D1_SIZE_U tileSize;
} D2D1_RENDERING_CONTROLS;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_EFFECT_INPUT_DESCRIPTION
-//
-// Synopsis:
-// This identifies a certain input connection of a certain effect.
-//
-//------------------------------------------------------------------------------
+///
+/// This identifies a certain input connection of a certain effect.
+///
typedef struct D2D1_EFFECT_INPUT_DESCRIPTION
{
- //
- // The effect whose input connection is being specified.
- //
+ ///
+ /// The effect whose input connection is being specified.
+ ///
ID2D1Effect *effect;
- //
- // The index of the input connection into the specified effect.
- //
+ ///
+ /// The index of the input connection into the specified effect.
+ ///
UINT32 inputIndex;
- //
- // The rectangle which would be available on the specified input connection during
- // render operations.
- //
+ ///
+ /// The rectangle which would be available on the specified input connection during
+ /// render operations.
+ ///
D2D1_RECT_F inputRectangle;
} D2D1_EFFECT_INPUT_DESCRIPTION;
@@ -588,15 +472,9 @@ typedef D2D_MATRIX_4X3_F D2D1_MATRIX_4X3_F;
typedef D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F;
typedef D2D_MATRIX_5X4_F D2D1_MATRIX_5X4_F;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_POINT_DESCRIPTION
-//
-// Synopsis:
-// Describes a point along a path.
-//
-//------------------------------------------------------------------------------
+///
+/// Describes a point along a path.
+///
typedef struct D2D1_POINT_DESCRIPTION
{
D2D1_POINT_2F point;
@@ -608,15 +486,9 @@ typedef struct D2D1_POINT_DESCRIPTION
} D2D1_POINT_DESCRIPTION;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_IMAGE_BRUSH_PROPERTIES
-//
-// Synopsis:
-// Creation properties for an image brush.
-//
-//------------------------------------------------------------------------------
+///
+/// Creation properties for an image brush.
+///
typedef struct D2D1_IMAGE_BRUSH_PROPERTIES
{
D2D1_RECT_F sourceRectangle;
@@ -627,12 +499,9 @@ typedef struct D2D1_IMAGE_BRUSH_PROPERTIES
} D2D1_IMAGE_BRUSH_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_BITMAP_BRUSH_PROPERTIES1
-//
-//------------------------------------------------------------------------------
+///
+/// Describes the extend modes and the interpolation mode of an ID2D1BitmapBrush.
+///
typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1
{
D2D1_EXTEND_MODE extendModeX;
@@ -642,15 +511,9 @@ typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1
} D2D1_BITMAP_BRUSH_PROPERTIES1;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_STROKE_STYLE_PROPERTIES1
-//
-// Synopsis:
-// This defines how geometries should be drawn and widened.
-//
-//------------------------------------------------------------------------------
+///
+/// This defines how geometries should be drawn and widened.
+///
typedef struct D2D1_STROKE_STYLE_PROPERTIES1
{
D2D1_CAP_STYLE startCap;
@@ -661,44 +524,32 @@ typedef struct D2D1_STROKE_STYLE_PROPERTIES1
D2D1_DASH_STYLE dashStyle;
FLOAT dashOffset;
- //
- // How the nib of the stroke is influenced by the context properties.
- //
+ ///
+ /// How the nib of the stroke is influenced by the context properties.
+ ///
D2D1_STROKE_TRANSFORM_TYPE transformType;
} D2D1_STROKE_STYLE_PROPERTIES1;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_LAYER_OPTIONS1
-//
-// Synopsis:
-// Specifies how the layer contents should be prepared.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how the layer contents should be prepared.
+///
typedef enum D2D1_LAYER_OPTIONS1
{
- D2D1_LAYER_OPTIONS1_NONE = 0,
- D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 1,
- D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 2,
- D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff
+ D2D1_LAYER_OPTIONS1_NONE = 0,
+ D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 1,
+ D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 2,
+ D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff
} D2D1_LAYER_OPTIONS1;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS1);
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_LAYER_PARAMETERS1
-//
-// Synopsis:
-// All parameters related to pushing a layer.
-//
-//------------------------------------------------------------------------------
+///
+/// All parameters related to pushing a layer.
+///
typedef struct D2D1_LAYER_PARAMETERS1
{
D2D1_RECT_F contentBounds;
@@ -712,43 +563,34 @@ typedef struct D2D1_LAYER_PARAMETERS1
} D2D1_LAYER_PARAMETERS1;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_PRINT_FONT_SUBSET_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Defines when font resources should be subset during printing.
+///
typedef enum D2D1_PRINT_FONT_SUBSET_MODE
{
-
- //
- // Subset for used glyphs, send and discard font resource after every five pages
- //
- D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT = 0,
-
- //
- // Subset for used glyphs, send and discard font resource after each page
- //
- D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE = 1,
-
- //
- // Do not subset, reuse font for all pages, send it after first page
- //
- D2D1_PRINT_FONT_SUBSET_MODE_NONE = 2,
- D2D1_PRINT_FONT_SUBSET_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Subset for used glyphs, send and discard font resource after every five pages
+ ///
+ D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT = 0,
+
+ ///
+ /// Subset for used glyphs, send and discard font resource after each page
+ ///
+ D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE = 1,
+
+ ///
+ /// Do not subset, reuse font for all pages, send it after first page
+ ///
+ D2D1_PRINT_FONT_SUBSET_MODE_NONE = 2,
+ D2D1_PRINT_FONT_SUBSET_MODE_FORCE_DWORD = 0xffffffff
} D2D1_PRINT_FONT_SUBSET_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_DRAWING_STATE_DESCRIPTION1
-//
-// Synopsis:
-// This describes the drawing state.
-//
-//------------------------------------------------------------------------------
+///
+/// This describes the drawing state.
+///
typedef struct D2D1_DRAWING_STATE_DESCRIPTION1
{
D2D1_ANTIALIAS_MODE antialiasMode;
@@ -762,46 +604,37 @@ typedef struct D2D1_DRAWING_STATE_DESCRIPTION1
} D2D1_DRAWING_STATE_DESCRIPTION1;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_PRINT_CONTROL_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// The creation properties for a ID2D1PrintControl object.
+///
typedef struct D2D1_PRINT_CONTROL_PROPERTIES
{
D2D1_PRINT_FONT_SUBSET_MODE fontSubset;
- //
- // DPI for rasterization of all unsupported D2D commands or options, defaults to
- // 150.0
- //
+ ///
+ /// DPI for rasterization of all unsupported D2D commands or options, defaults to
+ /// 150.0
+ ///
FLOAT rasterDPI;
- //
- // Color space for vector graphics in XPS package
- //
+ ///
+ /// Color space for vector graphics in XPS package
+ ///
D2D1_COLOR_SPACE colorSpace;
} D2D1_PRINT_CONTROL_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_CREATION_PROPERTIES
-//
-// Synopsis:
-// This specifies the options while simultaneously creating the device, factory,
-// and device context.
-//
-//------------------------------------------------------------------------------
+///
+/// This specifies the options while simultaneously creating the device, factory,
+/// and device context.
+///
typedef struct D2D1_CREATION_PROPERTIES
{
- //
- // Describes locking behavior of D2D resources
- //
+ ///
+ /// Describes locking behavior of D2D resources
+ ///
D2D1_THREADING_MODE threadingMode;
D2D1_DEBUG_LEVEL debugLevel;
D2D1_DEVICE_CONTEXT_OPTIONS options;
@@ -812,23 +645,15 @@ typedef struct D2D1_CREATION_PROPERTIES
#ifndef D2D_USE_C_DEFINITIONS
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GdiMetafileSink
-//
-// Synopsis:
-// User-implementable interface for introspecting on a metafile.
-//
-//------------------------------------------------------------------------------
+///
+/// User-implementable interface for introspecting on a metafile.
+///
interface DX_DECLARE_INTERFACE("82237326-8111-4f7c-bcf4-b5c1175564fe") ID2D1GdiMetafileSink : public IUnknown
{
-
- //
- // Callback for examining a metafile record.
- //
+ ///
+ /// Callback for examining a metafile record.
+ ///
STDMETHOD(ProcessRecord)(
DWORD recordType,
_In_opt_ CONST void *recordData,
@@ -837,48 +662,32 @@ interface DX_DECLARE_INTERFACE("82237326-8111-4f7c-bcf4-b5c1175564fe") ID2D1GdiM
}; // interface ID2D1GdiMetafileSink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GdiMetafile
-//
-// Synopsis:
-// Interface encapsulating a GDI/GDI+ metafile.
-//
-//------------------------------------------------------------------------------
+///
+/// Interface encapsulating a GDI/GDI+ metafile.
+///
interface DX_DECLARE_INTERFACE("2f543dc3-cfc1-4211-864f-cfd91c6f3395") ID2D1GdiMetafile : public ID2D1Resource
{
-
- //
- // Play the metafile into a caller-supplied sink interface.
- //
+ ///
+ /// Play the metafile into a caller-supplied sink interface.
+ ///
STDMETHOD(Stream)(
_In_ ID2D1GdiMetafileSink *sink
) PURE;
-
- //
- // Gets the bounds of the metafile.
- //
+ ///
+ /// Gets the bounds of the metafile.
+ ///
STDMETHOD(GetBounds)(
_Out_ D2D1_RECT_F *bounds
) PURE;
}; // interface ID2D1GdiMetafile
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1CommandSink
-//
-// Synopsis:
-// Caller-supplied implementation of an interface to receive the recorded command
-// list.
-//
-//------------------------------------------------------------------------------
+///
+/// Caller-supplied implementation of an interface to receive the recorded command
+/// list.
+///
interface DX_DECLARE_INTERFACE("54d7898a-a061-40a7-bec7-e465bcba2c4f") ID2D1CommandSink : public IUnknown
{
@@ -1014,43 +823,31 @@ interface DX_DECLARE_INTERFACE("54d7898a-a061-40a7-bec7-e465bcba2c4f") ID2D1Comm
}; // interface ID2D1CommandSink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1CommandList
-//
-// Synopsis:
-// The commandList interface.
-//
-//------------------------------------------------------------------------------
+///
+/// The commandList interface.
+///
interface DX_DECLARE_INTERFACE("b4f34a19-2383-4d76-94f6-ec343657c3dc") ID2D1CommandList : public ID2D1Image
{
-
- //
- // Play the command list into a caller-supplied sink interface.
- //
+ ///
+ /// Play the command list into a caller-supplied sink interface.
+ ///
STDMETHOD(Stream)(
_In_ ID2D1CommandSink *sink
) PURE;
-
- //
- // Marks the command list as ready for use.
- //
+ ///
+ /// Marks the command list as ready for use.
+ ///
STDMETHOD(Close)(
) PURE;
}; // interface ID2D1CommandList
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1PrintControl
-//
-//------------------------------------------------------------------------------
+///
+/// Converts Direct2D primitives stored in an ID2D1CommandList into a fixed page
+/// representation. The print sub-system then consumes the primitives.
+///
interface DX_DECLARE_INTERFACE("2c1d867d-c290-41c8-ae7e-34a98702e9a5") ID2D1PrintControl : public IUnknown
{
@@ -1067,17 +864,10 @@ interface DX_DECLARE_INTERFACE("2c1d867d-c290-41c8-ae7e-34a98702e9a5") ID2D1Prin
}; // interface ID2D1PrintControl
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1ImageBrush
-//
-// Synopsis:
-// Provides a brush that can take any effect, command list or bitmap and use it to
-// fill a 2D shape.
-//
-//------------------------------------------------------------------------------
+///
+/// Provides a brush that can take any effect, command list or bitmap and use it to
+/// fill a 2D shape.
+///
interface DX_DECLARE_INTERFACE("fe9e984d-3f95-407c-b5db-cb94d4e8f87c") ID2D1ImageBrush : public ID2D1Brush
{
@@ -1102,7 +892,7 @@ interface DX_DECLARE_INTERFACE("fe9e984d-3f95-407c-b5db-cb94d4e8f87c") ID2D1Imag
) PURE;
STDMETHOD_(void, GetImage)(
- _Outptr_ ID2D1Image **image
+ _Outptr_result_maybenull_ ID2D1Image **image
) CONST PURE;
STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
@@ -1120,24 +910,16 @@ interface DX_DECLARE_INTERFACE("fe9e984d-3f95-407c-b5db-cb94d4e8f87c") ID2D1Imag
}; // interface ID2D1ImageBrush
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1BitmapBrush1
-//
-// Synopsis:
-// A bitmap brush allows a bitmap to be used to fill a geometry. Interpolation
-// mode is specified with D2D1_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// A bitmap brush allows a bitmap to be used to fill a geometry. Interpolation
+/// mode is specified with D2D1_INTERPOLATION_MODE
+///
interface DX_DECLARE_INTERFACE("41343a53-e41a-49a2-91cd-21793bbb62e5") ID2D1BitmapBrush1 : public ID2D1BitmapBrush
{
-
- //
- // Sets the interpolation mode used when this brush is used.
- //
+ ///
+ /// Sets the interpolation mode used when this brush is used.
+ ///
STDMETHOD_(void, SetInterpolationMode1)(
D2D1_INTERPOLATION_MODE interpolationMode
) PURE;
@@ -1147,16 +929,9 @@ interface DX_DECLARE_INTERFACE("41343a53-e41a-49a2-91cd-21793bbb62e5") ID2D1Bitm
}; // interface ID2D1BitmapBrush1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1StrokeStyle1
-//
-// Synopsis:
-// Extends a stroke style to allow nominal width strokes.
-//
-//------------------------------------------------------------------------------
+///
+/// Extends a stroke style to allow nominal width strokes.
+///
interface DX_DECLARE_INTERFACE("10a72a66-e91c-43f4-993f-ddf4b82b0b4a") ID2D1StrokeStyle1 : public ID2D1StrokeStyle
{
@@ -1165,13 +940,11 @@ interface DX_DECLARE_INTERFACE("10a72a66-e91c-43f4-993f-ddf4b82b0b4a") ID2D1Stro
}; // interface ID2D1StrokeStyle1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1PathGeometry1
-//
-//------------------------------------------------------------------------------
+///
+/// The ID2D1PathGeometry1 interface adds functionality to ID2D1PathGeometry. In
+/// particular, it provides the path geometry-specific
+/// ComputePointAndSegmentAtLength method.
+///
interface DX_DECLARE_INTERFACE("62baa2d2-ab54-41b7-b872-787e0106a421") ID2D1PathGeometry1 : public ID2D1PathGeometry
{
@@ -1222,61 +995,52 @@ interface DX_DECLARE_INTERFACE("62baa2d2-ab54-41b7-b872-787e0106a421") ID2D1Path
}; // interface ID2D1PathGeometry1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Properties
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a set of run-time bindable and discoverable properties that allow a
+/// data-driven application to modify the state of a Direct2D effect.
+///
interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Properties : public IUnknown
{
-
- //
- // Returns the total number of custom properties in this interface.
- //
+ ///
+ /// Returns the total number of custom properties in this interface.
+ ///
STDMETHOD_(UINT32, GetPropertyCount)(
) CONST PURE;
-
- //
- // Retrieves the property name from the given property index.
- //
+ ///
+ /// Retrieves the property name from the given property index.
+ ///
STDMETHOD(GetPropertyName)(
UINT32 index,
_Out_writes_(nameCount) PWSTR name,
UINT32 nameCount
) CONST PURE;
-
- //
- // Returns the length of the property name from the given index.
- //
+ ///
+ /// Returns the length of the property name from the given index.
+ ///
STDMETHOD_(UINT32, GetPropertyNameLength)(
UINT32 index
) CONST PURE;
-
- //
- // Retrieves the type of the given property.
- //
+ ///
+ /// Retrieves the type of the given property.
+ ///
STDMETHOD_(D2D1_PROPERTY_TYPE, GetType)(
UINT32 index
) CONST PURE;
-
- //
- // Retrieves the property index for the given property name.
- //
+ ///
+ /// Retrieves the property index for the given property name.
+ ///
STDMETHOD_(UINT32, GetPropertyIndex)(
_In_ PCWSTR name
) CONST PURE;
-
- //
- // Sets the value of the given property using its name.
- //
+ ///
+ /// Sets the value of the given property using its name.
+ ///
STDMETHOD(SetValueByName)(
_In_ PCWSTR name,
D2D1_PROPERTY_TYPE type,
@@ -1284,10 +1048,9 @@ interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Prop
UINT32 dataSize
) PURE;
-
- //
- // Sets the given value using the property index.
- //
+ ///
+ /// Sets the given value using the property index.
+ ///
STDMETHOD(SetValue)(
UINT32 index,
D2D1_PROPERTY_TYPE type,
@@ -1295,11 +1058,10 @@ interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Prop
UINT32 dataSize
) PURE;
-
- //
- // Retrieves the given property or sub-property by name. '.' is the delimiter for
- // sub-properties.
- //
+ ///
+ /// Retrieves the given property or sub-property by name. '.' is the delimiter for
+ /// sub-properties.
+ ///
STDMETHOD(GetValueByName)(
_In_ PCWSTR name,
D2D1_PROPERTY_TYPE type,
@@ -1307,10 +1069,9 @@ interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Prop
UINT32 dataSize
) CONST PURE;
-
- //
- // Retrieves the given value by index.
- //
+ ///
+ /// Retrieves the given value by index.
+ ///
STDMETHOD(GetValue)(
UINT32 index,
D2D1_PROPERTY_TYPE type,
@@ -1318,21 +1079,19 @@ interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Prop
UINT32 dataSize
) CONST PURE;
-
- //
- // Returns the value size for the given property index.
- //
+ ///
+ /// Returns the value size for the given property index.
+ ///
STDMETHOD_(UINT32, GetValueSize)(
UINT32 index
) CONST PURE;
-
- //
- // Retrieves the sub-properties of the given property by index.
- //
+ ///
+ /// Retrieves the sub-properties of the given property by index.
+ ///
STDMETHOD(GetSubProperties)(
UINT32 index,
- _Outptr_result_maybenull_ ID2D1Properties **subProperties
+ _COM_Outptr_result_maybenull_ ID2D1Properties **subProperties
) CONST PURE;
COM_DECLSPEC_NOTHROW
@@ -1511,62 +1270,50 @@ interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Prop
}; // interface ID2D1Properties
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Effect
-//
-// Synopsis:
-// The effect interface. Properties control how the effect is rendered. The effect
-// is Drawn with the DrawImage call.
-//
-//------------------------------------------------------------------------------
+///
+/// The effect interface. Properties control how the effect is rendered. The effect
+/// is Drawn with the DrawImage call.
+///
interface DX_DECLARE_INTERFACE("28211a43-7d89-476f-8181-2d6159b220ad") ID2D1Effect : public ID2D1Properties
{
-
- //
- // Sets the input to the given effect. The input can be a concrete bitmap or the
- // output of another effect.
- //
+ ///
+ /// Sets the input to the given effect. The input can be a concrete bitmap or the
+ /// output of another effect.
+ ///
STDMETHOD_(void, SetInput)(
UINT32 index,
_In_opt_ ID2D1Image *input,
BOOL invalidate = TRUE
) PURE;
-
- //
- // If the effect supports a variable number of inputs, this sets the number of
- // input that are currently active on the effect.
- //
+ ///
+ /// If the effect supports a variable number of inputs, this sets the number of
+ /// input that are currently active on the effect.
+ ///
STDMETHOD(SetInputCount)(
UINT32 inputCount
) PURE;
-
- //
- // Returns the input image to the effect. The input could be another effect or a
- // bitmap.
- //
+ ///
+ /// Returns the input image to the effect. The input could be another effect or a
+ /// bitmap.
+ ///
STDMETHOD_(void, GetInput)(
UINT32 index,
_Outptr_result_maybenull_ ID2D1Image **input
) CONST PURE;
-
- //
- // This returns the number of input that are bound into this effect.
- //
+ ///
+ /// This returns the number of input that are bound into this effect.
+ ///
STDMETHOD_(UINT32, GetInputCount)(
) CONST PURE;
-
- //
- // Returns the output image of the given effect. This can be set as the input to
- // another effect or can be drawn with DrawImage.
- //
+ ///
+ /// Returns the output image of the given effect. This can be set as the input to
+ /// another effect or can be drawn with DrawImage.
+ ///
STDMETHOD_(void, GetOutput)(
_Outptr_ ID2D1Image **outputImage
) CONST PURE;
@@ -1594,87 +1341,72 @@ interface DX_DECLARE_INTERFACE("28211a43-7d89-476f-8181-2d6159b220ad") ID2D1Effe
}; // interface ID2D1Effect
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Bitmap1
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a bitmap that can be used as a surface for an ID2D1DeviceContext or
+/// mapped into system memory, and can contain additional color context information.
+///
interface DX_DECLARE_INTERFACE("a898a84c-3873-4588-b08b-ebbf978df041") ID2D1Bitmap1 : public ID2D1Bitmap
{
-
- //
- // Retrieves the color context information associated with the bitmap.
- //
+ ///
+ /// Retrieves the color context information associated with the bitmap.
+ ///
STDMETHOD_(void, GetColorContext)(
_Outptr_result_maybenull_ ID2D1ColorContext **colorContext
) CONST PURE;
-
- //
- // Retrieves the bitmap options used when creating the API.
- //
+ ///
+ /// Retrieves the bitmap options used when creating the API.
+ ///
STDMETHOD_(D2D1_BITMAP_OPTIONS, GetOptions)(
) CONST PURE;
-
- //
- // Retrieves the DXGI surface from the corresponding bitmap, if the bitmap was
- // created from a device derived from a D3D device.
- //
+ ///
+ /// Retrieves the DXGI surface from the corresponding bitmap, if the bitmap was
+ /// created from a device derived from a D3D device.
+ ///
STDMETHOD(GetSurface)(
- _Outptr_result_maybenull_ IDXGISurface **dxgiSurface
+ _COM_Outptr_result_maybenull_ IDXGISurface **dxgiSurface
) CONST PURE;
-
- //
- // Maps the given bitmap into memory. The bitmap must have been created with the
- // D2D1_BITMAP_OPTIONS_CPU_READ flag.
- //
+ ///
+ /// Maps the given bitmap into memory. The bitmap must have been created with the
+ /// D2D1_BITMAP_OPTIONS_CPU_READ flag.
+ ///
STDMETHOD(Map)(
D2D1_MAP_OPTIONS options,
_Out_ D2D1_MAPPED_RECT *mappedRect
) PURE;
-
- //
- // Unmaps the given bitmap from memory.
- //
+ ///
+ /// Unmaps the given bitmap from memory.
+ ///
STDMETHOD(Unmap)(
) PURE;
}; // interface ID2D1Bitmap1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1ColorContext
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a color context that can be used with an ID2D1Bitmap1 object.
+///
interface DX_DECLARE_INTERFACE("1c4820bb-5771-4518-a581-2fe4dd0ec657") ID2D1ColorContext : public ID2D1Resource
{
-
- //
- // Retrieves the color space of the color context.
- //
+ ///
+ /// Retrieves the color space of the color context.
+ ///
STDMETHOD_(D2D1_COLOR_SPACE, GetColorSpace)(
) CONST PURE;
-
- //
- // Retrieves the size of the color profile, in bytes.
- //
+ ///
+ /// Retrieves the size of the color profile, in bytes.
+ ///
STDMETHOD_(UINT32, GetProfileSize)(
) CONST PURE;
-
- //
- // Retrieves the color profile bytes.
- //
+ ///
+ /// Retrieves the color profile bytes.
+ ///
STDMETHOD(GetProfile)(
_Out_writes_(profileSize) BYTE *profile,
UINT32 profileSize
@@ -1682,98 +1414,77 @@ interface DX_DECLARE_INTERFACE("1c4820bb-5771-4518-a581-2fe4dd0ec657") ID2D1Colo
}; // interface ID2D1ColorContext
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GradientStopCollection1
-//
-// Synopsis:
-// Represents an collection of gradient stops that can then be the source resource
-// for either a linear or radial gradient brush.
-//
-//------------------------------------------------------------------------------
+///
+/// Represents an collection of gradient stops that can then be the source resource
+/// for either a linear or radial gradient brush.
+///
interface DX_DECLARE_INTERFACE("ae1572f4-5dd0-4777-998b-9279472ae63b") ID2D1GradientStopCollection1 : public ID2D1GradientStopCollection
{
-
- //
- // Copies the gradient stops from the collection into the caller's memory. If this
- // object was created using ID2D1DeviceContext::CreateGradientStopCollection, this
- // method returns the same values as were specified in the creation method. If this
- // object was created using ID2D1RenderTarget::CreateGradientStopCollection, the
- // stops returned here will first be transformed into the gamma space specified by
- // the colorInterpolationGamma parameter.
- //
+ ///
+ /// Copies the gradient stops from the collection into the caller's memory. If this
+ /// object was created using ID2D1DeviceContext::CreateGradientStopCollection, this
+ /// method returns the same values as were specified in the creation method. If this
+ /// object was created using ID2D1RenderTarget::CreateGradientStopCollection, the
+ /// stops returned here will first be transformed into the gamma space specified by
+ /// the colorInterpolationGamma parameter.
+ ///
STDMETHOD_(void, GetGradientStops1)(
_Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
UINT32 gradientStopsCount
) CONST PURE;
-
- //
- // Returns the color space in which interpolation occurs. If this object was
- // created using ID2D1RenderTarget::CreateGradientStopCollection, this method
- // returns the color space related to the color interpolation gamma.
- //
+ ///
+ /// Returns the color space in which interpolation occurs. If this object was
+ /// created using ID2D1RenderTarget::CreateGradientStopCollection, this method
+ /// returns the color space related to the color interpolation gamma.
+ ///
STDMETHOD_(D2D1_COLOR_SPACE, GetPreInterpolationSpace)(
) CONST PURE;
-
- //
- // Returns the color space colors will be converted to after interpolation occurs.
- // If this object was created using
- // ID2D1RenderTarget::CreateGradientStopCollection, this method returns
- // D2D1_COLOR_SPACE_SRGB.
- //
+ ///
+ /// Returns the color space colors will be converted to after interpolation occurs.
+ /// If this object was created using
+ /// ID2D1RenderTarget::CreateGradientStopCollection, this method returns
+ /// D2D1_COLOR_SPACE_SRGB.
+ ///
STDMETHOD_(D2D1_COLOR_SPACE, GetPostInterpolationSpace)(
) CONST PURE;
-
- //
- // Returns the buffer precision of this gradient. If this object was created using
- // ID2D1RenderTarget::CreateGradientStopCollection, this method returns
- // D2D1_BUFFER_PRECISION_8BPC_UNORM.
- //
+ ///
+ /// Returns the buffer precision of this gradient. If this object was created using
+ /// ID2D1RenderTarget::CreateGradientStopCollection, this method returns
+ /// D2D1_BUFFER_PRECISION_8BPC_UNORM.
+ ///
STDMETHOD_(D2D1_BUFFER_PRECISION, GetBufferPrecision)(
) CONST PURE;
-
- //
- // Returns the interpolation mode used to interpolate colors in the gradient.
- //
+ ///
+ /// Returns the interpolation mode used to interpolate colors in the gradient.
+ ///
STDMETHOD_(D2D1_COLOR_INTERPOLATION_MODE, GetColorInterpolationMode)(
) CONST PURE;
}; // interface ID2D1GradientStopCollection1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DrawingStateBlock1
-//
-// Synopsis:
-// Represents drawing state.
-//
-//------------------------------------------------------------------------------
+///
+/// Represents drawing state.
+///
interface DX_DECLARE_INTERFACE("689f1f85-c72e-4e33-8f19-85754efd5ace") ID2D1DrawingStateBlock1 : public ID2D1DrawingStateBlock
{
-
- //
- // Retrieves the state currently contained within this state block resource.
- //
+ ///
+ /// Retrieves the state currently contained within this state block resource.
+ ///
STDMETHOD_(void, GetDescription)(
_Out_ D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
) CONST PURE;
using ID2D1DrawingStateBlock::GetDescription;
-
- //
- // Sets the state description of this state block resource.
- //
+ ///
+ /// Sets the state description of this state block resource.
+ ///
STDMETHOD_(void, SetDescription)(
_In_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
) PURE;
@@ -1782,203 +1493,170 @@ interface DX_DECLARE_INTERFACE("689f1f85-c72e-4e33-8f19-85754efd5ace") ID2D1Draw
}; // interface ID2D1DrawingStateBlock1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DeviceContext
-//
-// Synopsis:
-// The device context represents a set of state and a command buffer that is used
-// to render to a target bitmap.
-//
-//------------------------------------------------------------------------------
+///
+/// The device context represents a set of state and a command buffer that is used
+/// to render to a target bitmap.
+///
interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1DeviceContext : public ID2D1RenderTarget
{
-
- //
- // Creates a bitmap with extended bitmap properties, potentially from a block of
- // memory.
- //
+ ///
+ /// Creates a bitmap with extended bitmap properties, potentially from a block of
+ /// memory.
+ ///
STDMETHOD(CreateBitmap)(
D2D1_SIZE_U size,
_In_opt_ CONST void *sourceData,
UINT32 pitch,
_In_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
) PURE;
using ID2D1RenderTarget::CreateBitmap;
-
- //
- // Create a D2D bitmap by copying a WIC bitmap.
- //
+ ///
+ /// Create a D2D bitmap by copying a WIC bitmap.
+ ///
STDMETHOD(CreateBitmapFromWicBitmap)(
_In_ IWICBitmapSource *wicBitmapSource,
_In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
) PURE;
using ID2D1RenderTarget::CreateBitmapFromWicBitmap;
-
- //
- // Creates a color context from a color space. If the space is Custom, the context
- // is initialized from the profile/profileSize arguments. Otherwise the context is
- // initialized with the profile bytes associated with the space and
- // profile/profileSize are ignored.
- //
+ ///
+ /// Creates a color context from a color space. If the space is Custom, the context
+ /// is initialized from the profile/profileSize arguments. Otherwise the context is
+ /// initialized with the profile bytes associated with the space and
+ /// profile/profileSize are ignored.
+ ///
STDMETHOD(CreateColorContext)(
D2D1_COLOR_SPACE space,
_In_reads_opt_(profileSize) CONST BYTE *profile,
UINT32 profileSize,
- _Outptr_ ID2D1ColorContext **colorContext
+ _COM_Outptr_ ID2D1ColorContext **colorContext
) PURE;
STDMETHOD(CreateColorContextFromFilename)(
_In_ PCWSTR filename,
- _Outptr_ ID2D1ColorContext **colorContext
+ _COM_Outptr_ ID2D1ColorContext **colorContext
) PURE;
STDMETHOD(CreateColorContextFromWicColorContext)(
_In_ IWICColorContext *wicColorContext,
- _Outptr_ ID2D1ColorContext **colorContext
+ _COM_Outptr_ ID2D1ColorContext **colorContext
) PURE;
-
- //
- // Creates a bitmap from a DXGI surface with a set of extended properties.
- //
+ ///
+ /// Creates a bitmap from a DXGI surface with a set of extended properties.
+ ///
STDMETHOD(CreateBitmapFromDxgiSurface)(
_In_ IDXGISurface *surface,
_In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
) PURE;
-
- //
- // Create a new effect, the effect must either be built in or previously registered
- // through ID2D1Factory1::RegisterEffectFromStream or
- // ID2D1Factory1::RegisterEffectFromString.
- //
+ ///
+ /// Create a new effect, the effect must either be built in or previously registered
+ /// through ID2D1Factory1::RegisterEffectFromStream or
+ /// ID2D1Factory1::RegisterEffectFromString.
+ ///
STDMETHOD(CreateEffect)(
_In_ REFCLSID effectId,
- _Outptr_ ID2D1Effect **effect
+ _COM_Outptr_ ID2D1Effect **effect
) PURE;
-
- //
- // A gradient stop collection represents a set of stops in an ideal unit length.
- // This is the source resource for a linear gradient and radial gradient brush.
- //
+ ///
+ /// A gradient stop collection represents a set of stops in an ideal unit length.
+ /// This is the source resource for a linear gradient and radial gradient brush.
+ ///
+ /// Specifies both the input color space and the
+ /// space in which the color interpolation occurs.
+ /// Specifies the color space colors will be
+ /// converted to after interpolation occurs.
+ /// Specifies the precision in which the gradient
+ /// buffer will be held.
+ /// Specifies how the gradient will be extended outside of
+ /// the unit length.
+ /// Determines if colors will be interpolated
+ /// in straight alpha or premultiplied alpha space.
STDMETHOD(CreateGradientStopCollection)(
_In_reads_(straightAlphaGradientStopsCount) CONST D2D1_GRADIENT_STOP *straightAlphaGradientStops,
_In_range_(>=,1) UINT32 straightAlphaGradientStopsCount,
-
- //
- // Specifies both the input color space and the space in which the color
- // interpolation occurs.
- //
D2D1_COLOR_SPACE preInterpolationSpace,
-
- //
- // Specifies the color space colors will be converted to after interpolation
- // occurs.
- //
D2D1_COLOR_SPACE postInterpolationSpace,
-
- //
- // Specifies the precision in which the gradient buffer will be held.
- //
D2D1_BUFFER_PRECISION bufferPrecision,
-
- //
- // Specifies how the gradient will be extended outside of the unit length.
- //
D2D1_EXTEND_MODE extendMode,
-
- //
- // Determines if colors will be interpolated in straight alpha or premultiplied
- // alpha space.
- //
D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
- _Outptr_ ID2D1GradientStopCollection1 **gradientStopCollection1
+ _COM_Outptr_ ID2D1GradientStopCollection1 **gradientStopCollection1
) PURE;
using ID2D1RenderTarget::CreateGradientStopCollection;
-
- //
- // Creates an image brush, the input image can be any type of image, including a
- // bitmap, effect and a command list.
- //
+ ///
+ /// Creates an image brush, the input image can be any type of image, including a
+ /// bitmap, effect and a command list.
+ ///
STDMETHOD(CreateImageBrush)(
_In_opt_ ID2D1Image *image,
_In_ CONST D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1ImageBrush **imageBrush
+ _COM_Outptr_ ID2D1ImageBrush **imageBrush
) PURE;
STDMETHOD(CreateBitmapBrush)(
_In_opt_ ID2D1Bitmap *bitmap,
_In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmapBrushProperties,
_In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1BitmapBrush1 **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
) PURE;
using ID2D1RenderTarget::CreateBitmapBrush;
-
- //
- // Creates a new command list.
- //
+ ///
+ /// Creates a new command list.
+ ///
STDMETHOD(CreateCommandList)(
- _Outptr_ ID2D1CommandList **commandList
+ _COM_Outptr_ ID2D1CommandList **commandList
) PURE;
-
- //
- // Indicates whether the format is supported by D2D.
- //
+ ///
+ /// Indicates whether the format is supported by D2D.
+ ///
STDMETHOD_(BOOL, IsDxgiFormatSupported)(
DXGI_FORMAT format
) CONST PURE;
-
- //
- // Indicates whether the buffer precision is supported by D2D.
- //
+ ///
+ /// Indicates whether the buffer precision is supported by D2D.
+ ///
STDMETHOD_(BOOL, IsBufferPrecisionSupported)(
D2D1_BUFFER_PRECISION bufferPrecision
) CONST PURE;
-
- //
- // This retrieves the local-space bounds in DIPs of the current image using the
- // device context DPI.
- //
+ ///
+ /// This retrieves the local-space bounds in DIPs of the current image using the
+ /// device context DPI.
+ ///
STDMETHOD(GetImageLocalBounds)(
_In_ ID2D1Image *image,
_Out_ D2D1_RECT_F *localBounds
) CONST PURE;
-
- //
- // This retrieves the world-space bounds in DIPs of the current image using the
- // device context DPI.
- //
+ ///
+ /// This retrieves the world-space bounds in DIPs of the current image using the
+ /// device context DPI.
+ ///
STDMETHOD(GetImageWorldBounds)(
_In_ ID2D1Image *image,
_Out_ D2D1_RECT_F *worldBounds
) CONST PURE;
-
- //
- // Retrieves the world-space bounds in DIPs of the glyph run using the device
- // context DPI.
- //
+ ///
+ /// Retrieves the world-space bounds in DIPs of the glyph run using the device
+ /// context DPI.
+ ///
STDMETHOD(GetGlyphRunWorldBounds)(
D2D1_POINT_2F baselineOrigin,
_In_ CONST DWRITE_GLYPH_RUN *glyphRun,
@@ -1986,83 +1664,73 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
_Out_ D2D1_RECT_F *bounds
) CONST PURE;
-
- //
- // Retrieves the device associated with this device context.
- //
+ ///
+ /// Retrieves the device associated with this device context.
+ ///
STDMETHOD_(void, GetDevice)(
_Outptr_ ID2D1Device **device
) CONST PURE;
-
- //
- // Sets the target for this device context to point to the given image. The image
- // can be a command list or a bitmap created with the D2D1_BITMAP_OPTIONS_TARGET
- // flag.
- //
+ ///
+ /// Sets the target for this device context to point to the given image. The image
+ /// can be a command list or a bitmap created with the D2D1_BITMAP_OPTIONS_TARGET
+ /// flag.
+ ///
STDMETHOD_(void, SetTarget)(
_In_opt_ ID2D1Image *image
) PURE;
-
- //
- // Gets the target that this device context is currently pointing to.
- //
+ ///
+ /// Gets the target that this device context is currently pointing to.
+ ///
STDMETHOD_(void, GetTarget)(
_Outptr_result_maybenull_ ID2D1Image **image
) CONST PURE;
-
- //
- // Sets tuning parameters for internal rendering inside the device context.
- //
+ ///
+ /// Sets tuning parameters for internal rendering inside the device context.
+ ///
STDMETHOD_(void, SetRenderingControls)(
_In_ CONST D2D1_RENDERING_CONTROLS *renderingControls
) PURE;
-
- //
- // This retrieves the rendering controls currently selected into the device
- // context.
- //
+ ///
+ /// This retrieves the rendering controls currently selected into the device
+ /// context.
+ ///
STDMETHOD_(void, GetRenderingControls)(
_Out_ D2D1_RENDERING_CONTROLS *renderingControls
) CONST PURE;
-
- //
- // Changes the primitive blending mode for all of the rendering operations.
- //
+ ///
+ /// Changes the primitive blending mode for all of the rendering operations.
+ ///
STDMETHOD_(void, SetPrimitiveBlend)(
D2D1_PRIMITIVE_BLEND primitiveBlend
) PURE;
-
- //
- // Returns the primitive blend currently selected into the device context.
- //
+ ///
+ /// Returns the primitive blend currently selected into the device context.
+ ///
STDMETHOD_(D2D1_PRIMITIVE_BLEND, GetPrimitiveBlend)(
) CONST PURE;
-
- //
- // Changes the units used for all of the rendering operations.
- //
+ ///
+ /// Changes the units used for all of the rendering operations.
+ ///
STDMETHOD_(void, SetUnitMode)(
D2D1_UNIT_MODE unitMode
) PURE;
-
- //
- // Returns the unit mode currently set on the device context.
- //
+ ///
+ /// Returns the unit mode currently set on the device context.
+ ///
STDMETHOD_(D2D1_UNIT_MODE, GetUnitMode)(
) CONST PURE;
-
- //
- // Draws the glyph run with an extended description to describe the glyphs.
- //
+ ///
+ /// Draws the glyph run with an extended description to describe the glyphs.
+ ///
STDMETHOD_(void, DrawGlyphRun)(
D2D1_POINT_2F baselineOrigin,
_In_ CONST DWRITE_GLYPH_RUN *glyphRun,
@@ -2073,11 +1741,10 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
using ID2D1RenderTarget::DrawGlyphRun;
-
- //
- // Draw an image to the device context. The image represents either a concrete
- // bitmap or the output of an effect graph.
- //
+ ///
+ /// Draw an image to the device context. The image represents either a concrete
+ /// bitmap or the output of an effect graph.
+ ///
STDMETHOD_(void, DrawImage)(
_In_ ID2D1Image *image,
_In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL,
@@ -2086,10 +1753,9 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER
) PURE;
-
- //
- // Draw a metafile to the device context.
- //
+ ///
+ /// Draw a metafile to the device context.
+ ///
STDMETHOD_(void, DrawGdiMetafile)(
_In_ ID2D1GdiMetafile *gdiMetafile,
_In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL
@@ -2106,10 +1772,9 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
using ID2D1RenderTarget::DrawBitmap;
-
- //
- // Push a layer on the device context.
- //
+ ///
+ /// Push a layer on the device context.
+ ///
STDMETHOD_(void, PushLayer)(
_In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters,
_In_opt_ ID2D1Layer *layer
@@ -2117,42 +1782,38 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
using ID2D1RenderTarget::PushLayer;
-
- //
- // This indicates that a portion of an effect's input is invalid. This method can
- // be called many times.
- //
+ ///
+ /// This indicates that a portion of an effect's input is invalid. This method can
+ /// be called many times.
+ ///
STDMETHOD(InvalidateEffectInputRectangle)(
_In_ ID2D1Effect *effect,
UINT32 input,
_In_ CONST D2D1_RECT_F *inputRectangle
) PURE;
-
- //
- // Gets the number of invalid ouptut rectangles that have accumulated at the
- // effect.
- //
+ ///
+ /// Gets the number of invalid ouptut rectangles that have accumulated at the
+ /// effect.
+ ///
STDMETHOD(GetEffectInvalidRectangleCount)(
_In_ ID2D1Effect *effect,
_Out_ UINT32 *rectangleCount
) PURE;
-
- //
- // Gets the invalid rectangles that are at the output of the effect.
- //
+ ///
+ /// Gets the invalid rectangles that are at the output of the effect.
+ ///
STDMETHOD(GetEffectInvalidRectangles)(
_In_ ID2D1Effect *effect,
_Out_writes_(rectanglesCount) D2D1_RECT_F *rectangles,
UINT32 rectanglesCount
) PURE;
-
- //
- // Gets the maximum region of each specified input which would be used during a
- // subsequent rendering operation
- //
+ ///
+ /// Gets the maximum region of each specified input which would be used during a
+ /// subsequent rendering operation
+ ///
STDMETHOD(GetEffectRequiredInputRectangles)(
_In_ ID2D1Effect *renderEffect,
_In_opt_ CONST D2D1_RECT_F *renderImageRectangle,
@@ -2161,12 +1822,11 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
UINT32 inputCount
) PURE;
-
- //
- // Fill using the alpha channel of the supplied opacity mask bitmap. The brush
- // opacity will be modulated by the mask. The render target antialiasing mode must
- // be set to aliased.
- //
+ ///
+ /// Fill using the alpha channel of the supplied opacity mask bitmap. The brush
+ /// opacity will be modulated by the mask. The render target antialiasing mode must
+ /// be set to aliased.
+ ///
STDMETHOD_(void, FillOpacityMask)(
_In_ ID2D1Bitmap *opacityMask,
_In_ ID2D1Brush *brush,
@@ -2183,36 +1843,34 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
_In_opt_ CONST void *sourceData,
UINT32 pitch,
CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
)
{
return CreateBitmap(size, sourceData, pitch, &bitmapProperties, bitmap);
}
-
- //
- // Create a D2D bitmap by copying a WIC bitmap.
- //
+ ///
+ /// Create a D2D bitmap by copying a WIC bitmap.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapFromWicBitmap(
_In_ IWICBitmapSource *wicBitmapSource,
CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
)
{
return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap);
}
-
- //
- // Create a D2D bitmap by copying a WIC bitmap.
- //
+ ///
+ /// Create a D2D bitmap by copying a WIC bitmap.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateBitmapFromWicBitmap(
_In_ IWICBitmapSource *wicBitmapSource,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
)
{
return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
@@ -2223,7 +1881,7 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
CreateBitmapFromDxgiSurface(
_In_ IDXGISurface *surface,
CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
+ _COM_Outptr_ ID2D1Bitmap1 **bitmap
)
{
return CreateBitmapFromDxgiSurface(surface, &bitmapProperties, bitmap);
@@ -2235,7 +1893,7 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
_In_opt_ ID2D1Image *image,
CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
- _Outptr_ ID2D1ImageBrush **imageBrush
+ _COM_Outptr_ ID2D1ImageBrush **imageBrush
)
{
return CreateImageBrush(image, &imageBrushProperties, &brushProperties, imageBrush);
@@ -2246,7 +1904,7 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
CreateImageBrush(
_In_opt_ ID2D1Image *image,
CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties,
- _Outptr_ ID2D1ImageBrush **imageBrush
+ _COM_Outptr_ ID2D1ImageBrush **imageBrush
)
{
return CreateImageBrush(image,&imageBrushProperties, NULL, imageBrush);
@@ -2256,7 +1914,7 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
HRESULT
CreateBitmapBrush(
_In_opt_ ID2D1Bitmap *bitmap,
- _Outptr_ ID2D1BitmapBrush1 **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
@@ -2267,7 +1925,7 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
CreateBitmapBrush(
_In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties,
- _Outptr_ ID2D1BitmapBrush1 **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBrush);
@@ -2279,16 +1937,15 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
_In_opt_ ID2D1Bitmap *bitmap,
CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties,
CONST D2D1_BRUSH_PROPERTIES &brushProperties,
- _Outptr_ ID2D1BitmapBrush1 **bitmapBrush
+ _COM_Outptr_ ID2D1BitmapBrush1 **bitmapBrush
)
{
return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush);
}
-
- //
- // Draws the output of the effect as an image.
- //
+ ///
+ /// Draws the output of the effect as an image.
+ ///
COM_DECLSPEC_NOTHROW
void
DrawImage(
@@ -2464,10 +2121,9 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
FillOpacityMask(opacityMask, brush, &destinationRectangle, &sourceRectangle);
}
-
- //
- // Sets tuning parameters for internal rendering inside the device context.
- //
+ ///
+ /// Sets tuning parameters for internal rendering inside the device context.
+ ///
COM_DECLSPEC_NOTHROW
void
SetRenderingControls(
@@ -2479,60 +2135,48 @@ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1Devi
}; // interface ID2D1DeviceContext
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Device
-//
-// Synopsis:
-// The device defines a resource domain whose objects and device contexts can be
-// used together.
-//
-//------------------------------------------------------------------------------
+///
+/// The device defines a resource domain whose objects and device contexts can be
+/// used together.
+///
interface DX_DECLARE_INTERFACE("47dd575d-ac05-4cdd-8049-9b02cd16f44c") ID2D1Device : public ID2D1Resource
{
-
- //
- // Creates a new device context with no initially assigned target.
- //
+ ///
+ /// Creates a new device context with no initially assigned target.
+ ///
STDMETHOD(CreateDeviceContext)(
D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext **deviceContext
+ _COM_Outptr_ ID2D1DeviceContext **deviceContext
) PURE;
-
- //
- // Creates a D2D print control.
- //
+ ///
+ /// Creates a D2D print control.
+ ///
STDMETHOD(CreatePrintControl)(
_In_ IWICImagingFactory *wicFactory,
_In_ IPrintDocumentPackageTarget *documentTarget,
_In_opt_ CONST D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties,
- _Outptr_ ID2D1PrintControl **printControl
+ _COM_Outptr_ ID2D1PrintControl **printControl
) PURE;
-
- //
- // Sets the maximum amount of texture memory to maintain before evicting caches.
- //
+ ///
+ /// Sets the maximum amount of texture memory to maintain before evicting caches.
+ ///
STDMETHOD_(void, SetMaximumTextureMemory)(
UINT64 maximumInBytes
) PURE;
-
- //
- // Gets the maximum amount of texture memory to maintain before evicting caches.
- //
+ ///
+ /// Gets the maximum amount of texture memory to maintain before evicting caches.
+ ///
STDMETHOD_(UINT64, GetMaximumTextureMemory)(
) CONST PURE;
-
- //
- // Clears all resources that are cached but not held in use by the application
- // through an interface reference.
- //
+ ///
+ /// Clears all resources that are cached but not held in use by the application
+ /// through an interface reference.
+ ///
STDMETHOD_(void, ClearResources)(
UINT32 millisecondsSinceUse = 0
) PURE;
@@ -2543,7 +2187,7 @@ interface DX_DECLARE_INTERFACE("47dd575d-ac05-4cdd-8049-9b02cd16f44c") ID2D1Devi
_In_ IWICImagingFactory *wicFactory,
_In_ IPrintDocumentPackageTarget *documentTarget,
CONST D2D1_PRINT_CONTROL_PROPERTIES &printControlProperties,
- _Outptr_ ID2D1PrintControl **printControl
+ _COM_Outptr_ ID2D1PrintControl **printControl
)
{
return CreatePrintControl(wicFactory, documentTarget, &printControlProperties, printControl);
@@ -2551,76 +2195,66 @@ interface DX_DECLARE_INTERFACE("47dd575d-ac05-4cdd-8049-9b02cd16f44c") ID2D1Devi
}; // interface ID2D1Device
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Factory1
-//
-//------------------------------------------------------------------------------
+///
+/// Creates Direct2D resources.
+///
interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Factory1 : public ID2D1Factory
{
-
- //
- // This creates a new Direct2D device from the given IDXGIDevice.
- //
+ ///
+ /// This creates a new Direct2D device from the given IDXGIDevice.
+ ///
STDMETHOD(CreateDevice)(
_In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device **d2dDevice
+ _COM_Outptr_ ID2D1Device **d2dDevice
) PURE;
-
- //
- // This creates a stroke style with the ability to preserve stroke width in various
- // ways.
- //
+ ///
+ /// This creates a stroke style with the ability to preserve stroke width in various
+ /// ways.
+ ///
STDMETHOD(CreateStrokeStyle)(
_In_ CONST D2D1_STROKE_STYLE_PROPERTIES1 *strokeStyleProperties,
_In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle1 **strokeStyle
+ _COM_Outptr_ ID2D1StrokeStyle1 **strokeStyle
) PURE;
using ID2D1Factory::CreateStrokeStyle;
-
- //
- // Creates a path geometry with new operational methods.
- //
+ ///
+ /// Creates a path geometry with new operational methods.
+ ///
STDMETHOD(CreatePathGeometry)(
- _Outptr_ ID2D1PathGeometry1 **pathGeometry
+ _COM_Outptr_ ID2D1PathGeometry1 **pathGeometry
) PURE;
using ID2D1Factory::CreatePathGeometry;
-
- //
- // Creates a new drawing state block, this can be used in subsequent
- // SaveDrawingState and RestoreDrawingState operations on the render target.
- //
+ ///
+ /// Creates a new drawing state block, this can be used in subsequent
+ /// SaveDrawingState and RestoreDrawingState operations on the render target.
+ ///
STDMETHOD(CreateDrawingStateBlock)(
_In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *drawingStateDescription,
_In_opt_ IDWriteRenderingParams *textRenderingParams,
- _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
) PURE;
using ID2D1Factory::CreateDrawingStateBlock;
-
- //
- // Creates a new GDI metafile.
- //
+ ///
+ /// Creates a new GDI metafile.
+ ///
STDMETHOD(CreateGdiMetafile)(
_In_ IStream *metafileStream,
- _Outptr_ ID2D1GdiMetafile **metafile
+ _COM_Outptr_ ID2D1GdiMetafile **metafile
) PURE;
-
- //
- // This globally registers the given effect. The effect can later be instantiated
- // by using the registered class id. The effect registration is reference counted.
- //
+ ///
+ /// This globally registers the given effect. The effect can later be instantiated
+ /// by using the registered class id. The effect registration is reference counted.
+ ///
STDMETHOD(RegisterEffectFromStream)(
_In_ REFCLSID classId,
_In_ IStream *propertyXml,
@@ -2629,11 +2263,10 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
_In_ CONST PD2D1_EFFECT_FACTORY effectFactory
) PURE;
-
- //
- // This globally registers the given effect. The effect can later be instantiated
- // by using the registered class id. The effect registration is reference counted.
- //
+ ///
+ /// This globally registers the given effect. The effect can later be instantiated
+ /// by using the registered class id. The effect registration is reference counted.
+ ///
STDMETHOD(RegisterEffectFromString)(
_In_ REFCLSID classId,
_In_ PCWSTR propertyXml,
@@ -2642,45 +2275,38 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
_In_ CONST PD2D1_EFFECT_FACTORY effectFactory
) PURE;
-
- //
- // This unregisters the given effect by its class id, you need to call
- // UnregisterEffect for every call to ID2D1Factory1::RegisterEffectFromStream and
- // ID2D1Factory1::RegisterEffectFromString to completely unregister it.
- //
+ ///
+ /// This unregisters the given effect by its class id, you need to call
+ /// UnregisterEffect for every call to ID2D1Factory1::RegisterEffectFromStream and
+ /// ID2D1Factory1::RegisterEffectFromString to completely unregister it.
+ ///
STDMETHOD(UnregisterEffect)(
_In_ REFCLSID classId
) PURE;
-
- //
- // This returns all of the registered effects in the process, including any
- // built-in effects.
- //
+ ///
+ /// This returns all of the registered effects in the process, including any
+ /// built-in effects.
+ ///
+ /// The number of effects returned into the passed in
+ /// effects array.
+ /// The number of effects currently registered in
+ /// the system.
STDMETHOD(GetRegisteredEffects)(
_Out_writes_to_opt_(effectsCount, *effectsReturned) CLSID *effects,
UINT32 effectsCount,
-
- //
- // The number of effects returned into the passed in effects array.
- //
_Out_opt_ UINT32 *effectsReturned,
-
- //
- // The number of effects currently registered in the system.
- //
_Out_opt_ UINT32 *effectsRegistered
) CONST PURE;
-
- //
- // This retrieves the effect properties for the given effect, all of the effect
- // properties will be set to a default value since an effect is not instantiated to
- // implement the returned property interface.
- //
+ ///
+ /// This retrieves the effect properties for the given effect, all of the effect
+ /// properties will be set to a default value since an effect is not instantiated to
+ /// implement the returned property interface.
+ ///
STDMETHOD(GetEffectProperties)(
_In_ REFCLSID effectId,
- _Outptr_ ID2D1Properties **properties
+ _COM_Outptr_ ID2D1Properties **properties
) CONST PURE;
COM_DECLSPEC_NOTHROW
@@ -2689,7 +2315,7 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
CONST D2D1_STROKE_STYLE_PROPERTIES1 &strokeStyleProperties,
_In_reads_opt_(dashesCount) CONST FLOAT *dashes,
UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle1 **strokeStyle
+ _COM_Outptr_ ID2D1StrokeStyle1 **strokeStyle
)
{
return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle);
@@ -2699,7 +2325,7 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
HRESULT
CreateDrawingStateBlock(
CONST D2D1_DRAWING_STATE_DESCRIPTION1 &drawingStateDescription,
- _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
)
{
return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock);
@@ -2708,7 +2334,7 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
COM_DECLSPEC_NOTHROW
HRESULT
CreateDrawingStateBlock(
- _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
+ _COM_Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
)
{
return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
@@ -2716,35 +2342,29 @@ interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Fact
}; // interface ID2D1Factory1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Multithread
-//
-//------------------------------------------------------------------------------
+///
+/// A locking mechanism from a Direct2D factory that Direct2D uses to control
+/// exclusive resource access in an app that is uses multiple threads.
+///
interface DX_DECLARE_INTERFACE("31e6e7bc-e0ff-4d46-8c64-a0a8c41c15d3") ID2D1Multithread : public IUnknown
{
-
- //
- // Returns whether the D2D factory was created with
- // D2D1_FACTORY_TYPE_MULTI_THREADED.
- //
+ ///
+ /// Returns whether the D2D factory was created with
+ /// D2D1_FACTORY_TYPE_MULTI_THREADED.
+ ///
STDMETHOD_(BOOL, GetMultithreadProtected)(
) CONST PURE;
-
- //
- // Enters the D2D API critical section, if it exists.
- //
+ ///
+ /// Enters the D2D API critical section, if it exists.
+ ///
STDMETHOD_(void, Enter)(
) PURE;
-
- //
- // Leaves the D2D API critical section, if it exists.
- //
+ ///
+ /// Leaves the D2D API critical section, if it exists.
+ ///
STDMETHOD_(void, Leave)(
) PURE;
}; // interface ID2D1Multithread
@@ -2780,2023 +2400,42 @@ EXTERN_C CONST IID IID_ID2D1Multithread;
typedef interface ID2D1GdiMetafileSink ID2D1GdiMetafileSink;
-typedef struct ID2D1GdiMetafileSinkVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD(ProcessRecord)(
- ID2D1GdiMetafileSink *This,
- DWORD recordType,
- _In_opt_ CONST void *recordData,
- DWORD recordDataSize
- ) PURE;
-} ID2D1GdiMetafileSinkVtbl;
-
-interface ID2D1GdiMetafileSink
-{
- CONST struct ID2D1GdiMetafileSinkVtbl *lpVtbl;
-};
-
-
-#define ID2D1GdiMetafileSink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GdiMetafileSink_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1GdiMetafileSink_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1GdiMetafileSink_ProcessRecord(This, recordType, recordData, recordDataSize) \
- ((This)->lpVtbl->ProcessRecord(This, recordType, recordData, recordDataSize))
-
typedef interface ID2D1GdiMetafile ID2D1GdiMetafile;
-typedef struct ID2D1GdiMetafileVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD(Stream)(
- ID2D1GdiMetafile *This,
- _In_ ID2D1GdiMetafileSink *sink
- ) PURE;
-
- STDMETHOD(GetBounds)(
- ID2D1GdiMetafile *This,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-} ID2D1GdiMetafileVtbl;
-
-interface ID2D1GdiMetafile
-{
- CONST struct ID2D1GdiMetafileVtbl *lpVtbl;
-};
-
-
-#define ID2D1GdiMetafile_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GdiMetafile_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GdiMetafile_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GdiMetafile_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GdiMetafile_Stream(This, sink) \
- ((This)->lpVtbl->Stream(This, sink))
-
-#define ID2D1GdiMetafile_GetBounds(This, bounds) \
- ((This)->lpVtbl->GetBounds(This, bounds))
-
typedef interface ID2D1CommandSink ID2D1CommandSink;
-typedef struct ID2D1CommandSinkVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD(BeginDraw)(
- ID2D1CommandSink *This
- ) PURE;
-
- STDMETHOD(EndDraw)(
- ID2D1CommandSink *This
- ) PURE;
-
- STDMETHOD(SetAntialiasMode)(
- ID2D1CommandSink *This,
- D2D1_ANTIALIAS_MODE antialiasMode
- ) PURE;
-
- STDMETHOD(SetTags)(
- ID2D1CommandSink *This,
- D2D1_TAG tag1,
- D2D1_TAG tag2
- ) PURE;
-
- STDMETHOD(SetTextAntialiasMode)(
- ID2D1CommandSink *This,
- D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
- ) PURE;
-
- STDMETHOD(SetTextRenderingParams)(
- ID2D1CommandSink *This,
- _In_opt_ IDWriteRenderingParams *textRenderingParams
- ) PURE;
-
- STDMETHOD(SetTransform)(
- ID2D1CommandSink *This,
- _In_ CONST D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD(SetPrimitiveBlend)(
- ID2D1CommandSink *This,
- D2D1_PRIMITIVE_BLEND primitiveBlend
- ) PURE;
-
- STDMETHOD(SetUnitMode)(
- ID2D1CommandSink *This,
- D2D1_UNIT_MODE unitMode
- ) PURE;
-
- STDMETHOD(Clear)(
- ID2D1CommandSink *This,
- _In_opt_ CONST D2D1_COLOR_F *color
- ) PURE;
-
- STDMETHOD(DrawGlyphRun)(
- ID2D1CommandSink *This,
- D2D1_POINT_2F baselineOrigin,
- _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
- _In_opt_ CONST DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription,
- _In_ ID2D1Brush *foregroundBrush,
- DWRITE_MEASURING_MODE measuringMode
- ) PURE;
-
- STDMETHOD(DrawLine)(
- ID2D1CommandSink *This,
- D2D1_POINT_2F point0,
- D2D1_POINT_2F point1,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD(DrawGeometry)(
- ID2D1CommandSink *This,
- _In_ ID2D1Geometry *geometry,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD(DrawRectangle)(
- ID2D1CommandSink *This,
- _In_ CONST D2D1_RECT_F *rect,
- _In_ ID2D1Brush *brush,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle
- ) PURE;
-
- STDMETHOD(DrawBitmap)(
- ID2D1CommandSink *This,
- _In_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- FLOAT opacity,
- D2D1_INTERPOLATION_MODE interpolationMode,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle,
- _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform
- ) PURE;
-
- STDMETHOD(DrawImage)(
- ID2D1CommandSink *This,
- _In_ ID2D1Image *image,
- _In_opt_ CONST D2D1_POINT_2F *targetOffset,
- _In_opt_ CONST D2D1_RECT_F *imageRectangle,
- D2D1_INTERPOLATION_MODE interpolationMode,
- D2D1_COMPOSITE_MODE compositeMode
- ) PURE;
-
- STDMETHOD(DrawGdiMetafile)(
- ID2D1CommandSink *This,
- _In_ ID2D1GdiMetafile *gdiMetafile,
- _In_opt_ CONST D2D1_POINT_2F *targetOffset
- ) PURE;
-
- STDMETHOD(FillMesh)(
- ID2D1CommandSink *This,
- _In_ ID2D1Mesh *mesh,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD(FillOpacityMask)(
- ID2D1CommandSink *This,
- _In_ ID2D1Bitmap *opacityMask,
- _In_ ID2D1Brush *brush,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-
- STDMETHOD(FillGeometry)(
- ID2D1CommandSink *This,
- _In_ ID2D1Geometry *geometry,
- _In_ ID2D1Brush *brush,
- _In_opt_ ID2D1Brush *opacityBrush
- ) PURE;
-
- STDMETHOD(FillRectangle)(
- ID2D1CommandSink *This,
- _In_ CONST D2D1_RECT_F *rect,
- _In_ ID2D1Brush *brush
- ) PURE;
-
- STDMETHOD(PushAxisAlignedClip)(
- ID2D1CommandSink *This,
- _In_ CONST D2D1_RECT_F *clipRect,
- D2D1_ANTIALIAS_MODE antialiasMode
- ) PURE;
-
- STDMETHOD(PushLayer)(
- ID2D1CommandSink *This,
- _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters1,
- _In_opt_ ID2D1Layer *layer
- ) PURE;
-
- STDMETHOD(PopAxisAlignedClip)(
- ID2D1CommandSink *This
- ) PURE;
-
- STDMETHOD(PopLayer)(
- ID2D1CommandSink *This
- ) PURE;
-} ID2D1CommandSinkVtbl;
-
-interface ID2D1CommandSink
-{
- CONST struct ID2D1CommandSinkVtbl *lpVtbl;
-};
-
-
-#define ID2D1CommandSink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1CommandSink_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1CommandSink_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1CommandSink_BeginDraw(This) \
- ((This)->lpVtbl->BeginDraw(This))
-
-#define ID2D1CommandSink_EndDraw(This) \
- ((This)->lpVtbl->EndDraw(This))
-
-#define ID2D1CommandSink_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->SetAntialiasMode(This, antialiasMode))
-
-#define ID2D1CommandSink_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->SetTags(This, tag1, tag2))
-
-#define ID2D1CommandSink_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->SetTextAntialiasMode(This, textAntialiasMode))
-
-#define ID2D1CommandSink_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->SetTextRenderingParams(This, textRenderingParams))
-
-#define ID2D1CommandSink_SetTransform(This, transform) \
- ((This)->lpVtbl->SetTransform(This, transform))
-
-#define ID2D1CommandSink_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->SetPrimitiveBlend(This, primitiveBlend))
-
-#define ID2D1CommandSink_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->SetUnitMode(This, unitMode))
-
-#define ID2D1CommandSink_Clear(This, color) \
- ((This)->lpVtbl->Clear(This, color))
-
-#define ID2D1CommandSink_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1CommandSink_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->DrawRectangle(This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1CommandSink_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1CommandSink_DrawGdiMetafile(This, gdiMetafile, targetOffset) \
- ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, targetOffset))
-
-#define ID2D1CommandSink_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->FillMesh(This, mesh, brush))
-
-#define ID2D1CommandSink_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
-#define ID2D1CommandSink_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->FillGeometry(This, geometry, brush, opacityBrush))
-
-#define ID2D1CommandSink_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->FillRectangle(This, rect, brush))
-
-#define ID2D1CommandSink_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->PushAxisAlignedClip(This, clipRect, antialiasMode))
-
-#define ID2D1CommandSink_PushLayer(This, layerParameters1, layer) \
- ((This)->lpVtbl->PushLayer(This, layerParameters1, layer))
-
-#define ID2D1CommandSink_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->PopAxisAlignedClip(This))
-
-#define ID2D1CommandSink_PopLayer(This) \
- ((This)->lpVtbl->PopLayer(This))
-
typedef interface ID2D1CommandList ID2D1CommandList;
-typedef struct ID2D1CommandListVtbl
-{
-
- ID2D1ImageVtbl Base;
-
-
- STDMETHOD(Stream)(
- ID2D1CommandList *This,
- _In_ ID2D1CommandSink *sink
- ) PURE;
-
- STDMETHOD(Close)(
- ID2D1CommandList *This
- ) PURE;
-} ID2D1CommandListVtbl;
-
-interface ID2D1CommandList
-{
- CONST struct ID2D1CommandListVtbl *lpVtbl;
-};
-
-
-#define ID2D1CommandList_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1CommandList_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1CommandList_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1CommandList_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1CommandList_Stream(This, sink) \
- ((This)->lpVtbl->Stream(This, sink))
-
-#define ID2D1CommandList_Close(This) \
- ((This)->lpVtbl->Close(This))
-
typedef interface ID2D1PrintControl ID2D1PrintControl;
-typedef struct ID2D1PrintControlVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD(AddPage)(
- ID2D1PrintControl *This,
- _In_ ID2D1CommandList *commandList,
- D2D_SIZE_F pageSize,
- _In_opt_ IStream *pagePrintTicketStream,
- _Out_opt_ D2D1_TAG *tag1,
- _Out_opt_ D2D1_TAG *tag2
- ) PURE;
-
- STDMETHOD(Close)(
- ID2D1PrintControl *This
- ) PURE;
-} ID2D1PrintControlVtbl;
-
-interface ID2D1PrintControl
-{
- CONST struct ID2D1PrintControlVtbl *lpVtbl;
-};
-
-
-#define ID2D1PrintControl_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1PrintControl_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1PrintControl_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1PrintControl_AddPage(This, commandList, pageSize, pagePrintTicketStream, tag1, tag2) \
- ((This)->lpVtbl->AddPage(This, commandList, pageSize, pagePrintTicketStream, tag1, tag2))
-
-#define ID2D1PrintControl_Close(This) \
- ((This)->lpVtbl->Close(This))
-
typedef interface ID2D1ImageBrush ID2D1ImageBrush;
-typedef struct ID2D1ImageBrushVtbl
-{
-
- ID2D1BrushVtbl Base;
-
-
- STDMETHOD_(void, SetImage)(
- ID2D1ImageBrush *This,
- _In_opt_ ID2D1Image *image
- ) PURE;
-
- STDMETHOD_(void, SetExtendModeX)(
- ID2D1ImageBrush *This,
- D2D1_EXTEND_MODE extendModeX
- ) PURE;
-
- STDMETHOD_(void, SetExtendModeY)(
- ID2D1ImageBrush *This,
- D2D1_EXTEND_MODE extendModeY
- ) PURE;
-
- STDMETHOD_(void, SetInterpolationMode)(
- ID2D1ImageBrush *This,
- D2D1_INTERPOLATION_MODE interpolationMode
- ) PURE;
-
- STDMETHOD_(void, SetSourceRectangle)(
- ID2D1ImageBrush *This,
- _In_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-
- STDMETHOD_(void, GetImage)(
- ID2D1ImageBrush *This,
- _Outptr_ ID2D1Image **image
- ) PURE;
-
- STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(
- ID2D1ImageBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(
- ID2D1ImageBrush *This
- ) PURE;
-
- STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode)(
- ID2D1ImageBrush *This
- ) PURE;
-
- STDMETHOD_(void, GetSourceRectangle)(
- ID2D1ImageBrush *This,
- _Out_ D2D1_RECT_F *sourceRectangle
- ) PURE;
-} ID2D1ImageBrushVtbl;
-
-interface ID2D1ImageBrush
-{
- CONST struct ID2D1ImageBrushVtbl *lpVtbl;
-};
-
-
-#define ID2D1ImageBrush_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1ImageBrush_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1ImageBrush_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1ImageBrush_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1ImageBrush_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1ImageBrush_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1ImageBrush_GetOpacity(This) \
- ((This)->lpVtbl->Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1ImageBrush_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1ImageBrush_SetImage(This, image) \
- ((This)->lpVtbl->SetImage(This, image))
-
-#define ID2D1ImageBrush_SetExtendModeX(This, extendModeX) \
- ((This)->lpVtbl->SetExtendModeX(This, extendModeX))
-
-#define ID2D1ImageBrush_SetExtendModeY(This, extendModeY) \
- ((This)->lpVtbl->SetExtendModeY(This, extendModeY))
-
-#define ID2D1ImageBrush_SetInterpolationMode(This, interpolationMode) \
- ((This)->lpVtbl->SetInterpolationMode(This, interpolationMode))
-
-#define ID2D1ImageBrush_SetSourceRectangle(This, sourceRectangle) \
- ((This)->lpVtbl->SetSourceRectangle(This, sourceRectangle))
-
-#define ID2D1ImageBrush_GetImage(This, image) \
- ((This)->lpVtbl->GetImage(This, image))
-
-#define ID2D1ImageBrush_GetExtendModeX(This) \
- ((This)->lpVtbl->GetExtendModeX(This))
-
-#define ID2D1ImageBrush_GetExtendModeY(This) \
- ((This)->lpVtbl->GetExtendModeY(This))
-
-#define ID2D1ImageBrush_GetInterpolationMode(This) \
- ((This)->lpVtbl->GetInterpolationMode(This))
-
-#define ID2D1ImageBrush_GetSourceRectangle(This, sourceRectangle) \
- ((This)->lpVtbl->GetSourceRectangle(This, sourceRectangle))
-
typedef interface ID2D1BitmapBrush1 ID2D1BitmapBrush1;
-typedef struct ID2D1BitmapBrush1Vtbl
-{
-
- ID2D1BitmapBrushVtbl Base;
-
-
- STDMETHOD_(void, SetInterpolationMode1)(
- ID2D1BitmapBrush1 *This,
- D2D1_INTERPOLATION_MODE interpolationMode
- ) PURE;
-
- STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode1)(
- ID2D1BitmapBrush1 *This
- ) PURE;
-} ID2D1BitmapBrush1Vtbl;
-
-interface ID2D1BitmapBrush1
-{
- CONST struct ID2D1BitmapBrush1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1BitmapBrush1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1BitmapBrush1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1BitmapBrush1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1BitmapBrush1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1BitmapBrush1_SetOpacity(This, opacity) \
- ((This)->lpVtbl->Base.Base.SetOpacity((ID2D1Brush *)This, opacity))
-
-#define ID2D1BitmapBrush1_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.SetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1BitmapBrush1_GetOpacity(This) \
- ((This)->lpVtbl->Base.Base.GetOpacity((ID2D1Brush *)This))
-
-#define ID2D1BitmapBrush1_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.GetTransform((ID2D1Brush *)This, transform))
-
-#define ID2D1BitmapBrush1_SetExtendModeX(This, extendModeX) \
- ((This)->lpVtbl->Base.SetExtendModeX((ID2D1BitmapBrush *)This, extendModeX))
-
-#define ID2D1BitmapBrush1_SetExtendModeY(This, extendModeY) \
- ((This)->lpVtbl->Base.SetExtendModeY((ID2D1BitmapBrush *)This, extendModeY))
-
-#define ID2D1BitmapBrush1_SetInterpolationMode(This, interpolationMode) \
- ((This)->lpVtbl->Base.SetInterpolationMode((ID2D1BitmapBrush *)This, interpolationMode))
-
-#define ID2D1BitmapBrush1_SetBitmap(This, bitmap) \
- ((This)->lpVtbl->Base.SetBitmap((ID2D1BitmapBrush *)This, bitmap))
-
-#define ID2D1BitmapBrush1_GetExtendModeX(This) \
- ((This)->lpVtbl->Base.GetExtendModeX((ID2D1BitmapBrush *)This))
-
-#define ID2D1BitmapBrush1_GetExtendModeY(This) \
- ((This)->lpVtbl->Base.GetExtendModeY((ID2D1BitmapBrush *)This))
-
-#define ID2D1BitmapBrush1_GetInterpolationMode(This) \
- ((This)->lpVtbl->Base.GetInterpolationMode((ID2D1BitmapBrush *)This))
-
-#define ID2D1BitmapBrush1_GetBitmap(This, bitmap) \
- ((This)->lpVtbl->Base.GetBitmap((ID2D1BitmapBrush *)This, bitmap))
-
-#define ID2D1BitmapBrush1_SetInterpolationMode1(This, interpolationMode) \
- ((This)->lpVtbl->SetInterpolationMode1(This, interpolationMode))
-
-#define ID2D1BitmapBrush1_GetInterpolationMode1(This) \
- ((This)->lpVtbl->GetInterpolationMode1(This))
-
typedef interface ID2D1StrokeStyle1 ID2D1StrokeStyle1;
-typedef struct ID2D1StrokeStyle1Vtbl
-{
-
- ID2D1StrokeStyleVtbl Base;
-
-
- STDMETHOD_(D2D1_STROKE_TRANSFORM_TYPE, GetStrokeTransformType)(
- ID2D1StrokeStyle1 *This
- ) PURE;
-} ID2D1StrokeStyle1Vtbl;
-
-interface ID2D1StrokeStyle1
-{
- CONST struct ID2D1StrokeStyle1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1StrokeStyle1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1StrokeStyle1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1StrokeStyle1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1StrokeStyle1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1StrokeStyle1_GetStartCap(This) \
- ((This)->lpVtbl->Base.GetStartCap((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetEndCap(This) \
- ((This)->lpVtbl->Base.GetEndCap((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetDashCap(This) \
- ((This)->lpVtbl->Base.GetDashCap((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetMiterLimit(This) \
- ((This)->lpVtbl->Base.GetMiterLimit((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetLineJoin(This) \
- ((This)->lpVtbl->Base.GetLineJoin((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetDashOffset(This) \
- ((This)->lpVtbl->Base.GetDashOffset((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetDashStyle(This) \
- ((This)->lpVtbl->Base.GetDashStyle((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetDashesCount(This) \
- ((This)->lpVtbl->Base.GetDashesCount((ID2D1StrokeStyle *)This))
-
-#define ID2D1StrokeStyle1_GetDashes(This, dashes, dashesCount) \
- ((This)->lpVtbl->Base.GetDashes((ID2D1StrokeStyle *)This, dashes, dashesCount))
-
-#define ID2D1StrokeStyle1_GetStrokeTransformType(This) \
- ((This)->lpVtbl->GetStrokeTransformType(This))
-
typedef interface ID2D1PathGeometry1 ID2D1PathGeometry1;
-typedef struct ID2D1PathGeometry1Vtbl
-{
-
- ID2D1PathGeometryVtbl Base;
-
-
- STDMETHOD(ComputePointAndSegmentAtLength)(
- ID2D1PathGeometry1 *This,
- FLOAT length,
- UINT32 startSegment,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _Out_ D2D1_POINT_DESCRIPTION *pointDescription
- ) PURE;
-} ID2D1PathGeometry1Vtbl;
-
-interface ID2D1PathGeometry1
-{
- CONST struct ID2D1PathGeometry1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1PathGeometry1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1PathGeometry1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1PathGeometry1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1PathGeometry1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1PathGeometry1_GetBounds(This, worldTransform, bounds) \
- ((This)->lpVtbl->Base.Base.GetBounds((ID2D1Geometry *)This, worldTransform, bounds))
-
-#define ID2D1PathGeometry1_GetWidenedBounds(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds) \
- ((This)->lpVtbl->Base.Base.GetWidenedBounds((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, bounds))
-
-#define ID2D1PathGeometry1_StrokeContainsPoint(This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.Base.StrokeContainsPoint((ID2D1Geometry *)This, point, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1PathGeometry1_FillContainsPoint(This, point, worldTransform, flatteningTolerance, contains) \
- ((This)->lpVtbl->Base.Base.FillContainsPoint((ID2D1Geometry *)This, point, worldTransform, flatteningTolerance, contains))
-
-#define ID2D1PathGeometry1_CompareWithGeometry(This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation) \
- ((This)->lpVtbl->Base.Base.CompareWithGeometry((ID2D1Geometry *)This, inputGeometry, inputGeometryTransform, flatteningTolerance, relation))
-
-#define ID2D1PathGeometry1_Simplify(This, simplificationOption, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Base.Simplify((ID2D1Geometry *)This, simplificationOption, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry1_Tessellate(This, worldTransform, flatteningTolerance, tessellationSink) \
- ((This)->lpVtbl->Base.Base.Tessellate((ID2D1Geometry *)This, worldTransform, flatteningTolerance, tessellationSink))
-
-#define ID2D1PathGeometry1_CombineWithGeometry(This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Base.CombineWithGeometry((ID2D1Geometry *)This, inputGeometry, combineMode, inputGeometryTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry1_Outline(This, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Base.Outline((ID2D1Geometry *)This, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry1_ComputeArea(This, worldTransform, flatteningTolerance, area) \
- ((This)->lpVtbl->Base.Base.ComputeArea((ID2D1Geometry *)This, worldTransform, flatteningTolerance, area))
-
-#define ID2D1PathGeometry1_ComputeLength(This, worldTransform, flatteningTolerance, length) \
- ((This)->lpVtbl->Base.Base.ComputeLength((ID2D1Geometry *)This, worldTransform, flatteningTolerance, length))
-
-#define ID2D1PathGeometry1_ComputePointAtLength(This, length, worldTransform, flatteningTolerance, point, unitTangentVector) \
- ((This)->lpVtbl->Base.Base.ComputePointAtLength((ID2D1Geometry *)This, length, worldTransform, flatteningTolerance, point, unitTangentVector))
-
-#define ID2D1PathGeometry1_Widen(This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->Base.Base.Widen((ID2D1Geometry *)This, strokeWidth, strokeStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1PathGeometry1_Open(This, geometrySink) \
- ((This)->lpVtbl->Base.Open((ID2D1PathGeometry *)This, geometrySink))
-
-#define ID2D1PathGeometry1_Stream(This, geometrySink) \
- ((This)->lpVtbl->Base.Stream((ID2D1PathGeometry *)This, geometrySink))
-
-#define ID2D1PathGeometry1_GetSegmentCount(This, count) \
- ((This)->lpVtbl->Base.GetSegmentCount((ID2D1PathGeometry *)This, count))
-
-#define ID2D1PathGeometry1_GetFigureCount(This, count) \
- ((This)->lpVtbl->Base.GetFigureCount((ID2D1PathGeometry *)This, count))
-
-#define ID2D1PathGeometry1_ComputePointAndSegmentAtLength(This, length, startSegment, worldTransform, flatteningTolerance, pointDescription) \
- ((This)->lpVtbl->ComputePointAndSegmentAtLength(This, length, startSegment, worldTransform, flatteningTolerance, pointDescription))
-
typedef interface ID2D1Properties ID2D1Properties;
-typedef struct ID2D1PropertiesVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD_(UINT32, GetPropertyCount)(
- ID2D1Properties *This
- ) PURE;
-
- STDMETHOD(GetPropertyName)(
- ID2D1Properties *This,
- UINT32 index,
- _Out_writes_(nameCount) PWSTR name,
- UINT32 nameCount
- ) PURE;
-
- STDMETHOD_(UINT32, GetPropertyNameLength)(
- ID2D1Properties *This,
- UINT32 index
- ) PURE;
-
- STDMETHOD_(D2D1_PROPERTY_TYPE, GetType)(
- ID2D1Properties *This,
- UINT32 index
- ) PURE;
-
- STDMETHOD_(UINT32, GetPropertyIndex)(
- ID2D1Properties *This,
- _In_ PCWSTR name
- ) PURE;
-
- STDMETHOD(SetValueByName)(
- ID2D1Properties *This,
- _In_ PCWSTR name,
- D2D1_PROPERTY_TYPE type,
- _In_reads_(dataSize) CONST BYTE *data,
- UINT32 dataSize
- ) PURE;
-
- STDMETHOD(SetValue)(
- ID2D1Properties *This,
- UINT32 index,
- D2D1_PROPERTY_TYPE type,
- _In_reads_(dataSize) CONST BYTE *data,
- UINT32 dataSize
- ) PURE;
-
- STDMETHOD(GetValueByName)(
- ID2D1Properties *This,
- _In_ PCWSTR name,
- D2D1_PROPERTY_TYPE type,
- _Out_writes_(dataSize) BYTE *data,
- UINT32 dataSize
- ) PURE;
-
- STDMETHOD(GetValue)(
- ID2D1Properties *This,
- UINT32 index,
- D2D1_PROPERTY_TYPE type,
- _Out_writes_(dataSize) BYTE *data,
- UINT32 dataSize
- ) PURE;
-
- STDMETHOD_(UINT32, GetValueSize)(
- ID2D1Properties *This,
- UINT32 index
- ) PURE;
-
- STDMETHOD(GetSubProperties)(
- ID2D1Properties *This,
- UINT32 index,
- _Outptr_result_maybenull_ ID2D1Properties **subProperties
- ) PURE;
-} ID2D1PropertiesVtbl;
-
-interface ID2D1Properties
-{
- CONST struct ID2D1PropertiesVtbl *lpVtbl;
-};
-
-
-#define ID2D1Properties_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Properties_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1Properties_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1Properties_GetPropertyCount(This) \
- ((This)->lpVtbl->GetPropertyCount(This))
-
-#define ID2D1Properties_GetPropertyName(This, index, name, nameCount) \
- ((This)->lpVtbl->GetPropertyName(This, index, name, nameCount))
-
-#define ID2D1Properties_GetPropertyNameLength(This, index) \
- ((This)->lpVtbl->GetPropertyNameLength(This, index))
-
-#define ID2D1Properties_GetType(This, index) \
- ((This)->lpVtbl->GetType(This, index))
-
-#define ID2D1Properties_GetPropertyIndex(This, name) \
- ((This)->lpVtbl->GetPropertyIndex(This, name))
-
-#define ID2D1Properties_SetValueByName(This, name, type, data, dataSize) \
- ((This)->lpVtbl->SetValueByName(This, name, type, data, dataSize))
-
-#define ID2D1Properties_SetValue(This, index, type, data, dataSize) \
- ((This)->lpVtbl->SetValue(This, index, type, data, dataSize))
-
-#define ID2D1Properties_GetValueByName(This, name, type, data, dataSize) \
- ((This)->lpVtbl->GetValueByName(This, name, type, data, dataSize))
-
-#define ID2D1Properties_GetValue(This, index, type, data, dataSize) \
- ((This)->lpVtbl->GetValue(This, index, type, data, dataSize))
-
-#define ID2D1Properties_GetValueSize(This, index) \
- ((This)->lpVtbl->GetValueSize(This, index))
-
-#define ID2D1Properties_GetSubProperties(This, index, subProperties) \
- ((This)->lpVtbl->GetSubProperties(This, index, subProperties))
-
typedef interface ID2D1Effect ID2D1Effect;
-typedef struct ID2D1EffectVtbl
-{
-
- ID2D1PropertiesVtbl Base;
-
-
- STDMETHOD_(void, SetInput)(
- ID2D1Effect *This,
- UINT32 index,
- _In_opt_ ID2D1Image *input,
- BOOL invalidate
- ) PURE;
-
- STDMETHOD(SetInputCount)(
- ID2D1Effect *This,
- UINT32 inputCount
- ) PURE;
-
- STDMETHOD_(void, GetInput)(
- ID2D1Effect *This,
- UINT32 index,
- _Outptr_result_maybenull_ ID2D1Image **input
- ) PURE;
-
- STDMETHOD_(UINT32, GetInputCount)(
- ID2D1Effect *This
- ) PURE;
-
- STDMETHOD_(void, GetOutput)(
- ID2D1Effect *This,
- _Outptr_ ID2D1Image **outputImage
- ) PURE;
-} ID2D1EffectVtbl;
-
-interface ID2D1Effect
-{
- CONST struct ID2D1EffectVtbl *lpVtbl;
-};
-
-
-#define ID2D1Effect_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Effect_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Effect_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Effect_GetPropertyCount(This) \
- ((This)->lpVtbl->Base.GetPropertyCount((ID2D1Properties *)This))
-
-#define ID2D1Effect_GetPropertyName(This, index, name, nameCount) \
- ((This)->lpVtbl->Base.GetPropertyName((ID2D1Properties *)This, index, name, nameCount))
-
-#define ID2D1Effect_GetPropertyNameLength(This, index) \
- ((This)->lpVtbl->Base.GetPropertyNameLength((ID2D1Properties *)This, index))
-
-#define ID2D1Effect_GetType(This, index) \
- ((This)->lpVtbl->Base.GetType((ID2D1Properties *)This, index))
-
-#define ID2D1Effect_GetPropertyIndex(This, name) \
- ((This)->lpVtbl->Base.GetPropertyIndex((ID2D1Properties *)This, name))
-
-#define ID2D1Effect_SetValueByName(This, name, type, data, dataSize) \
- ((This)->lpVtbl->Base.SetValueByName((ID2D1Properties *)This, name, type, data, dataSize))
-
-#define ID2D1Effect_SetValue(This, index, type, data, dataSize) \
- ((This)->lpVtbl->Base.SetValue((ID2D1Properties *)This, index, type, data, dataSize))
-
-#define ID2D1Effect_GetValueByName(This, name, type, data, dataSize) \
- ((This)->lpVtbl->Base.GetValueByName((ID2D1Properties *)This, name, type, data, dataSize))
-
-#define ID2D1Effect_GetValue(This, index, type, data, dataSize) \
- ((This)->lpVtbl->Base.GetValue((ID2D1Properties *)This, index, type, data, dataSize))
-
-#define ID2D1Effect_GetValueSize(This, index) \
- ((This)->lpVtbl->Base.GetValueSize((ID2D1Properties *)This, index))
-
-#define ID2D1Effect_GetSubProperties(This, index, subProperties) \
- ((This)->lpVtbl->Base.GetSubProperties((ID2D1Properties *)This, index, subProperties))
-
-#define ID2D1Effect_SetInput(This, index, input, invalidate) \
- ((This)->lpVtbl->SetInput(This, index, input, invalidate))
-
-#define ID2D1Effect_SetInputCount(This, inputCount) \
- ((This)->lpVtbl->SetInputCount(This, inputCount))
-
-#define ID2D1Effect_GetInput(This, index, input) \
- ((This)->lpVtbl->GetInput(This, index, input))
-
-#define ID2D1Effect_GetInputCount(This) \
- ((This)->lpVtbl->GetInputCount(This))
-
-#define ID2D1Effect_GetOutput(This, outputImage) \
- ((This)->lpVtbl->GetOutput(This, outputImage))
-
typedef interface ID2D1Bitmap1 ID2D1Bitmap1;
-typedef struct ID2D1Bitmap1Vtbl
-{
-
- ID2D1BitmapVtbl Base;
-
-
- STDMETHOD_(void, GetColorContext)(
- ID2D1Bitmap1 *This,
- _Outptr_result_maybenull_ ID2D1ColorContext **colorContext
- ) PURE;
-
- STDMETHOD_(D2D1_BITMAP_OPTIONS, GetOptions)(
- ID2D1Bitmap1 *This
- ) PURE;
-
- STDMETHOD(GetSurface)(
- ID2D1Bitmap1 *This,
- _Outptr_result_maybenull_ IDXGISurface **dxgiSurface
- ) PURE;
-
- STDMETHOD(Map)(
- ID2D1Bitmap1 *This,
- D2D1_MAP_OPTIONS options,
- _Out_ D2D1_MAPPED_RECT *mappedRect
- ) PURE;
-
- STDMETHOD(Unmap)(
- ID2D1Bitmap1 *This
- ) PURE;
-} ID2D1Bitmap1Vtbl;
-
-interface ID2D1Bitmap1
-{
- CONST struct ID2D1Bitmap1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Bitmap1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Bitmap1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Bitmap1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Bitmap1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Bitmap1_GetSize(This) \
- ((This)->lpVtbl->Base.GetSize((ID2D1Bitmap *)This))
-
-#define ID2D1Bitmap1_GetPixelSize(This) \
- ((This)->lpVtbl->Base.GetPixelSize((ID2D1Bitmap *)This))
-
-#define ID2D1Bitmap1_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.GetPixelFormat((ID2D1Bitmap *)This))
-
-#define ID2D1Bitmap1_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDpi((ID2D1Bitmap *)This, dpiX, dpiY))
-
-#define ID2D1Bitmap1_CopyFromBitmap(This, destPoint, bitmap, srcRect) \
- ((This)->lpVtbl->Base.CopyFromBitmap((ID2D1Bitmap *)This, destPoint, bitmap, srcRect))
-
-#define ID2D1Bitmap1_CopyFromRenderTarget(This, destPoint, renderTarget, srcRect) \
- ((This)->lpVtbl->Base.CopyFromRenderTarget((ID2D1Bitmap *)This, destPoint, renderTarget, srcRect))
-
-#define ID2D1Bitmap1_CopyFromMemory(This, dstRect, srcData, pitch) \
- ((This)->lpVtbl->Base.CopyFromMemory((ID2D1Bitmap *)This, dstRect, srcData, pitch))
-
-#define ID2D1Bitmap1_GetColorContext(This, colorContext) \
- ((This)->lpVtbl->GetColorContext(This, colorContext))
-
-#define ID2D1Bitmap1_GetOptions(This) \
- ((This)->lpVtbl->GetOptions(This))
-
-#define ID2D1Bitmap1_GetSurface(This, dxgiSurface) \
- ((This)->lpVtbl->GetSurface(This, dxgiSurface))
-
-#define ID2D1Bitmap1_Map(This, options, mappedRect) \
- ((This)->lpVtbl->Map(This, options, mappedRect))
-
-#define ID2D1Bitmap1_Unmap(This) \
- ((This)->lpVtbl->Unmap(This))
-
typedef interface ID2D1ColorContext ID2D1ColorContext;
-typedef struct ID2D1ColorContextVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(D2D1_COLOR_SPACE, GetColorSpace)(
- ID2D1ColorContext *This
- ) PURE;
-
- STDMETHOD_(UINT32, GetProfileSize)(
- ID2D1ColorContext *This
- ) PURE;
-
- STDMETHOD(GetProfile)(
- ID2D1ColorContext *This,
- _Out_writes_(profileSize) BYTE *profile,
- UINT32 profileSize
- ) PURE;
-} ID2D1ColorContextVtbl;
-
-interface ID2D1ColorContext
-{
- CONST struct ID2D1ColorContextVtbl *lpVtbl;
-};
-
-
-#define ID2D1ColorContext_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1ColorContext_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1ColorContext_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1ColorContext_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1ColorContext_GetColorSpace(This) \
- ((This)->lpVtbl->GetColorSpace(This))
-
-#define ID2D1ColorContext_GetProfileSize(This) \
- ((This)->lpVtbl->GetProfileSize(This))
-
-#define ID2D1ColorContext_GetProfile(This, profile, profileSize) \
- ((This)->lpVtbl->GetProfile(This, profile, profileSize))
-
typedef interface ID2D1GradientStopCollection1 ID2D1GradientStopCollection1;
-typedef struct ID2D1GradientStopCollection1Vtbl
-{
-
- ID2D1GradientStopCollectionVtbl Base;
-
-
- STDMETHOD_(void, GetGradientStops1)(
- ID2D1GradientStopCollection1 *This,
- _Out_writes_to_(gradientStopsCount, _Inexpressible_("Retrieved through GetGradientStopCount()") ) D2D1_GRADIENT_STOP *gradientStops,
- UINT32 gradientStopsCount
- ) PURE;
-
- STDMETHOD_(D2D1_COLOR_SPACE, GetPreInterpolationSpace)(
- ID2D1GradientStopCollection1 *This
- ) PURE;
-
- STDMETHOD_(D2D1_COLOR_SPACE, GetPostInterpolationSpace)(
- ID2D1GradientStopCollection1 *This
- ) PURE;
-
- STDMETHOD_(D2D1_BUFFER_PRECISION, GetBufferPrecision)(
- ID2D1GradientStopCollection1 *This
- ) PURE;
-
- STDMETHOD_(D2D1_COLOR_INTERPOLATION_MODE, GetColorInterpolationMode)(
- ID2D1GradientStopCollection1 *This
- ) PURE;
-} ID2D1GradientStopCollection1Vtbl;
-
-interface ID2D1GradientStopCollection1
-{
- CONST struct ID2D1GradientStopCollection1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1GradientStopCollection1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GradientStopCollection1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GradientStopCollection1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GradientStopCollection1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GradientStopCollection1_GetGradientStopCount(This) \
- ((This)->lpVtbl->Base.GetGradientStopCount((ID2D1GradientStopCollection *)This))
-
-#define ID2D1GradientStopCollection1_GetGradientStops(This, gradientStops, gradientStopsCount) \
- ((This)->lpVtbl->Base.GetGradientStops((ID2D1GradientStopCollection *)This, gradientStops, gradientStopsCount))
-
-#define ID2D1GradientStopCollection1_GetColorInterpolationGamma(This) \
- ((This)->lpVtbl->Base.GetColorInterpolationGamma((ID2D1GradientStopCollection *)This))
-
-#define ID2D1GradientStopCollection1_GetExtendMode(This) \
- ((This)->lpVtbl->Base.GetExtendMode((ID2D1GradientStopCollection *)This))
-
-#define ID2D1GradientStopCollection1_GetGradientStops1(This, gradientStops, gradientStopsCount) \
- ((This)->lpVtbl->GetGradientStops1(This, gradientStops, gradientStopsCount))
-
-#define ID2D1GradientStopCollection1_GetPreInterpolationSpace(This) \
- ((This)->lpVtbl->GetPreInterpolationSpace(This))
-
-#define ID2D1GradientStopCollection1_GetPostInterpolationSpace(This) \
- ((This)->lpVtbl->GetPostInterpolationSpace(This))
-
-#define ID2D1GradientStopCollection1_GetBufferPrecision(This) \
- ((This)->lpVtbl->GetBufferPrecision(This))
-
-#define ID2D1GradientStopCollection1_GetColorInterpolationMode(This) \
- ((This)->lpVtbl->GetColorInterpolationMode(This))
-
typedef interface ID2D1DrawingStateBlock1 ID2D1DrawingStateBlock1;
-typedef struct ID2D1DrawingStateBlock1Vtbl
-{
-
- ID2D1DrawingStateBlockVtbl Base;
-
-
- STDMETHOD_(void, GetDescription)(
- ID2D1DrawingStateBlock1 *This,
- _Out_ D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
- ) PURE;
-
- STDMETHOD_(void, SetDescription)(
- ID2D1DrawingStateBlock1 *This,
- _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription
- ) PURE;
-} ID2D1DrawingStateBlock1Vtbl;
-
-interface ID2D1DrawingStateBlock1
-{
- CONST struct ID2D1DrawingStateBlock1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1DrawingStateBlock1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DrawingStateBlock1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DrawingStateBlock1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DrawingStateBlock1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DrawingStateBlock1_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1DrawingStateBlock *)This, textRenderingParams))
-
-#define ID2D1DrawingStateBlock1_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.GetTextRenderingParams((ID2D1DrawingStateBlock *)This, textRenderingParams))
-
-#define ID2D1DrawingStateBlock1_GetDescription(This, stateDescription) \
- ((This)->lpVtbl->GetDescription(This, stateDescription))
-
-#define ID2D1DrawingStateBlock1_SetDescription(This, stateDescription) \
- ((This)->lpVtbl->SetDescription(This, stateDescription))
-
typedef interface ID2D1DeviceContext ID2D1DeviceContext;
-typedef struct ID2D1DeviceContextVtbl
-{
-
- ID2D1RenderTargetVtbl Base;
-
-
- STDMETHOD(CreateBitmap)(
- ID2D1DeviceContext *This,
- D2D1_SIZE_U size,
- _In_opt_ CONST void *sourceData,
- UINT32 pitch,
- _In_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
- ) PURE;
-
- STDMETHOD(CreateBitmapFromWicBitmap)(
- ID2D1DeviceContext *This,
- _In_ IWICBitmapSource *wicBitmapSource,
- _In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
- ) PURE;
-
- STDMETHOD(CreateColorContext)(
- ID2D1DeviceContext *This,
- D2D1_COLOR_SPACE space,
- _In_reads_opt_(profileSize) CONST BYTE *profile,
- UINT32 profileSize,
- _Outptr_ ID2D1ColorContext **colorContext
- ) PURE;
-
- STDMETHOD(CreateColorContextFromFilename)(
- ID2D1DeviceContext *This,
- _In_ PCWSTR filename,
- _Outptr_ ID2D1ColorContext **colorContext
- ) PURE;
-
- STDMETHOD(CreateColorContextFromWicColorContext)(
- ID2D1DeviceContext *This,
- _In_ IWICColorContext *wicColorContext,
- _Outptr_ ID2D1ColorContext **colorContext
- ) PURE;
-
- STDMETHOD(CreateBitmapFromDxgiSurface)(
- ID2D1DeviceContext *This,
- _In_ IDXGISurface *surface,
- _In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,
- _Outptr_ ID2D1Bitmap1 **bitmap
- ) PURE;
-
- STDMETHOD(CreateEffect)(
- ID2D1DeviceContext *This,
- _In_ REFCLSID effectId,
- _Outptr_ ID2D1Effect **effect
- ) PURE;
-
- STDMETHOD(CreateGradientStopCollection)(
- ID2D1DeviceContext *This,
- _In_reads_(straightAlphaGradientStopsCount) CONST D2D1_GRADIENT_STOP *straightAlphaGradientStops,
- _In_range_(>=,1) UINT32 straightAlphaGradientStopsCount,
- D2D1_COLOR_SPACE preInterpolationSpace,
- D2D1_COLOR_SPACE postInterpolationSpace,
- D2D1_BUFFER_PRECISION bufferPrecision,
- D2D1_EXTEND_MODE extendMode,
- D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
- _Outptr_ ID2D1GradientStopCollection1 **gradientStopCollection1
- ) PURE;
-
- STDMETHOD(CreateImageBrush)(
- ID2D1DeviceContext *This,
- _In_opt_ ID2D1Image *image,
- _In_ CONST D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1ImageBrush **imageBrush
- ) PURE;
-
- STDMETHOD(CreateBitmapBrush)(
- ID2D1DeviceContext *This,
- _In_opt_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmapBrushProperties,
- _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties,
- _Outptr_ ID2D1BitmapBrush1 **bitmapBrush
- ) PURE;
-
- STDMETHOD(CreateCommandList)(
- ID2D1DeviceContext *This,
- _Outptr_ ID2D1CommandList **commandList
- ) PURE;
-
- STDMETHOD_(BOOL, IsDxgiFormatSupported)(
- ID2D1DeviceContext *This,
- DXGI_FORMAT format
- ) PURE;
-
- STDMETHOD_(BOOL, IsBufferPrecisionSupported)(
- ID2D1DeviceContext *This,
- D2D1_BUFFER_PRECISION bufferPrecision
- ) PURE;
-
- STDMETHOD(GetImageLocalBounds)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Image *image,
- _Out_ D2D1_RECT_F *localBounds
- ) PURE;
-
- STDMETHOD(GetImageWorldBounds)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Image *image,
- _Out_ D2D1_RECT_F *worldBounds
- ) PURE;
-
- STDMETHOD(GetGlyphRunWorldBounds)(
- ID2D1DeviceContext *This,
- D2D1_POINT_2F baselineOrigin,
- _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
- DWRITE_MEASURING_MODE measuringMode,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-
- STDMETHOD_(void, GetDevice)(
- ID2D1DeviceContext *This,
- _Outptr_ ID2D1Device **device
- ) PURE;
-
- STDMETHOD_(void, SetTarget)(
- ID2D1DeviceContext *This,
- _In_opt_ ID2D1Image *image
- ) PURE;
-
- STDMETHOD_(void, GetTarget)(
- ID2D1DeviceContext *This,
- _Outptr_result_maybenull_ ID2D1Image **image
- ) PURE;
-
- STDMETHOD_(void, SetRenderingControls)(
- ID2D1DeviceContext *This,
- _In_ CONST D2D1_RENDERING_CONTROLS *renderingControls
- ) PURE;
-
- STDMETHOD_(void, GetRenderingControls)(
- ID2D1DeviceContext *This,
- _Out_ D2D1_RENDERING_CONTROLS *renderingControls
- ) PURE;
-
- STDMETHOD_(void, SetPrimitiveBlend)(
- ID2D1DeviceContext *This,
- D2D1_PRIMITIVE_BLEND primitiveBlend
- ) PURE;
-
- STDMETHOD_(D2D1_PRIMITIVE_BLEND, GetPrimitiveBlend)(
- ID2D1DeviceContext *This
- ) PURE;
-
- STDMETHOD_(void, SetUnitMode)(
- ID2D1DeviceContext *This,
- D2D1_UNIT_MODE unitMode
- ) PURE;
-
- STDMETHOD_(D2D1_UNIT_MODE, GetUnitMode)(
- ID2D1DeviceContext *This
- ) PURE;
-
- STDMETHOD_(void, DrawGlyphRun)(
- ID2D1DeviceContext *This,
- D2D1_POINT_2F baselineOrigin,
- _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
- _In_opt_ CONST DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription,
- _In_ ID2D1Brush *foregroundBrush,
- DWRITE_MEASURING_MODE measuringMode
- ) PURE;
-
- STDMETHOD_(void, DrawImage)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Image *image,
- _In_opt_ CONST D2D1_POINT_2F *targetOffset,
- _In_opt_ CONST D2D1_RECT_F *imageRectangle,
- D2D1_INTERPOLATION_MODE interpolationMode,
- D2D1_COMPOSITE_MODE compositeMode
- ) PURE;
-
- STDMETHOD_(void, DrawGdiMetafile)(
- ID2D1DeviceContext *This,
- _In_ ID2D1GdiMetafile *gdiMetafile,
- _In_opt_ CONST D2D1_POINT_2F *targetOffset
- ) PURE;
-
- STDMETHOD_(void, DrawBitmap)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Bitmap *bitmap,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- FLOAT opacity,
- D2D1_INTERPOLATION_MODE interpolationMode,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle,
- _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform
- ) PURE;
-
- STDMETHOD_(void, PushLayer)(
- ID2D1DeviceContext *This,
- _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters,
- _In_opt_ ID2D1Layer *layer
- ) PURE;
-
- STDMETHOD(InvalidateEffectInputRectangle)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Effect *effect,
- UINT32 input,
- _In_ CONST D2D1_RECT_F *inputRectangle
- ) PURE;
-
- STDMETHOD(GetEffectInvalidRectangleCount)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Effect *effect,
- _Out_ UINT32 *rectangleCount
- ) PURE;
-
- STDMETHOD(GetEffectInvalidRectangles)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Effect *effect,
- _Out_writes_(rectanglesCount) D2D1_RECT_F *rectangles,
- UINT32 rectanglesCount
- ) PURE;
-
- STDMETHOD(GetEffectRequiredInputRectangles)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Effect *renderEffect,
- _In_opt_ CONST D2D1_RECT_F *renderImageRectangle,
- _In_reads_(inputCount) CONST D2D1_EFFECT_INPUT_DESCRIPTION *inputDescriptions,
- _Out_writes_(inputCount) D2D1_RECT_F *requiredInputRects,
- UINT32 inputCount
- ) PURE;
-
- STDMETHOD_(void, FillOpacityMask)(
- ID2D1DeviceContext *This,
- _In_ ID2D1Bitmap *opacityMask,
- _In_ ID2D1Brush *brush,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-} ID2D1DeviceContextVtbl;
-
-interface ID2D1DeviceContext
-{
- CONST struct ID2D1DeviceContextVtbl *lpVtbl;
-};
-
-
-#define ID2D1DeviceContext_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DeviceContext_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DeviceContext_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DeviceContext_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DeviceContext_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1DeviceContext_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1DeviceContext_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1DeviceContext_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1DeviceContext_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1DeviceContext_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1DeviceContext_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1DeviceContext_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1DeviceContext_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1DeviceContext_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1DeviceContext_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1DeviceContext_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1DeviceContext_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1DeviceContext_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1DeviceContext_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1DeviceContext_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext_PopLayer(This) \
- ((This)->lpVtbl->Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1DeviceContext_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1DeviceContext_BeginDraw(This) \
- ((This)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext_GetSize(This) \
- ((This)->lpVtbl->Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_GetPixelSize(This) \
- ((This)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1DeviceContext_CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext_CreateColorContext(This, space, profile, profileSize, colorContext) \
- ((This)->lpVtbl->CreateColorContext(This, space, profile, profileSize, colorContext))
-
-#define ID2D1DeviceContext_CreateColorContextFromFilename(This, filename, colorContext) \
- ((This)->lpVtbl->CreateColorContextFromFilename(This, filename, colorContext))
-
-#define ID2D1DeviceContext_CreateColorContextFromWicColorContext(This, wicColorContext, colorContext) \
- ((This)->lpVtbl->CreateColorContextFromWicColorContext(This, wicColorContext, colorContext))
-
-#define ID2D1DeviceContext_CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap) \
- ((This)->lpVtbl->CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext_CreateEffect(This, effectId, effect) \
- ((This)->lpVtbl->CreateEffect(This, effectId, effect))
-
-#define ID2D1DeviceContext_CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1) \
- ((This)->lpVtbl->CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1))
-
-#define ID2D1DeviceContext_CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush) \
- ((This)->lpVtbl->CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush))
-
-#define ID2D1DeviceContext_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1DeviceContext_CreateCommandList(This, commandList) \
- ((This)->lpVtbl->CreateCommandList(This, commandList))
-
-#define ID2D1DeviceContext_IsDxgiFormatSupported(This, format) \
- ((This)->lpVtbl->IsDxgiFormatSupported(This, format))
-
-#define ID2D1DeviceContext_IsBufferPrecisionSupported(This, bufferPrecision) \
- ((This)->lpVtbl->IsBufferPrecisionSupported(This, bufferPrecision))
-
-#define ID2D1DeviceContext_GetImageLocalBounds(This, image, localBounds) \
- ((This)->lpVtbl->GetImageLocalBounds(This, image, localBounds))
-
-#define ID2D1DeviceContext_GetImageWorldBounds(This, image, worldBounds) \
- ((This)->lpVtbl->GetImageWorldBounds(This, image, worldBounds))
-
-#define ID2D1DeviceContext_GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds) \
- ((This)->lpVtbl->GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds))
-
-#define ID2D1DeviceContext_GetDevice(This, device) \
- ((This)->lpVtbl->GetDevice(This, device))
-
-#define ID2D1DeviceContext_SetTarget(This, image) \
- ((This)->lpVtbl->SetTarget(This, image))
-
-#define ID2D1DeviceContext_GetTarget(This, image) \
- ((This)->lpVtbl->GetTarget(This, image))
-
-#define ID2D1DeviceContext_SetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->SetRenderingControls(This, renderingControls))
-
-#define ID2D1DeviceContext_GetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->GetRenderingControls(This, renderingControls))
-
-#define ID2D1DeviceContext_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->SetPrimitiveBlend(This, primitiveBlend))
-
-#define ID2D1DeviceContext_GetPrimitiveBlend(This) \
- ((This)->lpVtbl->GetPrimitiveBlend(This))
-
-#define ID2D1DeviceContext_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->SetUnitMode(This, unitMode))
-
-#define ID2D1DeviceContext_GetUnitMode(This) \
- ((This)->lpVtbl->GetUnitMode(This))
-
-#define ID2D1DeviceContext_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1DeviceContext_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1DeviceContext_DrawGdiMetafile(This, gdiMetafile, targetOffset) \
- ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, targetOffset))
-
-#define ID2D1DeviceContext_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1DeviceContext_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->PushLayer(This, layerParameters, layer))
-
-#define ID2D1DeviceContext_InvalidateEffectInputRectangle(This, effect, input, inputRectangle) \
- ((This)->lpVtbl->InvalidateEffectInputRectangle(This, effect, input, inputRectangle))
-
-#define ID2D1DeviceContext_GetEffectInvalidRectangleCount(This, effect, rectangleCount) \
- ((This)->lpVtbl->GetEffectInvalidRectangleCount(This, effect, rectangleCount))
-
-#define ID2D1DeviceContext_GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount) \
- ((This)->lpVtbl->GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount))
-
-#define ID2D1DeviceContext_GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount) \
- ((This)->lpVtbl->GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount))
-
-#define ID2D1DeviceContext_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
typedef interface ID2D1Device ID2D1Device;
-typedef struct ID2D1DeviceVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD(CreateDeviceContext)(
- ID2D1Device *This,
- D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext **deviceContext
- ) PURE;
-
- STDMETHOD(CreatePrintControl)(
- ID2D1Device *This,
- _In_ IWICImagingFactory *wicFactory,
- _In_ IPrintDocumentPackageTarget *documentTarget,
- _In_opt_ CONST D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties,
- _Outptr_ ID2D1PrintControl **printControl
- ) PURE;
-
- STDMETHOD_(void, SetMaximumTextureMemory)(
- ID2D1Device *This,
- UINT64 maximumInBytes
- ) PURE;
-
- STDMETHOD_(UINT64, GetMaximumTextureMemory)(
- ID2D1Device *This
- ) PURE;
-
- STDMETHOD_(void, ClearResources)(
- ID2D1Device *This,
- UINT32 millisecondsSinceUse
- ) PURE;
-} ID2D1DeviceVtbl;
-
-interface ID2D1Device
-{
- CONST struct ID2D1DeviceVtbl *lpVtbl;
-};
-
-
-#define ID2D1Device_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Device_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Device_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Device_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Device_CreateDeviceContext(This, options, deviceContext) \
- ((This)->lpVtbl->CreateDeviceContext(This, options, deviceContext))
-
-#define ID2D1Device_CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl) \
- ((This)->lpVtbl->CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl))
-
-#define ID2D1Device_SetMaximumTextureMemory(This, maximumInBytes) \
- ((This)->lpVtbl->SetMaximumTextureMemory(This, maximumInBytes))
-
-#define ID2D1Device_GetMaximumTextureMemory(This) \
- ((This)->lpVtbl->GetMaximumTextureMemory(This))
-
-#define ID2D1Device_ClearResources(This, millisecondsSinceUse) \
- ((This)->lpVtbl->ClearResources(This, millisecondsSinceUse))
-
typedef interface ID2D1Factory1 ID2D1Factory1;
-typedef struct ID2D1Factory1Vtbl
-{
-
- ID2D1FactoryVtbl Base;
-
-
- STDMETHOD(CreateDevice)(
- ID2D1Factory1 *This,
- _In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device **d2dDevice
- ) PURE;
-
- STDMETHOD(CreateStrokeStyle)(
- ID2D1Factory1 *This,
- _In_ CONST D2D1_STROKE_STYLE_PROPERTIES1 *strokeStyleProperties,
- _In_reads_opt_(dashesCount) CONST FLOAT *dashes,
- UINT32 dashesCount,
- _Outptr_ ID2D1StrokeStyle1 **strokeStyle
- ) PURE;
-
- STDMETHOD(CreatePathGeometry)(
- ID2D1Factory1 *This,
- _Outptr_ ID2D1PathGeometry1 **pathGeometry
- ) PURE;
-
- STDMETHOD(CreateDrawingStateBlock)(
- ID2D1Factory1 *This,
- _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *drawingStateDescription,
- _In_opt_ IDWriteRenderingParams *textRenderingParams,
- _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock
- ) PURE;
-
- STDMETHOD(CreateGdiMetafile)(
- ID2D1Factory1 *This,
- _In_ IStream *metafileStream,
- _Outptr_ ID2D1GdiMetafile **metafile
- ) PURE;
-
- STDMETHOD(RegisterEffectFromStream)(
- ID2D1Factory1 *This,
- _In_ REFCLSID classId,
- _In_ IStream *propertyXml,
- _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings,
- UINT32 bindingsCount,
- _In_ CONST PD2D1_EFFECT_FACTORY effectFactory
- ) PURE;
-
- STDMETHOD(RegisterEffectFromString)(
- ID2D1Factory1 *This,
- _In_ REFCLSID classId,
- _In_ PCWSTR propertyXml,
- _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings,
- UINT32 bindingsCount,
- _In_ CONST PD2D1_EFFECT_FACTORY effectFactory
- ) PURE;
-
- STDMETHOD(UnregisterEffect)(
- ID2D1Factory1 *This,
- _In_ REFCLSID classId
- ) PURE;
-
- STDMETHOD(GetRegisteredEffects)(
- ID2D1Factory1 *This,
- _Out_writes_to_opt_(effectsCount, *effectsReturned) CLSID *effects,
- UINT32 effectsCount,
- _Out_opt_ UINT32 *effectsReturned,
- _Out_opt_ UINT32 *effectsRegistered
- ) PURE;
-
- STDMETHOD(GetEffectProperties)(
- ID2D1Factory1 *This,
- _In_ REFCLSID effectId,
- _Outptr_ ID2D1Properties **properties
- ) PURE;
-} ID2D1Factory1Vtbl;
-
-interface ID2D1Factory1
-{
- CONST struct ID2D1Factory1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Factory1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Factory1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Factory1_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Factory1_ReloadSystemMetrics(This) \
- ((This)->lpVtbl->Base.ReloadSystemMetrics((ID2D1Factory *)This))
-
-#define ID2D1Factory1_GetDesktopDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.GetDesktopDpi((ID2D1Factory *)This, dpiX, dpiY))
-
-#define ID2D1Factory1_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \
- ((This)->lpVtbl->Base.CreateRectangleGeometry((ID2D1Factory *)This, rectangle, rectangleGeometry))
-
-#define ID2D1Factory1_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \
- ((This)->lpVtbl->Base.CreateRoundedRectangleGeometry((ID2D1Factory *)This, roundedRectangle, roundedRectangleGeometry))
-
-#define ID2D1Factory1_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \
- ((This)->lpVtbl->Base.CreateEllipseGeometry((ID2D1Factory *)This, ellipse, ellipseGeometry))
-
-#define ID2D1Factory1_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \
- ((This)->lpVtbl->Base.CreateGeometryGroup((ID2D1Factory *)This, fillMode, geometries, geometriesCount, geometryGroup))
-
-#define ID2D1Factory1_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \
- ((This)->lpVtbl->Base.CreateTransformedGeometry((ID2D1Factory *)This, sourceGeometry, transform, transformedGeometry))
-
-#define ID2D1Factory1_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.CreateWicBitmapRenderTarget((ID2D1Factory *)This, target, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory1_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \
- ((This)->lpVtbl->Base.CreateHwndRenderTarget((ID2D1Factory *)This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget))
-
-#define ID2D1Factory1_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.CreateDxgiSurfaceRenderTarget((ID2D1Factory *)This, dxgiSurface, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory1_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \
- ((This)->lpVtbl->Base.CreateDCRenderTarget((ID2D1Factory *)This, renderTargetProperties, dcRenderTarget))
-
-#define ID2D1Factory1_CreateDevice(This, dxgiDevice, d2dDevice) \
- ((This)->lpVtbl->CreateDevice(This, dxgiDevice, d2dDevice))
-
-#define ID2D1Factory1_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \
- ((This)->lpVtbl->CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle))
-
-#define ID2D1Factory1_CreatePathGeometry(This, pathGeometry) \
- ((This)->lpVtbl->CreatePathGeometry(This, pathGeometry))
-
-#define ID2D1Factory1_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \
- ((This)->lpVtbl->CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock))
-
-#define ID2D1Factory1_CreateGdiMetafile(This, metafileStream, metafile) \
- ((This)->lpVtbl->CreateGdiMetafile(This, metafileStream, metafile))
-
-#define ID2D1Factory1_RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory1_RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory1_UnregisterEffect(This, classId) \
- ((This)->lpVtbl->UnregisterEffect(This, classId))
-
-#define ID2D1Factory1_GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered) \
- ((This)->lpVtbl->GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered))
-
-#define ID2D1Factory1_GetEffectProperties(This, effectId, properties) \
- ((This)->lpVtbl->GetEffectProperties(This, effectId, properties))
-
typedef interface ID2D1Multithread ID2D1Multithread;
-typedef struct ID2D1MultithreadVtbl
-{
-
- IUnknownVtbl Base;
-
-
- STDMETHOD_(BOOL, GetMultithreadProtected)(
- ID2D1Multithread *This
- ) PURE;
-
- STDMETHOD_(void, Enter)(
- ID2D1Multithread *This
- ) PURE;
-
- STDMETHOD_(void, Leave)(
- ID2D1Multithread *This
- ) PURE;
-} ID2D1MultithreadVtbl;
-
-interface ID2D1Multithread
-{
- CONST struct ID2D1MultithreadVtbl *lpVtbl;
-};
-
-
-#define ID2D1Multithread_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Multithread_AddRef(This) \
- ((This)->lpVtbl->Base.AddRef((IUnknown *)This))
-
-#define ID2D1Multithread_Release(This) \
- ((This)->lpVtbl->Base.Release((IUnknown *)This))
-
-#define ID2D1Multithread_GetMultithreadProtected(This) \
- ((This)->lpVtbl->GetMultithreadProtected(This))
-
-#define ID2D1Multithread_Enter(This) \
- ((This)->lpVtbl->Enter(This))
-
-#define ID2D1Multithread_Leave(This) \
- ((This)->lpVtbl->Leave(This))
-
-
#endif
diff --git a/3rdparty/minidx12/Include/d2d1_2.h b/3rdparty/minidx12/Include/d2d1_2.h
index dc21a5d2e3..e3ca577814 100644
--- a/3rdparty/minidx12/Include/d2d1_2.h
+++ b/3rdparty/minidx12/Include/d2d1_2.h
@@ -33,20 +33,14 @@ typedef interface ID2D1Device1 ID2D1Device1;
#endif
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_RENDERING_PRIORITY
-//
-// Synopsis:
-// Specifies the extent to which D2D will throttle work sent to the GPU.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the extent to which D2D will throttle work sent to the GPU.
+///
typedef enum D2D1_RENDERING_PRIORITY
{
- D2D1_RENDERING_PRIORITY_NORMAL = 0,
- D2D1_RENDERING_PRIORITY_LOW = 1,
- D2D1_RENDERING_PRIORITY_FORCE_DWORD = 0xffffffff
+ D2D1_RENDERING_PRIORITY_NORMAL = 0,
+ D2D1_RENDERING_PRIORITY_LOW = 1,
+ D2D1_RENDERING_PRIORITY_FORCE_DWORD = 0xffffffff
} D2D1_RENDERING_PRIORITY;
@@ -54,32 +48,25 @@ typedef enum D2D1_RENDERING_PRIORITY
#ifndef D2D_USE_C_DEFINITIONS
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GeometryRealization
-//
-//------------------------------------------------------------------------------
+///
+/// Encapsulates a device- and transform-dependent representation of a filled or
+/// stroked geometry.
+///
interface DX_DECLARE_INTERFACE("a16907d7-bc02-4801-99e8-8cf7f485f774") ID2D1GeometryRealization : public ID2D1Resource
{
}; // interface ID2D1GeometryRealization
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DeviceContext1
-//
-//------------------------------------------------------------------------------
+///
+/// Enables creation and drawing of geometry realization objects.
+///
interface DX_DECLARE_INTERFACE("d37f57e4-6908-459f-a199-e72f24f79987") ID2D1DeviceContext1 : public ID2D1DeviceContext
{
STDMETHOD(CreateFilledGeometryRealization)(
_In_ ID2D1Geometry *geometry,
FLOAT flatteningTolerance,
- _Outptr_ ID2D1GeometryRealization **geometryRealization
+ _COM_Outptr_ ID2D1GeometryRealization **geometryRealization
) PURE;
STDMETHOD(CreateStrokedGeometryRealization)(
@@ -87,7 +74,7 @@ interface DX_DECLARE_INTERFACE("d37f57e4-6908-459f-a199-e72f24f79987") ID2D1Devi
FLOAT flatteningTolerance,
FLOAT strokeWidth,
_In_opt_ ID2D1StrokeStyle *strokeStyle,
- _Outptr_ ID2D1GeometryRealization **geometryRealization
+ _COM_Outptr_ ID2D1GeometryRealization **geometryRealization
) PURE;
STDMETHOD_(void, DrawGeometryRealization)(
@@ -97,82 +84,69 @@ interface DX_DECLARE_INTERFACE("d37f57e4-6908-459f-a199-e72f24f79987") ID2D1Devi
}; // interface ID2D1DeviceContext1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Device1
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a resource domain whose objects and device contexts can be used
+/// together.
+///
interface DX_DECLARE_INTERFACE("d21768e1-23a4-4823-a14b-7c3eba85d658") ID2D1Device1 : public ID2D1Device
{
-
- //
- // Retrieves the rendering priority currently set on the device.
- //
+ ///
+ /// Retrieves the rendering priority currently set on the device.
+ ///
STDMETHOD_(D2D1_RENDERING_PRIORITY, GetRenderingPriority)(
) PURE;
-
- //
- // Sets the rendering priority of the device.
- //
+ ///
+ /// Sets the rendering priority of the device.
+ ///
STDMETHOD_(void, SetRenderingPriority)(
D2D1_RENDERING_PRIORITY renderingPriority
) PURE;
-
- //
- // Creates a new device context with no initially assigned target.
- //
+ ///
+ /// Creates a new device context with no initially assigned target.
+ ///
STDMETHOD(CreateDeviceContext)(
D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext1 **deviceContext1
+ _COM_Outptr_ ID2D1DeviceContext1 **deviceContext1
) PURE;
using ID2D1Device::CreateDeviceContext;
}; // interface ID2D1Device1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Factory2
-//
-//------------------------------------------------------------------------------
+///
+/// Creates Direct2D resources. This interface also enables the creation of
+/// ID2D1Device1 objects.
+///
interface DX_DECLARE_INTERFACE("94f81a73-9212-4376-9c58-b16a3a0d3992") ID2D1Factory2 : public ID2D1Factory1
{
-
- //
- // This creates a new Direct2D device from the given IDXGIDevice.
- //
+ ///
+ /// This creates a new Direct2D device from the given IDXGIDevice.
+ ///
STDMETHOD(CreateDevice)(
_In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device1 **d2dDevice1
+ _COM_Outptr_ ID2D1Device1 **d2dDevice1
) PURE;
using ID2D1Factory1::CreateDevice;
}; // interface ID2D1Factory2
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1CommandSink1
-//
-//------------------------------------------------------------------------------
+///
+/// This interface performs all the same functions as the existing ID2D1CommandSink
+/// interface. It also enables access to the new primitive blend modes, MIN and ADD,
+/// through its SetPrimitiveBlend1 method.
+///
interface DX_DECLARE_INTERFACE("9eb767fd-4269-4467-b8c2-eb30cb305743") ID2D1CommandSink1 : public ID2D1CommandSink
{
-
- //
- // This method is called if primitiveBlend value was added after Windows 8.
- // SetPrimitiveBlend method is used for Win8 values (_SOURCE_OVER and _COPY).
- //
+ ///
+ /// This method is called if primitiveBlend value was added after Windows 8.
+ /// SetPrimitiveBlend method is used for Win8 values (_SOURCE_OVER and _COPY).
+ ///
STDMETHOD(SetPrimitiveBlend1)(
D2D1_PRIMITIVE_BLEND primitiveBlend
) PURE;
@@ -195,593 +169,14 @@ EXTERN_C CONST IID IID_ID2D1CommandSink1;
typedef interface ID2D1GeometryRealization ID2D1GeometryRealization;
-typedef struct ID2D1GeometryRealizationVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-} ID2D1GeometryRealizationVtbl;
-
-interface ID2D1GeometryRealization
-{
- CONST struct ID2D1GeometryRealizationVtbl *lpVtbl;
-};
-
-
-#define ID2D1GeometryRealization_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GeometryRealization_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GeometryRealization_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GeometryRealization_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
typedef interface ID2D1DeviceContext1 ID2D1DeviceContext1;
-typedef struct ID2D1DeviceContext1Vtbl
-{
-
- ID2D1DeviceContextVtbl Base;
-
-
- STDMETHOD(CreateFilledGeometryRealization)(
- ID2D1DeviceContext1 *This,
- _In_ ID2D1Geometry *geometry,
- FLOAT flatteningTolerance,
- _Outptr_ ID2D1GeometryRealization **geometryRealization
- ) PURE;
-
- STDMETHOD(CreateStrokedGeometryRealization)(
- ID2D1DeviceContext1 *This,
- _In_ ID2D1Geometry *geometry,
- FLOAT flatteningTolerance,
- FLOAT strokeWidth,
- _In_opt_ ID2D1StrokeStyle *strokeStyle,
- _Outptr_ ID2D1GeometryRealization **geometryRealization
- ) PURE;
-
- STDMETHOD_(void, DrawGeometryRealization)(
- ID2D1DeviceContext1 *This,
- _In_ ID2D1GeometryRealization *geometryRealization,
- _In_ ID2D1Brush *brush
- ) PURE;
-} ID2D1DeviceContext1Vtbl;
-
-interface ID2D1DeviceContext1
-{
- CONST struct ID2D1DeviceContext1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1DeviceContext1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DeviceContext1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DeviceContext1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DeviceContext1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DeviceContext1_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext1_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1DeviceContext1_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1DeviceContext1_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1DeviceContext1_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1DeviceContext1_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1DeviceContext1_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1DeviceContext1_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext1_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext1_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1DeviceContext1_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext1_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1DeviceContext1_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext1_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1DeviceContext1_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext1_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1DeviceContext1_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1DeviceContext1_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1DeviceContext1_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1DeviceContext1_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext1_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext1_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1DeviceContext1_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1DeviceContext1_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext1_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext1_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext1_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext1_PopLayer(This) \
- ((This)->lpVtbl->Base.Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext1_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext1_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext1_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1DeviceContext1_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1DeviceContext1_BeginDraw(This) \
- ((This)->lpVtbl->Base.Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext1_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext1_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext1_GetSize(This) \
- ((This)->lpVtbl->Base.Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_GetPixelSize(This) \
- ((This)->lpVtbl->Base.Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext1_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1DeviceContext1_CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmap((ID2D1DeviceContext *)This, size, sourceData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext1_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1DeviceContext *)This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext1_CreateColorContext(This, space, profile, profileSize, colorContext) \
- ((This)->lpVtbl->Base.CreateColorContext((ID2D1DeviceContext *)This, space, profile, profileSize, colorContext))
-
-#define ID2D1DeviceContext1_CreateColorContextFromFilename(This, filename, colorContext) \
- ((This)->lpVtbl->Base.CreateColorContextFromFilename((ID2D1DeviceContext *)This, filename, colorContext))
-
-#define ID2D1DeviceContext1_CreateColorContextFromWicColorContext(This, wicColorContext, colorContext) \
- ((This)->lpVtbl->Base.CreateColorContextFromWicColorContext((ID2D1DeviceContext *)This, wicColorContext, colorContext))
-
-#define ID2D1DeviceContext1_CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.CreateBitmapFromDxgiSurface((ID2D1DeviceContext *)This, surface, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext1_CreateEffect(This, effectId, effect) \
- ((This)->lpVtbl->Base.CreateEffect((ID2D1DeviceContext *)This, effectId, effect))
-
-#define ID2D1DeviceContext1_CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1) \
- ((This)->lpVtbl->Base.CreateGradientStopCollection((ID2D1DeviceContext *)This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1))
-
-#define ID2D1DeviceContext1_CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush) \
- ((This)->lpVtbl->Base.CreateImageBrush((ID2D1DeviceContext *)This, image, imageBrushProperties, brushProperties, imageBrush))
-
-#define ID2D1DeviceContext1_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->Base.CreateBitmapBrush((ID2D1DeviceContext *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1DeviceContext1_CreateCommandList(This, commandList) \
- ((This)->lpVtbl->Base.CreateCommandList((ID2D1DeviceContext *)This, commandList))
-
-#define ID2D1DeviceContext1_IsDxgiFormatSupported(This, format) \
- ((This)->lpVtbl->Base.IsDxgiFormatSupported((ID2D1DeviceContext *)This, format))
-
-#define ID2D1DeviceContext1_IsBufferPrecisionSupported(This, bufferPrecision) \
- ((This)->lpVtbl->Base.IsBufferPrecisionSupported((ID2D1DeviceContext *)This, bufferPrecision))
-
-#define ID2D1DeviceContext1_GetImageLocalBounds(This, image, localBounds) \
- ((This)->lpVtbl->Base.GetImageLocalBounds((ID2D1DeviceContext *)This, image, localBounds))
-
-#define ID2D1DeviceContext1_GetImageWorldBounds(This, image, worldBounds) \
- ((This)->lpVtbl->Base.GetImageWorldBounds((ID2D1DeviceContext *)This, image, worldBounds))
-
-#define ID2D1DeviceContext1_GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds) \
- ((This)->lpVtbl->Base.GetGlyphRunWorldBounds((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, measuringMode, bounds))
-
-#define ID2D1DeviceContext1_GetDevice(This, device) \
- ((This)->lpVtbl->Base.GetDevice((ID2D1DeviceContext *)This, device))
-
-#define ID2D1DeviceContext1_SetTarget(This, image) \
- ((This)->lpVtbl->Base.SetTarget((ID2D1DeviceContext *)This, image))
-
-#define ID2D1DeviceContext1_GetTarget(This, image) \
- ((This)->lpVtbl->Base.GetTarget((ID2D1DeviceContext *)This, image))
-
-#define ID2D1DeviceContext1_SetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->Base.SetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
-
-#define ID2D1DeviceContext1_GetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->Base.GetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
-
-#define ID2D1DeviceContext1_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->Base.SetPrimitiveBlend((ID2D1DeviceContext *)This, primitiveBlend))
-
-#define ID2D1DeviceContext1_GetPrimitiveBlend(This) \
- ((This)->lpVtbl->Base.GetPrimitiveBlend((ID2D1DeviceContext *)This))
-
-#define ID2D1DeviceContext1_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->Base.SetUnitMode((ID2D1DeviceContext *)This, unitMode))
-
-#define ID2D1DeviceContext1_GetUnitMode(This) \
- ((This)->lpVtbl->Base.GetUnitMode((ID2D1DeviceContext *)This))
-
-#define ID2D1DeviceContext1_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.DrawGlyphRun((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1DeviceContext1_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->Base.DrawImage((ID2D1DeviceContext *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1DeviceContext1_DrawGdiMetafile(This, gdiMetafile, targetOffset) \
- ((This)->lpVtbl->Base.DrawGdiMetafile((ID2D1DeviceContext *)This, gdiMetafile, targetOffset))
-
-#define ID2D1DeviceContext1_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->Base.DrawBitmap((ID2D1DeviceContext *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1DeviceContext1_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->Base.PushLayer((ID2D1DeviceContext *)This, layerParameters, layer))
-
-#define ID2D1DeviceContext1_InvalidateEffectInputRectangle(This, effect, input, inputRectangle) \
- ((This)->lpVtbl->Base.InvalidateEffectInputRectangle((ID2D1DeviceContext *)This, effect, input, inputRectangle))
-
-#define ID2D1DeviceContext1_GetEffectInvalidRectangleCount(This, effect, rectangleCount) \
- ((This)->lpVtbl->Base.GetEffectInvalidRectangleCount((ID2D1DeviceContext *)This, effect, rectangleCount))
-
-#define ID2D1DeviceContext1_GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount) \
- ((This)->lpVtbl->Base.GetEffectInvalidRectangles((ID2D1DeviceContext *)This, effect, rectangles, rectanglesCount))
-
-#define ID2D1DeviceContext1_GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount) \
- ((This)->lpVtbl->Base.GetEffectRequiredInputRectangles((ID2D1DeviceContext *)This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount))
-
-#define ID2D1DeviceContext1_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.FillOpacityMask((ID2D1DeviceContext *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
-#define ID2D1DeviceContext1_CreateFilledGeometryRealization(This, geometry, flatteningTolerance, geometryRealization) \
- ((This)->lpVtbl->CreateFilledGeometryRealization(This, geometry, flatteningTolerance, geometryRealization))
-
-#define ID2D1DeviceContext1_CreateStrokedGeometryRealization(This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization) \
- ((This)->lpVtbl->CreateStrokedGeometryRealization(This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization))
-
-#define ID2D1DeviceContext1_DrawGeometryRealization(This, geometryRealization, brush) \
- ((This)->lpVtbl->DrawGeometryRealization(This, geometryRealization, brush))
-
typedef interface ID2D1Device1 ID2D1Device1;
-typedef struct ID2D1Device1Vtbl
-{
-
- ID2D1DeviceVtbl Base;
-
-
- STDMETHOD_(D2D1_RENDERING_PRIORITY, GetRenderingPriority)(
- ID2D1Device1 *This
- ) PURE;
-
- STDMETHOD_(void, SetRenderingPriority)(
- ID2D1Device1 *This,
- D2D1_RENDERING_PRIORITY renderingPriority
- ) PURE;
-
- STDMETHOD(CreateDeviceContext)(
- ID2D1Device1 *This,
- D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext1 **deviceContext1
- ) PURE;
-} ID2D1Device1Vtbl;
-
-interface ID2D1Device1
-{
- CONST struct ID2D1Device1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Device1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Device1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Device1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Device1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Device1_CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl) \
- ((This)->lpVtbl->Base.CreatePrintControl((ID2D1Device *)This, wicFactory, documentTarget, printControlProperties, printControl))
-
-#define ID2D1Device1_SetMaximumTextureMemory(This, maximumInBytes) \
- ((This)->lpVtbl->Base.SetMaximumTextureMemory((ID2D1Device *)This, maximumInBytes))
-
-#define ID2D1Device1_GetMaximumTextureMemory(This) \
- ((This)->lpVtbl->Base.GetMaximumTextureMemory((ID2D1Device *)This))
-
-#define ID2D1Device1_ClearResources(This, millisecondsSinceUse) \
- ((This)->lpVtbl->Base.ClearResources((ID2D1Device *)This, millisecondsSinceUse))
-
-#define ID2D1Device1_GetRenderingPriority(This) \
- ((This)->lpVtbl->GetRenderingPriority(This))
-
-#define ID2D1Device1_SetRenderingPriority(This, renderingPriority) \
- ((This)->lpVtbl->SetRenderingPriority(This, renderingPriority))
-
-#define ID2D1Device1_CreateDeviceContext(This, options, deviceContext1) \
- ((This)->lpVtbl->CreateDeviceContext(This, options, deviceContext1))
-
typedef interface ID2D1Factory2 ID2D1Factory2;
-typedef struct ID2D1Factory2Vtbl
-{
-
- ID2D1Factory1Vtbl Base;
-
-
- STDMETHOD(CreateDevice)(
- ID2D1Factory2 *This,
- _In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device1 **d2dDevice1
- ) PURE;
-} ID2D1Factory2Vtbl;
-
-interface ID2D1Factory2
-{
- CONST struct ID2D1Factory2Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Factory2_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Factory2_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Factory2_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Factory2_ReloadSystemMetrics(This) \
- ((This)->lpVtbl->Base.Base.ReloadSystemMetrics((ID2D1Factory *)This))
-
-#define ID2D1Factory2_GetDesktopDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.GetDesktopDpi((ID2D1Factory *)This, dpiX, dpiY))
-
-#define ID2D1Factory2_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \
- ((This)->lpVtbl->Base.Base.CreateRectangleGeometry((ID2D1Factory *)This, rectangle, rectangleGeometry))
-
-#define ID2D1Factory2_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \
- ((This)->lpVtbl->Base.Base.CreateRoundedRectangleGeometry((ID2D1Factory *)This, roundedRectangle, roundedRectangleGeometry))
-
-#define ID2D1Factory2_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \
- ((This)->lpVtbl->Base.Base.CreateEllipseGeometry((ID2D1Factory *)This, ellipse, ellipseGeometry))
-
-#define ID2D1Factory2_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \
- ((This)->lpVtbl->Base.Base.CreateGeometryGroup((ID2D1Factory *)This, fillMode, geometries, geometriesCount, geometryGroup))
-
-#define ID2D1Factory2_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \
- ((This)->lpVtbl->Base.Base.CreateTransformedGeometry((ID2D1Factory *)This, sourceGeometry, transform, transformedGeometry))
-
-#define ID2D1Factory2_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.Base.CreateWicBitmapRenderTarget((ID2D1Factory *)This, target, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory2_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \
- ((This)->lpVtbl->Base.Base.CreateHwndRenderTarget((ID2D1Factory *)This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget))
-
-#define ID2D1Factory2_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.Base.CreateDxgiSurfaceRenderTarget((ID2D1Factory *)This, dxgiSurface, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory2_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \
- ((This)->lpVtbl->Base.Base.CreateDCRenderTarget((ID2D1Factory *)This, renderTargetProperties, dcRenderTarget))
-
-#define ID2D1Factory2_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \
- ((This)->lpVtbl->Base.CreateStrokeStyle((ID2D1Factory1 *)This, strokeStyleProperties, dashes, dashesCount, strokeStyle))
-
-#define ID2D1Factory2_CreatePathGeometry(This, pathGeometry) \
- ((This)->lpVtbl->Base.CreatePathGeometry((ID2D1Factory1 *)This, pathGeometry))
-
-#define ID2D1Factory2_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \
- ((This)->lpVtbl->Base.CreateDrawingStateBlock((ID2D1Factory1 *)This, drawingStateDescription, textRenderingParams, drawingStateBlock))
-
-#define ID2D1Factory2_CreateGdiMetafile(This, metafileStream, metafile) \
- ((This)->lpVtbl->Base.CreateGdiMetafile((ID2D1Factory1 *)This, metafileStream, metafile))
-
-#define ID2D1Factory2_RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->Base.RegisterEffectFromStream((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory2_RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->Base.RegisterEffectFromString((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory2_UnregisterEffect(This, classId) \
- ((This)->lpVtbl->Base.UnregisterEffect((ID2D1Factory1 *)This, classId))
-
-#define ID2D1Factory2_GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered) \
- ((This)->lpVtbl->Base.GetRegisteredEffects((ID2D1Factory1 *)This, effects, effectsCount, effectsReturned, effectsRegistered))
-
-#define ID2D1Factory2_GetEffectProperties(This, effectId, properties) \
- ((This)->lpVtbl->Base.GetEffectProperties((ID2D1Factory1 *)This, effectId, properties))
-
-#define ID2D1Factory2_CreateDevice(This, dxgiDevice, d2dDevice1) \
- ((This)->lpVtbl->CreateDevice(This, dxgiDevice, d2dDevice1))
-
typedef interface ID2D1CommandSink1 ID2D1CommandSink1;
-typedef struct ID2D1CommandSink1Vtbl
-{
-
- ID2D1CommandSinkVtbl Base;
-
-
- STDMETHOD(SetPrimitiveBlend1)(
- ID2D1CommandSink1 *This,
- D2D1_PRIMITIVE_BLEND primitiveBlend
- ) PURE;
-} ID2D1CommandSink1Vtbl;
-
-interface ID2D1CommandSink1
-{
- CONST struct ID2D1CommandSink1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1CommandSink1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1CommandSink1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1CommandSink1_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1CommandSink1_BeginDraw(This) \
- ((This)->lpVtbl->Base.BeginDraw((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink1_EndDraw(This) \
- ((This)->lpVtbl->Base.EndDraw((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink1_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.SetAntialiasMode((ID2D1CommandSink *)This, antialiasMode))
-
-#define ID2D1CommandSink1_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.SetTags((ID2D1CommandSink *)This, tag1, tag2))
-
-#define ID2D1CommandSink1_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.SetTextAntialiasMode((ID2D1CommandSink *)This, textAntialiasMode))
-
-#define ID2D1CommandSink1_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.SetTextRenderingParams((ID2D1CommandSink *)This, textRenderingParams))
-
-#define ID2D1CommandSink1_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.SetTransform((ID2D1CommandSink *)This, transform))
-
-#define ID2D1CommandSink1_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->Base.SetPrimitiveBlend((ID2D1CommandSink *)This, primitiveBlend))
-
-#define ID2D1CommandSink1_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->Base.SetUnitMode((ID2D1CommandSink *)This, unitMode))
-
-#define ID2D1CommandSink1_Clear(This, color) \
- ((This)->lpVtbl->Base.Clear((ID2D1CommandSink *)This, color))
-
-#define ID2D1CommandSink1_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.DrawGlyphRun((ID2D1CommandSink *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1CommandSink1_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawLine((ID2D1CommandSink *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink1_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawGeometry((ID2D1CommandSink *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink1_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.DrawRectangle((ID2D1CommandSink *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink1_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->Base.DrawBitmap((ID2D1CommandSink *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1CommandSink1_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->Base.DrawImage((ID2D1CommandSink *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1CommandSink1_DrawGdiMetafile(This, gdiMetafile, targetOffset) \
- ((This)->lpVtbl->Base.DrawGdiMetafile((ID2D1CommandSink *)This, gdiMetafile, targetOffset))
-
-#define ID2D1CommandSink1_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.FillMesh((ID2D1CommandSink *)This, mesh, brush))
-
-#define ID2D1CommandSink1_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.FillOpacityMask((ID2D1CommandSink *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
-#define ID2D1CommandSink1_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.FillGeometry((ID2D1CommandSink *)This, geometry, brush, opacityBrush))
-
-#define ID2D1CommandSink1_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.FillRectangle((ID2D1CommandSink *)This, rect, brush))
-
-#define ID2D1CommandSink1_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.PushAxisAlignedClip((ID2D1CommandSink *)This, clipRect, antialiasMode))
-
-#define ID2D1CommandSink1_PushLayer(This, layerParameters1, layer) \
- ((This)->lpVtbl->Base.PushLayer((ID2D1CommandSink *)This, layerParameters1, layer))
-
-#define ID2D1CommandSink1_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.PopAxisAlignedClip((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink1_PopLayer(This) \
- ((This)->lpVtbl->Base.PopLayer((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink1_SetPrimitiveBlend1(This, primitiveBlend) \
- ((This)->lpVtbl->SetPrimitiveBlend1(This, primitiveBlend))
-
-
#endif
diff --git a/3rdparty/minidx12/Include/d2d1_3.h b/3rdparty/minidx12/Include/d2d1_3.h
index 516988125d..63534a3f52 100644
--- a/3rdparty/minidx12/Include/d2d1_3.h
+++ b/3rdparty/minidx12/Include/d2d1_3.h
@@ -25,161 +25,127 @@
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef interface IWICBitmapFrameDecode IWICBitmapFrameDecode;
+typedef interface IDWriteFontFace IDWriteFontFace;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_INK_NIB_SHAPE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the appearance of the ink nib (pen tip) as part of an
+/// D2D1_INK_STYLE_PROPERTIES structure.
+///
typedef enum D2D1_INK_NIB_SHAPE
{
- D2D1_INK_NIB_SHAPE_ROUND = 0,
- D2D1_INK_NIB_SHAPE_SQUARE = 1,
- D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
+ D2D1_INK_NIB_SHAPE_ROUND = 0,
+ D2D1_INK_NIB_SHAPE_SQUARE = 1,
+ D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
} D2D1_INK_NIB_SHAPE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ORIENTATION
-//
-// Synopsis:
-// Specifies the orientation of an image.
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the orientation of an image.
+///
typedef enum D2D1_ORIENTATION
{
- D2D1_ORIENTATION_DEFAULT = 1,
- D2D1_ORIENTATION_FLIP_HORIZONTAL = 2,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7,
- D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8,
- D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff
+ D2D1_ORIENTATION_DEFAULT = 1,
+ D2D1_ORIENTATION_FLIP_HORIZONTAL = 2,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8,
+ D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff
} D2D1_ORIENTATION;
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_IMAGE_SOURCE_LOADING_OPTIONS
-//
-// Synopsis:
-// Option flags controlling how images sources are loaded during
-// CreateImageSourceFromWic.
-//
-//------------------------------------------------------------------------------
+///
+/// Option flags controlling how images sources are loaded during
+/// CreateImageSourceFromWic.
+///
typedef enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS
{
- D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0,
- D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1,
- D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2,
- D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0,
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1,
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2,
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_IMAGE_SOURCE_LOADING_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_LOADING_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
-//
-// Synopsis:
-// Option flags controlling primary conversion performed by
-// CreateImageSourceFromDxgi, if any.
-//
-//------------------------------------------------------------------------------
+///
+/// Option flags controlling primary conversion performed by
+/// CreateImageSourceFromDxgi, if any.
+///
typedef enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
{
- D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0,
- D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1,
- D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0,
+ D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1,
+ D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Flag:
-// D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS
-//
-// Synopsis:
-// Option flags for transformed image sources.
-//
-//------------------------------------------------------------------------------
+///
+/// Option flags for transformed image sources.
+///
typedef enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS
{
- D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0,
-
- //
- // Prevents the image source from being automatically scaled (by a ratio of the
- // context DPI divided by 96) while drawn.
- //
- D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1,
- D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff
+ D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0,
+
+ ///
+ /// Prevents the image source from being automatically scaled (by a ratio of the
+ /// context DPI divided by 96) while drawn.
+ ///
+ D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1,
+ D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff
} D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS;
DEFINE_ENUM_FLAG_OPERATORS(D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS);
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
-//
-// Synopsis:
-// Properties of a transformed image source.
-//
-//------------------------------------------------------------------------------
+///
+/// Properties of a transformed image source.
+///
typedef struct D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
{
- //
- // The orientation at which the image source is drawn.
- //
+ ///
+ /// The orientation at which the image source is drawn.
+ ///
D2D1_ORIENTATION orientation;
- //
- // The horizontal scale factor at which the image source is drawn.
- //
+ ///
+ /// The horizontal scale factor at which the image source is drawn.
+ ///
FLOAT scaleX;
- //
- // The vertical scale factor at which the image source is drawn.
- //
+ ///
+ /// The vertical scale factor at which the image source is drawn.
+ ///
FLOAT scaleY;
- //
- // The interpolation mode used when the image source is drawn. This is ignored if
- // the image source is drawn using the DrawImage method, or using an image brush.
- //
+ ///
+ /// The interpolation mode used when the image source is drawn. This is ignored if
+ /// the image source is drawn using the DrawImage method, or using an image brush.
+ ///
D2D1_INTERPOLATION_MODE interpolationMode;
- //
- // Option flags.
- //
+ ///
+ /// Option flags.
+ ///
D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS options;
} D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_INK_POINT
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a point, radius pair that makes up part of a D2D1_INK_BEZIER_SEGMENT.
+///
typedef struct D2D1_INK_POINT
{
FLOAT x;
@@ -189,12 +155,11 @@ typedef struct D2D1_INK_POINT
} D2D1_INK_POINT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_INK_BEZIER_SEGMENT
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a Bezier segment to be used in the creation of an ID2D1Ink object.
+/// This structure differs from D2D1_BEZIER_SEGMENT in that it is composed of
+/// D2D1_INK_POINT s, which contain a radius in addition to x- and y-coordinates.
+///
typedef struct D2D1_INK_BEZIER_SEGMENT
{
D2D1_INK_POINT point1;
@@ -204,198 +169,235 @@ typedef struct D2D1_INK_BEZIER_SEGMENT
} D2D1_INK_BEZIER_SEGMENT;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_INK_STYLE_PROPERTIES
-//
-//------------------------------------------------------------------------------
+///
+/// Defines the general pen tip shape and the transform used in an ID2D1InkStyle
+/// object.
+///
typedef struct D2D1_INK_STYLE_PROPERTIES
{
- //
- // The general shape of the nib used to draw a given ink object.
- //
+ ///
+ /// The general shape of the nib used to draw a given ink object.
+ ///
D2D1_INK_NIB_SHAPE nibShape;
- //
- // The transform applied to shape of the nib. _31 and _32 are ignored.
- //
+ ///
+ /// The transform applied to shape of the nib. _31 and _32 are ignored.
+ ///
D2D1_MATRIX_3X2_F nibTransform;
} D2D1_INK_STYLE_PROPERTIES;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_PATCH_EDGE_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how to render gradient mesh edges.
+///
typedef enum D2D1_PATCH_EDGE_MODE
{
-
- //
- // Render this edge aliased.
- //
- D2D1_PATCH_EDGE_MODE_ALIASED = 0,
-
- //
- // Render this edge antialiased.
- //
- D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1,
-
- //
- // Render this edge aliased and inflated out slightly.
- //
- D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2,
- D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Render this edge aliased.
+ ///
+ D2D1_PATCH_EDGE_MODE_ALIASED = 0,
+
+ ///
+ /// Render this edge antialiased.
+ ///
+ D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1,
+
+ ///
+ /// Render this edge aliased and inflated out slightly.
+ ///
+ D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2,
+ D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_PATCH_EDGE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_GRADIENT_MESH_PATCH
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a tensor patch with 16 control points, 4 corner colors, and boundary
+/// flags. An ID2D1GradientMesh is made up of 1 or more gradient mesh patches. Use
+/// the GradientMeshPatch function or the GradientMeshPatchFromCoonsPatch function
+/// to create one.
+///
typedef struct D2D1_GRADIENT_MESH_PATCH
{
- //
- // The gradient mesh patch control point at position 00.
- //
+ ///
+ /// The gradient mesh patch control point at position 00.
+ ///
D2D1_POINT_2F point00;
- //
- // The gradient mesh patch control point at position 01.
- //
+ ///
+ /// The gradient mesh patch control point at position 01.
+ ///
D2D1_POINT_2F point01;
- //
- // The gradient mesh patch control point at position 02.
- //
+ ///
+ /// The gradient mesh patch control point at position 02.
+ ///
D2D1_POINT_2F point02;
- //
- // The gradient mesh patch control point at position 03.
- //
+ ///
+ /// The gradient mesh patch control point at position 03.
+ ///
D2D1_POINT_2F point03;
- //
- // The gradient mesh patch control point at position 10.
- //
+ ///
+ /// The gradient mesh patch control point at position 10.
+ ///
D2D1_POINT_2F point10;
- //
- // The gradient mesh patch control point at position 11.
- //
+ ///
+ /// The gradient mesh patch control point at position 11.
+ ///
D2D1_POINT_2F point11;
- //
- // The gradient mesh patch control point at position 12.
- //
+ ///
+ /// The gradient mesh patch control point at position 12.
+ ///
D2D1_POINT_2F point12;
- //
- // The gradient mesh patch control point at position 13.
- //
+ ///
+ /// The gradient mesh patch control point at position 13.
+ ///
D2D1_POINT_2F point13;
- //
- // The gradient mesh patch control point at position 20.
- //
+ ///
+ /// The gradient mesh patch control point at position 20.
+ ///
D2D1_POINT_2F point20;
- //
- // The gradient mesh patch control point at position 21.
- //
+ ///
+ /// The gradient mesh patch control point at position 21.
+ ///
D2D1_POINT_2F point21;
- //
- // The gradient mesh patch control point at position 22.
- //
+ ///
+ /// The gradient mesh patch control point at position 22.
+ ///
D2D1_POINT_2F point22;
- //
- // The gradient mesh patch control point at position 23.
- //
+ ///
+ /// The gradient mesh patch control point at position 23.
+ ///
D2D1_POINT_2F point23;
- //
- // The gradient mesh patch control point at position 30.
- //
+ ///
+ /// The gradient mesh patch control point at position 30.
+ ///
D2D1_POINT_2F point30;
- //
- // The gradient mesh patch control point at position 31.
- //
+ ///
+ /// The gradient mesh patch control point at position 31.
+ ///
D2D1_POINT_2F point31;
- //
- // The gradient mesh patch control point at position 32.
- //
+ ///
+ /// The gradient mesh patch control point at position 32.
+ ///
D2D1_POINT_2F point32;
- //
- // The gradient mesh patch control point at position 33.
- //
+ ///
+ /// The gradient mesh patch control point at position 33.
+ ///
D2D1_POINT_2F point33;
- //
- // The color associated with control point at position 00.
- //
+ ///
+ /// The color associated with control point at position 00.
+ ///
D2D1_COLOR_F color00;
- //
- // The color associated with control point at position 03.
- //
+ ///
+ /// The color associated with control point at position 03.
+ ///
D2D1_COLOR_F color03;
- //
- // The color associated with control point at position 30.
- //
+ ///
+ /// The color associated with control point at position 30.
+ ///
D2D1_COLOR_F color30;
- //
- // The color associated with control point at position 33.
- //
+ ///
+ /// The color associated with control point at position 33.
+ ///
D2D1_COLOR_F color33;
- //
- // The edge mode for the top edge of the patch.
- //
+ ///
+ /// The edge mode for the top edge of the patch.
+ ///
D2D1_PATCH_EDGE_MODE topEdgeMode;
- //
- // The edge mode for the left edge of the patch.
- //
+ ///
+ /// The edge mode for the left edge of the patch.
+ ///
D2D1_PATCH_EDGE_MODE leftEdgeMode;
- //
- // The edge mode for the bottom edge of the patch.
- //
+ ///
+ /// The edge mode for the bottom edge of the patch.
+ ///
D2D1_PATCH_EDGE_MODE bottomEdgeMode;
- //
- // The edge mode for the right edge of the patch.
- //
+ ///
+ /// The edge mode for the right edge of the patch.
+ ///
D2D1_PATCH_EDGE_MODE rightEdgeMode;
} D2D1_GRADIENT_MESH_PATCH;
+typedef enum D2D1_SPRITE_OPTIONS
+{
+
+ ///
+ /// Use default sprite rendering behavior.
+ ///
+ D2D1_SPRITE_OPTIONS_NONE = 0,
+
+ ///
+ /// Bitmap interpolation will be clamped to the sprite's source rectangle.
+ ///
+ D2D1_SPRITE_OPTIONS_CLAMP_TO_SOURCE_RECTANGLE = 1,
+ D2D1_SPRITE_OPTIONS_FORCE_DWORD = 0xffffffff
+
+} D2D1_SPRITE_OPTIONS;
+
+DEFINE_ENUM_FLAG_OPERATORS(D2D1_SPRITE_OPTIONS);
+
+
+///
+/// Specifies the pixel snapping policy when rendering color bitmap glyphs.
+///
+typedef enum D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION
+{
+
+ ///
+ /// Color bitmap glyph positions are snapped to the nearest pixel if the bitmap
+ /// resolution matches that of the device context.
+ ///
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT = 0,
+
+ ///
+ /// Color bitmap glyph positions are not snapped.
+ ///
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DISABLE = 1,
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_FORCE_DWORD = 0xffffffff
+
+} D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION;
+
+
+
+typedef enum DWRITE_GLYPH_IMAGE_FORMATS DWRITE_GLYPH_IMAGE_FORMATS;
+
+
#ifndef D2D_USE_C_DEFINITIONS
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1InkStyle
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a collection of style properties to be used by methods like
+/// ID2D1DeviceContext2::DrawInk when rendering ink. The ink style defines the nib
+/// (pen tip) shape and transform.
+///
interface DX_DECLARE_INTERFACE("bae8b344-23fc-4071-8cb5-d05d6f073848") ID2D1InkStyle : public ID2D1Resource
{
@@ -425,87 +427,75 @@ interface DX_DECLARE_INTERFACE("bae8b344-23fc-4071-8cb5-d05d6f073848") ID2D1InkS
}; // interface ID2D1InkStyle
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Ink
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a single continuous stroke of variable-width ink, as defined by a
+/// series of Bezier segments and widths.
+///
interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink : public ID2D1Resource
{
-
- //
- // Resets the ink start point.
- //
+ ///
+ /// Resets the ink start point.
+ ///
STDMETHOD_(void, SetStartPoint)(
_In_ CONST D2D1_INK_POINT *startPoint
) PURE;
-
- //
- // Retrieve the start point with which the ink was initialized.
- //
+ ///
+ /// Retrieve the start point with which the ink was initialized.
+ ///
STDMETHOD_(D2D1_INK_POINT, GetStartPoint)(
) CONST PURE;
-
- //
- // Add one or more segments to the end of the ink.
- //
+ ///
+ /// Add one or more segments to the end of the ink.
+ ///
STDMETHOD(AddSegments)(
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
UINT32 segmentsCount
) PURE;
-
- //
- // Remove one or more segments from the end of the ink.
- //
+ ///
+ /// Remove one or more segments from the end of the ink.
+ ///
STDMETHOD(RemoveSegmentsAtEnd)(
UINT32 segmentsCount
) PURE;
-
- //
- // Updates the specified segments with new control points.
- //
+ ///
+ /// Updates the specified segments with new control points.
+ ///
STDMETHOD(SetSegments)(
UINT32 startSegment,
_In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
UINT32 segmentsCount
) PURE;
-
- //
- // Update the last segment with new control points.
- //
+ ///
+ /// Update the last segment with new control points.
+ ///
STDMETHOD(SetSegmentAtEnd)(
_In_ CONST D2D1_INK_BEZIER_SEGMENT *segment
) PURE;
-
- //
- // Returns the number of segments the ink is composed of.
- //
+ ///
+ /// Returns the number of segments the ink is composed of.
+ ///
STDMETHOD_(UINT32, GetSegmentCount)(
) CONST PURE;
-
- //
- // Retrieve the segments stored in the ink.
- //
+ ///
+ /// Retrieve the segments stored in the ink.
+ ///
STDMETHOD(GetSegments)(
UINT32 startSegment,
_Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments,
UINT32 segmentsCount
) CONST PURE;
-
- //
- // Construct a geometric representation of the ink.
- //
+ ///
+ /// Construct a geometric representation of the ink.
+ ///
STDMETHOD(StreamAsGeometry)(
_In_opt_ ID2D1InkStyle *inkStyle,
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
@@ -513,20 +503,18 @@ interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink
_In_ ID2D1SimplifiedGeometrySink *geometrySink
) CONST PURE;
-
- //
- // Retrieve the bounds of the ink, with an optional applied transform.
- //
+ ///
+ /// Retrieve the bounds of the ink, with an optional applied transform.
+ ///
STDMETHOD(GetBounds)(
_In_opt_ ID2D1InkStyle *inkStyle,
_In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
_Out_ D2D1_RECT_F *bounds
) CONST PURE;
-
- //
- // Resets the ink start point.
- //
+ ///
+ /// Resets the ink start point.
+ ///
COM_DECLSPEC_NOTHROW
void
SetStartPoint(
@@ -545,10 +533,9 @@ interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink
return SetSegmentAtEnd(&segment);
}
-
- //
- // Construct a geometric representation of the ink.
- //
+ ///
+ /// Construct a geometric representation of the ink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
StreamAsGeometry(
@@ -561,10 +548,9 @@ interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink
return StreamAsGeometry(inkStyle,&worldTransform, flatteningTolerance, geometrySink);
}
-
- //
- // Construct a geometric representation of the ink.
- //
+ ///
+ /// Construct a geometric representation of the ink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
StreamAsGeometry(
@@ -576,10 +562,9 @@ interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink
return StreamAsGeometry(inkStyle,worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
}
-
- //
- // Construct a geometric representation of the ink.
- //
+ ///
+ /// Construct a geometric representation of the ink.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
StreamAsGeometry(
@@ -593,27 +578,23 @@ interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink
}; // interface ID2D1Ink
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GradientMesh
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a device-dependent representation of a gradient mesh composed of
+/// patches. Use the ID2D1DeviceContext2::CreateGradientMesh method to create an
+/// instance of ID2D1GradientMesh.
+///
interface DX_DECLARE_INTERFACE("f292e401-c050-4cde-83d7-04962d3b23c2") ID2D1GradientMesh : public ID2D1Resource
{
-
- //
- // Returns the number of patches of the gradient mesh.
- //
+ ///
+ /// Returns the number of patches of the gradient mesh.
+ ///
STDMETHOD_(UINT32, GetPatchCount)(
) CONST PURE;
-
- //
- // Retrieve the patch data stored in the gradient mesh.
- //
+ ///
+ /// Retrieve the patch data stored in the gradient mesh.
+ ///
STDMETHOD(GetPatches)(
UINT32 startIndex,
_Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches,
@@ -622,13 +603,9 @@ interface DX_DECLARE_INTERFACE("f292e401-c050-4cde-83d7-04962d3b23c2") ID2D1Grad
}; // interface ID2D1GradientMesh
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1ImageSource
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a producer of pixels that can fill an arbitrary 2D plane.
+///
interface DX_DECLARE_INTERFACE("c9b664e5-74a1-4378-9ac2-eefc37a3f4d8") ID2D1ImageSource : public ID2D1Image
{
@@ -641,13 +618,9 @@ interface DX_DECLARE_INTERFACE("c9b664e5-74a1-4378-9ac2-eefc37a3f4d8") ID2D1Imag
}; // interface ID2D1ImageSource
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1ImageSourceFromWic
-//
-//------------------------------------------------------------------------------
+///
+/// Produces 2D pixel data that has been sourced from WIC.
+///
interface DX_DECLARE_INTERFACE("77395441-1c8f-4555-8683-f50dab0fe792") ID2D1ImageSourceFromWic : public ID2D1ImageSource
{
@@ -683,13 +656,9 @@ interface DX_DECLARE_INTERFACE("77395441-1c8f-4555-8683-f50dab0fe792") ID2D1Imag
}; // interface ID2D1ImageSourceFromWic
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1TransformedImageSource
-//
-//------------------------------------------------------------------------------
+///
+/// Represents an image source which shares resources with an original image source.
+///
interface DX_DECLARE_INTERFACE("7f1f79e5-2796-416c-8f55-700f911445e5") ID2D1TransformedImageSource : public ID2D1Image
{
@@ -703,71 +672,60 @@ interface DX_DECLARE_INTERFACE("7f1f79e5-2796-416c-8f55-700f911445e5") ID2D1Tran
}; // interface ID2D1TransformedImageSource
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1LookupTable3D
-//
-// Synopsis:
-// A container for 3D lookup table data that can be passed to the LookupTable3D
-// effect.
-//
-//------------------------------------------------------------------------------
+///
+/// A container for 3D lookup table data that can be passed to the LookupTable3D
+/// effect.
+///
interface DX_DECLARE_INTERFACE("53dd9855-a3b0-4d5b-82e1-26e25c5e5797") ID2D1LookupTable3D : public ID2D1Resource
{
}; // interface ID2D1LookupTable3D
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1DeviceContext2
-//
-//------------------------------------------------------------------------------
+///
+/// This interface performs all the same functions as the ID2D1DeviceContext1
+/// interface, plus it enables functionality such as ink rendering, gradient mesh
+/// rendering, and improved image loading.
+///
interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1DeviceContext2 : public ID2D1DeviceContext1
{
STDMETHOD(CreateInk)(
_In_ CONST D2D1_INK_POINT *startPoint,
- _Outptr_ ID2D1Ink **ink
+ _COM_Outptr_ ID2D1Ink **ink
) PURE;
-
- //
- // Creates a new ink style.
- //
+ ///
+ /// Creates a new ink style.
+ ///
STDMETHOD(CreateInkStyle)(
_In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties,
- _Outptr_ ID2D1InkStyle **inkStyle
+ _COM_Outptr_ ID2D1InkStyle **inkStyle
) PURE;
STDMETHOD(CreateGradientMesh)(
_In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches,
UINT32 patchesCount,
- _Outptr_ ID2D1GradientMesh **gradientMesh
+ _COM_Outptr_ ID2D1GradientMesh **gradientMesh
) PURE;
STDMETHOD(CreateImageSourceFromWic)(
_In_ IWICBitmapSource *wicBitmapSource,
D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
D2D1_ALPHA_MODE alphaMode,
- _Outptr_ ID2D1ImageSourceFromWic **imageSource
+ _COM_Outptr_ ID2D1ImageSourceFromWic **imageSource
) PURE;
-
- //
- // Creates a 3D lookup table for mapping a 3-channel input to a 3-channel output.
- // The table data must be provided in 4-channel format.
- //
+ ///
+ /// Creates a 3D lookup table for mapping a 3-channel input to a 3-channel output.
+ /// The table data must be provided in 4-channel format.
+ ///
STDMETHOD(CreateLookupTable3D)(
D2D1_BUFFER_PRECISION precision,
_In_reads_(3) CONST UINT32 *extents,
_In_reads_(dataCount) CONST BYTE *data,
UINT32 dataCount,
_In_reads_(2) CONST UINT32 *strides,
- _Outptr_ ID2D1LookupTable3D **lookupTable
+ _COM_Outptr_ ID2D1LookupTable3D **lookupTable
) PURE;
STDMETHOD(CreateImageSourceFromDxgi)(
@@ -775,14 +733,13 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
UINT32 surfaceCount,
DXGI_COLOR_SPACE_TYPE colorSpace,
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
- _Outptr_ ID2D1ImageSource **imageSource
+ _COM_Outptr_ ID2D1ImageSource **imageSource
) PURE;
-
- //
- // Retrieves the world-space bounds in DIPs of the gradient mesh using the device
- // context DPI.
- //
+ ///
+ /// Retrieves the world-space bounds in DIPs of the gradient mesh using the device
+ /// context DPI.
+ ///
STDMETHOD(GetGradientMeshWorldBounds)(
_In_ ID2D1GradientMesh *gradientMesh,
_Out_ D2D1_RECT_F *pBounds
@@ -798,10 +755,9 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
_In_ ID2D1GradientMesh *gradientMesh
) PURE;
-
- //
- // Draw a metafile to the device context.
- //
+ ///
+ /// Draw a metafile to the device context.
+ ///
STDMETHOD_(void, DrawGdiMetafile)(
_In_ ID2D1GdiMetafile *gdiMetafile,
_In_opt_ CONST D2D1_RECT_F *destinationRectangle,
@@ -810,35 +766,33 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
using ID2D1DeviceContext::DrawGdiMetafile;
-
- //
- // Creates an image source which shares resources with an original.
- //
+ ///
+ /// Creates an image source which shares resources with an original.
+ ///
STDMETHOD(CreateTransformedImageSource)(
_In_ ID2D1ImageSource *imageSource,
_In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties,
- _Outptr_ ID2D1TransformedImageSource **transformedImageSource
+ _COM_Outptr_ ID2D1TransformedImageSource **transformedImageSource
) PURE;
COM_DECLSPEC_NOTHROW
HRESULT
CreateInk(
CONST D2D1_INK_POINT &startPoint,
- _Outptr_ ID2D1Ink **ink
+ _COM_Outptr_ ID2D1Ink **ink
)
{
return CreateInk(&startPoint, ink);
}
-
- //
- // Creates a new ink style.
- //
+ ///
+ /// Creates a new ink style.
+ ///
COM_DECLSPEC_NOTHROW
HRESULT
CreateInkStyle(
CONST D2D1_INK_STYLE_PROPERTIES &inkStyleProperties,
- _Outptr_ ID2D1InkStyle **inkStyle
+ _COM_Outptr_ ID2D1InkStyle **inkStyle
)
{
return CreateInkStyle(&inkStyleProperties, inkStyle);
@@ -849,7 +803,7 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
CreateImageSourceFromWic(
_In_ IWICBitmapSource *wicBitmapSource,
D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
- _Outptr_ ID2D1ImageSourceFromWic **imageSource
+ _COM_Outptr_ ID2D1ImageSourceFromWic **imageSource
)
{
return CreateImageSourceFromWic(wicBitmapSource, loadingOptions, D2D1_ALPHA_MODE_UNKNOWN, imageSource);
@@ -859,16 +813,15 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
HRESULT
CreateImageSourceFromWic(
_In_ IWICBitmapSource *wicBitmapSource,
- _Outptr_ ID2D1ImageSourceFromWic **imageSource
+ _COM_Outptr_ ID2D1ImageSourceFromWic **imageSource
)
{
return CreateImageSourceFromWic(wicBitmapSource, D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE, D2D1_ALPHA_MODE_UNKNOWN, imageSource);
}
-
- //
- // Draw a metafile to the device context.
- //
+ ///
+ /// Draw a metafile to the device context.
+ ///
COM_DECLSPEC_NOTHROW
void
DrawGdiMetafile(
@@ -880,10 +833,9 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
return DrawGdiMetafile(gdiMetafile, &destinationRectangle, &sourceRectangle);
}
-
- //
- // Draw a metafile to the device context.
- //
+ ///
+ /// Draw a metafile to the device context.
+ ///
COM_DECLSPEC_NOTHROW
void
DrawGdiMetafile(
@@ -897,64 +849,56 @@ interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1Devi
}; // interface ID2D1DeviceContext2
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Device2
-//
-//------------------------------------------------------------------------------
+///
+/// Represents a resource domain whose objects and device contexts can be used
+/// together. This interface performs all the same functions as the existing
+/// ID2D1Device1 interface. It also enables the creation of ID2D1DeviceContext2
+/// objects.
+///
interface DX_DECLARE_INTERFACE("a44472e1-8dfb-4e60-8492-6e2861c9ca8b") ID2D1Device2 : public ID2D1Device1
{
-
- //
- // Creates a new device context with no initially assigned target.
- //
+ ///
+ /// Creates a new device context with no initially assigned target.
+ ///
STDMETHOD(CreateDeviceContext)(
D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext2 **deviceContext2
+ _COM_Outptr_ ID2D1DeviceContext2 **deviceContext2
) PURE;
using ID2D1Device1::CreateDeviceContext;
using ID2D1Device::CreateDeviceContext;
-
- //
- // Flush all device contexts that reference a given bitmap.
- //
+ ///
+ /// Flush all device contexts that reference a given bitmap.
+ ///
STDMETHOD_(void, FlushDeviceContexts)(
_In_ ID2D1Bitmap *bitmap
) PURE;
-
- //
- // Returns the DXGI device associated with this D2D device.
- //
+ ///
+ /// Returns the DXGI device associated with this D2D device.
+ ///
STDMETHOD(GetDxgiDevice)(
- _Outptr_ IDXGIDevice **dxgiDevice
+ _COM_Outptr_ IDXGIDevice **dxgiDevice
) PURE;
}; // interface ID2D1Device2
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1Factory3
-//
-//------------------------------------------------------------------------------
+///
+/// Creates Direct2D resources. This interface also enables the creation of
+/// ID2D1Device2 objects.
+///
interface DX_DECLARE_INTERFACE("0869759f-4f00-413f-b03e-2bda45404d0f") ID2D1Factory3 : public ID2D1Factory2
{
-
- //
- // This creates a new Direct2D device from the given IDXGIDevice.
- //
+ ///
+ /// This creates a new Direct2D device from the given IDXGIDevice.
+ ///
STDMETHOD(CreateDevice)(
_In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device2 **d2dDevice2
+ _COM_Outptr_ ID2D1Device2 **d2dDevice2
) PURE;
using ID2D1Factory2::CreateDevice;
@@ -963,13 +907,10 @@ interface DX_DECLARE_INTERFACE("0869759f-4f00-413f-b03e-2bda45404d0f") ID2D1Fact
}; // interface ID2D1Factory3
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1CommandSink2
-//
-//------------------------------------------------------------------------------
+///
+/// This interface performs all the same functions as the existing ID2D1CommandSink1
+/// interface. It also enables access to ink rendering and gradient mesh rendering.
+///
interface DX_DECLARE_INTERFACE("3bab440e-417e-47df-a2e2-bc0be6a00916") ID2D1CommandSink2 : public ID2D1CommandSink1
{
@@ -993,56 +934,39 @@ interface DX_DECLARE_INTERFACE("3bab440e-417e-47df-a2e2-bc0be6a00916") ID2D1Comm
}; // interface ID2D1CommandSink2
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GdiMetafile1
-//
-// Synopsis:
-// Interface encapsulating a GDI/GDI+ metafile.
-//
-//------------------------------------------------------------------------------
+///
+/// Interface encapsulating a GDI/GDI+ metafile.
+///
interface DX_DECLARE_INTERFACE("2e69f9e8-dd3f-4bf9-95ba-c04f49d788df") ID2D1GdiMetafile1 : public ID2D1GdiMetafile
{
-
- //
- // Returns the DPI reported by the metafile.
- //
+ ///
+ /// Returns the DPI reported by the metafile.
+ ///
STDMETHOD(GetDpi)(
_Out_ FLOAT *dpiX,
_Out_ FLOAT *dpiY
) PURE;
-
- //
- // Gets the bounds (in DIPs) of the metafile (as specified by the frame rect
- // declared in the metafile).
- //
+ ///
+ /// Gets the bounds (in DIPs) of the metafile (as specified by the frame rect
+ /// declared in the metafile).
+ ///
STDMETHOD(GetSourceBounds)(
_Out_ D2D1_RECT_F *bounds
) PURE;
}; // interface ID2D1GdiMetafile1
-
-//+-----------------------------------------------------------------------------
-//
-// Interface:
-// ID2D1GdiMetafileSink1
-//
-// Synopsis:
-// User-implementable interface for introspecting on a metafile.
-//
-//------------------------------------------------------------------------------
+///
+/// User-implementable interface for introspecting on a metafile.
+///
interface DX_DECLARE_INTERFACE("fd0ecb6b-91e6-411e-8655-395e760f91b4") ID2D1GdiMetafileSink1 : public ID2D1GdiMetafileSink
{
-
- //
- // Callback for examining a metafile record.
- //
+ ///
+ /// Callback for examining a metafile record.
+ ///
STDMETHOD(ProcessRecord)(
DWORD recordType,
_In_opt_ CONST void *recordData,
@@ -1054,6 +978,464 @@ interface DX_DECLARE_INTERFACE("fd0ecb6b-91e6-411e-8655-395e760f91b4") ID2D1GdiM
}; // interface ID2D1GdiMetafileSink1
+#if NTDDI_VERSION >= NTDDI_WIN10_TH2
+
+interface DX_DECLARE_INTERFACE("4dc583bf-3a10-438a-8722-e9765224f1f1") ID2D1SpriteBatch : public ID2D1Resource
+{
+
+ ///
+ /// Adds sprites to the end of the sprite batch.
+ ///
+ STDMETHOD(AddSprites)(
+ UINT32 spriteCount,
+ _In_reads_bytes_(sizeof(D2D1_RECT_F) + (spriteCount - 1) * destinationRectanglesStride) CONST D2D1_RECT_F *destinationRectangles,
+ _In_reads_bytes_opt_(sizeof(D2D1_RECT_U) + (spriteCount - 1) * sourceRectanglesStride) CONST D2D1_RECT_U *sourceRectangles = NULL,
+ _In_reads_bytes_opt_(sizeof(D2D1_COLOR_F) + (spriteCount - 1) * colorsStride) CONST D2D1_COLOR_F *colors = NULL,
+ _In_reads_bytes_opt_(sizeof(D2D1_MATRIX_3X2_F) + (spriteCount - 1) * transformsStride) CONST D2D1_MATRIX_3X2_F *transforms = NULL,
+ UINT32 destinationRectanglesStride = sizeof(D2D1_RECT_F),
+ UINT32 sourceRectanglesStride = sizeof(D2D1_RECT_U),
+ UINT32 colorsStride = sizeof(D2D1_COLOR_F),
+ UINT32 transformsStride = sizeof(D2D1_MATRIX_3X2_F)
+ ) PURE;
+
+ ///
+ /// Set properties for existing sprites. All properties not specified are
+ /// unmodified.
+ ///
+ STDMETHOD(SetSprites)(
+ UINT32 startIndex,
+ UINT32 spriteCount,
+ _In_reads_bytes_opt_(sizeof(D2D1_RECT_F) + (spriteCount - 1) * destinationRectanglesStride) CONST D2D1_RECT_F *destinationRectangles = NULL,
+ _In_reads_bytes_opt_(sizeof(D2D1_RECT_U) + (spriteCount - 1) * sourceRectanglesStride) CONST D2D1_RECT_U *sourceRectangles = NULL,
+ _In_reads_bytes_opt_(sizeof(D2D1_COLOR_F) + (spriteCount - 1) * colorsStride) CONST D2D1_COLOR_F *colors = NULL,
+ _In_reads_bytes_opt_(sizeof(D2D1_MATRIX_3X2_F) + (spriteCount - 1) * transformsStride) CONST D2D1_MATRIX_3X2_F *transforms = NULL,
+ UINT32 destinationRectanglesStride = sizeof(D2D1_RECT_F),
+ UINT32 sourceRectanglesStride = sizeof(D2D1_RECT_U),
+ UINT32 colorsStride = sizeof(D2D1_COLOR_F),
+ UINT32 transformsStride = sizeof(D2D1_MATRIX_3X2_F)
+ ) PURE;
+
+ ///
+ /// Retrieves sprite properties.
+ ///
+ STDMETHOD(GetSprites)(
+ UINT32 startIndex,
+ UINT32 spriteCount,
+ _Out_writes_opt_(spriteCount) D2D1_RECT_F *destinationRectangles = NULL,
+ _Out_writes_opt_(spriteCount) D2D1_RECT_U *sourceRectangles = NULL,
+ _Out_writes_opt_(spriteCount) D2D1_COLOR_F *colors = NULL,
+ _Out_writes_opt_(spriteCount) D2D1_MATRIX_3X2_F *transforms = NULL
+ ) CONST PURE;
+
+ ///
+ /// Retrieves the number of sprites in the sprite batch.
+ ///
+ STDMETHOD_(UINT32, GetSpriteCount)(
+ ) CONST PURE;
+
+ ///
+ /// Removes all sprites from the sprite batch.
+ ///
+ STDMETHOD_(void, Clear)(
+ ) PURE;
+}; // interface ID2D1SpriteBatch
+
+
+interface DX_DECLARE_INTERFACE("235a7496-8351-414c-bcd4-6672ab2d8e00") ID2D1DeviceContext3 : public ID2D1DeviceContext2
+{
+
+ ///
+ /// Creates a new sprite batch.
+ ///
+ STDMETHOD(CreateSpriteBatch)(
+ _COM_Outptr_ ID2D1SpriteBatch **spriteBatch
+ ) PURE;
+
+ ///
+ /// Draws sprites in a sprite batch.
+ ///
+ STDMETHOD_(void, DrawSpriteBatch)(
+ _In_ ID2D1SpriteBatch *spriteBatch,
+ UINT32 startIndex,
+ UINT32 spriteCount,
+ _In_ ID2D1Bitmap *bitmap,
+ D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
+ D2D1_SPRITE_OPTIONS spriteOptions = D2D1_SPRITE_OPTIONS_NONE
+ ) PURE;
+
+ ///
+ /// Draws all sprites in a sprite batch.
+ ///
+ COM_DECLSPEC_NOTHROW
+ void
+ DrawSpriteBatch(
+ _In_ ID2D1SpriteBatch *spriteBatch,
+ _In_ ID2D1Bitmap *bitmap,
+ D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
+ D2D1_SPRITE_OPTIONS spriteOptions = D2D1_SPRITE_OPTIONS_NONE
+ )
+ {
+ return DrawSpriteBatch(spriteBatch, 0, spriteBatch->GetSpriteCount(), bitmap, interpolationMode, spriteOptions);
+ }
+}; // interface ID2D1DeviceContext3
+
+
+interface DX_DECLARE_INTERFACE("852f2087-802c-4037-ab60-ff2e7ee6fc01") ID2D1Device3 : public ID2D1Device2
+{
+
+ ///
+ /// Creates a new device context with no initially assigned target.
+ ///
+ STDMETHOD(CreateDeviceContext)(
+ D2D1_DEVICE_CONTEXT_OPTIONS options,
+ _COM_Outptr_ ID2D1DeviceContext3 **deviceContext3
+ ) PURE;
+
+ using ID2D1Device2::CreateDeviceContext;
+
+ using ID2D1Device1::CreateDeviceContext;
+
+ using ID2D1Device::CreateDeviceContext;
+}; // interface ID2D1Device3
+
+
+///
+/// Creates Direct2D resources. This interface also enables the creation of
+/// ID2D1Device3 objects.
+///
+interface DX_DECLARE_INTERFACE("bd4ec2d2-0662-4bee-ba8e-6f29f032e096") ID2D1Factory4 : public ID2D1Factory3
+{
+
+ ///
+ /// This creates a new Direct2D device from the given IDXGIDevice.
+ ///
+ STDMETHOD(CreateDevice)(
+ _In_ IDXGIDevice *dxgiDevice,
+ _COM_Outptr_ ID2D1Device3 **d2dDevice3
+ ) PURE;
+
+ using ID2D1Factory3::CreateDevice;
+
+ using ID2D1Factory2::CreateDevice;
+
+ using ID2D1Factory1::CreateDevice;
+}; // interface ID2D1Factory4
+
+
+interface DX_DECLARE_INTERFACE("18079135-4cf3-4868-bc8e-06067e6d242d") ID2D1CommandSink3 : public ID2D1CommandSink2
+{
+
+ STDMETHOD(DrawSpriteBatch)(
+ _In_ ID2D1SpriteBatch *spriteBatch,
+ UINT32 startIndex,
+ UINT32 spriteCount,
+ _In_ ID2D1Bitmap *bitmap,
+ D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,
+ D2D1_SPRITE_OPTIONS spriteOptions
+ ) PURE;
+}; // interface ID2D1CommandSink3
+
+
+#endif // #if NTDDI_VERSION >= NTDDI_WIN10_TH2
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
+
+///
+/// This object supplies the values for context-fill, context-stroke, and
+/// context-value that are used when rendering SVG glyphs.
+///
+interface DX_DECLARE_INTERFACE("af671749-d241-4db8-8e41-dcc2e5c1a438") ID2D1SvgGlyphStyle : public ID2D1Resource
+{
+
+ ///
+ /// Provides values to an SVG glyph for fill. The brush with opacity set to 1 is
+ /// used as the 'context-fill'. The opacity of the brush is used as the
+ /// 'context-fill-opacity' value.
+ ///
+ /// A null brush will cause the context-fill value to come from
+ /// the defaultFillBrush. If the defaultFillBrush is also null, the context-fill
+ /// value will be 'none'.
+ STDMETHOD(SetFill)(
+ _In_opt_ ID2D1Brush *brush
+ ) PURE;
+
+ ///
+ /// Returns the requested fill parameters.
+ ///
+ STDMETHOD_(void, GetFill)(
+ _Outptr_result_maybenull_ ID2D1Brush **brush
+ ) PURE;
+
+ ///
+ /// Provides values to an SVG glyph for stroke properties. The brush with opacity
+ /// set to 1 is used as the 'context-stroke'. The opacity of the brush is used as
+ /// the 'context-stroke-opacity' value.
+ ///
+ /// A null brush will cause the context-stroke value to be
+ /// 'none'.
+ /// Specifies the 'context-value' for the 'stroke-width'
+ /// property.
+ /// Specifies the 'context-value' for the 'stroke-dasharray'
+ /// property. A null value will cause the stroke-dasharray to be set to 'none'.
+ ///
+ /// Specifies the 'context-value' for the
+ /// 'stroke-dashoffset' property.
+ STDMETHOD(SetStroke)(
+ _In_opt_ ID2D1Brush *brush,
+ FLOAT strokeWidth = 1.0f,
+ _In_reads_opt_(dashesCount) CONST FLOAT *dashes = NULL,
+ UINT32 dashesCount = 0,
+ FLOAT dashOffset = 1.0f
+ ) PURE;
+
+ ///
+ /// Returns the number of dashes in the dash array.
+ ///
+ STDMETHOD_(UINT32, GetStrokeDashesCount)(
+ ) PURE;
+
+ ///
+ /// Returns the requested stroke parameters.
+ ///
+ STDMETHOD_(void, GetStroke)(
+ _Outptr_opt_result_maybenull_ ID2D1Brush **brush,
+ _Out_opt_ FLOAT *strokeWidth = NULL,
+ _Out_writes_opt_(dashesCount) FLOAT *dashes = NULL,
+ UINT32 dashesCount = 0,
+ _Out_opt_ FLOAT *dashOffset = NULL
+ ) PURE;
+}; // interface ID2D1SvgGlyphStyle
+
+
+interface DX_DECLARE_INTERFACE("8c427831-3d90-4476-b647-c4fae349e4db") ID2D1DeviceContext4 : public ID2D1DeviceContext3
+{
+
+ ///
+ /// Creates an SVG glyph style object.
+ ///
+ STDMETHOD(CreateSvgGlyphStyle)(
+ _COM_Outptr_ ID2D1SvgGlyphStyle **svgGlyphStyle
+ ) PURE;
+
+ ///
+ /// Draws the text within the given layout rectangle. By default, this method
+ /// performs baseline snapping and renders color versions of glyphs in color fonts.
+ ///
+ /// Object used to style SVG glyphs.
+ /// The index used to select a color palette within
+ /// a color font.
+ STDMETHOD_(void, DrawText)(
+ _In_reads_(stringLength) CONST WCHAR *string,
+ UINT32 stringLength,
+ _In_ IDWriteTextFormat *textFormat,
+ _In_ CONST D2D1_RECT_F *layoutRect,
+ _In_opt_ ID2D1Brush *defaultFillBrush,
+ _In_opt_ ID2D1SvgGlyphStyle *svgGlyphStyle,
+ UINT32 colorPaletteIndex = 0,
+ D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT,
+ DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
+ ) PURE;
+
+ using ID2D1RenderTarget::DrawText;
+
+ ///
+ /// Draw a text layout object. If the layout is not subsequently changed, this can
+ /// be more efficient than DrawText when drawing the same layout repeatedly.
+ ///
+ /// Object used to style SVG glyphs.
+ /// The index used to select a color palette within
+ /// a color font.
+ /// The specified text options. If D2D1_DRAW_TEXT_OPTIONS_CLIP
+ /// is used, the text is clipped to the layout bounds. These bounds are derived from
+ /// the origin and the layout bounds of the corresponding IDWriteTextLayout object.
+ ///
+ STDMETHOD_(void, DrawTextLayout)(
+ D2D1_POINT_2F origin,
+ _In_ IDWriteTextLayout *textLayout,
+ _In_opt_ ID2D1Brush *defaultFillBrush,
+ _In_opt_ ID2D1SvgGlyphStyle *svgGlyphStyle,
+ UINT32 colorPaletteIndex = 0,
+ D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT
+ ) PURE;
+
+ using ID2D1RenderTarget::DrawTextLayout;
+
+ ///
+ /// Draws a color glyph run using one (and only one) of the bitmap formats-
+ /// DWRITE_GLYPH_IMAGE_FORMATS_PNG, DWRITE_GLYPH_IMAGE_FORMATS_JPEG,
+ /// DWRITE_GLYPH_IMAGE_FORMATS_TIFF, or
+ /// DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8.
+ ///
+ STDMETHOD_(void, DrawColorBitmapGlyphRun)(
+ DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat,
+ D2D1_POINT_2F baselineOrigin,
+ _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
+ DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL,
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION bitmapSnapOption = D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT
+ ) PURE;
+
+ ///
+ /// Draws a color glyph run that has the format of DWRITE_GLYPH_IMAGE_FORMATS_SVG.
+ ///
+ /// Object used to style SVG glyphs.
+ /// The index used to select a color palette within
+ /// a color font. Note that this not the same as the paletteIndex in the
+ /// DWRITE_COLOR_GLYPH_RUN struct, which is not relevant for SVG glyphs.
+ STDMETHOD_(void, DrawSvgGlyphRun)(
+ D2D1_POINT_2F baselineOrigin,
+ _In_ CONST DWRITE_GLYPH_RUN *glyphRun,
+ _In_opt_ ID2D1Brush *defaultFillBrush = NULL,
+ _In_opt_ ID2D1SvgGlyphStyle *svgGlyphStyle = NULL,
+ UINT32 colorPaletteIndex = 0,
+ DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
+ ) PURE;
+
+ ///
+ /// Retrieves an image of the color bitmap glyph from the color glyph cache. If the
+ /// cache does not already contain the requested resource, it will be created. This
+ /// method may be used to extend the lifetime of a glyph image even after it is
+ /// evicted from the color glyph cache.
+ ///
+ /// The specified font size affects the choice of which
+ /// bitmap to use from the font. It also affects the output glyphTransform, causing
+ /// it to properly scale the glyph.
+ /// Output transform, which transforms from the glyph's
+ /// space to the same output space as the worldTransform. This includes the input
+ /// glyphOrigin, the glyph's offset from the glyphOrigin, and any other required
+ /// transformations.
+ STDMETHOD(GetColorBitmapGlyphImage)(
+ DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat,
+ D2D1_POINT_2F glyphOrigin,
+ _In_ IDWriteFontFace *fontFace,
+ FLOAT fontEmSize,
+ UINT16 glyphIndex,
+ BOOL isSideways,
+ _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
+ FLOAT dpiX,
+ FLOAT dpiY,
+ _Out_ D2D1_MATRIX_3X2_F *glyphTransform,
+ _COM_Outptr_ ID2D1Image **glyphImage
+ ) PURE;
+
+ ///
+ /// Retrieves an image of the SVG glyph from the color glyph cache. If the cache
+ /// does not already contain the requested resource, it will be created. This method
+ /// may be used to extend the lifetime of a glyph image even after it is evicted
+ /// from the color glyph cache.
+ ///
+ /// The specified font size affects the output
+ /// glyphTransform, causing it to properly scale the glyph.
+ /// Object used to style SVG glyphs.
+ /// The index used to select a color palette within
+ /// a color font. Note that this not the same as the paletteIndex in the
+ /// DWRITE_COLOR_GLYPH_RUN struct, which is not relevant for SVG glyphs.
+ /// Output transform, which transforms from the glyph's
+ /// space to the same output space as the worldTransform. This includes the input
+ /// glyphOrigin, the glyph's offset from the glyphOrigin, and any other required
+ /// transformations.
+ STDMETHOD(GetSvgGlyphImage)(
+ D2D1_POINT_2F glyphOrigin,
+ _In_ IDWriteFontFace *fontFace,
+ FLOAT fontEmSize,
+ UINT16 glyphIndex,
+ BOOL isSideways,
+ _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
+ _In_opt_ ID2D1Brush *defaultFillBrush,
+ _In_opt_ ID2D1SvgGlyphStyle *svgGlyphStyle,
+ UINT32 colorPaletteIndex,
+ _Out_ D2D1_MATRIX_3X2_F *glyphTransform,
+ _COM_Outptr_ ID2D1CommandList **glyphImage
+ ) PURE;
+
+ ///
+ /// Draws the text within the given layout rectangle. By default, this method
+ /// performs baseline snapping and renders color versions of glyphs in color fonts.
+ ///
+ /// Object used to style SVG glyphs.
+ /// The index used to select a color palette within
+ /// a color font.
+ COM_DECLSPEC_NOTHROW
+ void
+ DrawText(
+ _In_reads_(stringLength) CONST WCHAR *string,
+ UINT32 stringLength,
+ _In_ IDWriteTextFormat *textFormat,
+ CONST D2D1_RECT_F &layoutRect,
+ _In_opt_ ID2D1Brush *defaultFillBrush,
+ _In_opt_ ID2D1SvgGlyphStyle *svgGlyphStyle,
+ UINT32 colorPaletteIndex = 0,
+ D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT,
+ DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL
+ )
+ {
+ return DrawText(string, stringLength, textFormat, &layoutRect, defaultFillBrush, svgGlyphStyle, colorPaletteIndex, options, measuringMode);
+ }
+}; // interface ID2D1DeviceContext4
+
+
+interface DX_DECLARE_INTERFACE("d7bdb159-5683-4a46-bc9c-72dc720b858b") ID2D1Device4 : public ID2D1Device3
+{
+
+ ///
+ /// Creates a new device context with no initially assigned target.
+ ///
+ STDMETHOD(CreateDeviceContext)(
+ D2D1_DEVICE_CONTEXT_OPTIONS options,
+ _COM_Outptr_ ID2D1DeviceContext4 **deviceContext4
+ ) PURE;
+
+ using ID2D1Device3::CreateDeviceContext;
+
+ using ID2D1Device2::CreateDeviceContext;
+
+ using ID2D1Device1::CreateDeviceContext;
+
+ using ID2D1Device::CreateDeviceContext;
+
+ ///
+ /// Sets the maximum capacity of the color glyph cache. This cache is used to store
+ /// color bitmap glyphs and SVG glyphs, enabling faster performance if the same
+ /// glyphs are needed again. If the application still references a glyph using
+ /// GetColorBitmapGlyphImage or GetSvgGlyphImage after it has been evicted, this
+ /// glyph does not count toward the cache capacity.
+ ///
+ STDMETHOD_(void, SetMaximumColorGlyphCacheMemory)(
+ UINT64 maximumInBytes
+ ) PURE;
+
+ ///
+ /// Gets the maximum capacity of the color glyph cache.
+ ///
+ STDMETHOD_(UINT64, GetMaximumColorGlyphCacheMemory)(
+ ) CONST PURE;
+}; // interface ID2D1Device4
+
+
+///
+/// Creates Direct2D resources. This interface also enables the creation of
+/// ID2D1Device4 objects.
+///
+interface DX_DECLARE_INTERFACE("c4349994-838e-4b0f-8cab-44997d9eeacc") ID2D1Factory5 : public ID2D1Factory4
+{
+
+ ///
+ /// This creates a new Direct2D device from the given IDXGIDevice.
+ ///
+ STDMETHOD(CreateDevice)(
+ _In_ IDXGIDevice *dxgiDevice,
+ _COM_Outptr_ ID2D1Device4 **d2dDevice4
+ ) PURE;
+
+ using ID2D1Factory4::CreateDevice;
+
+ using ID2D1Factory3::CreateDevice;
+
+ using ID2D1Factory2::CreateDevice;
+
+ using ID2D1Factory1::CreateDevice;
+}; // interface ID2D1Factory5
+
+
+#endif // #if NTDDI_VERSION >= NTDDI_WIN10_RS1
#endif
@@ -1071,6 +1453,15 @@ EXTERN_C CONST IID IID_ID2D1Factory3;
EXTERN_C CONST IID IID_ID2D1CommandSink2;
EXTERN_C CONST IID IID_ID2D1GdiMetafile1;
EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1;
+EXTERN_C CONST IID IID_ID2D1SpriteBatch;
+EXTERN_C CONST IID IID_ID2D1DeviceContext3;
+EXTERN_C CONST IID IID_ID2D1Device3;
+EXTERN_C CONST IID IID_ID2D1Factory4;
+EXTERN_C CONST IID IID_ID2D1CommandSink3;
+EXTERN_C CONST IID IID_ID2D1SvgGlyphStyle;
+EXTERN_C CONST IID IID_ID2D1DeviceContext4;
+EXTERN_C CONST IID IID_ID2D1Device4;
+EXTERN_C CONST IID IID_ID2D1Factory5;
#ifdef D2D_USE_C_DEFINITIONS
@@ -1078,1150 +1469,30 @@ EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1;
typedef interface ID2D1InkStyle ID2D1InkStyle;
-typedef struct ID2D1InkStyleVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(void, SetNibTransform)(
- ID2D1InkStyle *This,
- _In_ CONST D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD_(void, GetNibTransform)(
- ID2D1InkStyle *This,
- _Out_ D2D1_MATRIX_3X2_F *transform
- ) PURE;
-
- STDMETHOD_(void, SetNibShape)(
- ID2D1InkStyle *This,
- D2D1_INK_NIB_SHAPE nibShape
- ) PURE;
-
- STDMETHOD_(D2D1_INK_NIB_SHAPE, GetNibShape)(
- ID2D1InkStyle *This
- ) PURE;
-} ID2D1InkStyleVtbl;
-
-interface ID2D1InkStyle
-{
- CONST struct ID2D1InkStyleVtbl *lpVtbl;
-};
-
-
-#define ID2D1InkStyle_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1InkStyle_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1InkStyle_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1InkStyle_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1InkStyle_SetNibTransform(This, transform) \
- ((This)->lpVtbl->SetNibTransform(This, transform))
-
-#define ID2D1InkStyle_GetNibTransform(This, transform) \
- ((This)->lpVtbl->GetNibTransform(This, transform))
-
-#define ID2D1InkStyle_SetNibShape(This, nibShape) \
- ((This)->lpVtbl->SetNibShape(This, nibShape))
-
-#define ID2D1InkStyle_GetNibShape(This) \
- ((This)->lpVtbl->GetNibShape(This))
-
typedef interface ID2D1Ink ID2D1Ink;
-typedef struct ID2D1InkVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(void, SetStartPoint)(
- ID2D1Ink *This,
- _In_ CONST D2D1_INK_POINT *startPoint
- ) PURE;
-
- STDMETHOD_(D2D1_INK_POINT, GetStartPoint)(
- ID2D1Ink *This
- ) PURE;
-
- STDMETHOD(AddSegments)(
- ID2D1Ink *This,
- _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
- UINT32 segmentsCount
- ) PURE;
-
- STDMETHOD(RemoveSegmentsAtEnd)(
- ID2D1Ink *This,
- UINT32 segmentsCount
- ) PURE;
-
- STDMETHOD(SetSegments)(
- ID2D1Ink *This,
- UINT32 startSegment,
- _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments,
- UINT32 segmentsCount
- ) PURE;
-
- STDMETHOD(SetSegmentAtEnd)(
- ID2D1Ink *This,
- _In_ CONST D2D1_INK_BEZIER_SEGMENT *segment
- ) PURE;
-
- STDMETHOD_(UINT32, GetSegmentCount)(
- ID2D1Ink *This
- ) PURE;
-
- STDMETHOD(GetSegments)(
- ID2D1Ink *This,
- UINT32 startSegment,
- _Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments,
- UINT32 segmentsCount
- ) PURE;
-
- STDMETHOD(StreamAsGeometry)(
- ID2D1Ink *This,
- _In_opt_ ID2D1InkStyle *inkStyle,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- FLOAT flatteningTolerance,
- _In_ ID2D1SimplifiedGeometrySink *geometrySink
- ) PURE;
-
- STDMETHOD(GetBounds)(
- ID2D1Ink *This,
- _In_opt_ ID2D1InkStyle *inkStyle,
- _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-} ID2D1InkVtbl;
-
-interface ID2D1Ink
-{
- CONST struct ID2D1InkVtbl *lpVtbl;
-};
-
-
-#define ID2D1Ink_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Ink_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Ink_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Ink_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Ink_SetStartPoint(This, startPoint) \
- ((This)->lpVtbl->SetStartPoint(This, startPoint))
-
-#define ID2D1Ink_GetStartPoint(This) \
- ((This)->lpVtbl->GetStartPoint(This))
-
-#define ID2D1Ink_AddSegments(This, segments, segmentsCount) \
- ((This)->lpVtbl->AddSegments(This, segments, segmentsCount))
-
-#define ID2D1Ink_RemoveSegmentsAtEnd(This, segmentsCount) \
- ((This)->lpVtbl->RemoveSegmentsAtEnd(This, segmentsCount))
-
-#define ID2D1Ink_SetSegments(This, startSegment, segments, segmentsCount) \
- ((This)->lpVtbl->SetSegments(This, startSegment, segments, segmentsCount))
-
-#define ID2D1Ink_SetSegmentAtEnd(This, segment) \
- ((This)->lpVtbl->SetSegmentAtEnd(This, segment))
-
-#define ID2D1Ink_GetSegmentCount(This) \
- ((This)->lpVtbl->GetSegmentCount(This))
-
-#define ID2D1Ink_GetSegments(This, startSegment, segments, segmentsCount) \
- ((This)->lpVtbl->GetSegments(This, startSegment, segments, segmentsCount))
-
-#define ID2D1Ink_StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink) \
- ((This)->lpVtbl->StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink))
-
-#define ID2D1Ink_GetBounds(This, inkStyle, worldTransform, bounds) \
- ((This)->lpVtbl->GetBounds(This, inkStyle, worldTransform, bounds))
-
typedef interface ID2D1GradientMesh ID2D1GradientMesh;
-typedef struct ID2D1GradientMeshVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-
- STDMETHOD_(UINT32, GetPatchCount)(
- ID2D1GradientMesh *This
- ) PURE;
-
- STDMETHOD(GetPatches)(
- ID2D1GradientMesh *This,
- UINT32 startIndex,
- _Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches,
- UINT32 patchesCount
- ) PURE;
-} ID2D1GradientMeshVtbl;
-
-interface ID2D1GradientMesh
-{
- CONST struct ID2D1GradientMeshVtbl *lpVtbl;
-};
-
-
-#define ID2D1GradientMesh_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GradientMesh_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GradientMesh_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GradientMesh_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GradientMesh_GetPatchCount(This) \
- ((This)->lpVtbl->GetPatchCount(This))
-
-#define ID2D1GradientMesh_GetPatches(This, startIndex, patches, patchesCount) \
- ((This)->lpVtbl->GetPatches(This, startIndex, patches, patchesCount))
-
typedef interface ID2D1ImageSource ID2D1ImageSource;
-typedef struct ID2D1ImageSourceVtbl
-{
-
- ID2D1ImageVtbl Base;
-
-
- STDMETHOD(OfferResources)(
- ID2D1ImageSource *This
- ) PURE;
-
- STDMETHOD(TryReclaimResources)(
- ID2D1ImageSource *This,
- _Out_ BOOL *resourcesDiscarded
- ) PURE;
-} ID2D1ImageSourceVtbl;
-
-interface ID2D1ImageSource
-{
- CONST struct ID2D1ImageSourceVtbl *lpVtbl;
-};
-
-
-#define ID2D1ImageSource_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1ImageSource_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1ImageSource_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1ImageSource_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1ImageSource_OfferResources(This) \
- ((This)->lpVtbl->OfferResources(This))
-
-#define ID2D1ImageSource_TryReclaimResources(This, resourcesDiscarded) \
- ((This)->lpVtbl->TryReclaimResources(This, resourcesDiscarded))
-
typedef interface ID2D1ImageSourceFromWic ID2D1ImageSourceFromWic;
-typedef struct ID2D1ImageSourceFromWicVtbl
-{
-
- ID2D1ImageSourceVtbl Base;
-
-
- STDMETHOD(EnsureCached)(
- ID2D1ImageSourceFromWic *This,
- _In_opt_ CONST D2D1_RECT_U *rectangleToFill
- ) PURE;
-
- STDMETHOD(TrimCache)(
- ID2D1ImageSourceFromWic *This,
- _In_opt_ CONST D2D1_RECT_U *rectangleToPreserve
- ) PURE;
-
- STDMETHOD_(void, GetSource)(
- ID2D1ImageSourceFromWic *This,
- _Outptr_result_maybenull_ IWICBitmapSource **wicBitmapSource
- ) PURE;
-} ID2D1ImageSourceFromWicVtbl;
-
-interface ID2D1ImageSourceFromWic
-{
- CONST struct ID2D1ImageSourceFromWicVtbl *lpVtbl;
-};
-
-
-#define ID2D1ImageSourceFromWic_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1ImageSourceFromWic_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1ImageSourceFromWic_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1ImageSourceFromWic_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1ImageSourceFromWic_OfferResources(This) \
- ((This)->lpVtbl->Base.OfferResources((ID2D1ImageSource *)This))
-
-#define ID2D1ImageSourceFromWic_TryReclaimResources(This, resourcesDiscarded) \
- ((This)->lpVtbl->Base.TryReclaimResources((ID2D1ImageSource *)This, resourcesDiscarded))
-
-#define ID2D1ImageSourceFromWic_EnsureCached(This, rectangleToFill) \
- ((This)->lpVtbl->EnsureCached(This, rectangleToFill))
-
-#define ID2D1ImageSourceFromWic_TrimCache(This, rectangleToPreserve) \
- ((This)->lpVtbl->TrimCache(This, rectangleToPreserve))
-
-#define ID2D1ImageSourceFromWic_GetSource(This, wicBitmapSource) \
- ((This)->lpVtbl->GetSource(This, wicBitmapSource))
-
typedef interface ID2D1TransformedImageSource ID2D1TransformedImageSource;
-typedef struct ID2D1TransformedImageSourceVtbl
-{
-
- ID2D1ImageVtbl Base;
-
-
- STDMETHOD_(void, GetSource)(
- ID2D1TransformedImageSource *This,
- _Outptr_result_maybenull_ ID2D1ImageSource **imageSource
- ) PURE;
-
- STDMETHOD_(void, GetProperties)(
- ID2D1TransformedImageSource *This,
- _Out_ D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties
- ) PURE;
-} ID2D1TransformedImageSourceVtbl;
-
-interface ID2D1TransformedImageSource
-{
- CONST struct ID2D1TransformedImageSourceVtbl *lpVtbl;
-};
-
-
-#define ID2D1TransformedImageSource_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1TransformedImageSource_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1TransformedImageSource_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1TransformedImageSource_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1TransformedImageSource_GetSource(This, imageSource) \
- ((This)->lpVtbl->GetSource(This, imageSource))
-
-#define ID2D1TransformedImageSource_GetProperties(This, properties) \
- ((This)->lpVtbl->GetProperties(This, properties))
-
typedef interface ID2D1LookupTable3D ID2D1LookupTable3D;
-typedef struct ID2D1LookupTable3DVtbl
-{
-
- ID2D1ResourceVtbl Base;
-
-} ID2D1LookupTable3DVtbl;
-
-interface ID2D1LookupTable3D
-{
- CONST struct ID2D1LookupTable3DVtbl *lpVtbl;
-};
-
-
-#define ID2D1LookupTable3D_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1LookupTable3D_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1LookupTable3D_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1LookupTable3D_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory))
-
typedef interface ID2D1DeviceContext2 ID2D1DeviceContext2;
-typedef struct ID2D1DeviceContext2Vtbl
-{
-
- ID2D1DeviceContext1Vtbl Base;
-
-
- STDMETHOD(CreateInk)(
- ID2D1DeviceContext2 *This,
- _In_ CONST D2D1_INK_POINT *startPoint,
- _Outptr_ ID2D1Ink **ink
- ) PURE;
-
- STDMETHOD(CreateInkStyle)(
- ID2D1DeviceContext2 *This,
- _In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties,
- _Outptr_ ID2D1InkStyle **inkStyle
- ) PURE;
-
- STDMETHOD(CreateGradientMesh)(
- ID2D1DeviceContext2 *This,
- _In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches,
- UINT32 patchesCount,
- _Outptr_ ID2D1GradientMesh **gradientMesh
- ) PURE;
-
- STDMETHOD(CreateImageSourceFromWic)(
- ID2D1DeviceContext2 *This,
- _In_ IWICBitmapSource *wicBitmapSource,
- D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions,
- D2D1_ALPHA_MODE alphaMode,
- _Outptr_ ID2D1ImageSourceFromWic **imageSource
- ) PURE;
-
- STDMETHOD(CreateLookupTable3D)(
- ID2D1DeviceContext2 *This,
- D2D1_BUFFER_PRECISION precision,
- _In_reads_(3) CONST UINT32 *extents,
- _In_reads_(dataCount) CONST BYTE *data,
- UINT32 dataCount,
- _In_reads_(2) CONST UINT32 *strides,
- _Outptr_ ID2D1LookupTable3D **lookupTable
- ) PURE;
-
- STDMETHOD(CreateImageSourceFromDxgi)(
- ID2D1DeviceContext2 *This,
- _In_reads_(surfaceCount) IDXGISurface **surfaces,
- UINT32 surfaceCount,
- DXGI_COLOR_SPACE_TYPE colorSpace,
- D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
- _Outptr_ ID2D1ImageSource **imageSource
- ) PURE;
-
- STDMETHOD(GetGradientMeshWorldBounds)(
- ID2D1DeviceContext2 *This,
- _In_ ID2D1GradientMesh *gradientMesh,
- _Out_ D2D1_RECT_F *pBounds
- ) PURE;
-
- STDMETHOD_(void, DrawInk)(
- ID2D1DeviceContext2 *This,
- _In_ ID2D1Ink *ink,
- _In_ ID2D1Brush *brush,
- _In_opt_ ID2D1InkStyle *inkStyle
- ) PURE;
-
- STDMETHOD_(void, DrawGradientMesh)(
- ID2D1DeviceContext2 *This,
- _In_ ID2D1GradientMesh *gradientMesh
- ) PURE;
-
- STDMETHOD_(void, DrawGdiMetafile)(
- ID2D1DeviceContext2 *This,
- _In_ ID2D1GdiMetafile *gdiMetafile,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-
- STDMETHOD(CreateTransformedImageSource)(
- ID2D1DeviceContext2 *This,
- _In_ ID2D1ImageSource *imageSource,
- _In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties,
- _Outptr_ ID2D1TransformedImageSource **transformedImageSource
- ) PURE;
-} ID2D1DeviceContext2Vtbl;
-
-interface ID2D1DeviceContext2
-{
- CONST struct ID2D1DeviceContext2Vtbl *lpVtbl;
-};
-
-
-#define ID2D1DeviceContext2_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1DeviceContext2_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1DeviceContext2_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1DeviceContext2_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1DeviceContext2_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.Base.Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext2_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \
- ((This)->lpVtbl->Base.Base.Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush))
-
-#define ID2D1DeviceContext2_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \
- ((This)->lpVtbl->Base.Base.Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush))
-
-#define ID2D1DeviceContext2_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \
- ((This)->lpVtbl->Base.Base.Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush))
-
-#define ID2D1DeviceContext2_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \
- ((This)->lpVtbl->Base.Base.Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget))
-
-#define ID2D1DeviceContext2_CreateLayer(This, size, layer) \
- ((This)->lpVtbl->Base.Base.Base.CreateLayer((ID2D1RenderTarget *)This, size, layer))
-
-#define ID2D1DeviceContext2_CreateMesh(This, mesh) \
- ((This)->lpVtbl->Base.Base.Base.CreateMesh((ID2D1RenderTarget *)This, mesh))
-
-#define ID2D1DeviceContext2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext2_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.Base.Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush))
-
-#define ID2D1DeviceContext2_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext2_FillRoundedRectangle(This, roundedRect, brush) \
- ((This)->lpVtbl->Base.Base.Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush))
-
-#define ID2D1DeviceContext2_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext2_FillEllipse(This, ellipse, brush) \
- ((This)->lpVtbl->Base.Base.Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush))
-
-#define ID2D1DeviceContext2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1DeviceContext2_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.Base.Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush))
-
-#define ID2D1DeviceContext2_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.Base.Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush))
-
-#define ID2D1DeviceContext2_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \
- ((This)->lpVtbl->Base.Base.Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode))
-
-#define ID2D1DeviceContext2_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \
- ((This)->lpVtbl->Base.Base.Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options))
-
-#define ID2D1DeviceContext2_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.Base.SetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext2_GetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.Base.GetTransform((ID2D1RenderTarget *)This, transform))
-
-#define ID2D1DeviceContext2_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.Base.Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode))
-
-#define ID2D1DeviceContext2_GetAntialiasMode(This) \
- ((This)->lpVtbl->Base.Base.Base.GetAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.Base.Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode))
-
-#define ID2D1DeviceContext2_GetTextAntialiasMode(This) \
- ((This)->lpVtbl->Base.Base.Base.GetTextAntialiasMode((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.Base.Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext2_GetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.Base.Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams))
-
-#define ID2D1DeviceContext2_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext2_GetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext2_PopLayer(This) \
- ((This)->lpVtbl->Base.Base.Base.PopLayer((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_Flush(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.Base.Flush((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext2_SaveDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.Base.Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext2_RestoreDrawingState(This, drawingStateBlock) \
- ((This)->lpVtbl->Base.Base.Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock))
-
-#define ID2D1DeviceContext2_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.Base.Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode))
-
-#define ID2D1DeviceContext2_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.Base.Base.PopAxisAlignedClip((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_Clear(This, clearColor) \
- ((This)->lpVtbl->Base.Base.Base.Clear((ID2D1RenderTarget *)This, clearColor))
-
-#define ID2D1DeviceContext2_BeginDraw(This) \
- ((This)->lpVtbl->Base.Base.Base.BeginDraw((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_EndDraw(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2))
-
-#define ID2D1DeviceContext2_GetPixelFormat(This) \
- ((This)->lpVtbl->Base.Base.Base.GetPixelFormat((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_SetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext2_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY))
-
-#define ID2D1DeviceContext2_GetSize(This) \
- ((This)->lpVtbl->Base.Base.Base.GetSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_GetPixelSize(This) \
- ((This)->lpVtbl->Base.Base.Base.GetPixelSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_GetMaximumBitmapSize(This) \
- ((This)->lpVtbl->Base.Base.Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This))
-
-#define ID2D1DeviceContext2_IsSupported(This, renderTargetProperties) \
- ((This)->lpVtbl->Base.Base.Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties))
-
-#define ID2D1DeviceContext2_CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.Base.CreateBitmap((ID2D1DeviceContext *)This, size, sourceData, pitch, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext2_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.Base.CreateBitmapFromWicBitmap((ID2D1DeviceContext *)This, wicBitmapSource, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext2_CreateColorContext(This, space, profile, profileSize, colorContext) \
- ((This)->lpVtbl->Base.Base.CreateColorContext((ID2D1DeviceContext *)This, space, profile, profileSize, colorContext))
-
-#define ID2D1DeviceContext2_CreateColorContextFromFilename(This, filename, colorContext) \
- ((This)->lpVtbl->Base.Base.CreateColorContextFromFilename((ID2D1DeviceContext *)This, filename, colorContext))
-
-#define ID2D1DeviceContext2_CreateColorContextFromWicColorContext(This, wicColorContext, colorContext) \
- ((This)->lpVtbl->Base.Base.CreateColorContextFromWicColorContext((ID2D1DeviceContext *)This, wicColorContext, colorContext))
-
-#define ID2D1DeviceContext2_CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap) \
- ((This)->lpVtbl->Base.Base.CreateBitmapFromDxgiSurface((ID2D1DeviceContext *)This, surface, bitmapProperties, bitmap))
-
-#define ID2D1DeviceContext2_CreateEffect(This, effectId, effect) \
- ((This)->lpVtbl->Base.Base.CreateEffect((ID2D1DeviceContext *)This, effectId, effect))
-
-#define ID2D1DeviceContext2_CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1) \
- ((This)->lpVtbl->Base.Base.CreateGradientStopCollection((ID2D1DeviceContext *)This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1))
-
-#define ID2D1DeviceContext2_CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush) \
- ((This)->lpVtbl->Base.Base.CreateImageBrush((ID2D1DeviceContext *)This, image, imageBrushProperties, brushProperties, imageBrush))
-
-#define ID2D1DeviceContext2_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \
- ((This)->lpVtbl->Base.Base.CreateBitmapBrush((ID2D1DeviceContext *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush))
-
-#define ID2D1DeviceContext2_CreateCommandList(This, commandList) \
- ((This)->lpVtbl->Base.Base.CreateCommandList((ID2D1DeviceContext *)This, commandList))
-
-#define ID2D1DeviceContext2_IsDxgiFormatSupported(This, format) \
- ((This)->lpVtbl->Base.Base.IsDxgiFormatSupported((ID2D1DeviceContext *)This, format))
-
-#define ID2D1DeviceContext2_IsBufferPrecisionSupported(This, bufferPrecision) \
- ((This)->lpVtbl->Base.Base.IsBufferPrecisionSupported((ID2D1DeviceContext *)This, bufferPrecision))
-
-#define ID2D1DeviceContext2_GetImageLocalBounds(This, image, localBounds) \
- ((This)->lpVtbl->Base.Base.GetImageLocalBounds((ID2D1DeviceContext *)This, image, localBounds))
-
-#define ID2D1DeviceContext2_GetImageWorldBounds(This, image, worldBounds) \
- ((This)->lpVtbl->Base.Base.GetImageWorldBounds((ID2D1DeviceContext *)This, image, worldBounds))
-
-#define ID2D1DeviceContext2_GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds) \
- ((This)->lpVtbl->Base.Base.GetGlyphRunWorldBounds((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, measuringMode, bounds))
-
-#define ID2D1DeviceContext2_GetDevice(This, device) \
- ((This)->lpVtbl->Base.Base.GetDevice((ID2D1DeviceContext *)This, device))
-
-#define ID2D1DeviceContext2_SetTarget(This, image) \
- ((This)->lpVtbl->Base.Base.SetTarget((ID2D1DeviceContext *)This, image))
-
-#define ID2D1DeviceContext2_GetTarget(This, image) \
- ((This)->lpVtbl->Base.Base.GetTarget((ID2D1DeviceContext *)This, image))
-
-#define ID2D1DeviceContext2_SetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->Base.Base.SetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
-
-#define ID2D1DeviceContext2_GetRenderingControls(This, renderingControls) \
- ((This)->lpVtbl->Base.Base.GetRenderingControls((ID2D1DeviceContext *)This, renderingControls))
-
-#define ID2D1DeviceContext2_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1DeviceContext *)This, primitiveBlend))
-
-#define ID2D1DeviceContext2_GetPrimitiveBlend(This) \
- ((This)->lpVtbl->Base.Base.GetPrimitiveBlend((ID2D1DeviceContext *)This))
-
-#define ID2D1DeviceContext2_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1DeviceContext *)This, unitMode))
-
-#define ID2D1DeviceContext2_GetUnitMode(This) \
- ((This)->lpVtbl->Base.Base.GetUnitMode((ID2D1DeviceContext *)This))
-
-#define ID2D1DeviceContext2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1DeviceContext2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->Base.Base.DrawImage((ID2D1DeviceContext *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1DeviceContext2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1DeviceContext *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1DeviceContext2_PushLayer(This, layerParameters, layer) \
- ((This)->lpVtbl->Base.Base.PushLayer((ID2D1DeviceContext *)This, layerParameters, layer))
-
-#define ID2D1DeviceContext2_InvalidateEffectInputRectangle(This, effect, input, inputRectangle) \
- ((This)->lpVtbl->Base.Base.InvalidateEffectInputRectangle((ID2D1DeviceContext *)This, effect, input, inputRectangle))
-
-#define ID2D1DeviceContext2_GetEffectInvalidRectangleCount(This, effect, rectangleCount) \
- ((This)->lpVtbl->Base.Base.GetEffectInvalidRectangleCount((ID2D1DeviceContext *)This, effect, rectangleCount))
-
-#define ID2D1DeviceContext2_GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount) \
- ((This)->lpVtbl->Base.Base.GetEffectInvalidRectangles((ID2D1DeviceContext *)This, effect, rectangles, rectanglesCount))
-
-#define ID2D1DeviceContext2_GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount) \
- ((This)->lpVtbl->Base.Base.GetEffectRequiredInputRectangles((ID2D1DeviceContext *)This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount))
-
-#define ID2D1DeviceContext2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1DeviceContext *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
-#define ID2D1DeviceContext2_CreateFilledGeometryRealization(This, geometry, flatteningTolerance, geometryRealization) \
- ((This)->lpVtbl->Base.CreateFilledGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, geometryRealization))
-
-#define ID2D1DeviceContext2_CreateStrokedGeometryRealization(This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization) \
- ((This)->lpVtbl->Base.CreateStrokedGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization))
-
-#define ID2D1DeviceContext2_DrawGeometryRealization(This, geometryRealization, brush) \
- ((This)->lpVtbl->Base.DrawGeometryRealization((ID2D1DeviceContext1 *)This, geometryRealization, brush))
-
-#define ID2D1DeviceContext2_CreateInk(This, startPoint, ink) \
- ((This)->lpVtbl->CreateInk(This, startPoint, ink))
-
-#define ID2D1DeviceContext2_CreateInkStyle(This, inkStyleProperties, inkStyle) \
- ((This)->lpVtbl->CreateInkStyle(This, inkStyleProperties, inkStyle))
-
-#define ID2D1DeviceContext2_CreateGradientMesh(This, patches, patchesCount, gradientMesh) \
- ((This)->lpVtbl->CreateGradientMesh(This, patches, patchesCount, gradientMesh))
-
-#define ID2D1DeviceContext2_CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource) \
- ((This)->lpVtbl->CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource))
-
-#define ID2D1DeviceContext2_CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable) \
- ((This)->lpVtbl->CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable))
-
-#define ID2D1DeviceContext2_CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource) \
- ((This)->lpVtbl->CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource))
-
-#define ID2D1DeviceContext2_GetGradientMeshWorldBounds(This, gradientMesh, pBounds) \
- ((This)->lpVtbl->GetGradientMeshWorldBounds(This, gradientMesh, pBounds))
-
-#define ID2D1DeviceContext2_DrawInk(This, ink, brush, inkStyle) \
- ((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle))
-
-#define ID2D1DeviceContext2_DrawGradientMesh(This, gradientMesh) \
- ((This)->lpVtbl->DrawGradientMesh(This, gradientMesh))
-
-#define ID2D1DeviceContext2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle))
-
-#define ID2D1DeviceContext2_CreateTransformedImageSource(This, imageSource, properties, transformedImageSource) \
- ((This)->lpVtbl->CreateTransformedImageSource(This, imageSource, properties, transformedImageSource))
-
typedef interface ID2D1Device2 ID2D1Device2;
-typedef struct ID2D1Device2Vtbl
-{
-
- ID2D1Device1Vtbl Base;
-
-
- STDMETHOD(CreateDeviceContext)(
- ID2D1Device2 *This,
- D2D1_DEVICE_CONTEXT_OPTIONS options,
- _Outptr_ ID2D1DeviceContext2 **deviceContext2
- ) PURE;
-
- STDMETHOD_(void, FlushDeviceContexts)(
- ID2D1Device2 *This,
- _In_ ID2D1Bitmap *bitmap
- ) PURE;
-
- STDMETHOD(GetDxgiDevice)(
- ID2D1Device2 *This,
- _Outptr_ IDXGIDevice **dxgiDevice
- ) PURE;
-} ID2D1Device2Vtbl;
-
-interface ID2D1Device2
-{
- CONST struct ID2D1Device2Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Device2_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Device2_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Device2_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Device2_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1Device2_CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl) \
- ((This)->lpVtbl->Base.Base.CreatePrintControl((ID2D1Device *)This, wicFactory, documentTarget, printControlProperties, printControl))
-
-#define ID2D1Device2_SetMaximumTextureMemory(This, maximumInBytes) \
- ((This)->lpVtbl->Base.Base.SetMaximumTextureMemory((ID2D1Device *)This, maximumInBytes))
-
-#define ID2D1Device2_GetMaximumTextureMemory(This) \
- ((This)->lpVtbl->Base.Base.GetMaximumTextureMemory((ID2D1Device *)This))
-
-#define ID2D1Device2_ClearResources(This, millisecondsSinceUse) \
- ((This)->lpVtbl->Base.Base.ClearResources((ID2D1Device *)This, millisecondsSinceUse))
-
-#define ID2D1Device2_GetRenderingPriority(This) \
- ((This)->lpVtbl->Base.GetRenderingPriority((ID2D1Device1 *)This))
-
-#define ID2D1Device2_SetRenderingPriority(This, renderingPriority) \
- ((This)->lpVtbl->Base.SetRenderingPriority((ID2D1Device1 *)This, renderingPriority))
-
-#define ID2D1Device2_CreateDeviceContext(This, options, deviceContext2) \
- ((This)->lpVtbl->CreateDeviceContext(This, options, deviceContext2))
-
-#define ID2D1Device2_FlushDeviceContexts(This, bitmap) \
- ((This)->lpVtbl->FlushDeviceContexts(This, bitmap))
-
-#define ID2D1Device2_GetDxgiDevice(This, dxgiDevice) \
- ((This)->lpVtbl->GetDxgiDevice(This, dxgiDevice))
-
typedef interface ID2D1Factory3 ID2D1Factory3;
-typedef struct ID2D1Factory3Vtbl
-{
-
- ID2D1Factory2Vtbl Base;
-
-
- STDMETHOD(CreateDevice)(
- ID2D1Factory3 *This,
- _In_ IDXGIDevice *dxgiDevice,
- _Outptr_ ID2D1Device2 **d2dDevice2
- ) PURE;
-} ID2D1Factory3Vtbl;
-
-interface ID2D1Factory3
-{
- CONST struct ID2D1Factory3Vtbl *lpVtbl;
-};
-
-
-#define ID2D1Factory3_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1Factory3_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1Factory3_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1Factory3_ReloadSystemMetrics(This) \
- ((This)->lpVtbl->Base.Base.Base.ReloadSystemMetrics((ID2D1Factory *)This))
-
-#define ID2D1Factory3_GetDesktopDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->Base.Base.Base.GetDesktopDpi((ID2D1Factory *)This, dpiX, dpiY))
-
-#define ID2D1Factory3_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \
- ((This)->lpVtbl->Base.Base.Base.CreateRectangleGeometry((ID2D1Factory *)This, rectangle, rectangleGeometry))
-
-#define ID2D1Factory3_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \
- ((This)->lpVtbl->Base.Base.Base.CreateRoundedRectangleGeometry((ID2D1Factory *)This, roundedRectangle, roundedRectangleGeometry))
-
-#define ID2D1Factory3_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \
- ((This)->lpVtbl->Base.Base.Base.CreateEllipseGeometry((ID2D1Factory *)This, ellipse, ellipseGeometry))
-
-#define ID2D1Factory3_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \
- ((This)->lpVtbl->Base.Base.Base.CreateGeometryGroup((ID2D1Factory *)This, fillMode, geometries, geometriesCount, geometryGroup))
-
-#define ID2D1Factory3_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \
- ((This)->lpVtbl->Base.Base.Base.CreateTransformedGeometry((ID2D1Factory *)This, sourceGeometry, transform, transformedGeometry))
-
-#define ID2D1Factory3_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.Base.Base.CreateWicBitmapRenderTarget((ID2D1Factory *)This, target, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory3_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \
- ((This)->lpVtbl->Base.Base.Base.CreateHwndRenderTarget((ID2D1Factory *)This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget))
-
-#define ID2D1Factory3_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \
- ((This)->lpVtbl->Base.Base.Base.CreateDxgiSurfaceRenderTarget((ID2D1Factory *)This, dxgiSurface, renderTargetProperties, renderTarget))
-
-#define ID2D1Factory3_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \
- ((This)->lpVtbl->Base.Base.Base.CreateDCRenderTarget((ID2D1Factory *)This, renderTargetProperties, dcRenderTarget))
-
-#define ID2D1Factory3_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \
- ((This)->lpVtbl->Base.Base.CreateStrokeStyle((ID2D1Factory1 *)This, strokeStyleProperties, dashes, dashesCount, strokeStyle))
-
-#define ID2D1Factory3_CreatePathGeometry(This, pathGeometry) \
- ((This)->lpVtbl->Base.Base.CreatePathGeometry((ID2D1Factory1 *)This, pathGeometry))
-
-#define ID2D1Factory3_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \
- ((This)->lpVtbl->Base.Base.CreateDrawingStateBlock((ID2D1Factory1 *)This, drawingStateDescription, textRenderingParams, drawingStateBlock))
-
-#define ID2D1Factory3_CreateGdiMetafile(This, metafileStream, metafile) \
- ((This)->lpVtbl->Base.Base.CreateGdiMetafile((ID2D1Factory1 *)This, metafileStream, metafile))
-
-#define ID2D1Factory3_RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->Base.Base.RegisterEffectFromStream((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory3_RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \
- ((This)->lpVtbl->Base.Base.RegisterEffectFromString((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory))
-
-#define ID2D1Factory3_UnregisterEffect(This, classId) \
- ((This)->lpVtbl->Base.Base.UnregisterEffect((ID2D1Factory1 *)This, classId))
-
-#define ID2D1Factory3_GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered) \
- ((This)->lpVtbl->Base.Base.GetRegisteredEffects((ID2D1Factory1 *)This, effects, effectsCount, effectsReturned, effectsRegistered))
-
-#define ID2D1Factory3_GetEffectProperties(This, effectId, properties) \
- ((This)->lpVtbl->Base.Base.GetEffectProperties((ID2D1Factory1 *)This, effectId, properties))
-
-#define ID2D1Factory3_CreateDevice(This, dxgiDevice, d2dDevice2) \
- ((This)->lpVtbl->CreateDevice(This, dxgiDevice, d2dDevice2))
-
typedef interface ID2D1CommandSink2 ID2D1CommandSink2;
-typedef struct ID2D1CommandSink2Vtbl
-{
-
- ID2D1CommandSink1Vtbl Base;
-
-
- STDMETHOD(DrawInk)(
- ID2D1CommandSink2 *This,
- _In_ ID2D1Ink *ink,
- _In_ ID2D1Brush *brush,
- _In_opt_ ID2D1InkStyle *inkStyle
- ) PURE;
-
- STDMETHOD(DrawGradientMesh)(
- ID2D1CommandSink2 *This,
- _In_ ID2D1GradientMesh *gradientMesh
- ) PURE;
-
- STDMETHOD(DrawGdiMetafile)(
- ID2D1CommandSink2 *This,
- _In_ ID2D1GdiMetafile *gdiMetafile,
- _In_opt_ CONST D2D1_RECT_F *destinationRectangle,
- _In_opt_ CONST D2D1_RECT_F *sourceRectangle
- ) PURE;
-} ID2D1CommandSink2Vtbl;
-
-interface ID2D1CommandSink2
-{
- CONST struct ID2D1CommandSink2Vtbl *lpVtbl;
-};
-
-
-#define ID2D1CommandSink2_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1CommandSink2_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1CommandSink2_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1CommandSink2_BeginDraw(This) \
- ((This)->lpVtbl->Base.Base.BeginDraw((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink2_EndDraw(This) \
- ((This)->lpVtbl->Base.Base.EndDraw((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink2_SetAntialiasMode(This, antialiasMode) \
- ((This)->lpVtbl->Base.Base.SetAntialiasMode((ID2D1CommandSink *)This, antialiasMode))
-
-#define ID2D1CommandSink2_SetTags(This, tag1, tag2) \
- ((This)->lpVtbl->Base.Base.SetTags((ID2D1CommandSink *)This, tag1, tag2))
-
-#define ID2D1CommandSink2_SetTextAntialiasMode(This, textAntialiasMode) \
- ((This)->lpVtbl->Base.Base.SetTextAntialiasMode((ID2D1CommandSink *)This, textAntialiasMode))
-
-#define ID2D1CommandSink2_SetTextRenderingParams(This, textRenderingParams) \
- ((This)->lpVtbl->Base.Base.SetTextRenderingParams((ID2D1CommandSink *)This, textRenderingParams))
-
-#define ID2D1CommandSink2_SetTransform(This, transform) \
- ((This)->lpVtbl->Base.Base.SetTransform((ID2D1CommandSink *)This, transform))
-
-#define ID2D1CommandSink2_SetPrimitiveBlend(This, primitiveBlend) \
- ((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1CommandSink *)This, primitiveBlend))
-
-#define ID2D1CommandSink2_SetUnitMode(This, unitMode) \
- ((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1CommandSink *)This, unitMode))
-
-#define ID2D1CommandSink2_Clear(This, color) \
- ((This)->lpVtbl->Base.Base.Clear((ID2D1CommandSink *)This, color))
-
-#define ID2D1CommandSink2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \
- ((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1CommandSink *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode))
-
-#define ID2D1CommandSink2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawLine((ID2D1CommandSink *)This, point0, point1, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawGeometry((ID2D1CommandSink *)This, geometry, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \
- ((This)->lpVtbl->Base.Base.DrawRectangle((ID2D1CommandSink *)This, rect, brush, strokeWidth, strokeStyle))
-
-#define ID2D1CommandSink2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \
- ((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1CommandSink *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform))
-
-#define ID2D1CommandSink2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \
- ((This)->lpVtbl->Base.Base.DrawImage((ID2D1CommandSink *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode))
-
-#define ID2D1CommandSink2_FillMesh(This, mesh, brush) \
- ((This)->lpVtbl->Base.Base.FillMesh((ID2D1CommandSink *)This, mesh, brush))
-
-#define ID2D1CommandSink2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1CommandSink *)This, opacityMask, brush, destinationRectangle, sourceRectangle))
-
-#define ID2D1CommandSink2_FillGeometry(This, geometry, brush, opacityBrush) \
- ((This)->lpVtbl->Base.Base.FillGeometry((ID2D1CommandSink *)This, geometry, brush, opacityBrush))
-
-#define ID2D1CommandSink2_FillRectangle(This, rect, brush) \
- ((This)->lpVtbl->Base.Base.FillRectangle((ID2D1CommandSink *)This, rect, brush))
-
-#define ID2D1CommandSink2_PushAxisAlignedClip(This, clipRect, antialiasMode) \
- ((This)->lpVtbl->Base.Base.PushAxisAlignedClip((ID2D1CommandSink *)This, clipRect, antialiasMode))
-
-#define ID2D1CommandSink2_PushLayer(This, layerParameters1, layer) \
- ((This)->lpVtbl->Base.Base.PushLayer((ID2D1CommandSink *)This, layerParameters1, layer))
-
-#define ID2D1CommandSink2_PopAxisAlignedClip(This) \
- ((This)->lpVtbl->Base.Base.PopAxisAlignedClip((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink2_PopLayer(This) \
- ((This)->lpVtbl->Base.Base.PopLayer((ID2D1CommandSink *)This))
-
-#define ID2D1CommandSink2_SetPrimitiveBlend1(This, primitiveBlend) \
- ((This)->lpVtbl->Base.SetPrimitiveBlend1((ID2D1CommandSink1 *)This, primitiveBlend))
-
-#define ID2D1CommandSink2_DrawInk(This, ink, brush, inkStyle) \
- ((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle))
-
-#define ID2D1CommandSink2_DrawGradientMesh(This, gradientMesh) \
- ((This)->lpVtbl->DrawGradientMesh(This, gradientMesh))
-
-#define ID2D1CommandSink2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \
- ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle))
-
typedef interface ID2D1GdiMetafile1 ID2D1GdiMetafile1;
-typedef struct ID2D1GdiMetafile1Vtbl
-{
-
- ID2D1GdiMetafileVtbl Base;
-
-
- STDMETHOD(GetDpi)(
- ID2D1GdiMetafile1 *This,
- _Out_ FLOAT *dpiX,
- _Out_ FLOAT *dpiY
- ) PURE;
-
- STDMETHOD(GetSourceBounds)(
- ID2D1GdiMetafile1 *This,
- _Out_ D2D1_RECT_F *bounds
- ) PURE;
-} ID2D1GdiMetafile1Vtbl;
-
-interface ID2D1GdiMetafile1
-{
- CONST struct ID2D1GdiMetafile1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1GdiMetafile1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GdiMetafile1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GdiMetafile1_Release(This) \
- ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GdiMetafile1_GetFactory(This, factory) \
- ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory))
-
-#define ID2D1GdiMetafile1_Stream(This, sink) \
- ((This)->lpVtbl->Base.Stream((ID2D1GdiMetafile *)This, sink))
-
-#define ID2D1GdiMetafile1_GetBounds(This, bounds) \
- ((This)->lpVtbl->Base.GetBounds((ID2D1GdiMetafile *)This, bounds))
-
-#define ID2D1GdiMetafile1_GetDpi(This, dpiX, dpiY) \
- ((This)->lpVtbl->GetDpi(This, dpiX, dpiY))
-
-#define ID2D1GdiMetafile1_GetSourceBounds(This, bounds) \
- ((This)->lpVtbl->GetSourceBounds(This, bounds))
-
typedef interface ID2D1GdiMetafileSink1 ID2D1GdiMetafileSink1;
-typedef struct ID2D1GdiMetafileSink1Vtbl
-{
-
- ID2D1GdiMetafileSinkVtbl Base;
-
-
- STDMETHOD(ProcessRecord)(
- ID2D1GdiMetafileSink1 *This,
- DWORD recordType,
- _In_opt_ CONST void *recordData,
- DWORD recordDataSize,
- UINT32 flags
- ) PURE;
-} ID2D1GdiMetafileSink1Vtbl;
-
-interface ID2D1GdiMetafileSink1
-{
- CONST struct ID2D1GdiMetafileSink1Vtbl *lpVtbl;
-};
-
-
-#define ID2D1GdiMetafileSink1_QueryInterface(This, riid, ppv) \
- ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv))
-
-#define ID2D1GdiMetafileSink1_AddRef(This) \
- ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This))
-
-#define ID2D1GdiMetafileSink1_Release(This) \
- ((This)->lpVtbl->Base.Base.Release((IUnknown *)This))
-
-#define ID2D1GdiMetafileSink1_ProcessRecord(This, recordType, recordData, recordDataSize, flags) \
- ((This)->lpVtbl->ProcessRecord(This, recordType, recordData, recordDataSize, flags))
-
-
#endif
diff --git a/3rdparty/minidx12/Include/d2d1_3helper.h b/3rdparty/minidx12/Include/d2d1_3helper.h
index cb7fdd8699..939d65df61 100644
--- a/3rdparty/minidx12/Include/d2d1_3helper.h
+++ b/3rdparty/minidx12/Include/d2d1_3helper.h
@@ -215,6 +215,16 @@ namespace D2D1
return inkStyleProperties;
}
+
+ COM_DECLSPEC_NOTHROW
+ D2D1FORCEINLINE
+ D2D1_RECT_U
+ InfiniteRectU()
+ {
+ D2D1_RECT_U rect = { 0u, 0u, UINT_MAX, UINT_MAX };
+
+ return rect;
+ }
} // namespace D2D1
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
diff --git a/3rdparty/minidx12/Include/d2d1effects.h b/3rdparty/minidx12/Include/d2d1effects.h
index fc3a0228b3..a325ef39e6 100644
--- a/3rdparty/minidx12/Include/d2d1effects.h
+++ b/3rdparty/minidx12/Include/d2d1effects.h
@@ -63,2240 +63,1839 @@ DEFINE_GUID(CLSID_D2D1Turbulence, 0xCF2BB6AE, 0x889A, 0x4ad7, 0xBA
DEFINE_GUID(CLSID_D2D1UnPremultiply, 0xfb9ac489, 0xad8d, 0x41ed, 0x99, 0x99, 0xbb, 0x63, 0x47, 0xd1, 0x10, 0xf7);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BORDER_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies how the Crop effect handles the crop rectangle falling on fractional
+/// pixel coordinates.
+///
typedef enum D2D1_BORDER_MODE
{
- D2D1_BORDER_MODE_SOFT = 0,
- D2D1_BORDER_MODE_HARD = 1,
- D2D1_BORDER_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_BORDER_MODE_SOFT = 0,
+ D2D1_BORDER_MODE_HARD = 1,
+ D2D1_BORDER_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BORDER_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CHANNEL_SELECTOR
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies the color channel the Displacement map effect extracts the intensity
+/// from and uses it to spatially displace the image in the X or Y direction.
+///
typedef enum D2D1_CHANNEL_SELECTOR
{
- D2D1_CHANNEL_SELECTOR_R = 0,
- D2D1_CHANNEL_SELECTOR_G = 1,
- D2D1_CHANNEL_SELECTOR_B = 2,
- D2D1_CHANNEL_SELECTOR_A = 3,
- D2D1_CHANNEL_SELECTOR_FORCE_DWORD = 0xffffffff
+ D2D1_CHANNEL_SELECTOR_R = 0,
+ D2D1_CHANNEL_SELECTOR_G = 1,
+ D2D1_CHANNEL_SELECTOR_B = 2,
+ D2D1_CHANNEL_SELECTOR_A = 3,
+ D2D1_CHANNEL_SELECTOR_FORCE_DWORD = 0xffffffff
} D2D1_CHANNEL_SELECTOR;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BITMAPSOURCE_ORIENTATION
-//
-//------------------------------------------------------------------------------
+///
+/// Speficies whether a flip and/or rotation operation should be performed by the
+/// Bitmap source effect
+///
typedef enum D2D1_BITMAPSOURCE_ORIENTATION
{
- D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT = 1,
- D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL = 2,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 5,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90 = 6,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 7,
- D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270 = 8,
- D2D1_BITMAPSOURCE_ORIENTATION_FORCE_DWORD = 0xffffffff
+ D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT = 1,
+ D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL = 2,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 5,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90 = 6,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 7,
+ D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270 = 8,
+ D2D1_BITMAPSOURCE_ORIENTATION_FORCE_DWORD = 0xffffffff
} D2D1_BITMAPSOURCE_ORIENTATION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GAUSSIANBLUR_PROP
-//
-// Synopsis:
-// The enumeration of the Gaussian Blur effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Gaussian Blur effect's top level properties.
+///
typedef enum D2D1_GAUSSIANBLUR_PROP
{
-
- //
- // Property Name: "StandardDeviation"
- // Property Type: FLOAT
- //
- D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION = 0,
-
- //
- // Property Name: "Optimization"
- // Property Type: D2D1_GAUSSIANBLUR_OPTIMIZATION
- //
- D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION = 1,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_GAUSSIANBLUR_PROP_BORDER_MODE = 2,
- D2D1_GAUSSIANBLUR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "StandardDeviation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION = 0,
+
+ ///
+ /// Property Name: "Optimization"
+ /// Property Type: D2D1_GAUSSIANBLUR_OPTIMIZATION
+ ///
+ D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION = 1,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_GAUSSIANBLUR_PROP_BORDER_MODE = 2,
+ D2D1_GAUSSIANBLUR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_GAUSSIANBLUR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GAUSSIANBLUR_OPTIMIZATION
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_GAUSSIANBLUR_OPTIMIZATION
{
- D2D1_GAUSSIANBLUR_OPTIMIZATION_SPEED = 0,
- D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED = 1,
- D2D1_GAUSSIANBLUR_OPTIMIZATION_QUALITY = 2,
- D2D1_GAUSSIANBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff
+ D2D1_GAUSSIANBLUR_OPTIMIZATION_SPEED = 0,
+ D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED = 1,
+ D2D1_GAUSSIANBLUR_OPTIMIZATION_QUALITY = 2,
+ D2D1_GAUSSIANBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff
} D2D1_GAUSSIANBLUR_OPTIMIZATION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DIRECTIONALBLUR_PROP
-//
-// Synopsis:
-// The enumeration of the Directional Blur effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Directional Blur effect's top level properties.
+///
typedef enum D2D1_DIRECTIONALBLUR_PROP
{
-
- //
- // Property Name: "StandardDeviation"
- // Property Type: FLOAT
- //
- D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION = 0,
-
- //
- // Property Name: "Angle"
- // Property Type: FLOAT
- //
- D2D1_DIRECTIONALBLUR_PROP_ANGLE = 1,
-
- //
- // Property Name: "Optimization"
- // Property Type: D2D1_DIRECTIONALBLUR_OPTIMIZATION
- //
- D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION = 2,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE = 3,
- D2D1_DIRECTIONALBLUR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "StandardDeviation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION = 0,
+
+ ///
+ /// Property Name: "Angle"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DIRECTIONALBLUR_PROP_ANGLE = 1,
+
+ ///
+ /// Property Name: "Optimization"
+ /// Property Type: D2D1_DIRECTIONALBLUR_OPTIMIZATION
+ ///
+ D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION = 2,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE = 3,
+ D2D1_DIRECTIONALBLUR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DIRECTIONALBLUR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DIRECTIONALBLUR_OPTIMIZATION
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_DIRECTIONALBLUR_OPTIMIZATION
{
- D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED = 0,
- D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED = 1,
- D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY = 2,
- D2D1_DIRECTIONALBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff
+ D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED = 0,
+ D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED = 1,
+ D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY = 2,
+ D2D1_DIRECTIONALBLUR_OPTIMIZATION_FORCE_DWORD = 0xffffffff
} D2D1_DIRECTIONALBLUR_OPTIMIZATION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SHADOW_PROP
-//
-// Synopsis:
-// The enumeration of the Shadow effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Shadow effect's top level properties.
+///
typedef enum D2D1_SHADOW_PROP
{
-
- //
- // Property Name: "BlurStandardDeviation"
- // Property Type: FLOAT
- //
- D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION = 0,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_SHADOW_PROP_COLOR = 1,
-
- //
- // Property Name: "Optimization"
- // Property Type: D2D1_SHADOW_OPTIMIZATION
- //
- D2D1_SHADOW_PROP_OPTIMIZATION = 2,
- D2D1_SHADOW_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "BlurStandardDeviation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION = 0,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_SHADOW_PROP_COLOR = 1,
+
+ ///
+ /// Property Name: "Optimization"
+ /// Property Type: D2D1_SHADOW_OPTIMIZATION
+ ///
+ D2D1_SHADOW_PROP_OPTIMIZATION = 2,
+ D2D1_SHADOW_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SHADOW_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SHADOW_OPTIMIZATION
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_SHADOW_OPTIMIZATION
{
- D2D1_SHADOW_OPTIMIZATION_SPEED = 0,
- D2D1_SHADOW_OPTIMIZATION_BALANCED = 1,
- D2D1_SHADOW_OPTIMIZATION_QUALITY = 2,
- D2D1_SHADOW_OPTIMIZATION_FORCE_DWORD = 0xffffffff
+ D2D1_SHADOW_OPTIMIZATION_SPEED = 0,
+ D2D1_SHADOW_OPTIMIZATION_BALANCED = 1,
+ D2D1_SHADOW_OPTIMIZATION_QUALITY = 2,
+ D2D1_SHADOW_OPTIMIZATION_FORCE_DWORD = 0xffffffff
} D2D1_SHADOW_OPTIMIZATION;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BLEND_PROP
-//
-// Synopsis:
-// The enumeration of the Blend effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Blend effect's top level properties.
+///
typedef enum D2D1_BLEND_PROP
{
-
- //
- // Property Name: "Mode"
- // Property Type: D2D1_BLEND_MODE
- //
- D2D1_BLEND_PROP_MODE = 0,
- D2D1_BLEND_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Mode"
+ /// Property Type: D2D1_BLEND_MODE
+ ///
+ D2D1_BLEND_PROP_MODE = 0,
+ D2D1_BLEND_PROP_FORCE_DWORD = 0xffffffff
} D2D1_BLEND_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BLEND_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_BLEND_MODE
{
- D2D1_BLEND_MODE_MULTIPLY = 0,
- D2D1_BLEND_MODE_SCREEN = 1,
- D2D1_BLEND_MODE_DARKEN = 2,
- D2D1_BLEND_MODE_LIGHTEN = 3,
- D2D1_BLEND_MODE_DISSOLVE = 4,
- D2D1_BLEND_MODE_COLOR_BURN = 5,
- D2D1_BLEND_MODE_LINEAR_BURN = 6,
- D2D1_BLEND_MODE_DARKER_COLOR = 7,
- D2D1_BLEND_MODE_LIGHTER_COLOR = 8,
- D2D1_BLEND_MODE_COLOR_DODGE = 9,
- D2D1_BLEND_MODE_LINEAR_DODGE = 10,
- D2D1_BLEND_MODE_OVERLAY = 11,
- D2D1_BLEND_MODE_SOFT_LIGHT = 12,
- D2D1_BLEND_MODE_HARD_LIGHT = 13,
- D2D1_BLEND_MODE_VIVID_LIGHT = 14,
- D2D1_BLEND_MODE_LINEAR_LIGHT = 15,
- D2D1_BLEND_MODE_PIN_LIGHT = 16,
- D2D1_BLEND_MODE_HARD_MIX = 17,
- D2D1_BLEND_MODE_DIFFERENCE = 18,
- D2D1_BLEND_MODE_EXCLUSION = 19,
- D2D1_BLEND_MODE_HUE = 20,
- D2D1_BLEND_MODE_SATURATION = 21,
- D2D1_BLEND_MODE_COLOR = 22,
- D2D1_BLEND_MODE_LUMINOSITY = 23,
- D2D1_BLEND_MODE_SUBTRACT = 24,
- D2D1_BLEND_MODE_DIVISION = 25,
- D2D1_BLEND_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_BLEND_MODE_MULTIPLY = 0,
+ D2D1_BLEND_MODE_SCREEN = 1,
+ D2D1_BLEND_MODE_DARKEN = 2,
+ D2D1_BLEND_MODE_LIGHTEN = 3,
+ D2D1_BLEND_MODE_DISSOLVE = 4,
+ D2D1_BLEND_MODE_COLOR_BURN = 5,
+ D2D1_BLEND_MODE_LINEAR_BURN = 6,
+ D2D1_BLEND_MODE_DARKER_COLOR = 7,
+ D2D1_BLEND_MODE_LIGHTER_COLOR = 8,
+ D2D1_BLEND_MODE_COLOR_DODGE = 9,
+ D2D1_BLEND_MODE_LINEAR_DODGE = 10,
+ D2D1_BLEND_MODE_OVERLAY = 11,
+ D2D1_BLEND_MODE_SOFT_LIGHT = 12,
+ D2D1_BLEND_MODE_HARD_LIGHT = 13,
+ D2D1_BLEND_MODE_VIVID_LIGHT = 14,
+ D2D1_BLEND_MODE_LINEAR_LIGHT = 15,
+ D2D1_BLEND_MODE_PIN_LIGHT = 16,
+ D2D1_BLEND_MODE_HARD_MIX = 17,
+ D2D1_BLEND_MODE_DIFFERENCE = 18,
+ D2D1_BLEND_MODE_EXCLUSION = 19,
+ D2D1_BLEND_MODE_HUE = 20,
+ D2D1_BLEND_MODE_SATURATION = 21,
+ D2D1_BLEND_MODE_COLOR = 22,
+ D2D1_BLEND_MODE_LUMINOSITY = 23,
+ D2D1_BLEND_MODE_SUBTRACT = 24,
+ D2D1_BLEND_MODE_DIVISION = 25,
+ D2D1_BLEND_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BLEND_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SATURATION_PROP
-//
-// Synopsis:
-// The enumeration of the Saturation effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Saturation effect's top level properties.
+///
typedef enum D2D1_SATURATION_PROP
{
-
- //
- // Property Name: "Saturation"
- // Property Type: FLOAT
- //
- D2D1_SATURATION_PROP_SATURATION = 0,
- D2D1_SATURATION_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Saturation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SATURATION_PROP_SATURATION = 0,
+ D2D1_SATURATION_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SATURATION_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HUEROTATION_PROP
-//
-// Synopsis:
-// The enumeration of the Hue Rotation effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Hue Rotation effect's top level properties.
+///
typedef enum D2D1_HUEROTATION_PROP
{
-
- //
- // Property Name: "Angle"
- // Property Type: FLOAT
- //
- D2D1_HUEROTATION_PROP_ANGLE = 0,
- D2D1_HUEROTATION_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Angle"
+ /// Property Type: FLOAT
+ ///
+ D2D1_HUEROTATION_PROP_ANGLE = 0,
+ D2D1_HUEROTATION_PROP_FORCE_DWORD = 0xffffffff
} D2D1_HUEROTATION_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMATRIX_PROP
-//
-// Synopsis:
-// The enumeration of the Color Matrix effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Color Matrix effect's top level properties.
+///
typedef enum D2D1_COLORMATRIX_PROP
{
-
- //
- // Property Name: "ColorMatrix"
- // Property Type: D2D1_MATRIX_5X4_F
- //
- D2D1_COLORMATRIX_PROP_COLOR_MATRIX = 0,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_COLORMATRIX_ALPHA_MODE
- //
- D2D1_COLORMATRIX_PROP_ALPHA_MODE = 1,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT = 2,
- D2D1_COLORMATRIX_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "ColorMatrix"
+ /// Property Type: D2D1_MATRIX_5X4_F
+ ///
+ D2D1_COLORMATRIX_PROP_COLOR_MATRIX = 0,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_COLORMATRIX_ALPHA_MODE
+ ///
+ D2D1_COLORMATRIX_PROP_ALPHA_MODE = 1,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT = 2,
+ D2D1_COLORMATRIX_PROP_FORCE_DWORD = 0xffffffff
} D2D1_COLORMATRIX_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMATRIX_ALPHA_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_COLORMATRIX_ALPHA_MODE
{
- D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED = 1,
- D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT = 2,
- D2D1_COLORMATRIX_ALPHA_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED = 1,
+ D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT = 2,
+ D2D1_COLORMATRIX_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_COLORMATRIX_ALPHA_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BITMAPSOURCE_PROP
-//
-// Synopsis:
-// The enumeration of the Bitmap Source effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Bitmap Source effect's top level properties.
+///
typedef enum D2D1_BITMAPSOURCE_PROP
{
-
- //
- // Property Name: "WicBitmapSource"
- // Property Type: IUnknown *
- //
- D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE = 0,
-
- //
- // Property Name: "Scale"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_BITMAPSOURCE_PROP_SCALE = 1,
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_BITMAPSOURCE_INTERPOLATION_MODE
- //
- D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE = 2,
-
- //
- // Property Name: "EnableDPICorrection"
- // Property Type: BOOL
- //
- D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION = 3,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_BITMAPSOURCE_ALPHA_MODE
- //
- D2D1_BITMAPSOURCE_PROP_ALPHA_MODE = 4,
-
- //
- // Property Name: "Orientation"
- // Property Type: D2D1_BITMAPSOURCE_ORIENTATION
- //
- D2D1_BITMAPSOURCE_PROP_ORIENTATION = 5,
- D2D1_BITMAPSOURCE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "WicBitmapSource"
+ /// Property Type: IUnknown *
+ ///
+ D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE = 0,
+
+ ///
+ /// Property Name: "Scale"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_BITMAPSOURCE_PROP_SCALE = 1,
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_BITMAPSOURCE_INTERPOLATION_MODE
+ ///
+ D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE = 2,
+
+ ///
+ /// Property Name: "EnableDPICorrection"
+ /// Property Type: BOOL
+ ///
+ D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION = 3,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_BITMAPSOURCE_ALPHA_MODE
+ ///
+ D2D1_BITMAPSOURCE_PROP_ALPHA_MODE = 4,
+
+ ///
+ /// Property Name: "Orientation"
+ /// Property Type: D2D1_BITMAPSOURCE_ORIENTATION
+ ///
+ D2D1_BITMAPSOURCE_PROP_ORIENTATION = 5,
+ D2D1_BITMAPSOURCE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_BITMAPSOURCE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BITMAPSOURCE_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_BITMAPSOURCE_INTERPOLATION_MODE
{
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT = 6,
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR = 7,
- D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT = 6,
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR = 7,
+ D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BITMAPSOURCE_INTERPOLATION_MODE;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BITMAPSOURCE_ALPHA_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_BITMAPSOURCE_ALPHA_MODE
{
- D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED = 1,
- D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT = 2,
- D2D1_BITMAPSOURCE_ALPHA_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED = 1,
+ D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT = 2,
+ D2D1_BITMAPSOURCE_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BITMAPSOURCE_ALPHA_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COMPOSITE_PROP
-//
-// Synopsis:
-// The enumeration of the Composite effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Composite effect's top level properties.
+///
typedef enum D2D1_COMPOSITE_PROP
{
-
- //
- // Property Name: "Mode"
- // Property Type: D2D1_COMPOSITE_MODE
- //
- D2D1_COMPOSITE_PROP_MODE = 0,
- D2D1_COMPOSITE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Mode"
+ /// Property Type: D2D1_COMPOSITE_MODE
+ ///
+ D2D1_COMPOSITE_PROP_MODE = 0,
+ D2D1_COMPOSITE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_COMPOSITE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_3DTRANSFORM_PROP
-//
-// Synopsis:
-// The enumeration of the 3D Transform effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the 3D Transform effect's top level properties.
+///
typedef enum D2D1_3DTRANSFORM_PROP
{
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_3DTRANSFORM_INTERPOLATION_MODE
- //
- D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE = 0,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_3DTRANSFORM_PROP_BORDER_MODE = 1,
-
- //
- // Property Name: "TransformMatrix"
- // Property Type: D2D1_MATRIX_4X4_F
- //
- D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX = 2,
- D2D1_3DTRANSFORM_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_3DTRANSFORM_INTERPOLATION_MODE
+ ///
+ D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE = 0,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_3DTRANSFORM_PROP_BORDER_MODE = 1,
+
+ ///
+ /// Property Name: "TransformMatrix"
+ /// Property Type: D2D1_MATRIX_4X4_F
+ ///
+ D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX = 2,
+ D2D1_3DTRANSFORM_PROP_FORCE_DWORD = 0xffffffff
} D2D1_3DTRANSFORM_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_3DTRANSFORM_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_3DTRANSFORM_INTERPOLATION_MODE
{
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_3DTRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_3DTRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_3DTRANSFORM_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_3DPERSPECTIVETRANSFORM_PROP
-//
-// Synopsis:
-// The enumeration of the 3D Perspective Transform effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the 3D Perspective Transform effect's top level properties.
+///
typedef enum D2D1_3DPERSPECTIVETRANSFORM_PROP
{
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_INTERPOLATION_MODE = 0,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_BORDER_MODE = 1,
-
- //
- // Property Name: "Depth"
- // Property Type: FLOAT
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH = 2,
-
- //
- // Property Name: "PerspectiveOrigin"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN = 3,
-
- //
- // Property Name: "LocalOffset"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET = 4,
-
- //
- // Property Name: "GlobalOffset"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET = 5,
-
- //
- // Property Name: "RotationOrigin"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN = 6,
-
- //
- // Property Name: "Rotation"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION = 7,
- D2D1_3DPERSPECTIVETRANSFORM_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_INTERPOLATION_MODE = 0,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_BORDER_MODE = 1,
+
+ ///
+ /// Property Name: "Depth"
+ /// Property Type: FLOAT
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH = 2,
+
+ ///
+ /// Property Name: "PerspectiveOrigin"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN = 3,
+
+ ///
+ /// Property Name: "LocalOffset"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET = 4,
+
+ ///
+ /// Property Name: "GlobalOffset"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET = 5,
+
+ ///
+ /// Property Name: "RotationOrigin"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN = 6,
+
+ ///
+ /// Property Name: "Rotation"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION = 7,
+ D2D1_3DPERSPECTIVETRANSFORM_PROP_FORCE_DWORD = 0xffffffff
} D2D1_3DPERSPECTIVETRANSFORM_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE
{
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_2DAFFINETRANSFORM_PROP
-//
-// Synopsis:
-// The enumeration of the 2D Affine Transform effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the 2D Affine Transform effect's top level properties.
+///
typedef enum D2D1_2DAFFINETRANSFORM_PROP
{
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE
- //
- D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE = 0,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE = 1,
-
- //
- // Property Name: "TransformMatrix"
- // Property Type: D2D1_MATRIX_3X2_F
- //
- D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX = 2,
-
- //
- // Property Name: "Sharpness"
- // Property Type: FLOAT
- //
- D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS = 3,
- D2D1_2DAFFINETRANSFORM_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE
+ ///
+ D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE = 0,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE = 1,
+
+ ///
+ /// Property Name: "TransformMatrix"
+ /// Property Type: D2D1_MATRIX_3X2_F
+ ///
+ D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX = 2,
+
+ ///
+ /// Property Name: "Sharpness"
+ /// Property Type: FLOAT
+ ///
+ D2D1_2DAFFINETRANSFORM_PROP_SHARPNESS = 3,
+ D2D1_2DAFFINETRANSFORM_PROP_FORCE_DWORD = 0xffffffff
} D2D1_2DAFFINETRANSFORM_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE
{
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DPICOMPENSATION_PROP
-//
-// Synopsis:
-// The enumeration of the DPI Compensation effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the DPI Compensation effect's top level properties.
+///
typedef enum D2D1_DPICOMPENSATION_PROP
{
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_DPICOMPENSATION_INTERPOLATION_MODE
- //
- D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE = 0,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_DPICOMPENSATION_PROP_BORDER_MODE = 1,
-
- //
- // Property Name: "InputDpi"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_DPICOMPENSATION_PROP_INPUT_DPI = 2,
- D2D1_DPICOMPENSATION_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_DPICOMPENSATION_INTERPOLATION_MODE
+ ///
+ D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE = 0,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_DPICOMPENSATION_PROP_BORDER_MODE = 1,
+
+ ///
+ /// Property Name: "InputDpi"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_DPICOMPENSATION_PROP_INPUT_DPI = 2,
+ D2D1_DPICOMPENSATION_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DPICOMPENSATION_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DPICOMPENSATION_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_DPICOMPENSATION_INTERPOLATION_MODE
{
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_DPICOMPENSATION_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_DPICOMPENSATION_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DPICOMPENSATION_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SCALE_PROP
-//
-// Synopsis:
-// The enumeration of the Scale effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Scale effect's top level properties.
+///
typedef enum D2D1_SCALE_PROP
{
-
- //
- // Property Name: "Scale"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_SCALE_PROP_SCALE = 0,
-
- //
- // Property Name: "CenterPoint"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_SCALE_PROP_CENTER_POINT = 1,
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_SCALE_INTERPOLATION_MODE
- //
- D2D1_SCALE_PROP_INTERPOLATION_MODE = 2,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_SCALE_PROP_BORDER_MODE = 3,
-
- //
- // Property Name: "Sharpness"
- // Property Type: FLOAT
- //
- D2D1_SCALE_PROP_SHARPNESS = 4,
- D2D1_SCALE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Scale"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_SCALE_PROP_SCALE = 0,
+
+ ///
+ /// Property Name: "CenterPoint"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_SCALE_PROP_CENTER_POINT = 1,
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_SCALE_INTERPOLATION_MODE
+ ///
+ D2D1_SCALE_PROP_INTERPOLATION_MODE = 2,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_SCALE_PROP_BORDER_MODE = 3,
+
+ ///
+ /// Property Name: "Sharpness"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SCALE_PROP_SHARPNESS = 4,
+ D2D1_SCALE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SCALE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SCALE_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_SCALE_INTERPOLATION_MODE
{
- D2D1_SCALE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_SCALE_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_SCALE_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_SCALE_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_SCALE_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_SCALE_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_SCALE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_SCALE_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_SCALE_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_SCALE_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_SCALE_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_SCALE_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_SCALE_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_SCALE_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_SCALE_INTERPOLATION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TURBULENCE_PROP
-//
-// Synopsis:
-// The enumeration of the Turbulence effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Turbulence effect's top level properties.
+///
typedef enum D2D1_TURBULENCE_PROP
{
-
- //
- // Property Name: "Offset"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_TURBULENCE_PROP_OFFSET = 0,
-
- //
- // Property Name: "Size"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_TURBULENCE_PROP_SIZE = 1,
-
- //
- // Property Name: "BaseFrequency"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_TURBULENCE_PROP_BASE_FREQUENCY = 2,
-
- //
- // Property Name: "NumOctaves"
- // Property Type: UINT32
- //
- D2D1_TURBULENCE_PROP_NUM_OCTAVES = 3,
-
- //
- // Property Name: "Seed"
- // Property Type: INT32
- //
- D2D1_TURBULENCE_PROP_SEED = 4,
-
- //
- // Property Name: "Noise"
- // Property Type: D2D1_TURBULENCE_NOISE
- //
- D2D1_TURBULENCE_PROP_NOISE = 5,
-
- //
- // Property Name: "Stitchable"
- // Property Type: BOOL
- //
- D2D1_TURBULENCE_PROP_STITCHABLE = 6,
- D2D1_TURBULENCE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Offset"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_TURBULENCE_PROP_OFFSET = 0,
+
+ ///
+ /// Property Name: "Size"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_TURBULENCE_PROP_SIZE = 1,
+
+ ///
+ /// Property Name: "BaseFrequency"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_TURBULENCE_PROP_BASE_FREQUENCY = 2,
+
+ ///
+ /// Property Name: "NumOctaves"
+ /// Property Type: UINT32
+ ///
+ D2D1_TURBULENCE_PROP_NUM_OCTAVES = 3,
+
+ ///
+ /// Property Name: "Seed"
+ /// Property Type: INT32
+ ///
+ D2D1_TURBULENCE_PROP_SEED = 4,
+
+ ///
+ /// Property Name: "Noise"
+ /// Property Type: D2D1_TURBULENCE_NOISE
+ ///
+ D2D1_TURBULENCE_PROP_NOISE = 5,
+
+ ///
+ /// Property Name: "Stitchable"
+ /// Property Type: BOOL
+ ///
+ D2D1_TURBULENCE_PROP_STITCHABLE = 6,
+ D2D1_TURBULENCE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_TURBULENCE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TURBULENCE_NOISE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_TURBULENCE_NOISE
{
- D2D1_TURBULENCE_NOISE_FRACTAL_SUM = 0,
- D2D1_TURBULENCE_NOISE_TURBULENCE = 1,
- D2D1_TURBULENCE_NOISE_FORCE_DWORD = 0xffffffff
+ D2D1_TURBULENCE_NOISE_FRACTAL_SUM = 0,
+ D2D1_TURBULENCE_NOISE_TURBULENCE = 1,
+ D2D1_TURBULENCE_NOISE_FORCE_DWORD = 0xffffffff
} D2D1_TURBULENCE_NOISE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISPLACEMENTMAP_PROP
-//
-// Synopsis:
-// The enumeration of the Displacement Map effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Displacement Map effect's top level properties.
+///
typedef enum D2D1_DISPLACEMENTMAP_PROP
{
-
- //
- // Property Name: "Scale"
- // Property Type: FLOAT
- //
- D2D1_DISPLACEMENTMAP_PROP_SCALE = 0,
-
- //
- // Property Name: "XChannelSelect"
- // Property Type: D2D1_CHANNEL_SELECTOR
- //
- D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT = 1,
-
- //
- // Property Name: "YChannelSelect"
- // Property Type: D2D1_CHANNEL_SELECTOR
- //
- D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT = 2,
- D2D1_DISPLACEMENTMAP_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Scale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISPLACEMENTMAP_PROP_SCALE = 0,
+
+ ///
+ /// Property Name: "XChannelSelect"
+ /// Property Type: D2D1_CHANNEL_SELECTOR
+ ///
+ D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT = 1,
+
+ ///
+ /// Property Name: "YChannelSelect"
+ /// Property Type: D2D1_CHANNEL_SELECTOR
+ ///
+ D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT = 2,
+ D2D1_DISPLACEMENTMAP_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DISPLACEMENTMAP_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMANAGEMENT_PROP
-//
-// Synopsis:
-// The enumeration of the Color Management effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Color Management effect's top level properties.
+///
typedef enum D2D1_COLORMANAGEMENT_PROP
{
-
- //
- // Property Name: "SourceColorContext"
- // Property Type: ID2D1ColorContext *
- //
- D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT = 0,
-
- //
- // Property Name: "SourceRenderingIntent"
- // Property Type: D2D1_RENDERING_INTENT
- //
- D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT = 1,
-
- //
- // Property Name: "DestinationColorContext"
- // Property Type: ID2D1ColorContext *
- //
- D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT = 2,
-
- //
- // Property Name: "DestinationRenderingIntent"
- // Property Type: D2D1_RENDERING_INTENT
- //
- D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT = 3,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_COLORMANAGEMENT_ALPHA_MODE
- //
- D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE = 4,
-
- //
- // Property Name: "Quality"
- // Property Type: D2D1_COLORMANAGEMENT_QUALITY
- //
- D2D1_COLORMANAGEMENT_PROP_QUALITY = 5,
- D2D1_COLORMANAGEMENT_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "SourceColorContext"
+ /// Property Type: ID2D1ColorContext *
+ ///
+ D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT = 0,
+
+ ///
+ /// Property Name: "SourceRenderingIntent"
+ /// Property Type: D2D1_RENDERING_INTENT
+ ///
+ D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT = 1,
+
+ ///
+ /// Property Name: "DestinationColorContext"
+ /// Property Type: ID2D1ColorContext *
+ ///
+ D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT = 2,
+
+ ///
+ /// Property Name: "DestinationRenderingIntent"
+ /// Property Type: D2D1_RENDERING_INTENT
+ ///
+ D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT = 3,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_COLORMANAGEMENT_ALPHA_MODE
+ ///
+ D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE = 4,
+
+ ///
+ /// Property Name: "Quality"
+ /// Property Type: D2D1_COLORMANAGEMENT_QUALITY
+ ///
+ D2D1_COLORMANAGEMENT_PROP_QUALITY = 5,
+ D2D1_COLORMANAGEMENT_PROP_FORCE_DWORD = 0xffffffff
} D2D1_COLORMANAGEMENT_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMANAGEMENT_ALPHA_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_COLORMANAGEMENT_ALPHA_MODE
{
- D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED = 1,
- D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT = 2,
- D2D1_COLORMANAGEMENT_ALPHA_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED = 1,
+ D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT = 2,
+ D2D1_COLORMANAGEMENT_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_COLORMANAGEMENT_ALPHA_MODE;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMANAGEMENT_QUALITY
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_COLORMANAGEMENT_QUALITY
{
- D2D1_COLORMANAGEMENT_QUALITY_PROOF = 0,
- D2D1_COLORMANAGEMENT_QUALITY_NORMAL = 1,
- D2D1_COLORMANAGEMENT_QUALITY_BEST = 2,
- D2D1_COLORMANAGEMENT_QUALITY_FORCE_DWORD = 0xffffffff
+ D2D1_COLORMANAGEMENT_QUALITY_PROOF = 0,
+ D2D1_COLORMANAGEMENT_QUALITY_NORMAL = 1,
+ D2D1_COLORMANAGEMENT_QUALITY_BEST = 2,
+ D2D1_COLORMANAGEMENT_QUALITY_FORCE_DWORD = 0xffffffff
} D2D1_COLORMANAGEMENT_QUALITY;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_COLORMANAGEMENT_RENDERING_INTENT
-//
-//------------------------------------------------------------------------------
+///
+/// Specifies which ICC rendering intent the Color management effect should use.
+///
typedef enum D2D1_COLORMANAGEMENT_RENDERING_INTENT
{
- D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL = 0,
- D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC = 1,
- D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION = 2,
- D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 3,
- D2D1_COLORMANAGEMENT_RENDERING_INTENT_FORCE_DWORD = 0xffffffff
+ D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL = 0,
+ D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC = 1,
+ D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION = 2,
+ D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 3,
+ D2D1_COLORMANAGEMENT_RENDERING_INTENT_FORCE_DWORD = 0xffffffff
} D2D1_COLORMANAGEMENT_RENDERING_INTENT;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HISTOGRAM_PROP
-//
-// Synopsis:
-// The enumeration of the Histogram effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Histogram effect's top level properties.
+///
typedef enum D2D1_HISTOGRAM_PROP
{
-
- //
- // Property Name: "NumBins"
- // Property Type: UINT32
- //
- D2D1_HISTOGRAM_PROP_NUM_BINS = 0,
-
- //
- // Property Name: "ChannelSelect"
- // Property Type: D2D1_CHANNEL_SELECTOR
- //
- D2D1_HISTOGRAM_PROP_CHANNEL_SELECT = 1,
-
- //
- // Property Name: "HistogramOutput"
- // Property Type: (blob)
- //
- D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT = 2,
- D2D1_HISTOGRAM_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "NumBins"
+ /// Property Type: UINT32
+ ///
+ D2D1_HISTOGRAM_PROP_NUM_BINS = 0,
+
+ ///
+ /// Property Name: "ChannelSelect"
+ /// Property Type: D2D1_CHANNEL_SELECTOR
+ ///
+ D2D1_HISTOGRAM_PROP_CHANNEL_SELECT = 1,
+
+ ///
+ /// Property Name: "HistogramOutput"
+ /// Property Type: (blob)
+ ///
+ D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT = 2,
+ D2D1_HISTOGRAM_PROP_FORCE_DWORD = 0xffffffff
} D2D1_HISTOGRAM_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_POINTSPECULAR_PROP
-//
-// Synopsis:
-// The enumeration of the Point-Specular effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Point-Specular effect's top level properties.
+///
typedef enum D2D1_POINTSPECULAR_PROP
{
-
- //
- // Property Name: "LightPosition"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_POINTSPECULAR_PROP_LIGHT_POSITION = 0,
-
- //
- // Property Name: "SpecularExponent"
- // Property Type: FLOAT
- //
- D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT = 1,
-
- //
- // Property Name: "SpecularConstant"
- // Property Type: FLOAT
- //
- D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT = 2,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_POINTSPECULAR_PROP_SURFACE_SCALE = 3,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_POINTSPECULAR_PROP_COLOR = 4,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_POINTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 5,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_POINTSPECULAR_SCALE_MODE
- //
- D2D1_POINTSPECULAR_PROP_SCALE_MODE = 6,
- D2D1_POINTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "LightPosition"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_POINTSPECULAR_PROP_LIGHT_POSITION = 0,
+
+ ///
+ /// Property Name: "SpecularExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT = 1,
+
+ ///
+ /// Property Name: "SpecularConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT = 2,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_POINTSPECULAR_PROP_SURFACE_SCALE = 3,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_POINTSPECULAR_PROP_COLOR = 4,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_POINTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 5,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_POINTSPECULAR_SCALE_MODE
+ ///
+ D2D1_POINTSPECULAR_PROP_SCALE_MODE = 6,
+ D2D1_POINTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_POINTSPECULAR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_POINTSPECULAR_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_POINTSPECULAR_SCALE_MODE
{
- D2D1_POINTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_POINTSPECULAR_SCALE_MODE_LINEAR = 1,
- D2D1_POINTSPECULAR_SCALE_MODE_CUBIC = 2,
- D2D1_POINTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_POINTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_POINTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_POINTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_POINTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_POINTSPECULAR_SCALE_MODE_LINEAR = 1,
+ D2D1_POINTSPECULAR_SCALE_MODE_CUBIC = 2,
+ D2D1_POINTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_POINTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_POINTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_POINTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_POINTSPECULAR_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SPOTSPECULAR_PROP
-//
-// Synopsis:
-// The enumeration of the Spot-Specular effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Spot-Specular effect's top level properties.
+///
typedef enum D2D1_SPOTSPECULAR_PROP
{
-
- //
- // Property Name: "LightPosition"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION = 0,
-
- //
- // Property Name: "PointsAt"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTSPECULAR_PROP_POINTS_AT = 1,
-
- //
- // Property Name: "Focus"
- // Property Type: FLOAT
- //
- D2D1_SPOTSPECULAR_PROP_FOCUS = 2,
-
- //
- // Property Name: "LimitingConeAngle"
- // Property Type: FLOAT
- //
- D2D1_SPOTSPECULAR_PROP_LIMITING_CONE_ANGLE = 3,
-
- //
- // Property Name: "SpecularExponent"
- // Property Type: FLOAT
- //
- D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT = 4,
-
- //
- // Property Name: "SpecularConstant"
- // Property Type: FLOAT
- //
- D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT = 5,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE = 6,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTSPECULAR_PROP_COLOR = 7,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 8,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_SPOTSPECULAR_SCALE_MODE
- //
- D2D1_SPOTSPECULAR_PROP_SCALE_MODE = 9,
- D2D1_SPOTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "LightPosition"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION = 0,
+
+ ///
+ /// Property Name: "PointsAt"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTSPECULAR_PROP_POINTS_AT = 1,
+
+ ///
+ /// Property Name: "Focus"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTSPECULAR_PROP_FOCUS = 2,
+
+ ///
+ /// Property Name: "LimitingConeAngle"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTSPECULAR_PROP_LIMITING_CONE_ANGLE = 3,
+
+ ///
+ /// Property Name: "SpecularExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT = 4,
+
+ ///
+ /// Property Name: "SpecularConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT = 5,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE = 6,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTSPECULAR_PROP_COLOR = 7,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 8,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_SPOTSPECULAR_SCALE_MODE
+ ///
+ D2D1_SPOTSPECULAR_PROP_SCALE_MODE = 9,
+ D2D1_SPOTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SPOTSPECULAR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SPOTSPECULAR_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_SPOTSPECULAR_SCALE_MODE
{
- D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR = 1,
- D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC = 2,
- D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_SPOTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR = 1,
+ D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC = 2,
+ D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_SPOTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_SPOTSPECULAR_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISTANTSPECULAR_PROP
-//
-// Synopsis:
-// The enumeration of the Distant-Specular effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Distant-Specular effect's top level properties.
+///
typedef enum D2D1_DISTANTSPECULAR_PROP
{
-
- //
- // Property Name: "Azimuth"
- // Property Type: FLOAT
- //
- D2D1_DISTANTSPECULAR_PROP_AZIMUTH = 0,
-
- //
- // Property Name: "Elevation"
- // Property Type: FLOAT
- //
- D2D1_DISTANTSPECULAR_PROP_ELEVATION = 1,
-
- //
- // Property Name: "SpecularExponent"
- // Property Type: FLOAT
- //
- D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT = 2,
-
- //
- // Property Name: "SpecularConstant"
- // Property Type: FLOAT
- //
- D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT = 3,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE = 4,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_DISTANTSPECULAR_PROP_COLOR = 5,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 6,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_DISTANTSPECULAR_SCALE_MODE
- //
- D2D1_DISTANTSPECULAR_PROP_SCALE_MODE = 7,
- D2D1_DISTANTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Azimuth"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTSPECULAR_PROP_AZIMUTH = 0,
+
+ ///
+ /// Property Name: "Elevation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTSPECULAR_PROP_ELEVATION = 1,
+
+ ///
+ /// Property Name: "SpecularExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT = 2,
+
+ ///
+ /// Property Name: "SpecularConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT = 3,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE = 4,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_DISTANTSPECULAR_PROP_COLOR = 5,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 6,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_DISTANTSPECULAR_SCALE_MODE
+ ///
+ D2D1_DISTANTSPECULAR_PROP_SCALE_MODE = 7,
+ D2D1_DISTANTSPECULAR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DISTANTSPECULAR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISTANTSPECULAR_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_DISTANTSPECULAR_SCALE_MODE
{
- D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR = 1,
- D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC = 2,
- D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_DISTANTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR = 1,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC = 2,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_DISTANTSPECULAR_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DISTANTSPECULAR_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_POINTDIFFUSE_PROP
-//
-// Synopsis:
-// The enumeration of the Point-Diffuse effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Point-Diffuse effect's top level properties.
+///
typedef enum D2D1_POINTDIFFUSE_PROP
{
-
- //
- // Property Name: "LightPosition"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION = 0,
-
- //
- // Property Name: "DiffuseConstant"
- // Property Type: FLOAT
- //
- D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT = 1,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE = 2,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_POINTDIFFUSE_PROP_COLOR = 3,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 4,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_POINTDIFFUSE_SCALE_MODE
- //
- D2D1_POINTDIFFUSE_PROP_SCALE_MODE = 5,
- D2D1_POINTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "LightPosition"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION = 0,
+
+ ///
+ /// Property Name: "DiffuseConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT = 1,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE = 2,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_POINTDIFFUSE_PROP_COLOR = 3,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 4,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_POINTDIFFUSE_SCALE_MODE
+ ///
+ D2D1_POINTDIFFUSE_PROP_SCALE_MODE = 5,
+ D2D1_POINTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_POINTDIFFUSE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_POINTDIFFUSE_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_POINTDIFFUSE_SCALE_MODE
{
- D2D1_POINTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR = 1,
- D2D1_POINTDIFFUSE_SCALE_MODE_CUBIC = 2,
- D2D1_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_POINTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_POINTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR = 1,
+ D2D1_POINTDIFFUSE_SCALE_MODE_CUBIC = 2,
+ D2D1_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_POINTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_POINTDIFFUSE_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SPOTDIFFUSE_PROP
-//
-// Synopsis:
-// The enumeration of the Spot-Diffuse effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Spot-Diffuse effect's top level properties.
+///
typedef enum D2D1_SPOTDIFFUSE_PROP
{
-
- //
- // Property Name: "LightPosition"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION = 0,
-
- //
- // Property Name: "PointsAt"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTDIFFUSE_PROP_POINTS_AT = 1,
-
- //
- // Property Name: "Focus"
- // Property Type: FLOAT
- //
- D2D1_SPOTDIFFUSE_PROP_FOCUS = 2,
-
- //
- // Property Name: "LimitingConeAngle"
- // Property Type: FLOAT
- //
- D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE = 3,
-
- //
- // Property Name: "DiffuseConstant"
- // Property Type: FLOAT
- //
- D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT = 4,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE = 5,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_SPOTDIFFUSE_PROP_COLOR = 6,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 7,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_SPOTDIFFUSE_SCALE_MODE
- //
- D2D1_SPOTDIFFUSE_PROP_SCALE_MODE = 8,
- D2D1_SPOTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "LightPosition"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION = 0,
+
+ ///
+ /// Property Name: "PointsAt"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTDIFFUSE_PROP_POINTS_AT = 1,
+
+ ///
+ /// Property Name: "Focus"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTDIFFUSE_PROP_FOCUS = 2,
+
+ ///
+ /// Property Name: "LimitingConeAngle"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE = 3,
+
+ ///
+ /// Property Name: "DiffuseConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT = 4,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE = 5,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_SPOTDIFFUSE_PROP_COLOR = 6,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 7,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_SPOTDIFFUSE_SCALE_MODE
+ ///
+ D2D1_SPOTDIFFUSE_PROP_SCALE_MODE = 8,
+ D2D1_SPOTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SPOTDIFFUSE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SPOTDIFFUSE_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_SPOTDIFFUSE_SCALE_MODE
{
- D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR = 1,
- D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC = 2,
- D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_SPOTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR = 1,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC = 2,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_SPOTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_SPOTDIFFUSE_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISTANTDIFFUSE_PROP
-//
-// Synopsis:
-// The enumeration of the Distant-Diffuse effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Distant-Diffuse effect's top level properties.
+///
typedef enum D2D1_DISTANTDIFFUSE_PROP
{
-
- //
- // Property Name: "Azimuth"
- // Property Type: FLOAT
- //
- D2D1_DISTANTDIFFUSE_PROP_AZIMUTH = 0,
-
- //
- // Property Name: "Elevation"
- // Property Type: FLOAT
- //
- D2D1_DISTANTDIFFUSE_PROP_ELEVATION = 1,
-
- //
- // Property Name: "DiffuseConstant"
- // Property Type: FLOAT
- //
- D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT = 2,
-
- //
- // Property Name: "SurfaceScale"
- // Property Type: FLOAT
- //
- D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE = 3,
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_DISTANTDIFFUSE_PROP_COLOR = 4,
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 5,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_DISTANTDIFFUSE_SCALE_MODE
- //
- D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE = 6,
- D2D1_DISTANTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Azimuth"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_AZIMUTH = 0,
+
+ ///
+ /// Property Name: "Elevation"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_ELEVATION = 1,
+
+ ///
+ /// Property Name: "DiffuseConstant"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT = 2,
+
+ ///
+ /// Property Name: "SurfaceScale"
+ /// Property Type: FLOAT
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE = 3,
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_COLOR = 4,
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 5,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_DISTANTDIFFUSE_SCALE_MODE
+ ///
+ D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE = 6,
+ D2D1_DISTANTDIFFUSE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DISTANTDIFFUSE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISTANTDIFFUSE_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_DISTANTDIFFUSE_SCALE_MODE
{
- D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR = 1,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC = 2,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_DISTANTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR = 1,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC = 2,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_DISTANTDIFFUSE_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_DISTANTDIFFUSE_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_FLOOD_PROP
-//
-// Synopsis:
-// The enumeration of the Flood effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Flood effect's top level properties.
+///
typedef enum D2D1_FLOOD_PROP
{
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_FLOOD_PROP_COLOR = 0,
- D2D1_FLOOD_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_FLOOD_PROP_COLOR = 0,
+ D2D1_FLOOD_PROP_FORCE_DWORD = 0xffffffff
} D2D1_FLOOD_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_LINEARTRANSFER_PROP
-//
-// Synopsis:
-// The enumeration of the Linear Transfer effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Linear Transfer effect's top level properties.
+///
typedef enum D2D1_LINEARTRANSFER_PROP
{
-
- //
- // Property Name: "RedYIntercept"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT = 0,
-
- //
- // Property Name: "RedSlope"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_RED_SLOPE = 1,
-
- //
- // Property Name: "RedDisable"
- // Property Type: BOOL
- //
- D2D1_LINEARTRANSFER_PROP_RED_DISABLE = 2,
-
- //
- // Property Name: "GreenYIntercept"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT = 3,
-
- //
- // Property Name: "GreenSlope"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE = 4,
-
- //
- // Property Name: "GreenDisable"
- // Property Type: BOOL
- //
- D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE = 5,
-
- //
- // Property Name: "BlueYIntercept"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT = 6,
-
- //
- // Property Name: "BlueSlope"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE = 7,
-
- //
- // Property Name: "BlueDisable"
- // Property Type: BOOL
- //
- D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE = 8,
-
- //
- // Property Name: "AlphaYIntercept"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT = 9,
-
- //
- // Property Name: "AlphaSlope"
- // Property Type: FLOAT
- //
- D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE = 10,
-
- //
- // Property Name: "AlphaDisable"
- // Property Type: BOOL
- //
- D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE = 11,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT = 12,
- D2D1_LINEARTRANSFER_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "RedYIntercept"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT = 0,
+
+ ///
+ /// Property Name: "RedSlope"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_RED_SLOPE = 1,
+
+ ///
+ /// Property Name: "RedDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_LINEARTRANSFER_PROP_RED_DISABLE = 2,
+
+ ///
+ /// Property Name: "GreenYIntercept"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT = 3,
+
+ ///
+ /// Property Name: "GreenSlope"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE = 4,
+
+ ///
+ /// Property Name: "GreenDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE = 5,
+
+ ///
+ /// Property Name: "BlueYIntercept"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT = 6,
+
+ ///
+ /// Property Name: "BlueSlope"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE = 7,
+
+ ///
+ /// Property Name: "BlueDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE = 8,
+
+ ///
+ /// Property Name: "AlphaYIntercept"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT = 9,
+
+ ///
+ /// Property Name: "AlphaSlope"
+ /// Property Type: FLOAT
+ ///
+ D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE = 10,
+
+ ///
+ /// Property Name: "AlphaDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE = 11,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT = 12,
+ D2D1_LINEARTRANSFER_PROP_FORCE_DWORD = 0xffffffff
} D2D1_LINEARTRANSFER_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_GAMMATRANSFER_PROP
-//
-// Synopsis:
-// The enumeration of the Gamma Transfer effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Gamma Transfer effect's top level properties.
+///
typedef enum D2D1_GAMMATRANSFER_PROP
{
-
- //
- // Property Name: "RedAmplitude"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE = 0,
-
- //
- // Property Name: "RedExponent"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_RED_EXPONENT = 1,
-
- //
- // Property Name: "RedOffset"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_RED_OFFSET = 2,
-
- //
- // Property Name: "RedDisable"
- // Property Type: BOOL
- //
- D2D1_GAMMATRANSFER_PROP_RED_DISABLE = 3,
-
- //
- // Property Name: "GreenAmplitude"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE = 4,
-
- //
- // Property Name: "GreenExponent"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT = 5,
-
- //
- // Property Name: "GreenOffset"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET = 6,
-
- //
- // Property Name: "GreenDisable"
- // Property Type: BOOL
- //
- D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE = 7,
-
- //
- // Property Name: "BlueAmplitude"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE = 8,
-
- //
- // Property Name: "BlueExponent"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT = 9,
-
- //
- // Property Name: "BlueOffset"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET = 10,
-
- //
- // Property Name: "BlueDisable"
- // Property Type: BOOL
- //
- D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE = 11,
-
- //
- // Property Name: "AlphaAmplitude"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE = 12,
-
- //
- // Property Name: "AlphaExponent"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT = 13,
-
- //
- // Property Name: "AlphaOffset"
- // Property Type: FLOAT
- //
- D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET = 14,
-
- //
- // Property Name: "AlphaDisable"
- // Property Type: BOOL
- //
- D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE = 15,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT = 16,
- D2D1_GAMMATRANSFER_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "RedAmplitude"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE = 0,
+
+ ///
+ /// Property Name: "RedExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_RED_EXPONENT = 1,
+
+ ///
+ /// Property Name: "RedOffset"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_RED_OFFSET = 2,
+
+ ///
+ /// Property Name: "RedDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_GAMMATRANSFER_PROP_RED_DISABLE = 3,
+
+ ///
+ /// Property Name: "GreenAmplitude"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE = 4,
+
+ ///
+ /// Property Name: "GreenExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT = 5,
+
+ ///
+ /// Property Name: "GreenOffset"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET = 6,
+
+ ///
+ /// Property Name: "GreenDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE = 7,
+
+ ///
+ /// Property Name: "BlueAmplitude"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE = 8,
+
+ ///
+ /// Property Name: "BlueExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT = 9,
+
+ ///
+ /// Property Name: "BlueOffset"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET = 10,
+
+ ///
+ /// Property Name: "BlueDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE = 11,
+
+ ///
+ /// Property Name: "AlphaAmplitude"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE = 12,
+
+ ///
+ /// Property Name: "AlphaExponent"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT = 13,
+
+ ///
+ /// Property Name: "AlphaOffset"
+ /// Property Type: FLOAT
+ ///
+ D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET = 14,
+
+ ///
+ /// Property Name: "AlphaDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE = 15,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT = 16,
+ D2D1_GAMMATRANSFER_PROP_FORCE_DWORD = 0xffffffff
} D2D1_GAMMATRANSFER_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TABLETRANSFER_PROP
-//
-// Synopsis:
-// The enumeration of the Table Transfer effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Table Transfer effect's top level properties.
+///
typedef enum D2D1_TABLETRANSFER_PROP
{
-
- //
- // Property Name: "RedTable"
- // Property Type: (blob)
- //
- D2D1_TABLETRANSFER_PROP_RED_TABLE = 0,
-
- //
- // Property Name: "RedDisable"
- // Property Type: BOOL
- //
- D2D1_TABLETRANSFER_PROP_RED_DISABLE = 1,
-
- //
- // Property Name: "GreenTable"
- // Property Type: (blob)
- //
- D2D1_TABLETRANSFER_PROP_GREEN_TABLE = 2,
-
- //
- // Property Name: "GreenDisable"
- // Property Type: BOOL
- //
- D2D1_TABLETRANSFER_PROP_GREEN_DISABLE = 3,
-
- //
- // Property Name: "BlueTable"
- // Property Type: (blob)
- //
- D2D1_TABLETRANSFER_PROP_BLUE_TABLE = 4,
-
- //
- // Property Name: "BlueDisable"
- // Property Type: BOOL
- //
- D2D1_TABLETRANSFER_PROP_BLUE_DISABLE = 5,
-
- //
- // Property Name: "AlphaTable"
- // Property Type: (blob)
- //
- D2D1_TABLETRANSFER_PROP_ALPHA_TABLE = 6,
-
- //
- // Property Name: "AlphaDisable"
- // Property Type: BOOL
- //
- D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE = 7,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT = 8,
- D2D1_TABLETRANSFER_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "RedTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_TABLETRANSFER_PROP_RED_TABLE = 0,
+
+ ///
+ /// Property Name: "RedDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_TABLETRANSFER_PROP_RED_DISABLE = 1,
+
+ ///
+ /// Property Name: "GreenTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_TABLETRANSFER_PROP_GREEN_TABLE = 2,
+
+ ///
+ /// Property Name: "GreenDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_TABLETRANSFER_PROP_GREEN_DISABLE = 3,
+
+ ///
+ /// Property Name: "BlueTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_TABLETRANSFER_PROP_BLUE_TABLE = 4,
+
+ ///
+ /// Property Name: "BlueDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_TABLETRANSFER_PROP_BLUE_DISABLE = 5,
+
+ ///
+ /// Property Name: "AlphaTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_TABLETRANSFER_PROP_ALPHA_TABLE = 6,
+
+ ///
+ /// Property Name: "AlphaDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE = 7,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT = 8,
+ D2D1_TABLETRANSFER_PROP_FORCE_DWORD = 0xffffffff
} D2D1_TABLETRANSFER_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_DISCRETETRANSFER_PROP
-//
-// Synopsis:
-// The enumeration of the Discrete Transfer effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Discrete Transfer effect's top level properties.
+///
typedef enum D2D1_DISCRETETRANSFER_PROP
{
-
- //
- // Property Name: "RedTable"
- // Property Type: (blob)
- //
- D2D1_DISCRETETRANSFER_PROP_RED_TABLE = 0,
-
- //
- // Property Name: "RedDisable"
- // Property Type: BOOL
- //
- D2D1_DISCRETETRANSFER_PROP_RED_DISABLE = 1,
-
- //
- // Property Name: "GreenTable"
- // Property Type: (blob)
- //
- D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE = 2,
-
- //
- // Property Name: "GreenDisable"
- // Property Type: BOOL
- //
- D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE = 3,
-
- //
- // Property Name: "BlueTable"
- // Property Type: (blob)
- //
- D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE = 4,
-
- //
- // Property Name: "BlueDisable"
- // Property Type: BOOL
- //
- D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE = 5,
-
- //
- // Property Name: "AlphaTable"
- // Property Type: (blob)
- //
- D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE = 6,
-
- //
- // Property Name: "AlphaDisable"
- // Property Type: BOOL
- //
- D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE = 7,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT = 8,
- D2D1_DISCRETETRANSFER_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "RedTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_DISCRETETRANSFER_PROP_RED_TABLE = 0,
+
+ ///
+ /// Property Name: "RedDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_DISCRETETRANSFER_PROP_RED_DISABLE = 1,
+
+ ///
+ /// Property Name: "GreenTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE = 2,
+
+ ///
+ /// Property Name: "GreenDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE = 3,
+
+ ///
+ /// Property Name: "BlueTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE = 4,
+
+ ///
+ /// Property Name: "BlueDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE = 5,
+
+ ///
+ /// Property Name: "AlphaTable"
+ /// Property Type: (blob)
+ ///
+ D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE = 6,
+
+ ///
+ /// Property Name: "AlphaDisable"
+ /// Property Type: BOOL
+ ///
+ D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE = 7,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT = 8,
+ D2D1_DISCRETETRANSFER_PROP_FORCE_DWORD = 0xffffffff
} D2D1_DISCRETETRANSFER_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CONVOLVEMATRIX_PROP
-//
-// Synopsis:
-// The enumeration of the Convolve Matrix effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Convolve Matrix effect's top level properties.
+///
typedef enum D2D1_CONVOLVEMATRIX_PROP
{
-
- //
- // Property Name: "KernelUnitLength"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_CONVOLVEMATRIX_PROP_KERNEL_UNIT_LENGTH = 0,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_CONVOLVEMATRIX_SCALE_MODE
- //
- D2D1_CONVOLVEMATRIX_PROP_SCALE_MODE = 1,
-
- //
- // Property Name: "KernelSizeX"
- // Property Type: UINT32
- //
- D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_X = 2,
-
- //
- // Property Name: "KernelSizeY"
- // Property Type: UINT32
- //
- D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_Y = 3,
-
- //
- // Property Name: "KernelMatrix"
- // Property Type: (blob)
- //
- D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX = 4,
-
- //
- // Property Name: "Divisor"
- // Property Type: FLOAT
- //
- D2D1_CONVOLVEMATRIX_PROP_DIVISOR = 5,
-
- //
- // Property Name: "Bias"
- // Property Type: FLOAT
- //
- D2D1_CONVOLVEMATRIX_PROP_BIAS = 6,
-
- //
- // Property Name: "KernelOffset"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_CONVOLVEMATRIX_PROP_KERNEL_OFFSET = 7,
-
- //
- // Property Name: "PreserveAlpha"
- // Property Type: BOOL
- //
- D2D1_CONVOLVEMATRIX_PROP_PRESERVE_ALPHA = 8,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_CONVOLVEMATRIX_PROP_BORDER_MODE = 9,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_CONVOLVEMATRIX_PROP_CLAMP_OUTPUT = 10,
- D2D1_CONVOLVEMATRIX_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "KernelUnitLength"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_KERNEL_UNIT_LENGTH = 0,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_CONVOLVEMATRIX_SCALE_MODE
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_SCALE_MODE = 1,
+
+ ///
+ /// Property Name: "KernelSizeX"
+ /// Property Type: UINT32
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_X = 2,
+
+ ///
+ /// Property Name: "KernelSizeY"
+ /// Property Type: UINT32
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_Y = 3,
+
+ ///
+ /// Property Name: "KernelMatrix"
+ /// Property Type: (blob)
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX = 4,
+
+ ///
+ /// Property Name: "Divisor"
+ /// Property Type: FLOAT
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_DIVISOR = 5,
+
+ ///
+ /// Property Name: "Bias"
+ /// Property Type: FLOAT
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_BIAS = 6,
+
+ ///
+ /// Property Name: "KernelOffset"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_KERNEL_OFFSET = 7,
+
+ ///
+ /// Property Name: "PreserveAlpha"
+ /// Property Type: BOOL
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_PRESERVE_ALPHA = 8,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_BORDER_MODE = 9,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_CONVOLVEMATRIX_PROP_CLAMP_OUTPUT = 10,
+ D2D1_CONVOLVEMATRIX_PROP_FORCE_DWORD = 0xffffffff
} D2D1_CONVOLVEMATRIX_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CONVOLVEMATRIX_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_CONVOLVEMATRIX_SCALE_MODE
{
- D2D1_CONVOLVEMATRIX_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR = 1,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_CUBIC = 2,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_CONVOLVEMATRIX_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR = 1,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_CUBIC = 2,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_CONVOLVEMATRIX_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_CONVOLVEMATRIX_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BRIGHTNESS_PROP
-//
-// Synopsis:
-// The enumeration of the Brightness effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Brightness effect's top level properties.
+///
typedef enum D2D1_BRIGHTNESS_PROP
{
-
- //
- // Property Name: "WhitePoint"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_BRIGHTNESS_PROP_WHITE_POINT = 0,
-
- //
- // Property Name: "BlackPoint"
- // Property Type: D2D1_VECTOR_2F
- //
- D2D1_BRIGHTNESS_PROP_BLACK_POINT = 1,
- D2D1_BRIGHTNESS_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "WhitePoint"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_BRIGHTNESS_PROP_WHITE_POINT = 0,
+
+ ///
+ /// Property Name: "BlackPoint"
+ /// Property Type: D2D1_VECTOR_2F
+ ///
+ D2D1_BRIGHTNESS_PROP_BLACK_POINT = 1,
+ D2D1_BRIGHTNESS_PROP_FORCE_DWORD = 0xffffffff
} D2D1_BRIGHTNESS_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ARITHMETICCOMPOSITE_PROP
-//
-// Synopsis:
-// The enumeration of the Arithmetic Composite effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Arithmetic Composite effect's top level properties.
+///
typedef enum D2D1_ARITHMETICCOMPOSITE_PROP
{
-
- //
- // Property Name: "Coefficients"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS = 0,
-
- //
- // Property Name: "ClampOutput"
- // Property Type: BOOL
- //
- D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT = 1,
- D2D1_ARITHMETICCOMPOSITE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Coefficients"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS = 0,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT = 1,
+ D2D1_ARITHMETICCOMPOSITE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_ARITHMETICCOMPOSITE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CROP_PROP
-//
-// Synopsis:
-// The enumeration of the Crop effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Crop effect's top level properties.
+///
typedef enum D2D1_CROP_PROP
{
-
- //
- // Property Name: "Rect"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_CROP_PROP_RECT = 0,
-
- //
- // Property Name: "BorderMode"
- // Property Type: D2D1_BORDER_MODE
- //
- D2D1_CROP_PROP_BORDER_MODE = 1,
- D2D1_CROP_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Rect"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_CROP_PROP_RECT = 0,
+
+ ///
+ /// Property Name: "BorderMode"
+ /// Property Type: D2D1_BORDER_MODE
+ ///
+ D2D1_CROP_PROP_BORDER_MODE = 1,
+ D2D1_CROP_PROP_FORCE_DWORD = 0xffffffff
} D2D1_CROP_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BORDER_PROP
-//
-// Synopsis:
-// The enumeration of the Border effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Border effect's top level properties.
+///
typedef enum D2D1_BORDER_PROP
{
-
- //
- // Property Name: "EdgeModeX"
- // Property Type: D2D1_BORDER_EDGE_MODE
- //
- D2D1_BORDER_PROP_EDGE_MODE_X = 0,
-
- //
- // Property Name: "EdgeModeY"
- // Property Type: D2D1_BORDER_EDGE_MODE
- //
- D2D1_BORDER_PROP_EDGE_MODE_Y = 1,
- D2D1_BORDER_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "EdgeModeX"
+ /// Property Type: D2D1_BORDER_EDGE_MODE
+ ///
+ D2D1_BORDER_PROP_EDGE_MODE_X = 0,
+
+ ///
+ /// Property Name: "EdgeModeY"
+ /// Property Type: D2D1_BORDER_EDGE_MODE
+ ///
+ D2D1_BORDER_PROP_EDGE_MODE_Y = 1,
+ D2D1_BORDER_PROP_FORCE_DWORD = 0xffffffff
} D2D1_BORDER_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_BORDER_EDGE_MODE
-//
-//------------------------------------------------------------------------------
+///
+/// The edge mode for the Border effect.
+///
typedef enum D2D1_BORDER_EDGE_MODE
{
- D2D1_BORDER_EDGE_MODE_CLAMP = 0,
- D2D1_BORDER_EDGE_MODE_WRAP = 1,
- D2D1_BORDER_EDGE_MODE_MIRROR = 2,
- D2D1_BORDER_EDGE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_BORDER_EDGE_MODE_CLAMP = 0,
+ D2D1_BORDER_EDGE_MODE_WRAP = 1,
+ D2D1_BORDER_EDGE_MODE_MIRROR = 2,
+ D2D1_BORDER_EDGE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_BORDER_EDGE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_MORPHOLOGY_PROP
-//
-// Synopsis:
-// The enumeration of the Morphology effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Morphology effect's top level properties.
+///
typedef enum D2D1_MORPHOLOGY_PROP
{
-
- //
- // Property Name: "Mode"
- // Property Type: D2D1_MORPHOLOGY_MODE
- //
- D2D1_MORPHOLOGY_PROP_MODE = 0,
-
- //
- // Property Name: "Width"
- // Property Type: UINT32
- //
- D2D1_MORPHOLOGY_PROP_WIDTH = 1,
-
- //
- // Property Name: "Height"
- // Property Type: UINT32
- //
- D2D1_MORPHOLOGY_PROP_HEIGHT = 2,
- D2D1_MORPHOLOGY_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Mode"
+ /// Property Type: D2D1_MORPHOLOGY_MODE
+ ///
+ D2D1_MORPHOLOGY_PROP_MODE = 0,
+
+ ///
+ /// Property Name: "Width"
+ /// Property Type: UINT32
+ ///
+ D2D1_MORPHOLOGY_PROP_WIDTH = 1,
+
+ ///
+ /// Property Name: "Height"
+ /// Property Type: UINT32
+ ///
+ D2D1_MORPHOLOGY_PROP_HEIGHT = 2,
+ D2D1_MORPHOLOGY_PROP_FORCE_DWORD = 0xffffffff
} D2D1_MORPHOLOGY_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_MORPHOLOGY_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_MORPHOLOGY_MODE
{
- D2D1_MORPHOLOGY_MODE_ERODE = 0,
- D2D1_MORPHOLOGY_MODE_DILATE = 1,
- D2D1_MORPHOLOGY_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_MORPHOLOGY_MODE_ERODE = 0,
+ D2D1_MORPHOLOGY_MODE_DILATE = 1,
+ D2D1_MORPHOLOGY_MODE_FORCE_DWORD = 0xffffffff
} D2D1_MORPHOLOGY_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TILE_PROP
-//
-// Synopsis:
-// The enumeration of the Tile effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Tile effect's top level properties.
+///
typedef enum D2D1_TILE_PROP
{
-
- //
- // Property Name: "Rect"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_TILE_PROP_RECT = 0,
- D2D1_TILE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Rect"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_TILE_PROP_RECT = 0,
+ D2D1_TILE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_TILE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ATLAS_PROP
-//
-// Synopsis:
-// The enumeration of the Atlas effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Atlas effect's top level properties.
+///
typedef enum D2D1_ATLAS_PROP
{
-
- //
- // Property Name: "InputRect"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_ATLAS_PROP_INPUT_RECT = 0,
-
- //
- // Property Name: "InputPaddingRect"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_ATLAS_PROP_INPUT_PADDING_RECT = 1,
- D2D1_ATLAS_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InputRect"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_ATLAS_PROP_INPUT_RECT = 0,
+
+ ///
+ /// Property Name: "InputPaddingRect"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_ATLAS_PROP_INPUT_PADDING_RECT = 1,
+ D2D1_ATLAS_PROP_FORCE_DWORD = 0xffffffff
} D2D1_ATLAS_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_OPACITYMETADATA_PROP
-//
-// Synopsis:
-// The enumeration of the Opacity Metadata effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Opacity Metadata effect's top level properties.
+///
typedef enum D2D1_OPACITYMETADATA_PROP
{
-
- //
- // Property Name: "InputOpaqueRect"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_OPACITYMETADATA_PROP_INPUT_OPAQUE_RECT = 0,
- D2D1_OPACITYMETADATA_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InputOpaqueRect"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_OPACITYMETADATA_PROP_INPUT_OPAQUE_RECT = 0,
+ D2D1_OPACITYMETADATA_PROP_FORCE_DWORD = 0xffffffff
} D2D1_OPACITYMETADATA_PROP;
diff --git a/3rdparty/minidx12/Include/d2d1effects_1.h b/3rdparty/minidx12/Include/d2d1effects_1.h
index d82d928dc0..38fad1c836 100644
--- a/3rdparty/minidx12/Include/d2d1effects_1.h
+++ b/3rdparty/minidx12/Include/d2d1effects_1.h
@@ -25,73 +25,53 @@
// Built in effect CLSIDs
DEFINE_GUID(CLSID_D2D1YCbCr, 0x99503cc1, 0x66c7, 0x45c9, 0xa8, 0x75, 0x8a, 0xd8, 0xa7, 0x91, 0x44, 0x01);
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_YCBCR_PROP
-//
-// Synopsis:
-// The enumeration of the YCbCr effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the YCbCr effect's top level properties.
+///
typedef enum D2D1_YCBCR_PROP
{
-
- //
- // Property Name: "ChromaSubsampling"
- // Property Type: D2D1_YCBCR_CHROMA_SUBSAMPLING
- //
- D2D1_YCBCR_PROP_CHROMA_SUBSAMPLING = 0,
-
- //
- // Property Name: "TransformMatrix"
- // Property Type: D2D1_MATRIX_3X2_F
- //
- D2D1_YCBCR_PROP_TRANSFORM_MATRIX = 1,
-
- //
- // Property Name: "InterpolationMode"
- // Property Type: D2D1_YCBCR_INTERPOLATION_MODE
- //
- D2D1_YCBCR_PROP_INTERPOLATION_MODE = 2,
- D2D1_YCBCR_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "ChromaSubsampling"
+ /// Property Type: D2D1_YCBCR_CHROMA_SUBSAMPLING
+ ///
+ D2D1_YCBCR_PROP_CHROMA_SUBSAMPLING = 0,
+
+ ///
+ /// Property Name: "TransformMatrix"
+ /// Property Type: D2D1_MATRIX_3X2_F
+ ///
+ D2D1_YCBCR_PROP_TRANSFORM_MATRIX = 1,
+
+ ///
+ /// Property Name: "InterpolationMode"
+ /// Property Type: D2D1_YCBCR_INTERPOLATION_MODE
+ ///
+ D2D1_YCBCR_PROP_INTERPOLATION_MODE = 2,
+ D2D1_YCBCR_PROP_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_YCBCR_CHROMA_SUBSAMPLING
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_YCBCR_CHROMA_SUBSAMPLING
{
- D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO = 0,
- D2D1_YCBCR_CHROMA_SUBSAMPLING_420 = 1,
- D2D1_YCBCR_CHROMA_SUBSAMPLING_422 = 2,
- D2D1_YCBCR_CHROMA_SUBSAMPLING_444 = 3,
- D2D1_YCBCR_CHROMA_SUBSAMPLING_440 = 4,
- D2D1_YCBCR_CHROMA_SUBSAMPLING_FORCE_DWORD = 0xffffffff
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO = 0,
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_420 = 1,
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_422 = 2,
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_444 = 3,
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_440 = 4,
+ D2D1_YCBCR_CHROMA_SUBSAMPLING_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_CHROMA_SUBSAMPLING;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_YCBCR_INTERPOLATION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_YCBCR_INTERPOLATION_MODE
{
- D2D1_YCBCR_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_YCBCR_INTERPOLATION_MODE_LINEAR = 1,
- D2D1_YCBCR_INTERPOLATION_MODE_CUBIC = 2,
- D2D1_YCBCR_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_YCBCR_INTERPOLATION_MODE_ANISOTROPIC = 4,
- D2D1_YCBCR_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
- D2D1_YCBCR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_YCBCR_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_YCBCR_INTERPOLATION_MODE_LINEAR = 1,
+ D2D1_YCBCR_INTERPOLATION_MODE_CUBIC = 2,
+ D2D1_YCBCR_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_YCBCR_INTERPOLATION_MODE_ANISOTROPIC = 4,
+ D2D1_YCBCR_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = 5,
+ D2D1_YCBCR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_YCBCR_INTERPOLATION_MODE;
diff --git a/3rdparty/minidx12/Include/d2d1effects_2.h b/3rdparty/minidx12/Include/d2d1effects_2.h
index 45f451d4ff..3640c47da5 100644
--- a/3rdparty/minidx12/Include/d2d1effects_2.h
+++ b/3rdparty/minidx12/Include/d2d1effects_2.h
@@ -41,553 +41,494 @@ DEFINE_GUID(CLSID_D2D1EdgeDetection, 0xEFF583CA, 0xCB07, 0x4AA9, 0xAC
DEFINE_GUID(CLSID_D2D1HighlightsShadows, 0xCADC8384, 0x323F, 0x4C7E, 0xA3, 0x61, 0x2E, 0x2B, 0x24, 0xDF, 0x6E, 0xE4);
DEFINE_GUID(CLSID_D2D1LookupTable3D, 0x349E0EDA, 0x0088, 0x4A79, 0x9C, 0xA3, 0xC7, 0xE3, 0x00, 0x20, 0x20, 0x20);
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CONTRAST_PROP
-//
-// Synopsis:
-// The enumeration of the Contrast effect's top level properties.
-//
-//------------------------------------------------------------------------------
+DEFINE_GUID(CLSID_D2D1Opacity, 0x811d79a4, 0xde28, 0x4454, 0x80, 0x94, 0xc6, 0x46, 0x85, 0xf8, 0xbd, 0x4c);
+DEFINE_GUID(CLSID_D2D1AlphaMask, 0xc80ecff0, 0x3fd5, 0x4f05, 0x83, 0x28, 0xc5, 0xd1, 0x72, 0x4b, 0x4f, 0x0a);
+DEFINE_GUID(CLSID_D2D1CrossFade, 0x12f575e8, 0x4db1, 0x485f, 0x9a, 0x84, 0x03, 0xa0, 0x7d, 0xd3, 0x82, 0x9f);
+DEFINE_GUID(CLSID_D2D1Tint, 0x36312b17, 0xf7dd, 0x4014, 0x91, 0x5d, 0xff, 0xca, 0x76, 0x8c, 0xf2, 0x11);
+
+#endif // #if NTDDI_VERSION >= NTDDI_WIN10_RS1
+
+///
+/// The enumeration of the Contrast effect's top level properties.
+///
typedef enum D2D1_CONTRAST_PROP
{
-
- //
- // Property Name: "Contrast"
- // Property Type: FLOAT
- //
- D2D1_CONTRAST_PROP_CONTRAST = 0,
-
- //
- // Property Name: "ClampInput"
- // Property Type: BOOL
- //
- D2D1_CONTRAST_PROP_CLAMP_INPUT = 1,
- D2D1_CONTRAST_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Contrast"
+ /// Property Type: FLOAT
+ ///
+ D2D1_CONTRAST_PROP_CONTRAST = 0,
+
+ ///
+ /// Property Name: "ClampInput"
+ /// Property Type: BOOL
+ ///
+ D2D1_CONTRAST_PROP_CLAMP_INPUT = 1,
+ D2D1_CONTRAST_PROP_FORCE_DWORD = 0xffffffff
} D2D1_CONTRAST_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_RGBTOHUE_PROP
-//
-// Synopsis:
-// The enumeration of the RgbToHue effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the RgbToHue effect's top level properties.
+///
typedef enum D2D1_RGBTOHUE_PROP
{
-
- //
- // Property Name: "OutputColorSpace"
- // Property Type: D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE
- //
- D2D1_RGBTOHUE_PROP_OUTPUT_COLOR_SPACE = 0,
- D2D1_RGBTOHUE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "OutputColorSpace"
+ /// Property Type: D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE
+ ///
+ D2D1_RGBTOHUE_PROP_OUTPUT_COLOR_SPACE = 0,
+ D2D1_RGBTOHUE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_RGBTOHUE_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE
{
- D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_HUE_SATURATION_VALUE = 0,
- D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_HUE_SATURATION_LIGHTNESS = 1,
- D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_FORCE_DWORD = 0xffffffff
+ D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_HUE_SATURATION_VALUE = 0,
+ D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_HUE_SATURATION_LIGHTNESS = 1,
+ D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE_FORCE_DWORD = 0xffffffff
} D2D1_RGBTOHUE_OUTPUT_COLOR_SPACE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HUETORGB_PROP
-//
-// Synopsis:
-// The enumeration of the HueToRgb effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the HueToRgb effect's top level properties.
+///
typedef enum D2D1_HUETORGB_PROP
{
-
- //
- // Property Name: "InputColorSpace"
- // Property Type: D2D1_HUETORGB_INPUT_COLOR_SPACE
- //
- D2D1_HUETORGB_PROP_INPUT_COLOR_SPACE = 0,
- D2D1_HUETORGB_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "InputColorSpace"
+ /// Property Type: D2D1_HUETORGB_INPUT_COLOR_SPACE
+ ///
+ D2D1_HUETORGB_PROP_INPUT_COLOR_SPACE = 0,
+ D2D1_HUETORGB_PROP_FORCE_DWORD = 0xffffffff
} D2D1_HUETORGB_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HUETORGB_INPUT_COLOR_SPACE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_HUETORGB_INPUT_COLOR_SPACE
{
- D2D1_HUETORGB_INPUT_COLOR_SPACE_HUE_SATURATION_VALUE = 0,
- D2D1_HUETORGB_INPUT_COLOR_SPACE_HUE_SATURATION_LIGHTNESS = 1,
- D2D1_HUETORGB_INPUT_COLOR_SPACE_FORCE_DWORD = 0xffffffff
+ D2D1_HUETORGB_INPUT_COLOR_SPACE_HUE_SATURATION_VALUE = 0,
+ D2D1_HUETORGB_INPUT_COLOR_SPACE_HUE_SATURATION_LIGHTNESS = 1,
+ D2D1_HUETORGB_INPUT_COLOR_SPACE_FORCE_DWORD = 0xffffffff
} D2D1_HUETORGB_INPUT_COLOR_SPACE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_CHROMAKEY_PROP
-//
-// Synopsis:
-// The enumeration of the Chroma Key effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Chroma Key effect's top level properties.
+///
typedef enum D2D1_CHROMAKEY_PROP
{
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_3F
- //
- D2D1_CHROMAKEY_PROP_COLOR = 0,
-
- //
- // Property Name: "Tolerance"
- // Property Type: FLOAT
- //
- D2D1_CHROMAKEY_PROP_TOLERANCE = 1,
-
- //
- // Property Name: "InvertAlpha"
- // Property Type: BOOL
- //
- D2D1_CHROMAKEY_PROP_INVERT_ALPHA = 2,
-
- //
- // Property Name: "Feather"
- // Property Type: BOOL
- //
- D2D1_CHROMAKEY_PROP_FEATHER = 3,
- D2D1_CHROMAKEY_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_3F
+ ///
+ D2D1_CHROMAKEY_PROP_COLOR = 0,
+
+ ///
+ /// Property Name: "Tolerance"
+ /// Property Type: FLOAT
+ ///
+ D2D1_CHROMAKEY_PROP_TOLERANCE = 1,
+
+ ///
+ /// Property Name: "InvertAlpha"
+ /// Property Type: BOOL
+ ///
+ D2D1_CHROMAKEY_PROP_INVERT_ALPHA = 2,
+
+ ///
+ /// Property Name: "Feather"
+ /// Property Type: BOOL
+ ///
+ D2D1_CHROMAKEY_PROP_FEATHER = 3,
+ D2D1_CHROMAKEY_PROP_FORCE_DWORD = 0xffffffff
} D2D1_CHROMAKEY_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_EMBOSS_PROP
-//
-// Synopsis:
-// The enumeration of the Emboss effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Emboss effect's top level properties.
+///
typedef enum D2D1_EMBOSS_PROP
{
-
- //
- // Property Name: "Height"
- // Property Type: FLOAT
- //
- D2D1_EMBOSS_PROP_HEIGHT = 0,
-
- //
- // Property Name: "Direction"
- // Property Type: FLOAT
- //
- D2D1_EMBOSS_PROP_DIRECTION = 1,
- D2D1_EMBOSS_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Height"
+ /// Property Type: FLOAT
+ ///
+ D2D1_EMBOSS_PROP_HEIGHT = 0,
+
+ ///
+ /// Property Name: "Direction"
+ /// Property Type: FLOAT
+ ///
+ D2D1_EMBOSS_PROP_DIRECTION = 1,
+ D2D1_EMBOSS_PROP_FORCE_DWORD = 0xffffffff
} D2D1_EMBOSS_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_EXPOSURE_PROP
-//
-// Synopsis:
-// The enumeration of the Exposure effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Exposure effect's top level properties.
+///
typedef enum D2D1_EXPOSURE_PROP
{
-
- //
- // Property Name: "ExposureValue"
- // Property Type: FLOAT
- //
- D2D1_EXPOSURE_PROP_EXPOSURE_VALUE = 0,
- D2D1_EXPOSURE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "ExposureValue"
+ /// Property Type: FLOAT
+ ///
+ D2D1_EXPOSURE_PROP_EXPOSURE_VALUE = 0,
+ D2D1_EXPOSURE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_EXPOSURE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_POSTERIZE_PROP
-//
-// Synopsis:
-// The enumeration of the Posterize effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Posterize effect's top level properties.
+///
typedef enum D2D1_POSTERIZE_PROP
{
-
- //
- // Property Name: "RedValueCount"
- // Property Type: UINT32
- //
- D2D1_POSTERIZE_PROP_RED_VALUE_COUNT = 0,
-
- //
- // Property Name: "GreenValueCount"
- // Property Type: UINT32
- //
- D2D1_POSTERIZE_PROP_GREEN_VALUE_COUNT = 1,
-
- //
- // Property Name: "BlueValueCount"
- // Property Type: UINT32
- //
- D2D1_POSTERIZE_PROP_BLUE_VALUE_COUNT = 2,
- D2D1_POSTERIZE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "RedValueCount"
+ /// Property Type: UINT32
+ ///
+ D2D1_POSTERIZE_PROP_RED_VALUE_COUNT = 0,
+
+ ///
+ /// Property Name: "GreenValueCount"
+ /// Property Type: UINT32
+ ///
+ D2D1_POSTERIZE_PROP_GREEN_VALUE_COUNT = 1,
+
+ ///
+ /// Property Name: "BlueValueCount"
+ /// Property Type: UINT32
+ ///
+ D2D1_POSTERIZE_PROP_BLUE_VALUE_COUNT = 2,
+ D2D1_POSTERIZE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_POSTERIZE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SEPIA_PROP
-//
-// Synopsis:
-// The enumeration of the Sepia effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Sepia effect's top level properties.
+///
typedef enum D2D1_SEPIA_PROP
{
-
- //
- // Property Name: "Intensity"
- // Property Type: FLOAT
- //
- D2D1_SEPIA_PROP_INTENSITY = 0,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_ALPHA_MODE
- //
- D2D1_SEPIA_PROP_ALPHA_MODE = 1,
- D2D1_SEPIA_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Intensity"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SEPIA_PROP_INTENSITY = 0,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_ALPHA_MODE
+ ///
+ D2D1_SEPIA_PROP_ALPHA_MODE = 1,
+ D2D1_SEPIA_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SEPIA_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_SHARPEN_PROP
-//
-// Synopsis:
-// The enumeration of the Sharpen effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Sharpen effect's top level properties.
+///
typedef enum D2D1_SHARPEN_PROP
{
-
- //
- // Property Name: "Sharpness"
- // Property Type: FLOAT
- //
- D2D1_SHARPEN_PROP_SHARPNESS = 0,
-
- //
- // Property Name: "Threshold"
- // Property Type: FLOAT
- //
- D2D1_SHARPEN_PROP_THRESHOLD = 1,
- D2D1_SHARPEN_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Sharpness"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SHARPEN_PROP_SHARPNESS = 0,
+
+ ///
+ /// Property Name: "Threshold"
+ /// Property Type: FLOAT
+ ///
+ D2D1_SHARPEN_PROP_THRESHOLD = 1,
+ D2D1_SHARPEN_PROP_FORCE_DWORD = 0xffffffff
} D2D1_SHARPEN_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_STRAIGHTEN_PROP
-//
-// Synopsis:
-// The enumeration of the Straighten effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Straighten effect's top level properties.
+///
typedef enum D2D1_STRAIGHTEN_PROP
{
-
- //
- // Property Name: "Angle"
- // Property Type: FLOAT
- //
- D2D1_STRAIGHTEN_PROP_ANGLE = 0,
-
- //
- // Property Name: "MaintainSize"
- // Property Type: BOOL
- //
- D2D1_STRAIGHTEN_PROP_MAINTAIN_SIZE = 1,
-
- //
- // Property Name: "ScaleMode"
- // Property Type: D2D1_STRAIGHTEN_SCALE_MODE
- //
- D2D1_STRAIGHTEN_PROP_SCALE_MODE = 2,
- D2D1_STRAIGHTEN_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Angle"
+ /// Property Type: FLOAT
+ ///
+ D2D1_STRAIGHTEN_PROP_ANGLE = 0,
+
+ ///
+ /// Property Name: "MaintainSize"
+ /// Property Type: BOOL
+ ///
+ D2D1_STRAIGHTEN_PROP_MAINTAIN_SIZE = 1,
+
+ ///
+ /// Property Name: "ScaleMode"
+ /// Property Type: D2D1_STRAIGHTEN_SCALE_MODE
+ ///
+ D2D1_STRAIGHTEN_PROP_SCALE_MODE = 2,
+ D2D1_STRAIGHTEN_PROP_FORCE_DWORD = 0xffffffff
} D2D1_STRAIGHTEN_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_STRAIGHTEN_SCALE_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_STRAIGHTEN_SCALE_MODE
{
- D2D1_STRAIGHTEN_SCALE_MODE_NEAREST_NEIGHBOR = 0,
- D2D1_STRAIGHTEN_SCALE_MODE_LINEAR = 1,
- D2D1_STRAIGHTEN_SCALE_MODE_CUBIC = 2,
- D2D1_STRAIGHTEN_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
- D2D1_STRAIGHTEN_SCALE_MODE_ANISOTROPIC = 4,
- D2D1_STRAIGHTEN_SCALE_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_STRAIGHTEN_SCALE_MODE_NEAREST_NEIGHBOR = 0,
+ D2D1_STRAIGHTEN_SCALE_MODE_LINEAR = 1,
+ D2D1_STRAIGHTEN_SCALE_MODE_CUBIC = 2,
+ D2D1_STRAIGHTEN_SCALE_MODE_MULTI_SAMPLE_LINEAR = 3,
+ D2D1_STRAIGHTEN_SCALE_MODE_ANISOTROPIC = 4,
+ D2D1_STRAIGHTEN_SCALE_MODE_FORCE_DWORD = 0xffffffff
} D2D1_STRAIGHTEN_SCALE_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_TEMPERATUREANDTINT_PROP
-//
-// Synopsis:
-// The enumeration of the Temperature And Tint effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Temperature And Tint effect's top level properties.
+///
typedef enum D2D1_TEMPERATUREANDTINT_PROP
{
-
- //
- // Property Name: "Temperature"
- // Property Type: FLOAT
- //
- D2D1_TEMPERATUREANDTINT_PROP_TEMPERATURE = 0,
-
- //
- // Property Name: "Tint"
- // Property Type: FLOAT
- //
- D2D1_TEMPERATUREANDTINT_PROP_TINT = 1,
- D2D1_TEMPERATUREANDTINT_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Temperature"
+ /// Property Type: FLOAT
+ ///
+ D2D1_TEMPERATUREANDTINT_PROP_TEMPERATURE = 0,
+
+ ///
+ /// Property Name: "Tint"
+ /// Property Type: FLOAT
+ ///
+ D2D1_TEMPERATUREANDTINT_PROP_TINT = 1,
+ D2D1_TEMPERATUREANDTINT_PROP_FORCE_DWORD = 0xffffffff
} D2D1_TEMPERATUREANDTINT_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_VIGNETTE_PROP
-//
-// Synopsis:
-// The enumeration of the Vignette effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Vignette effect's top level properties.
+///
typedef enum D2D1_VIGNETTE_PROP
{
-
- //
- // Property Name: "Color"
- // Property Type: D2D1_VECTOR_4F
- //
- D2D1_VIGNETTE_PROP_COLOR = 0,
-
- //
- // Property Name: "TransitionSize"
- // Property Type: FLOAT
- //
- D2D1_VIGNETTE_PROP_TRANSITION_SIZE = 1,
-
- //
- // Property Name: "Strength"
- // Property Type: FLOAT
- //
- D2D1_VIGNETTE_PROP_STRENGTH = 2,
- D2D1_VIGNETTE_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_VIGNETTE_PROP_COLOR = 0,
+
+ ///
+ /// Property Name: "TransitionSize"
+ /// Property Type: FLOAT
+ ///
+ D2D1_VIGNETTE_PROP_TRANSITION_SIZE = 1,
+
+ ///
+ /// Property Name: "Strength"
+ /// Property Type: FLOAT
+ ///
+ D2D1_VIGNETTE_PROP_STRENGTH = 2,
+ D2D1_VIGNETTE_PROP_FORCE_DWORD = 0xffffffff
} D2D1_VIGNETTE_PROP;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_EDGEDETECTION_PROP
-//
-// Synopsis:
-// The enumeration of the Edge Detection effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Edge Detection effect's top level properties.
+///
typedef enum D2D1_EDGEDETECTION_PROP
{
-
- //
- // Property Name: "Strength"
- // Property Type: FLOAT
- //
- D2D1_EDGEDETECTION_PROP_STRENGTH = 0,
-
- //
- // Property Name: "BlurRadius"
- // Property Type: FLOAT
- //
- D2D1_EDGEDETECTION_PROP_BLUR_RADIUS = 1,
-
- //
- // Property Name: "Mode"
- // Property Type: D2D1_EDGEDETECTION_MODE
- //
- D2D1_EDGEDETECTION_PROP_MODE = 2,
-
- //
- // Property Name: "OverlayEdges"
- // Property Type: BOOL
- //
- D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES = 3,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_ALPHA_MODE
- //
- D2D1_EDGEDETECTION_PROP_ALPHA_MODE = 4,
- D2D1_EDGEDETECTION_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Strength"
+ /// Property Type: FLOAT
+ ///
+ D2D1_EDGEDETECTION_PROP_STRENGTH = 0,
+
+ ///
+ /// Property Name: "BlurRadius"
+ /// Property Type: FLOAT
+ ///
+ D2D1_EDGEDETECTION_PROP_BLUR_RADIUS = 1,
+
+ ///
+ /// Property Name: "Mode"
+ /// Property Type: D2D1_EDGEDETECTION_MODE
+ ///
+ D2D1_EDGEDETECTION_PROP_MODE = 2,
+
+ ///
+ /// Property Name: "OverlayEdges"
+ /// Property Type: BOOL
+ ///
+ D2D1_EDGEDETECTION_PROP_OVERLAY_EDGES = 3,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_ALPHA_MODE
+ ///
+ D2D1_EDGEDETECTION_PROP_ALPHA_MODE = 4,
+ D2D1_EDGEDETECTION_PROP_FORCE_DWORD = 0xffffffff
} D2D1_EDGEDETECTION_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_EDGEDETECTION_MODE
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_EDGEDETECTION_MODE
{
- D2D1_EDGEDETECTION_MODE_SOBEL = 0,
- D2D1_EDGEDETECTION_MODE_PREWITT = 1,
- D2D1_EDGEDETECTION_MODE_FORCE_DWORD = 0xffffffff
+ D2D1_EDGEDETECTION_MODE_SOBEL = 0,
+ D2D1_EDGEDETECTION_MODE_PREWITT = 1,
+ D2D1_EDGEDETECTION_MODE_FORCE_DWORD = 0xffffffff
} D2D1_EDGEDETECTION_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HIGHLIGHTSANDSHADOWS_PROP
-//
-// Synopsis:
-// The enumeration of the Highlights and Shadows effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Highlights and Shadows effect's top level properties.
+///
typedef enum D2D1_HIGHLIGHTSANDSHADOWS_PROP
{
-
- //
- // Property Name: "Highlights"
- // Property Type: FLOAT
- //
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_HIGHLIGHTS = 0,
-
- //
- // Property Name: "Shadows"
- // Property Type: FLOAT
- //
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_SHADOWS = 1,
-
- //
- // Property Name: "Clarity"
- // Property Type: FLOAT
- //
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_CLARITY = 2,
-
- //
- // Property Name: "InputGamma"
- // Property Type: D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA
- //
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_INPUT_GAMMA = 3,
-
- //
- // Property Name: "MaskBlurRadius"
- // Property Type: FLOAT
- //
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_MASK_BLUR_RADIUS = 4,
- D2D1_HIGHLIGHTSANDSHADOWS_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Highlights"
+ /// Property Type: FLOAT
+ ///
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_HIGHLIGHTS = 0,
+
+ ///
+ /// Property Name: "Shadows"
+ /// Property Type: FLOAT
+ ///
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_SHADOWS = 1,
+
+ ///
+ /// Property Name: "Clarity"
+ /// Property Type: FLOAT
+ ///
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_CLARITY = 2,
+
+ ///
+ /// Property Name: "InputGamma"
+ /// Property Type: D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA
+ ///
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_INPUT_GAMMA = 3,
+
+ ///
+ /// Property Name: "MaskBlurRadius"
+ /// Property Type: FLOAT
+ ///
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_MASK_BLUR_RADIUS = 4,
+ D2D1_HIGHLIGHTSANDSHADOWS_PROP_FORCE_DWORD = 0xffffffff
} D2D1_HIGHLIGHTSANDSHADOWS_PROP;
-
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA
-//
-//------------------------------------------------------------------------------
typedef enum D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA
{
- D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_LINEAR = 0,
- D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_SRGB = 1,
- D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_FORCE_DWORD = 0xffffffff
+ D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_LINEAR = 0,
+ D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_SRGB = 1,
+ D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA_FORCE_DWORD = 0xffffffff
} D2D1_HIGHLIGHTSANDSHADOWS_INPUT_GAMMA;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_LOOKUPTABLE3D_PROP
-//
-// Synopsis:
-// The enumeration of the Lookup Table 3D effect's top level properties.
-//
-//------------------------------------------------------------------------------
+///
+/// The enumeration of the Lookup Table 3D effect's top level properties.
+///
typedef enum D2D1_LOOKUPTABLE3D_PROP
{
-
- //
- // Property Name: "Lut"
- // Property Type: IUnknown *
- //
- D2D1_LOOKUPTABLE3D_PROP_LUT = 0,
-
- //
- // Property Name: "AlphaMode"
- // Property Type: D2D1_ALPHA_MODE
- //
- D2D1_LOOKUPTABLE3D_PROP_ALPHA_MODE = 1,
- D2D1_LOOKUPTABLE3D_PROP_FORCE_DWORD = 0xffffffff
+
+ ///
+ /// Property Name: "Lut"
+ /// Property Type: IUnknown *
+ ///
+ D2D1_LOOKUPTABLE3D_PROP_LUT = 0,
+
+ ///
+ /// Property Name: "AlphaMode"
+ /// Property Type: D2D1_ALPHA_MODE
+ ///
+ D2D1_LOOKUPTABLE3D_PROP_ALPHA_MODE = 1,
+ D2D1_LOOKUPTABLE3D_PROP_FORCE_DWORD = 0xffffffff
} D2D1_LOOKUPTABLE3D_PROP;
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
+
+///
+/// The enumeration of the Opacity effect's top level properties.
+///
+typedef enum D2D1_OPACITY_PROP
+{
+
+ ///
+ /// Property Name: "Opacity"
+ /// Property Type: FLOAT
+ ///
+ D2D1_OPACITY_PROP_OPACITY = 0,
+ D2D1_OPACITY_PROP_FORCE_DWORD = 0xffffffff
+
+} D2D1_OPACITY_PROP;
+
+
+///
+/// The enumeration of the Cross Fade effect's top level properties.
+///
+typedef enum D2D1_CROSSFADE_PROP
+{
+
+ ///
+ /// Property Name: "Weight"
+ /// Property Type: FLOAT
+ ///
+ D2D1_CROSSFADE_PROP_WEIGHT = 0,
+ D2D1_CROSSFADE_PROP_FORCE_DWORD = 0xffffffff
+
+} D2D1_CROSSFADE_PROP;
+
+
+///
+/// The enumeration of the Tint effect's top level properties.
+///
+typedef enum D2D1_TINT_PROP
+{
+
+ ///
+ /// Property Name: "Color"
+ /// Property Type: D2D1_VECTOR_4F
+ ///
+ D2D1_TINT_PROP_COLOR = 0,
+
+ ///
+ /// Property Name: "ClampOutput"
+ /// Property Type: BOOL
+ ///
+ D2D1_TINT_PROP_CLAMP_OUTPUT = 1,
+ D2D1_TINT_PROP_FORCE_DWORD = 0xffffffff
+
+} D2D1_TINT_PROP;
+
+
+#endif // #if NTDDI_VERSION >= NTDDI_WIN10_RS1
+
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
diff --git a/3rdparty/minidx12/Include/d3d10.h b/3rdparty/minidx12/Include/d3d10.h
index 533ea057ac..c3e4e211ad 100644
--- a/3rdparty/minidx12/Include/d3d10.h
+++ b/3rdparty/minidx12/Include/d3d10.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/d3d10_1.h b/3rdparty/minidx12/Include/d3d10_1.h
index 24d1573fe8..daf0954e6b 100644
--- a/3rdparty/minidx12/Include/d3d10_1.h
+++ b/3rdparty/minidx12/Include/d3d10_1.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/d3d11.h b/3rdparty/minidx12/Include/d3d11.h
index 8d7838d4e5..d310f9702f 100644
--- a/3rdparty/minidx12/Include/d3d11.h
+++ b/3rdparty/minidx12/Include/d3d11.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
@@ -7306,7 +7306,8 @@ enum D3D11_FEATURE
D3D11_FEATURE_D3D9_OPTIONS1 = ( D3D11_FEATURE_MARKER_SUPPORT + 1 ) ,
D3D11_FEATURE_D3D11_OPTIONS2 = ( D3D11_FEATURE_D3D9_OPTIONS1 + 1 ) ,
D3D11_FEATURE_D3D11_OPTIONS3 = ( D3D11_FEATURE_D3D11_OPTIONS2 + 1 ) ,
- D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS3 + 1 )
+ D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS3 + 1 ) ,
+ D3D11_FEATURE_D3D11_OPTIONS4 = ( D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT + 1 )
} D3D11_FEATURE;
typedef struct D3D11_FEATURE_DATA_THREADING
@@ -9661,6 +9662,9 @@ DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC, 0xed418a9f, 0x0
DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC, 0xab998b5b, 0x4258,0x44a9,0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae);
DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN, 0x5b11d51b, 0x2f4c,0x4452,0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);
DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10, 0x107af0e0, 0xef1a,0x4d19,0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VP9_VLD_PROFILE0, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VP9_VLD_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);
+DEFINE_GUID(D3D11_DECODER_PROFILE_VP8_VLD, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);
typedef struct D3D11_VIDEO_DECODER_DESC
{
GUID Guid;
@@ -9929,7 +9933,8 @@ enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS
D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
- D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
+ D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800
} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
typedef
diff --git a/3rdparty/minidx12/Include/d3d11_1.h b/3rdparty/minidx12/Include/d3d11_1.h
index 5ad94f83b8..79e388d79b 100644
--- a/3rdparty/minidx12/Include/d3d11_1.h
+++ b/3rdparty/minidx12/Include/d3d11_1.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/d3d11_2.h b/3rdparty/minidx12/Include/d3d11_2.h
index c8dccdc7ca..ddfc8d9f09 100644
--- a/3rdparty/minidx12/Include/d3d11_2.h
+++ b/3rdparty/minidx12/Include/d3d11_2.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/d3d11_3.h b/3rdparty/minidx12/Include/d3d11_3.h
index 76922367dc..948017f4b0 100644
--- a/3rdparty/minidx12/Include/d3d11_3.h
+++ b/3rdparty/minidx12/Include/d3d11_3.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/d3d11_4.h b/3rdparty/minidx12/Include/d3d11_4.h
new file mode 100644
index 0000000000..65e3fb89ce
--- /dev/null
+++ b/3rdparty/minidx12/Include/d3d11_4.h
@@ -0,0 +1,2233 @@
+/*-------------------------------------------------------------------------------------
+ *
+ * Copyright (c) Microsoft Corporation
+ *
+ *-------------------------------------------------------------------------------------*/
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.01.0618 */
+/* @@MIDL_FILE_HEADING( ) */
+
+
+
+/* verify that the version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 500
+#endif
+
+/* verify that the version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCSAL_H_VERSION__
+#define __REQUIRED_RPCSAL_H_VERSION__ 100
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __d3d11_4_h__
+#define __d3d11_4_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __ID3D11Device4_FWD_DEFINED__
+#define __ID3D11Device4_FWD_DEFINED__
+typedef interface ID3D11Device4 ID3D11Device4;
+
+#endif /* __ID3D11Device4_FWD_DEFINED__ */
+
+
+#ifndef __ID3D11Multithread_FWD_DEFINED__
+#define __ID3D11Multithread_FWD_DEFINED__
+typedef interface ID3D11Multithread ID3D11Multithread;
+
+#endif /* __ID3D11Multithread_FWD_DEFINED__ */
+
+
+#ifndef __ID3D11VideoContext2_FWD_DEFINED__
+#define __ID3D11VideoContext2_FWD_DEFINED__
+typedef interface ID3D11VideoContext2 ID3D11VideoContext2;
+
+#endif /* __ID3D11VideoContext2_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "oaidl.h"
+#include "ocidl.h"
+#include "dxgi1_5.h"
+#include "d3dcommon.h"
+#include "d3d11_3.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_d3d11_4_0000_0000 */
+/* [local] */
+
+#ifdef __cplusplus
+}
+#endif
+#include "d3d11_3.h" //
+#ifdef __cplusplus
+extern "C"{
+#endif
+#pragma region App Family
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0000_v0_0_s_ifspec;
+
+#ifndef __ID3D11Device4_INTERFACE_DEFINED__
+#define __ID3D11Device4_INTERFACE_DEFINED__
+
+/* interface ID3D11Device4 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D11Device4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("8992ab71-02e6-4b8d-ba48-b056dcda42c4")
+ ID3D11Device4 : public ID3D11Device3
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE RegisterDeviceRemovedEvent(
+ /* [annotation] */
+ _In_ HANDLE hEvent,
+ /* [annotation] */
+ _Out_ DWORD *pdwCookie) = 0;
+
+ virtual void STDMETHODCALLTYPE UnregisterDeviceRemoved(
+ /* [annotation] */
+ _In_ DWORD dwCookie) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D11Device4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D11Device4 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D11Device4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D11Device4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateBuffer )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_BUFFER_DESC *pDesc,
+ /* [annotation] */
+ _In_opt_ const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Buffer **ppBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_TEXTURE1D_DESC *pDesc,
+ /* [annotation] */
+ _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Texture1D **ppTexture1D);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_TEXTURE2D_DESC *pDesc,
+ /* [annotation] */
+ _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Texture2D **ppTexture2D);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_TEXTURE3D_DESC *pDesc,
+ /* [annotation] */
+ _In_reads_opt_(_Inexpressible_(pDesc->MipLevels)) const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Texture3D **ppTexture3D);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(NumElements) const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
+ /* [annotation] */
+ _In_range_( 0, D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ) UINT NumElements,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecodeWithInputSignature,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11InputLayout **ppInputLayout);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11VertexShader **ppVertexShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_reads_opt_(NumEntries) const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
+ /* [annotation] */
+ _In_range_( 0, D3D11_SO_STREAM_COUNT * D3D11_SO_OUTPUT_COMPONENT_COUNT ) UINT NumEntries,
+ /* [annotation] */
+ _In_reads_opt_(NumStrides) const UINT *pBufferStrides,
+ /* [annotation] */
+ _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumStrides,
+ /* [annotation] */
+ _In_ UINT RasterizedStream,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11GeometryShader **ppGeometryShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11PixelShader **ppPixelShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHullShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11HullShader **ppHullShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDomainShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DomainShader **ppDomainShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateComputeShader )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_reads_(BytecodeLength) const void *pShaderBytecode,
+ /* [annotation] */
+ _In_ SIZE_T BytecodeLength,
+ /* [annotation] */
+ _In_opt_ ID3D11ClassLinkage *pClassLinkage,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11ComputeShader **ppComputeShader);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateClassLinkage )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _COM_Outptr_ ID3D11ClassLinkage **ppLinkage);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateBlendState )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_BLEND_DESC *pBlendStateDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11BlendState **ppBlendState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_SAMPLER_DESC *pSamplerDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateQuery )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_QUERY_DESC *pQueryDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Query **ppQuery);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePredicate )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_QUERY_DESC *pPredicateDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Predicate **ppPredicate);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCounter )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_COUNTER_DESC *pCounterDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Counter **ppCounter);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )(
+ ID3D11Device4 * This,
+ UINT ContextFlags,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ HANDLE hResource,
+ /* [annotation] */
+ _In_ REFIID ReturnedInterface,
+ /* [annotation] */
+ _COM_Outptr_opt_ void **ppResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation] */
+ _Out_ UINT *pFormatSupport);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation] */
+ _In_ UINT SampleCount,
+ /* [annotation] */
+ _Out_ UINT *pNumQualityLevels);
+
+ void ( STDMETHODCALLTYPE *CheckCounterInfo )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Out_ D3D11_COUNTER_INFO *pCounterInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckCounter )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_COUNTER_DESC *pDesc,
+ /* [annotation] */
+ _Out_ D3D11_COUNTER_TYPE *pType,
+ /* [annotation] */
+ _Out_ UINT *pActiveCounters,
+ /* [annotation] */
+ _Out_writes_opt_(*pNameLength) LPSTR szName,
+ /* [annotation] */
+ _Inout_opt_ UINT *pNameLength,
+ /* [annotation] */
+ _Out_writes_opt_(*pUnitsLength) LPSTR szUnits,
+ /* [annotation] */
+ _Inout_opt_ UINT *pUnitsLength,
+ /* [annotation] */
+ _Out_writes_opt_(*pDescriptionLength) LPSTR szDescription,
+ /* [annotation] */
+ _Inout_opt_ UINT *pDescriptionLength);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ ID3D11Device4 * This,
+ D3D11_FEATURE Feature,
+ /* [annotation] */
+ _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_opt_ const IUnknown *pData);
+
+ D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )(
+ ID3D11Device4 * This);
+
+ UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
+ ID3D11Device4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
+ ID3D11Device4 * This);
+
+ void ( STDMETHODCALLTYPE *GetImmediateContext )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11DeviceContext **ppImmediateContext);
+
+ HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )(
+ ID3D11Device4 * This,
+ UINT RaiseFlags);
+
+ UINT ( STDMETHODCALLTYPE *GetExceptionMode )(
+ ID3D11Device4 * This);
+
+ void ( STDMETHODCALLTYPE *GetImmediateContext1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11DeviceContext1 **ppImmediateContext);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext1 )(
+ ID3D11Device4 * This,
+ UINT ContextFlags,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDeviceContextState )(
+ ID3D11Device4 * This,
+ UINT Flags,
+ /* [annotation] */
+ _In_reads_( FeatureLevels ) const D3D_FEATURE_LEVEL *pFeatureLevels,
+ UINT FeatureLevels,
+ UINT SDKVersion,
+ REFIID EmulatedInterface,
+ /* [annotation] */
+ _Out_opt_ D3D_FEATURE_LEVEL *pChosenFeatureLevel,
+ /* [annotation] */
+ _Out_opt_ ID3DDeviceContextState **ppContextState);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedResource1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ HANDLE hResource,
+ /* [annotation] */
+ _In_ REFIID returnedInterface,
+ /* [annotation] */
+ _COM_Outptr_ void **ppResource);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedResourceByName )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ LPCWSTR lpName,
+ /* [annotation] */
+ _In_ DWORD dwDesiredAccess,
+ /* [annotation] */
+ _In_ REFIID returnedInterface,
+ /* [annotation] */
+ _COM_Outptr_ void **ppResource);
+
+ void ( STDMETHODCALLTYPE *GetImmediateContext2 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11DeviceContext2 **ppImmediateContext);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext2 )(
+ ID3D11Device4 * This,
+ UINT ContextFlags,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DeviceContext2 **ppDeferredContext);
+
+ void ( STDMETHODCALLTYPE *GetResourceTiling )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pTiledResource,
+ /* [annotation] */
+ _Out_opt_ UINT *pNumTilesForEntireResource,
+ /* [annotation] */
+ _Out_opt_ D3D11_PACKED_MIP_DESC *pPackedMipDesc,
+ /* [annotation] */
+ _Out_opt_ D3D11_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
+ /* [annotation] */
+ _Inout_opt_ UINT *pNumSubresourceTilings,
+ /* [annotation] */
+ _In_ UINT FirstSubresourceTilingToGet,
+ /* [annotation] */
+ _Out_writes_(*pNumSubresourceTilings) D3D11_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation] */
+ _In_ UINT SampleCount,
+ /* [annotation] */
+ _In_ UINT Flags,
+ /* [annotation] */
+ _Out_ UINT *pNumQualityLevels);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateTexture2D1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_TEXTURE2D_DESC1 *pDesc1,
+ /* [annotation] */
+ _In_reads_opt_(_Inexpressible_(pDesc1->MipLevels * pDesc1->ArraySize)) const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Texture2D1 **ppTexture2D);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateTexture3D1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_TEXTURE3D_DESC1 *pDesc1,
+ /* [annotation] */
+ _In_reads_opt_(_Inexpressible_(pDesc1->MipLevels)) const D3D11_SUBRESOURCE_DATA *pInitialData,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Texture3D1 **ppTexture3D);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState2 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_RASTERIZER_DESC2 *pRasterizerDesc,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11RasterizerState2 **ppRasterizerState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11ShaderResourceView1 **ppSRView1);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11UnorderedAccessView1 **ppUAView1);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pResource,
+ /* [annotation] */
+ _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11RenderTargetView1 **ppRTView1);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateQuery1 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ const D3D11_QUERY_DESC1 *pQueryDesc1,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11Query1 **ppQuery1);
+
+ void ( STDMETHODCALLTYPE *GetImmediateContext3 )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11DeviceContext3 **ppImmediateContext);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext3 )(
+ ID3D11Device4 * This,
+ UINT ContextFlags,
+ /* [annotation] */
+ _COM_Outptr_opt_ ID3D11DeviceContext3 **ppDeferredContext);
+
+ void ( STDMETHODCALLTYPE *WriteToSubresource )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ ID3D11Resource *pDstResource,
+ /* [annotation] */
+ _In_ UINT DstSubresource,
+ /* [annotation] */
+ _In_opt_ const D3D11_BOX *pDstBox,
+ /* [annotation] */
+ _In_ const void *pSrcData,
+ /* [annotation] */
+ _In_ UINT SrcRowPitch,
+ /* [annotation] */
+ _In_ UINT SrcDepthPitch);
+
+ void ( STDMETHODCALLTYPE *ReadFromSubresource )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _Out_ void *pDstData,
+ /* [annotation] */
+ _In_ UINT DstRowPitch,
+ /* [annotation] */
+ _In_ UINT DstDepthPitch,
+ /* [annotation] */
+ _In_ ID3D11Resource *pSrcResource,
+ /* [annotation] */
+ _In_ UINT SrcSubresource,
+ /* [annotation] */
+ _In_opt_ const D3D11_BOX *pSrcBox);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterDeviceRemovedEvent )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ HANDLE hEvent,
+ /* [annotation] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterDeviceRemoved )(
+ ID3D11Device4 * This,
+ /* [annotation] */
+ _In_ DWORD dwCookie);
+
+ END_INTERFACE
+ } ID3D11Device4Vtbl;
+
+ interface ID3D11Device4
+ {
+ CONST_VTBL struct ID3D11Device4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D11Device4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D11Device4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D11Device4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D11Device4_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \
+ ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) )
+
+#define ID3D11Device4_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \
+ ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) )
+
+#define ID3D11Device4_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \
+ ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) )
+
+#define ID3D11Device4_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \
+ ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) )
+
+#define ID3D11Device4_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \
+ ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) )
+
+#define ID3D11Device4_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \
+ ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) )
+
+#define ID3D11Device4_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \
+ ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) )
+
+#define ID3D11Device4_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \
+ ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) )
+
+#define ID3D11Device4_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \
+ ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) )
+
+#define ID3D11Device4_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \
+ ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) )
+
+#define ID3D11Device4_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \
+ ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) )
+
+#define ID3D11Device4_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) \
+ ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,pBufferStrides,NumStrides,RasterizedStream,pClassLinkage,ppGeometryShader) )
+
+#define ID3D11Device4_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \
+ ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) )
+
+#define ID3D11Device4_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \
+ ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) )
+
+#define ID3D11Device4_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \
+ ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) )
+
+#define ID3D11Device4_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \
+ ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) )
+
+#define ID3D11Device4_CreateClassLinkage(This,ppLinkage) \
+ ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) )
+
+#define ID3D11Device4_CreateBlendState(This,pBlendStateDesc,ppBlendState) \
+ ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) )
+
+#define ID3D11Device4_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \
+ ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) )
+
+#define ID3D11Device4_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \
+ ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) )
+
+#define ID3D11Device4_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \
+ ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) )
+
+#define ID3D11Device4_CreateQuery(This,pQueryDesc,ppQuery) \
+ ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) )
+
+#define ID3D11Device4_CreatePredicate(This,pPredicateDesc,ppPredicate) \
+ ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) )
+
+#define ID3D11Device4_CreateCounter(This,pCounterDesc,ppCounter) \
+ ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) )
+
+#define ID3D11Device4_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \
+ ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) )
+
+#define ID3D11Device4_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \
+ ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) )
+
+#define ID3D11Device4_CheckFormatSupport(This,Format,pFormatSupport) \
+ ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) )
+
+#define ID3D11Device4_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \
+ ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) )
+
+#define ID3D11Device4_CheckCounterInfo(This,pCounterInfo) \
+ ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) )
+
+#define ID3D11Device4_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) \
+ ( (This)->lpVtbl -> CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) )
+
+#define ID3D11Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#define ID3D11Device4_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D11Device4_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D11Device4_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D11Device4_GetFeatureLevel(This) \
+ ( (This)->lpVtbl -> GetFeatureLevel(This) )
+
+#define ID3D11Device4_GetCreationFlags(This) \
+ ( (This)->lpVtbl -> GetCreationFlags(This) )
+
+#define ID3D11Device4_GetDeviceRemovedReason(This) \
+ ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
+
+#define ID3D11Device4_GetImmediateContext(This,ppImmediateContext) \
+ ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) )
+
+#define ID3D11Device4_SetExceptionMode(This,RaiseFlags) \
+ ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) )
+
+#define ID3D11Device4_GetExceptionMode(This) \
+ ( (This)->lpVtbl -> GetExceptionMode(This) )
+
+
+#define ID3D11Device4_GetImmediateContext1(This,ppImmediateContext) \
+ ( (This)->lpVtbl -> GetImmediateContext1(This,ppImmediateContext) )
+
+#define ID3D11Device4_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) \
+ ( (This)->lpVtbl -> CreateDeferredContext1(This,ContextFlags,ppDeferredContext) )
+
+#define ID3D11Device4_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \
+ ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) )
+
+#define ID3D11Device4_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) \
+ ( (This)->lpVtbl -> CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) )
+
+#define ID3D11Device4_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) \
+ ( (This)->lpVtbl -> CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) )
+
+#define ID3D11Device4_OpenSharedResource1(This,hResource,returnedInterface,ppResource) \
+ ( (This)->lpVtbl -> OpenSharedResource1(This,hResource,returnedInterface,ppResource) )
+
+#define ID3D11Device4_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) \
+ ( (This)->lpVtbl -> OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) )
+
+
+#define ID3D11Device4_GetImmediateContext2(This,ppImmediateContext) \
+ ( (This)->lpVtbl -> GetImmediateContext2(This,ppImmediateContext) )
+
+#define ID3D11Device4_CreateDeferredContext2(This,ContextFlags,ppDeferredContext) \
+ ( (This)->lpVtbl -> CreateDeferredContext2(This,ContextFlags,ppDeferredContext) )
+
+#define ID3D11Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
+ ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
+
+#define ID3D11Device4_CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) \
+ ( (This)->lpVtbl -> CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) )
+
+
+#define ID3D11Device4_CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) \
+ ( (This)->lpVtbl -> CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) )
+
+#define ID3D11Device4_CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) \
+ ( (This)->lpVtbl -> CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) )
+
+#define ID3D11Device4_CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) \
+ ( (This)->lpVtbl -> CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) )
+
+#define ID3D11Device4_CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) \
+ ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) )
+
+#define ID3D11Device4_CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) \
+ ( (This)->lpVtbl -> CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) )
+
+#define ID3D11Device4_CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) \
+ ( (This)->lpVtbl -> CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) )
+
+#define ID3D11Device4_CreateQuery1(This,pQueryDesc1,ppQuery1) \
+ ( (This)->lpVtbl -> CreateQuery1(This,pQueryDesc1,ppQuery1) )
+
+#define ID3D11Device4_GetImmediateContext3(This,ppImmediateContext) \
+ ( (This)->lpVtbl -> GetImmediateContext3(This,ppImmediateContext) )
+
+#define ID3D11Device4_CreateDeferredContext3(This,ContextFlags,ppDeferredContext) \
+ ( (This)->lpVtbl -> CreateDeferredContext3(This,ContextFlags,ppDeferredContext) )
+
+#define ID3D11Device4_WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \
+ ( (This)->lpVtbl -> WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) )
+
+#define ID3D11Device4_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) \
+ ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) )
+
+
+#define ID3D11Device4_RegisterDeviceRemovedEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterDeviceRemovedEvent(This,hEvent,pdwCookie) )
+
+#define ID3D11Device4_UnregisterDeviceRemoved(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterDeviceRemoved(This,dwCookie) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D11Device4_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D11Multithread_INTERFACE_DEFINED__
+#define __ID3D11Multithread_INTERFACE_DEFINED__
+
+/* interface ID3D11Multithread */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D11Multithread;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9B7E4E00-342C-4106-A19F-4F2704F689F0")
+ ID3D11Multithread : public IUnknown
+ {
+ public:
+ virtual void STDMETHODCALLTYPE Enter( void) = 0;
+
+ virtual void STDMETHODCALLTYPE Leave( void) = 0;
+
+ virtual BOOL STDMETHODCALLTYPE SetMultithreadProtected(
+ /* [annotation] */
+ _In_ BOOL bMTProtect) = 0;
+
+ virtual BOOL STDMETHODCALLTYPE GetMultithreadProtected( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D11MultithreadVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D11Multithread * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D11Multithread * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D11Multithread * This);
+
+ void ( STDMETHODCALLTYPE *Enter )(
+ ID3D11Multithread * This);
+
+ void ( STDMETHODCALLTYPE *Leave )(
+ ID3D11Multithread * This);
+
+ BOOL ( STDMETHODCALLTYPE *SetMultithreadProtected )(
+ ID3D11Multithread * This,
+ /* [annotation] */
+ _In_ BOOL bMTProtect);
+
+ BOOL ( STDMETHODCALLTYPE *GetMultithreadProtected )(
+ ID3D11Multithread * This);
+
+ END_INTERFACE
+ } ID3D11MultithreadVtbl;
+
+ interface ID3D11Multithread
+ {
+ CONST_VTBL struct ID3D11MultithreadVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D11Multithread_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D11Multithread_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D11Multithread_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D11Multithread_Enter(This) \
+ ( (This)->lpVtbl -> Enter(This) )
+
+#define ID3D11Multithread_Leave(This) \
+ ( (This)->lpVtbl -> Leave(This) )
+
+#define ID3D11Multithread_SetMultithreadProtected(This,bMTProtect) \
+ ( (This)->lpVtbl -> SetMultithreadProtected(This,bMTProtect) )
+
+#define ID3D11Multithread_GetMultithreadProtected(This) \
+ ( (This)->lpVtbl -> GetMultithreadProtected(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D11Multithread_INTERFACE_DEFINED__ */
+
+
+#ifndef __ID3D11VideoContext2_INTERFACE_DEFINED__
+#define __ID3D11VideoContext2_INTERFACE_DEFINED__
+
+/* interface ID3D11VideoContext2 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D11VideoContext2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C4E7374C-6243-4D1B-AE87-52B4F740E261")
+ ID3D11VideoContext2 : public ID3D11VideoContext1
+ {
+ public:
+ virtual void STDMETHODCALLTYPE VideoProcessorSetOutputHDRMetaData(
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetOutputHDRMetaData(
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorSetStreamHDRMetaData(
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData) = 0;
+
+ virtual void STDMETHODCALLTYPE VideoProcessorGetStreamHDRMetaData(
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D11VideoContext2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D11VideoContext2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D11VideoContext2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D11VideoContext2 * This);
+
+ void ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _Outptr_ ID3D11Device **ppDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation] */
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ REFGUID guid,
+ /* [annotation] */
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDecoderBuffer )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ D3D11_VIDEO_DECODER_BUFFER_TYPE Type,
+ /* [annotation] */
+ _Out_ UINT *pBufferSize,
+ /* [annotation] */
+ _Outptr_result_bytebuffer_(*pBufferSize) void **ppBuffer);
+
+ HRESULT ( STDMETHODCALLTYPE *ReleaseDecoderBuffer )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_DECODER_BUFFER_TYPE Type);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderBeginFrame )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoderOutputView *pView,
+ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderEndFrame )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder);
+
+ HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *DecoderExtension )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL YCbCr,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_COLOR *pColor);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode,
+ /* [annotation] */
+ _In_ UINT StreamIndex);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ SIZE Size);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL Enable);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetOutputExtension )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_ void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *Enabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pYCbCr,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_COLOR *pColor);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode,
+ /* [annotation] */
+ _Out_ UINT *pStreamIndex);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ SIZE *pSize);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetOutputExtension )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Out_writes_bytes_(DataSize) void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_FRAME_FORMAT FrameFormat);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate,
+ /* [annotation] */
+ _In_ BOOL RepeatFrame,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pCustomRate);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamSourceRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ FLOAT Alpha);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPalette )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ UINT Count,
+ /* [annotation] */
+ _In_reads_opt_(Count) const UINT *pEntries);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pSourceAspectRatio,
+ /* [annotation] */
+ _In_opt_ const DXGI_RATIONAL *pDestinationAspectRatio);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamLumaKey )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ FLOAT Lower,
+ /* [annotation] */
+ _In_ FLOAT Upper);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format,
+ /* [annotation] */
+ _In_ BOOL LeftViewFrame0,
+ /* [annotation] */
+ _In_ BOOL BaseViewFrame0,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode,
+ /* [annotation] */
+ _In_ int MonoOffset);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAutoProcessingMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFilter )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ int Level);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetStreamExtension )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _In_ void *pData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFrameFormat )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_FRAME_FORMAT *pFrameFormat);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate,
+ /* [annotation] */
+ _Out_ BOOL *pRepeatFrame,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pCustomRate);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamSourceRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ RECT *pRect);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ FLOAT *pAlpha);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPalette )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ UINT Count,
+ /* [annotation] */
+ _Out_writes_(Count) UINT *pEntries);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pSourceAspectRatio,
+ /* [annotation] */
+ _Out_ DXGI_RATIONAL *pDestinationAspectRatio);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamLumaKey )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ FLOAT *pLower,
+ /* [annotation] */
+ _Out_ FLOAT *pUpper);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat,
+ /* [annotation] */
+ _Out_ BOOL *pLeftViewFrame0,
+ /* [annotation] */
+ _Out_ BOOL *pBaseViewFrame0,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode,
+ /* [annotation] */
+ _Out_ int *MonoOffset);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAutoProcessingMode )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFilter )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter,
+ /* [annotation] */
+ _Out_ BOOL *pEnabled,
+ /* [annotation] */
+ _Out_ int *pLevel);
+
+ APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetStreamExtension )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ const GUID *pExtensionGuid,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Out_writes_bytes_(DataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *VideoProcessorBlt )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessorOutputView *pView,
+ /* [annotation] */
+ _In_ UINT OutputFrame,
+ /* [annotation] */
+ _In_ UINT StreamCount,
+ /* [annotation] */
+ _In_reads_(StreamCount) const D3D11_VIDEO_PROCESSOR_STREAM *pStreams);
+
+ HRESULT ( STDMETHODCALLTYPE *NegotiateCryptoSessionKeyExchange )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData);
+
+ void ( STDMETHODCALLTYPE *EncryptionBlt )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pSrcSurface,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pDstSurface,
+ /* [annotation] */
+ _In_ UINT IVSize,
+ /* [annotation] */
+ _Inout_opt_bytecount_(IVSize) void *pIV);
+
+ void ( STDMETHODCALLTYPE *DecryptionBlt )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pSrcSurface,
+ /* [annotation] */
+ _In_ ID3D11Texture2D *pDstSurface,
+ /* [annotation] */
+ _In_opt_ D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
+ /* [annotation] */
+ _In_ UINT ContentKeySize,
+ /* [annotation] */
+ _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey,
+ /* [annotation] */
+ _In_ UINT IVSize,
+ /* [annotation] */
+ _Inout_opt_bytecount_(IVSize) void *pIV);
+
+ void ( STDMETHODCALLTYPE *StartSessionKeyRefresh )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT RandomNumberSize,
+ /* [annotation] */
+ _Out_writes_bytes_(RandomNumberSize) void *pRandomNumber);
+
+ void ( STDMETHODCALLTYPE *FinishSessionKeyRefresh )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession);
+
+ HRESULT ( STDMETHODCALLTYPE *GetEncryptionBltKey )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT KeySize,
+ /* [annotation] */
+ _Out_writes_bytes_(KeySize) void *pReadbackKey);
+
+ HRESULT ( STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT DataSize,
+ /* [annotation] */
+ _Inout_updates_bytes_(DataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *QueryAuthenticatedChannel )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT InputSize,
+ /* [annotation] */
+ _In_reads_bytes_(InputSize) const void *pInput,
+ /* [annotation] */
+ _In_ UINT OutputSize,
+ /* [annotation] */
+ _Out_writes_bytes_(OutputSize) void *pOutput);
+
+ HRESULT ( STDMETHODCALLTYPE *ConfigureAuthenticatedChannel )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11AuthenticatedChannel *pChannel,
+ /* [annotation] */
+ _In_ UINT InputSize,
+ /* [annotation] */
+ _In_reads_bytes_(InputSize) const void *pInput,
+ /* [annotation] */
+ _Out_ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamRotation )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ D3D11_VIDEO_PROCESSOR_ROTATION Rotation);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamRotation )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ D3D11_VIDEO_PROCESSOR_ROTATION *pRotation);
+
+ HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers1 )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ UINT NumBuffers,
+ /* [annotation] */
+ _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC1 *pBufferDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDataForNewHardwareKey )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _In_ UINT PrivateInputSize,
+ /* [annotation] */
+ _In_reads_(PrivateInputSize) const void *pPrivatInputData,
+ /* [annotation] */
+ _Out_ UINT64 *pPrivateOutputData);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckCryptoSessionStatus )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11CryptoSession *pCryptoSession,
+ /* [annotation] */
+ _Out_ D3D11_CRYPTO_SESSION_STATUS *pStatus);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderEnableDownsampling )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc,
+ /* [annotation] */
+ _In_ UINT ReferenceFrameCount);
+
+ HRESULT ( STDMETHODCALLTYPE *DecoderUpdateDownsampling )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoDecoder *pDecoder,
+ /* [annotation] */
+ _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1 )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ BOOL ShaderUsage);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1 )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ BOOL *pShaderUsage);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1 )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamMirror )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ BOOL Enable,
+ /* [annotation] */
+ _In_ BOOL FlipHorizontal,
+ /* [annotation] */
+ _In_ BOOL FlipVertical);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1 )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamMirror )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ BOOL *pEnable,
+ /* [annotation] */
+ _Out_ BOOL *pFlipHorizontal,
+ /* [annotation] */
+ _Out_ BOOL *pFlipVertical);
+
+ HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT OutputWidth,
+ /* [annotation] */
+ _In_ UINT OutputHeight,
+ /* [annotation] */
+ _In_ DXGI_FORMAT OutputFormat,
+ /* [annotation] */
+ _In_ UINT StreamCount,
+ /* [annotation] */
+ _In_reads_(StreamCount) const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *pStreams,
+ /* [annotation] */
+ _Out_ UINT *pBehaviorHints);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetOutputHDRMetaData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetOutputHDRMetaData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorSetStreamHDRMetaData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _In_reads_bytes_opt_(Size) const void *pHDRMetaData);
+
+ void ( STDMETHODCALLTYPE *VideoProcessorGetStreamHDRMetaData )(
+ ID3D11VideoContext2 * This,
+ /* [annotation] */
+ _In_ ID3D11VideoProcessor *pVideoProcessor,
+ /* [annotation] */
+ _In_ UINT StreamIndex,
+ /* [annotation] */
+ _Out_ DXGI_HDR_METADATA_TYPE *pType,
+ /* [annotation] */
+ _In_ UINT Size,
+ /* [annotation] */
+ _Out_writes_bytes_opt_(Size) void *pMetaData);
+
+ END_INTERFACE
+ } ID3D11VideoContext2Vtbl;
+
+ interface ID3D11VideoContext2
+ {
+ CONST_VTBL struct ID3D11VideoContext2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D11VideoContext2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D11VideoContext2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D11VideoContext2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D11VideoContext2_GetDevice(This,ppDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,ppDevice) )
+
+#define ID3D11VideoContext2_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D11VideoContext2_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D11VideoContext2_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+
+#define ID3D11VideoContext2_GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) \
+ ( (This)->lpVtbl -> GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) )
+
+#define ID3D11VideoContext2_ReleaseDecoderBuffer(This,pDecoder,Type) \
+ ( (This)->lpVtbl -> ReleaseDecoderBuffer(This,pDecoder,Type) )
+
+#define ID3D11VideoContext2_DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) \
+ ( (This)->lpVtbl -> DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) )
+
+#define ID3D11VideoContext2_DecoderEndFrame(This,pDecoder) \
+ ( (This)->lpVtbl -> DecoderEndFrame(This,pDecoder) )
+
+#define ID3D11VideoContext2_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) \
+ ( (This)->lpVtbl -> SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) )
+
+#define ID3D11VideoContext2_DecoderExtension(This,pDecoder,pExtensionData) \
+ ( (This)->lpVtbl -> DecoderExtension(This,pDecoder,pExtensionData) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) )
+
+#define ID3D11VideoContext2_VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) \
+ ( (This)->lpVtbl -> VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) )
+
+#define ID3D11VideoContext2_NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) \
+ ( (This)->lpVtbl -> NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) )
+
+#define ID3D11VideoContext2_EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) \
+ ( (This)->lpVtbl -> EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) )
+
+#define ID3D11VideoContext2_DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) \
+ ( (This)->lpVtbl -> DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) )
+
+#define ID3D11VideoContext2_StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) \
+ ( (This)->lpVtbl -> StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) )
+
+#define ID3D11VideoContext2_FinishSessionKeyRefresh(This,pCryptoSession) \
+ ( (This)->lpVtbl -> FinishSessionKeyRefresh(This,pCryptoSession) )
+
+#define ID3D11VideoContext2_GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) \
+ ( (This)->lpVtbl -> GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) )
+
+#define ID3D11VideoContext2_NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) \
+ ( (This)->lpVtbl -> NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) )
+
+#define ID3D11VideoContext2_QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) \
+ ( (This)->lpVtbl -> QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) )
+
+#define ID3D11VideoContext2_ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) \
+ ( (This)->lpVtbl -> ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) )
+
+
+#define ID3D11VideoContext2_SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) \
+ ( (This)->lpVtbl -> SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) )
+
+#define ID3D11VideoContext2_GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) \
+ ( (This)->lpVtbl -> GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) )
+
+#define ID3D11VideoContext2_CheckCryptoSessionStatus(This,pCryptoSession,pStatus) \
+ ( (This)->lpVtbl -> CheckCryptoSessionStatus(This,pCryptoSession,pStatus) )
+
+#define ID3D11VideoContext2_DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) \
+ ( (This)->lpVtbl -> DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) )
+
+#define ID3D11VideoContext2_DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) \
+ ( (This)->lpVtbl -> DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) )
+
+#define ID3D11VideoContext2_VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) \
+ ( (This)->lpVtbl -> VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) )
+
+
+#define ID3D11VideoContext2_VideoProcessorSetOutputHDRMetaData(This,pVideoProcessor,Type,Size,pHDRMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorSetOutputHDRMetaData(This,pVideoProcessor,Type,Size,pHDRMetaData) )
+
+#define ID3D11VideoContext2_VideoProcessorGetOutputHDRMetaData(This,pVideoProcessor,pType,Size,pMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorGetOutputHDRMetaData(This,pVideoProcessor,pType,Size,pMetaData) )
+
+#define ID3D11VideoContext2_VideoProcessorSetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,Type,Size,pHDRMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorSetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,Type,Size,pHDRMetaData) )
+
+#define ID3D11VideoContext2_VideoProcessorGetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,pType,Size,pMetaData) \
+ ( (This)->lpVtbl -> VideoProcessorGetStreamHDRMetaData(This,pVideoProcessor,StreamIndex,pType,Size,pMetaData) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D11VideoContext2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d11_4_0000_0003 */
+/* [local] */
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4
+ {
+ BOOL ExtendedNV12SharedTextureSupported;
+ } D3D11_FEATURE_DATA_D3D11_OPTIONS4;
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+#pragma endregion
+DEFINE_GUID(IID_ID3D11Device4,0x8992ab71,0x02e6,0x4b8d,0xba,0x48,0xb0,0x56,0xdc,0xda,0x42,0xc4);
+DEFINE_GUID(IID_ID3D11Multithread,0x9B7E4E00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);
+DEFINE_GUID(IID_ID3D11VideoContext2,0xC4E7374C,0x6243,0x4D1B,0xAE,0x87,0x52,0xB4,0xF7,0x40,0xE2,0x61);
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0003_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_0000_0003_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/3rdparty/minidx12/Include/d3d11on12.h b/3rdparty/minidx12/Include/d3d11on12.h
index f7f3fdd937..77b8ebe382 100644
--- a/3rdparty/minidx12/Include/d3d11on12.h
+++ b/3rdparty/minidx12/Include/d3d11on12.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
diff --git a/3rdparty/minidx12/Include/d3d12.h b/3rdparty/minidx12/Include/d3d12.h
index 0755bc96fa..c7db74fb91 100644
--- a/3rdparty/minidx12/Include/d3d12.h
+++ b/3rdparty/minidx12/Include/d3d12.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
@@ -71,6 +71,13 @@ typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserialize
#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */
+#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
+
+#endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */
+
+
#ifndef __ID3D12Pageable_FWD_DEFINED__
#define __ID3D12Pageable_FWD_DEFINED__
typedef interface ID3D12Pageable ID3D12Pageable;
@@ -162,6 +169,20 @@ typedef interface ID3D12Device ID3D12Device;
#endif /* __ID3D12Device_FWD_DEFINED__ */
+#ifndef __ID3D12PipelineLibrary_FWD_DEFINED__
+#define __ID3D12PipelineLibrary_FWD_DEFINED__
+typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary;
+
+#endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */
+
+
+#ifndef __ID3D12Device1_FWD_DEFINED__
+#define __ID3D12Device1_FWD_DEFINED__
+typedef interface ID3D12Device1 ID3D12Device1;
+
+#endif /* __ID3D12Device1_FWD_DEFINED__ */
+
+
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
@@ -1637,12 +1658,15 @@ typedef
enum D3D12_FEATURE
{
D3D12_FEATURE_D3D12_OPTIONS = 0,
- D3D12_FEATURE_ARCHITECTURE = ( D3D12_FEATURE_D3D12_OPTIONS + 1 ) ,
- D3D12_FEATURE_FEATURE_LEVELS = ( D3D12_FEATURE_ARCHITECTURE + 1 ) ,
- D3D12_FEATURE_FORMAT_SUPPORT = ( D3D12_FEATURE_FEATURE_LEVELS + 1 ) ,
- D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = ( D3D12_FEATURE_FORMAT_SUPPORT + 1 ) ,
- D3D12_FEATURE_FORMAT_INFO = ( D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS + 1 ) ,
- D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D12_FEATURE_FORMAT_INFO + 1 )
+ D3D12_FEATURE_ARCHITECTURE = 1,
+ D3D12_FEATURE_FEATURE_LEVELS = 2,
+ D3D12_FEATURE_FORMAT_SUPPORT = 3,
+ D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
+ D3D12_FEATURE_FORMAT_INFO = 5,
+ D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
+ D3D12_FEATURE_SHADER_MODEL = 7,
+ D3D12_FEATURE_D3D12_OPTIONS1 = 8,
+ D3D12_FEATURE_ROOT_SIGNATURE = 12
} D3D12_FEATURE;
typedef
@@ -1777,6 +1801,29 @@ typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
_Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
+ {
+ _Out_ BOOL WaveOps;
+ _Out_ UINT WaveLaneCountMin;
+ _Out_ UINT WaveLaneCountMax;
+ _Out_ UINT TotalLaneCount;
+ _Out_ BOOL ExpandedComputeResourceStates;
+ _Out_ BOOL Int64ShaderOps;
+ } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
+
+typedef
+enum D3D_ROOT_SIGNATURE_VERSION
+ {
+ D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
+ D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
+ D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2
+ } D3D_ROOT_SIGNATURE_VERSION;
+
+typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
+ {
+ _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion;
+ } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
+
typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
{
_In_ UINT NodeIndex;
@@ -1792,6 +1839,18 @@ typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
_Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
} D3D12_FEATURE_DATA_FEATURE_LEVELS;
+typedef
+enum D3D_SHADER_MODEL
+ {
+ D3D_SHADER_MODEL_5_1 = 0x51,
+ D3D_SHADER_MODEL_6_0 = 0x60
+ } D3D_SHADER_MODEL;
+
+typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
+ {
+ _Inout_ D3D_SHADER_MODEL HighestShaderModel;
+ } D3D12_FEATURE_DATA_SHADER_MODEL;
+
typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
{
_In_ DXGI_FORMAT Format;
@@ -1870,6 +1929,7 @@ enum D3D12_HEAP_FLAGS
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
+ D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
@@ -2799,10 +2859,79 @@ typedef struct D3D12_ROOT_SIGNATURE_DESC
} D3D12_ROOT_SIGNATURE_DESC;
typedef
-enum D3D_ROOT_SIGNATURE_VERSION
+enum D3D12_DESCRIPTOR_RANGE_FLAGS
{
- D3D_ROOT_SIGNATURE_VERSION_1 = 0x1
- } D3D_ROOT_SIGNATURE_VERSION;
+ D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+ D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8
+ } D3D12_DESCRIPTOR_RANGE_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS );
+typedef struct D3D12_DESCRIPTOR_RANGE1
+ {
+ D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
+ UINT NumDescriptors;
+ UINT BaseShaderRegister;
+ UINT RegisterSpace;
+ D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
+ UINT OffsetInDescriptorsFromTableStart;
+ } D3D12_DESCRIPTOR_RANGE1;
+
+typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
+ {
+ UINT NumDescriptorRanges;
+ _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
+ } D3D12_ROOT_DESCRIPTOR_TABLE1;
+
+typedef
+enum D3D12_ROOT_DESCRIPTOR_FLAGS
+ {
+ D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+ D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
+ } D3D12_ROOT_DESCRIPTOR_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS );
+typedef struct D3D12_ROOT_DESCRIPTOR1
+ {
+ UINT ShaderRegister;
+ UINT RegisterSpace;
+ D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
+ } D3D12_ROOT_DESCRIPTOR1;
+
+typedef struct D3D12_ROOT_PARAMETER1
+ {
+ D3D12_ROOT_PARAMETER_TYPE ParameterType;
+ union
+ {
+ D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
+ D3D12_ROOT_CONSTANTS Constants;
+ D3D12_ROOT_DESCRIPTOR1 Descriptor;
+ } ;
+ D3D12_SHADER_VISIBILITY ShaderVisibility;
+ } D3D12_ROOT_PARAMETER1;
+
+typedef struct D3D12_ROOT_SIGNATURE_DESC1
+ {
+ UINT NumParameters;
+ _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters;
+ UINT NumStaticSamplers;
+ _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
+ D3D12_ROOT_SIGNATURE_FLAGS Flags;
+ } D3D12_ROOT_SIGNATURE_DESC1;
+
+typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
+ {
+ D3D_ROOT_SIGNATURE_VERSION Version;
+ union
+ {
+ D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
+ D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
+ } ;
+ } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
@@ -2886,7 +3015,96 @@ EXTERN_C const IID IID_ID3D12RootSignatureDeserializer;
#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12_0000_0002 */
+#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
+
+/* interface ID3D12VersionedRootSignatureDeserializer */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0")
+ ID3D12VersionedRootSignatureDeserializer : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
+ D3D_ROOT_SIGNATURE_VERSION convertToVersion,
+ _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0;
+
+ virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12VersionedRootSignatureDeserializerVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12VersionedRootSignatureDeserializer * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12VersionedRootSignatureDeserializer * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12VersionedRootSignatureDeserializer * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )(
+ ID3D12VersionedRootSignatureDeserializer * This,
+ D3D_ROOT_SIGNATURE_VERSION convertToVersion,
+ _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc);
+
+ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )(
+ ID3D12VersionedRootSignatureDeserializer * This);
+
+ END_INTERFACE
+ } ID3D12VersionedRootSignatureDeserializerVtbl;
+
+ interface ID3D12VersionedRootSignatureDeserializer
+ {
+ CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12VersionedRootSignatureDeserializer_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \
+ ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) )
+
+#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \
+ ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0003 */
/* [local] */
typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(
@@ -2912,6 +3130,29 @@ HRESULT WINAPI D3D12CreateRootSignatureDeserializer(
_In_ SIZE_T SrcDataSizeInBytes,
_In_ REFIID pRootSignatureDeserializerInterface,
_Out_ void** ppRootSignatureDeserializer);
+
+typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
+ _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
+ _Out_ ID3DBlob** ppBlob,
+ _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
+
+HRESULT WINAPI D3D12SerializeVersionedRootSignature(
+ _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,
+ _Out_ ID3DBlob** ppBlob,
+ _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);
+
+typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
+ _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
+ _In_ SIZE_T SrcDataSizeInBytes,
+ _In_ REFIID pRootSignatureDeserializerInterface,
+ _Out_ void** ppRootSignatureDeserializer);
+
+HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(
+ _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,
+ _In_ SIZE_T SrcDataSizeInBytes,
+ _In_ REFIID pRootSignatureDeserializerInterface,
+ _Out_ void** ppRootSignatureDeserializer);
+
typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
{
SIZE_T ptr;
@@ -3089,8 +3330,8 @@ typedef struct D3D12_COMMAND_SIGNATURE_DESC
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0002_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0002_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec;
#ifndef __ID3D12Pageable_INTERFACE_DEFINED__
#define __ID3D12Pageable_INTERFACE_DEFINED__
@@ -4523,13 +4764,13 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList;
virtual void STDMETHODCALLTYPE SetDescriptorHeaps(
_In_ UINT NumDescriptorHeaps,
- _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps) = 0;
+ _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0;
virtual void STDMETHODCALLTYPE SetComputeRootSignature(
- _In_ ID3D12RootSignature *pRootSignature) = 0;
+ _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
virtual void STDMETHODCALLTYPE SetGraphicsRootSignature(
- _In_ ID3D12RootSignature *pRootSignature) = 0;
+ _In_opt_ ID3D12RootSignature *pRootSignature) = 0;
virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable(
_In_ UINT RootParameterIndex,
@@ -4600,7 +4841,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList;
virtual void STDMETHODCALLTYPE OMSetRenderTargets(
_In_ UINT NumRenderTargetDescriptors,
- _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
_In_ BOOL RTsSingleHandleToDescriptorRange,
_In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0;
@@ -4840,15 +5081,15 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList;
void ( STDMETHODCALLTYPE *SetDescriptorHeaps )(
ID3D12GraphicsCommandList * This,
_In_ UINT NumDescriptorHeaps,
- _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps);
+ _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps);
void ( STDMETHODCALLTYPE *SetComputeRootSignature )(
ID3D12GraphicsCommandList * This,
- _In_ ID3D12RootSignature *pRootSignature);
+ _In_opt_ ID3D12RootSignature *pRootSignature);
void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )(
ID3D12GraphicsCommandList * This,
- _In_ ID3D12RootSignature *pRootSignature);
+ _In_opt_ ID3D12RootSignature *pRootSignature);
void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )(
ID3D12GraphicsCommandList * This,
@@ -4935,7 +5176,7 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList;
void ( STDMETHODCALLTYPE *OMSetRenderTargets )(
ID3D12GraphicsCommandList * This,
_In_ UINT NumRenderTargetDescriptors,
- _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
+ _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
_In_ BOOL RTsSingleHandleToDescriptorRange,
_In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor);
@@ -5625,7 +5866,7 @@ EXTERN_C const IID IID_ID3D12Device;
virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
_In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
D3D12_HEAP_FLAGS HeapFlags,
- _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
D3D12_RESOURCE_STATES InitialResourceState,
_In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
REFIID riidResource,
@@ -5889,7 +6130,7 @@ EXTERN_C const IID IID_ID3D12Device;
ID3D12Device * This,
_In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
D3D12_HEAP_FLAGS HeapFlags,
- _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
D3D12_RESOURCE_STATES InitialResourceState,
_In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
REFIID riidResource,
@@ -6097,8 +6338,8 @@ EXTERN_C const IID IID_ID3D12Device;
#define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \
( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
-#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pResourceDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
- ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pResourceDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
+#define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
#define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \
( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
@@ -6171,7 +6412,712 @@ EXTERN_C const IID IID_ID3D12Device;
#endif /* __ID3D12Device_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12_0000_0017 */
+#ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__
+#define __ID3D12PipelineLibrary_INTERFACE_DEFINED__
+
+/* interface ID3D12PipelineLibrary */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12PipelineLibrary;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f")
+ ID3D12PipelineLibrary : public ID3D12DeviceChild
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE StorePipeline(
+ _In_opt_ LPCWSTR pName,
+ _In_ ID3D12PipelineState *pPipeline) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline(
+ _In_ LPCWSTR pName,
+ _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline(
+ _In_ LPCWSTR pName,
+ _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState) = 0;
+
+ virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Serialize(
+ _Out_writes_(DataSizeInBytes) void *pData,
+ SIZE_T DataSizeInBytes) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12PipelineLibraryVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12PipelineLibrary * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12PipelineLibrary * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12PipelineLibrary * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12PipelineLibrary * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12PipelineLibrary * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12PipelineLibrary * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12PipelineLibrary * This,
+ _In_z_ LPCWSTR Name);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ ID3D12PipelineLibrary * This,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *StorePipeline )(
+ ID3D12PipelineLibrary * This,
+ _In_opt_ LPCWSTR pName,
+ _In_ ID3D12PipelineState *pPipeline);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )(
+ ID3D12PipelineLibrary * This,
+ _In_ LPCWSTR pName,
+ _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )(
+ ID3D12PipelineLibrary * This,
+ _In_ LPCWSTR pName,
+ _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )(
+ ID3D12PipelineLibrary * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Serialize )(
+ ID3D12PipelineLibrary * This,
+ _Out_writes_(DataSizeInBytes) void *pData,
+ SIZE_T DataSizeInBytes);
+
+ END_INTERFACE
+ } ID3D12PipelineLibraryVtbl;
+
+ interface ID3D12PipelineLibrary
+ {
+ CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12PipelineLibrary_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12PipelineLibrary_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12PipelineLibrary_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
+
+
+#define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \
+ ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) )
+
+#define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) )
+
+#define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) )
+
+#define ID3D12PipelineLibrary_GetSerializedSize(This) \
+ ( (This)->lpVtbl -> GetSerializedSize(This) )
+
+#define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \
+ ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0019 */
+/* [local] */
+
+typedef
+enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
+ {
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0
+ } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS );
+typedef
+enum D3D12_RESIDENCY_PRIORITY
+ {
+ D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
+ D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
+ D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
+ D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0000000,
+ D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
+ } D3D12_RESIDENCY_PRIORITY;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec;
+
+#ifndef __ID3D12Device1_INTERFACE_DEFINED__
+#define __ID3D12Device1_INTERFACE_DEFINED__
+
+/* interface ID3D12Device1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Device1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
+ ID3D12Device1 : public ID3D12Device
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
+ _In_reads_(BlobLength) const void *pLibraryBlob,
+ SIZE_T BlobLength,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineLibrary) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
+ _In_reads_(NumFences) ID3D12Fence *const *ppFences,
+ _In_reads_(NumFences) const UINT64 *pFenceValues,
+ UINT NumFences,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
+ HANDLE hEvent) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Device1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Device1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Device1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Device1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ ID3D12Device1 * This,
+ _In_ REFGUID guid,
+ _Inout_ UINT *pDataSize,
+ _Out_writes_bytes_opt_( *pDataSize ) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ ID3D12Device1 * This,
+ _In_ REFGUID guid,
+ _In_ UINT DataSize,
+ _In_reads_bytes_opt_( DataSize ) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ ID3D12Device1 * This,
+ _In_ REFGUID guid,
+ _In_opt_ const IUnknown *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetName )(
+ ID3D12Device1 * This,
+ _In_z_ LPCWSTR Name);
+
+ UINT ( STDMETHODCALLTYPE *GetNodeCount )(
+ ID3D12Device1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandQueue);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )(
+ ID3D12Device1 * This,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandAllocator);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineState);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandList )(
+ ID3D12Device1 * This,
+ _In_ UINT nodeMask,
+ _In_ D3D12_COMMAND_LIST_TYPE type,
+ _In_ ID3D12CommandAllocator *pCommandAllocator,
+ _In_opt_ ID3D12PipelineState *pInitialState,
+ REFIID riid,
+ _COM_Outptr_ void **ppCommandList);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ ID3D12Device1 * This,
+ D3D12_FEATURE Feature,
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc,
+ REFIID riid,
+ _COM_Outptr_ void **ppvHeap);
+
+ UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )(
+ ID3D12Device1 * This,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )(
+ ID3D12Device1 * This,
+ _In_ UINT nodeMask,
+ _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature,
+ _In_ SIZE_T blobLengthInBytes,
+ REFIID riid,
+ _COM_Outptr_ void **ppvRootSignature);
+
+ void ( STDMETHODCALLTYPE *CreateConstantBufferView )(
+ ID3D12Device1 * This,
+ _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateShaderResourceView )(
+ ID3D12Device1 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )(
+ ID3D12Device1 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ ID3D12Resource *pCounterResource,
+ _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateRenderTargetView )(
+ ID3D12Device1 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateDepthStencilView )(
+ ID3D12Device1 * This,
+ _In_opt_ ID3D12Resource *pResource,
+ _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CreateSampler )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_SAMPLER_DESC *pDesc,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptors )(
+ ID3D12Device1 * This,
+ _In_ UINT NumDestDescriptorRanges,
+ _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts,
+ _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes,
+ _In_ UINT NumSrcDescriptorRanges,
+ _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts,
+ _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )(
+ ID3D12Device1 * This,
+ _In_ UINT NumDescriptors,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart,
+ _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart,
+ _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType);
+
+ D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )(
+ ID3D12Device1 * This,
+ _In_ UINT visibleMask,
+ _In_ UINT numResourceDescs,
+ _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs);
+
+ D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )(
+ ID3D12Device1 * This,
+ _In_ UINT nodeMask,
+ D3D12_HEAP_TYPE heapType);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties,
+ D3D12_HEAP_FLAGS HeapFlags,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialResourceState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riidResource,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateHeap )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )(
+ ID3D12Device1 * This,
+ _In_ ID3D12Heap *pHeap,
+ UINT64 HeapOffset,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_RESOURCE_DESC *pDesc,
+ D3D12_RESOURCE_STATES InitialState,
+ _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvResource);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )(
+ ID3D12Device1 * This,
+ _In_ ID3D12DeviceChild *pObject,
+ _In_opt_ const SECURITY_ATTRIBUTES *pAttributes,
+ DWORD Access,
+ _In_opt_ LPCWSTR Name,
+ _Out_ HANDLE *pHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )(
+ ID3D12Device1 * This,
+ _In_ HANDLE NTHandle,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvObj);
+
+ HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )(
+ ID3D12Device1 * This,
+ _In_ LPCWSTR Name,
+ DWORD Access,
+ /* [annotation][out] */
+ _Out_ HANDLE *pNTHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeResident )(
+ ID3D12Device1 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *Evict )(
+ ID3D12Device1 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateFence )(
+ ID3D12Device1 * This,
+ UINT64 InitialValue,
+ D3D12_FENCE_FLAGS Flags,
+ REFIID riid,
+ _COM_Outptr_ void **ppFence);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )(
+ ID3D12Device1 * This);
+
+ void ( STDMETHODCALLTYPE *GetCopyableFootprints )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_RESOURCE_DESC *pResourceDesc,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
+ _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources,
+ UINT64 BaseOffset,
+ _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts,
+ _Out_writes_opt_(NumSubresources) UINT *pNumRows,
+ _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes,
+ _Out_opt_ UINT64 *pTotalBytes);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_QUERY_HEAP_DESC *pDesc,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvHeap);
+
+ HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )(
+ ID3D12Device1 * This,
+ BOOL Enable);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )(
+ ID3D12Device1 * This,
+ _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc,
+ _In_opt_ ID3D12RootSignature *pRootSignature,
+ REFIID riid,
+ _COM_Outptr_opt_ void **ppvCommandSignature);
+
+ void ( STDMETHODCALLTYPE *GetResourceTiling )(
+ ID3D12Device1 * This,
+ _In_ ID3D12Resource *pTiledResource,
+ _Out_opt_ UINT *pNumTilesForEntireResource,
+ _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc,
+ _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips,
+ _Inout_opt_ UINT *pNumSubresourceTilings,
+ _In_ UINT FirstSubresourceTilingToGet,
+ _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips);
+
+ LUID ( STDMETHODCALLTYPE *GetAdapterLuid )(
+ ID3D12Device1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )(
+ ID3D12Device1 * This,
+ _In_reads_(BlobLength) const void *pLibraryBlob,
+ SIZE_T BlobLength,
+ REFIID riid,
+ _COM_Outptr_ void **ppPipelineLibrary);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )(
+ ID3D12Device1 * This,
+ _In_reads_(NumFences) ID3D12Fence *const *ppFences,
+ _In_reads_(NumFences) const UINT64 *pFenceValues,
+ UINT NumFences,
+ D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags,
+ HANDLE hEvent);
+
+ HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )(
+ ID3D12Device1 * This,
+ UINT NumObjects,
+ _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects,
+ _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities);
+
+ END_INTERFACE
+ } ID3D12Device1Vtbl;
+
+ interface ID3D12Device1
+ {
+ CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Device1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Device1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Device1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
+
+#define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
+
+#define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
+
+#define ID3D12Device1_SetName(This,Name) \
+ ( (This)->lpVtbl -> SetName(This,Name) )
+
+
+#define ID3D12Device1_GetNodeCount(This) \
+ ( (This)->lpVtbl -> GetNodeCount(This) )
+
+#define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \
+ ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) )
+
+#define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \
+ ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) )
+
+#define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \
+ ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) )
+
+#define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \
+ ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) )
+
+#define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) )
+
+#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \
+ ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) )
+
+#define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \
+ ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) )
+
+#define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \
+ ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) )
+
+#define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) )
+
+#define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \
+ ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) )
+
+#define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \
+ ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) )
+
+#define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \
+ ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) )
+
+#define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \
+ ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) )
+
+#define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \
+ ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) )
+
+#define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \
+ ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) )
+
+#define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \
+ ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) )
+
+#define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \
+ ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) )
+
+#define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) )
+
+#define ID3D12Device1_Evict(This,NumObjects,ppObjects) \
+ ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) )
+
+#define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \
+ ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) )
+
+#define ID3D12Device1_GetDeviceRemovedReason(This) \
+ ( (This)->lpVtbl -> GetDeviceRemovedReason(This) )
+
+#define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \
+ ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) )
+
+#define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \
+ ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) )
+
+#define ID3D12Device1_SetStablePowerState(This,Enable) \
+ ( (This)->lpVtbl -> SetStablePowerState(This,Enable) )
+
+#define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \
+ ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) )
+
+#define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \
+ ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) )
+
+#define ID3D12Device1_GetAdapterLuid(This) \
+ ( (This)->lpVtbl -> GetAdapterLuid(This) )
+
+
+#define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \
+ ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) )
+
+#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \
+ ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) )
+
+#define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \
+ ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Device1_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12_0000_0020 */
/* [local] */
typedef struct D3D12_SUBRESOURCE_DATA
@@ -6234,6 +7180,7 @@ DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0
DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);
DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);
DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);
+DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);
DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);
DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);
DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);
@@ -6247,10 +7194,12 @@ DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0
DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);
DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);
DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);
+DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);
+DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0017_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0017_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0020_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/3rdparty/minidx12/Include/d3d12sdklayers.h b/3rdparty/minidx12/Include/d3d12sdklayers.h
index e23088ea88..c961f18358 100644
--- a/3rdparty/minidx12/Include/d3d12sdklayers.h
+++ b/3rdparty/minidx12/Include/d3d12sdklayers.h
@@ -8,7 +8,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
@@ -50,6 +50,20 @@ typedef interface ID3D12Debug ID3D12Debug;
#endif /* __ID3D12Debug_FWD_DEFINED__ */
+#ifndef __ID3D12Debug1_FWD_DEFINED__
+#define __ID3D12Debug1_FWD_DEFINED__
+typedef interface ID3D12Debug1 ID3D12Debug1;
+
+#endif /* __ID3D12Debug1_FWD_DEFINED__ */
+
+
+#ifndef __ID3D12DebugDevice1_FWD_DEFINED__
+#define __ID3D12DebugDevice1_FWD_DEFINED__
+typedef interface ID3D12DebugDevice1 ID3D12DebugDevice1;
+
+#endif /* __ID3D12DebugDevice1_FWD_DEFINED__ */
+
+
#ifndef __ID3D12DebugDevice_FWD_DEFINED__
#define __ID3D12DebugDevice_FWD_DEFINED__
typedef interface ID3D12DebugDevice ID3D12DebugDevice;
@@ -64,6 +78,13 @@ typedef interface ID3D12DebugCommandQueue ID3D12DebugCommandQueue;
#endif /* __ID3D12DebugCommandQueue_FWD_DEFINED__ */
+#ifndef __ID3D12DebugCommandList1_FWD_DEFINED__
+#define __ID3D12DebugCommandList1_FWD_DEFINED__
+typedef interface ID3D12DebugCommandList1 ID3D12DebugCommandList1;
+
+#endif /* __ID3D12DebugCommandList1_FWD_DEFINED__ */
+
+
#ifndef __ID3D12DebugCommandList_FWD_DEFINED__
#define __ID3D12DebugCommandList_FWD_DEFINED__
typedef interface ID3D12DebugCommandList ID3D12DebugCommandList;
@@ -176,18 +197,106 @@ EXTERN_C const IID IID_ID3D12Debug;
#endif /* __ID3D12Debug_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0001 */
+#ifndef __ID3D12Debug1_INTERFACE_DEFINED__
+#define __ID3D12Debug1_INTERFACE_DEFINED__
+
+/* interface ID3D12Debug1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12Debug1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("affaa4ca-63fe-4d8e-b8ad-159000af4304")
+ ID3D12Debug1 : public IUnknown
+ {
+ public:
+ virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation(
+ BOOL Enable) = 0;
+
+ virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation(
+ BOOL Enable) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12Debug1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12Debug1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12Debug1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12Debug1 * This);
+
+ void ( STDMETHODCALLTYPE *EnableDebugLayer )(
+ ID3D12Debug1 * This);
+
+ void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )(
+ ID3D12Debug1 * This,
+ BOOL Enable);
+
+ void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )(
+ ID3D12Debug1 * This,
+ BOOL Enable);
+
+ END_INTERFACE
+ } ID3D12Debug1Vtbl;
+
+ interface ID3D12Debug1
+ {
+ CONST_VTBL struct ID3D12Debug1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12Debug1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12Debug1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12Debug1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12Debug1_EnableDebugLayer(This) \
+ ( (This)->lpVtbl -> EnableDebugLayer(This) )
+
+#define ID3D12Debug1_SetEnableGPUBasedValidation(This,Enable) \
+ ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) )
+
+#define ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(This,Enable) \
+ ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12Debug1_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3d12sdklayers_0000_0002 */
/* [local] */
-typedef
-enum D3D12_DEBUG_FEATURE
- {
- D3D12_DEBUG_FEATURE_NONE = 0,
- D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DRAW = 0x1,
- D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DISPATCH = 0x2
- } D3D12_DEBUG_FEATURE;
-
-DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEBUG_FEATURE );
typedef
enum D3D12_RLDO_FLAGS
{
@@ -198,10 +307,163 @@ enum D3D12_RLDO_FLAGS
} D3D12_RLDO_FLAGS;
DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)
+typedef
+enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE
+ {
+ D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS = 0,
+ D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = ( D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS + 1 )
+ } D3D12_DEBUG_DEVICE_PARAMETER_TYPE;
+
+typedef
+enum D3D12_DEBUG_FEATURE
+ {
+ D3D12_DEBUG_FEATURE_NONE = 0,
+ D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x1,
+ D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x2,
+ D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x4,
+ D3D12_DEBUG_FEATURE_VALID_MASK = ( ( D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS | D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING ) | D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION )
+ } D3D12_DEBUG_FEATURE;
+
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)
+typedef
+enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE
+ {
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE + 1 ) ,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY + 1 ) ,
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION + 1 ) ,
+ NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION + 1 )
+ } D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE;
+
+typedef
+enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS
+ {
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0,
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x1,
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x2,
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x4,
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x7
+ } D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS;
+
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)
+typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS
+ {
+ UINT MaxMessagesPerCommandList;
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode;
+ D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags;
+ } D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_s_ifspec;
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_s_ifspec;
+
+#ifndef __ID3D12DebugDevice1_INTERFACE_DEFINED__
+#define __ID3D12DebugDevice1_INTERFACE_DEFINED__
+
+/* interface ID3D12DebugDevice1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12DebugDevice1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("a9b71770-d099-4a65-a698-3dee10020f88")
+ ID3D12DebugDevice1 : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetDebugParameter(
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDebugParameter(
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects(
+ D3D12_RLDO_FLAGS Flags) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12DebugDevice1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12DebugDevice1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12DebugDevice1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12DebugDevice1 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )(
+ ID3D12DebugDevice1 * This,
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )(
+ ID3D12DebugDevice1 * This,
+ D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )(
+ ID3D12DebugDevice1 * This,
+ D3D12_RLDO_FLAGS Flags);
+
+ END_INTERFACE
+ } ID3D12DebugDevice1Vtbl;
+
+ interface ID3D12DebugDevice1
+ {
+ CONST_VTBL struct ID3D12DebugDevice1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12DebugDevice1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12DebugDevice1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12DebugDevice1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12DebugDevice1_SetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) )
+
+#define ID3D12DebugDevice1_GetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) )
+
+#define ID3D12DebugDevice1_ReportLiveDeviceObjects(This,Flags) \
+ ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12DebugDevice1_INTERFACE_DEFINED__ */
+
#ifndef __ID3D12DebugDevice_INTERFACE_DEFINED__
#define __ID3D12DebugDevice_INTERFACE_DEFINED__
@@ -300,14 +562,14 @@ EXTERN_C const IID IID_ID3D12DebugDevice;
#endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0002 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0004 */
/* [local] */
DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0002_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_s_ifspec;
#ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__
#define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__
@@ -392,6 +654,136 @@ EXTERN_C const IID IID_ID3D12DebugCommandQueue;
#endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */
+/* [local] */
+
+typedef
+enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE
+ {
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = 0
+ } D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE;
+
+typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS
+ {
+ D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode;
+ } D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_s_ifspec;
+
+#ifndef __ID3D12DebugCommandList1_INTERFACE_DEFINED__
+#define __ID3D12DebugCommandList1_INTERFACE_DEFINED__
+
+/* interface ID3D12DebugCommandList1 */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3D12DebugCommandList1;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("102ca951-311b-4b01-b11f-ecb83e061b37")
+ ID3D12DebugCommandList1 : public IUnknown
+ {
+ public:
+ virtual BOOL STDMETHODCALLTYPE AssertResourceState(
+ _In_ ID3D12Resource *pResource,
+ UINT Subresource,
+ UINT State) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetDebugParameter(
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDebugParameter(
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3D12DebugCommandList1Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3D12DebugCommandList1 * This,
+ REFIID riid,
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3D12DebugCommandList1 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3D12DebugCommandList1 * This);
+
+ BOOL ( STDMETHODCALLTYPE *AssertResourceState )(
+ ID3D12DebugCommandList1 * This,
+ _In_ ID3D12Resource *pResource,
+ UINT Subresource,
+ UINT State);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )(
+ ID3D12DebugCommandList1 * This,
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _In_reads_bytes_(DataSize) const void *pData,
+ UINT DataSize);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )(
+ ID3D12DebugCommandList1 * This,
+ D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type,
+ _Out_writes_bytes_(DataSize) void *pData,
+ UINT DataSize);
+
+ END_INTERFACE
+ } ID3D12DebugCommandList1Vtbl;
+
+ interface ID3D12DebugCommandList1
+ {
+ CONST_VTBL struct ID3D12DebugCommandList1Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3D12DebugCommandList1_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3D12DebugCommandList1_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3D12DebugCommandList1_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3D12DebugCommandList1_AssertResourceState(This,pResource,Subresource,State) \
+ ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) )
+
+#define ID3D12DebugCommandList1_SetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) )
+
+#define ID3D12DebugCommandList1_GetDebugParameter(This,Type,pData,DataSize) \
+ ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3D12DebugCommandList1_INTERFACE_DEFINED__ */
+
+
#ifndef __ID3D12DebugCommandList_INTERFACE_DEFINED__
#define __ID3D12DebugCommandList_INTERFACE_DEFINED__
@@ -493,7 +885,7 @@ EXTERN_C const IID IID_ID3D12DebugCommandList;
#endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0004 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0007 */
/* [local] */
typedef
@@ -1459,7 +1851,74 @@ enum D3D12_MESSAGE_ID
D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = ( D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE + 1 ) ,
D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = ( D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE + 1 ) ,
D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = ( D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT + 1 ) ,
- D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT + 1 )
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE + 1 ) ,
+ D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST + 1 ) ,
+ D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC + 1 ) ,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST + 1 ) ,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC + 1 ) ,
+ D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = ( D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET + 1 ) ,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = ( D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS + 1 ) ,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = ( D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END + 1 ) ,
+ D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = ( D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED + 1 ) ,
+ D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY + 1 ) ,
+ D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = ( D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY + 1 ) ,
+ D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = ( D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY + 1 ) ,
+ D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = ( D3D12_MESSAGE_ID_STOREPIPELINE_NONAME + 1 ) ,
+ D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = ( D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME + 1 ) ,
+ D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = ( D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND + 1 ) ,
+ D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = ( D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = ( D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY + 1 ) ,
+ D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED + 1 ) ,
+ D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODER = ( D3D12_MESSAGE_ID_CREATE_VIDEOCOMMANDLIST + 1 ) ,
+ D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODER + 1 ) ,
+ D3D12_MESSAGE_ID_LIVE_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM + 1 ) ,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODER = ( D3D12_MESSAGE_ID_LIVE_VIDEOCOMMANDLIST + 1 ) ,
+ D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODER + 1 ) ,
+ D3D12_MESSAGE_ID_DESTROY_VIDEOCOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM + 1 ) ,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = ( D3D12_MESSAGE_ID_DESTROY_VIDEOCOMMANDLIST + 1 ) ,
+ D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODER + 1 ) ,
+ D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM + 1 ) ,
+ D3D12_MESSAGE_ID_DEPRECATED_API = ( D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS + 1 ) ,
+ D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = ( D3D12_MESSAGE_ID_DEPRECATED_API + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET + 1 ) ,
+ D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET + 1 ) ,
+ D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = ( D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET + 1 ) ,
+ D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = ( D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE + 1 ) ,
+ D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = ( D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS + 1 ) ,
+ D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = ( D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D + 1 ) ,
+ D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = ( D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE + 1 ) ,
+ D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = ( D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE + 1 ) ,
+ D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED + 1 )
} D3D12_MESSAGE_ID;
typedef struct D3D12_MESSAGE
@@ -1490,8 +1949,8 @@ typedef struct D3D12_INFO_QUEUE_FILTER
#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0004_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_s_ifspec;
#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__
#define __ID3D12InfoQueue_INTERFACE_DEFINED__
@@ -1898,20 +2357,23 @@ EXTERN_C const IID IID_ID3D12InfoQueue;
#endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */
-/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */
+/* interface __MIDL_itf_d3d12sdklayers_0000_0008 */
/* [local] */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);
+DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);
+DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);
DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);
DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);
+DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);
DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);
DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/3rdparty/minidx12/Include/d3dcommon.h b/3rdparty/minidx12/Include/d3dcommon.h
index 16a5557215..a036804fd1 100644
--- a/3rdparty/minidx12/Include/d3dcommon.h
+++ b/3rdparty/minidx12/Include/d3dcommon.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
@@ -46,6 +46,13 @@ typedef interface ID3D10Blob ID3D10Blob;
#endif /* __ID3D10Blob_FWD_DEFINED__ */
+#ifndef __ID3DDestructionNotifier_FWD_DEFINED__
+#define __ID3DDestructionNotifier_FWD_DEFINED__
+typedef interface ID3DDestructionNotifier ID3DDestructionNotifier;
+
+#endif /* __ID3DDestructionNotifier_FWD_DEFINED__ */
+
+
/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"
@@ -442,6 +449,119 @@ typedef ID3D10Blob ID3DBlob;
typedef ID3DBlob* LPD3DBLOB;
#define IID_ID3DBlob IID_ID3D10Blob
+typedef void ( __stdcall *PFN_DESTRUCTION_CALLBACK )(
+ void *pData);
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec;
+
+#ifndef __ID3DDestructionNotifier_INTERFACE_DEFINED__
+#define __ID3DDestructionNotifier_INTERFACE_DEFINED__
+
+/* interface ID3DDestructionNotifier */
+/* [unique][local][object][uuid] */
+
+
+EXTERN_C const IID IID_ID3DDestructionNotifier;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("a06eb39a-50da-425b-8c31-4eecd6c270f3")
+ ID3DDestructionNotifier : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE RegisterDestructionCallback(
+ /* [annotation] */
+ _In_ PFN_DESTRUCTION_CALLBACK callbackFn,
+ /* [annotation] */
+ _In_ void *pData,
+ /* [annotation] */
+ _Out_ UINT *pCallbackID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnregisterDestructionCallback(
+ /* [annotation] */
+ _In_ UINT callbackID) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct ID3DDestructionNotifierVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ID3DDestructionNotifier * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ID3DDestructionNotifier * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ID3DDestructionNotifier * This);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterDestructionCallback )(
+ ID3DDestructionNotifier * This,
+ /* [annotation] */
+ _In_ PFN_DESTRUCTION_CALLBACK callbackFn,
+ /* [annotation] */
+ _In_ void *pData,
+ /* [annotation] */
+ _Out_ UINT *pCallbackID);
+
+ HRESULT ( STDMETHODCALLTYPE *UnregisterDestructionCallback )(
+ ID3DDestructionNotifier * This,
+ /* [annotation] */
+ _In_ UINT callbackID);
+
+ END_INTERFACE
+ } ID3DDestructionNotifierVtbl;
+
+ interface ID3DDestructionNotifier
+ {
+ CONST_VTBL struct ID3DDestructionNotifierVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ID3DDestructionNotifier_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ID3DDestructionNotifier_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ID3DDestructionNotifier_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ID3DDestructionNotifier_RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) \
+ ( (This)->lpVtbl -> RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) )
+
+#define ID3DDestructionNotifier_UnregisterDestructionCallback(This,callbackID) \
+ ( (This)->lpVtbl -> UnregisterDestructionCallback(This,callbackID) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ID3DDestructionNotifier_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_d3dcommon_0000_0002 */
+/* [local] */
+
typedef
enum _D3D_INCLUDE_TYPE
{
@@ -866,8 +986,8 @@ DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x0
#define D3D_COMPONENT_MASK_W 8
-extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
diff --git a/3rdparty/minidx12/Include/dcommon.h b/3rdparty/minidx12/Include/dcommon.h
index 5565a04056..dccaa3610a 100644
--- a/3rdparty/minidx12/Include/dcommon.h
+++ b/3rdparty/minidx12/Include/dcommon.h
@@ -3,7 +3,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Abstract:
-// Public API definitions for DWrite, D2D and DImage.
+// Public API definitions shared by DWrite, D2D, and DImage.
//
//----------------------------------------------------------------------------
#pragma once
@@ -21,84 +21,72 @@
#define CHECKMETHOD(method) virtual DECLSPEC_NOTHROW _Must_inspect_result_ HRESULT STDMETHODCALLTYPE method
#endif
+#pragma warning(push)
+#pragma warning(disable:4201) // anonymous unions warning
+
//
// Forward declarations
//
-interface IDXGISurface;
+struct IDXGISurface;
-//+----------------------------------------------------------------------------
-//
-// Enum:
-// DWRITE_MEASURING_MODE
-//
-// Synopsis:
-// The measuring method used for text layout.
-//
-//-------------------------------------------------------------------------------
+///
+/// The measuring method used for text layout.
+///
typedef enum DWRITE_MEASURING_MODE
{
- //
- // Text is measured using glyph ideal metrics whose values are independent to the current display resolution.
- //
+ ///
+ /// Text is measured using glyph ideal metrics whose values are independent to the current display resolution.
+ ///
DWRITE_MEASURING_MODE_NATURAL,
- //
- // Text is measured using glyph display compatible metrics whose values tuned for the current display resolution.
- //
+ ///
+ /// Text is measured using glyph display compatible metrics whose values tuned for the current display resolution.
+ ///
DWRITE_MEASURING_MODE_GDI_CLASSIC,
- //
+ ///
// Text is measured using the same glyph display metrics as text measured by GDI using a font
// created with CLEARTYPE_NATURAL_QUALITY.
- //
+ ///
DWRITE_MEASURING_MODE_GDI_NATURAL
} DWRITE_MEASURING_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Enum:
-// D2D1_ALPHA_MODE
-//
-// Synopsis:
-// Qualifies how alpha is to be treated in a bitmap or render target containing
-// alpha.
-//
-//------------------------------------------------------------------------------
+///
+/// Qualifies how alpha is to be treated in a bitmap or render target containing
+/// alpha.
+///
typedef enum D2D1_ALPHA_MODE
{
- //
- // Alpha mode should be determined implicitly. Some target surfaces do not supply
- // or imply this information in which case alpha must be specified.
- //
+ ///
+ /// Alpha mode should be determined implicitly. Some target surfaces do not supply
+ /// or imply this information in which case alpha must be specified.
+ ///
D2D1_ALPHA_MODE_UNKNOWN = 0,
- //
- // Treat the alpha as premultipled.
- //
+ ///
+ /// Treat the alpha as premultipled.
+ ///
D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
- //
- // Opacity is in the 'A' component only.
- //
+ ///
+ /// Opacity is in the 'A' component only.
+ ///
D2D1_ALPHA_MODE_STRAIGHT = 2,
- //
- // Ignore any alpha channel information.
- //
+ ///
+ /// Ignore any alpha channel information.
+ ///
D2D1_ALPHA_MODE_IGNORE = 3,
D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} D2D1_ALPHA_MODE;
-//+-----------------------------------------------------------------------------
-//
-// Struct:
-// D2D1_PIXEL_FORMAT
-//
-//------------------------------------------------------------------------------
+///
+/// Description of a pixel format.
+///
typedef struct D2D1_PIXEL_FORMAT
{
DXGI_FORMAT format;
@@ -106,4 +94,245 @@ typedef struct D2D1_PIXEL_FORMAT
} D2D1_PIXEL_FORMAT;
+///
+/// Represents an x-coordinate and y-coordinate pair in two-dimensional space.
+///
+typedef struct D2D_POINT_2U
+{
+ UINT32 x;
+ UINT32 y;
+
+} D2D_POINT_2U;
+
+///
+/// Represents an x-coordinate and y-coordinate pair in two-dimensional space.
+///
+typedef struct D2D_POINT_2F
+{
+ FLOAT x;
+ FLOAT y;
+
+} D2D_POINT_2F;
+
+typedef POINT D2D_POINT_2L;
+
+///
+/// A vector of 2 FLOAT values (x, y).
+///
+typedef struct D2D_VECTOR_2F
+{
+ FLOAT x;
+ FLOAT y;
+
+} D2D_VECTOR_2F;
+
+
+///
+/// A vector of 3 FLOAT values (x, y, z).
+///
+typedef struct D2D_VECTOR_3F
+{
+ FLOAT x;
+ FLOAT y;
+ FLOAT z;
+
+} D2D_VECTOR_3F;
+
+
+///
+/// A vector of 4 FLOAT values (x, y, z, w).
+///
+typedef struct D2D_VECTOR_4F
+{
+ FLOAT x;
+ FLOAT y;
+ FLOAT z;
+ FLOAT w;
+
+} D2D_VECTOR_4F;
+
+
+///
+/// Represents a rectangle defined by the coordinates of the upper-left corner
+/// (left, top) and the coordinates of the lower-right corner (right, bottom).
+///
+typedef struct D2D_RECT_F
+{
+ FLOAT left;
+ FLOAT top;
+ FLOAT right;
+ FLOAT bottom;
+
+} D2D_RECT_F;
+
+
+///
+/// Represents a rectangle defined by the coordinates of the upper-left corner
+/// (left, top) and the coordinates of the lower-right corner (right, bottom).
+///
+typedef struct D2D_RECT_U
+{
+ UINT32 left;
+ UINT32 top;
+ UINT32 right;
+ UINT32 bottom;
+
+} D2D_RECT_U;
+
+typedef RECT D2D_RECT_L;
+
+///
+/// Stores an ordered pair of floats, typically the width and height of a rectangle.
+///
+typedef struct D2D_SIZE_F
+{
+ FLOAT width;
+ FLOAT height;
+
+} D2D_SIZE_F;
+
+
+///
+/// Stores an ordered pair of integers, typically the width and height of a
+/// rectangle.
+///
+typedef struct D2D_SIZE_U
+{
+ UINT32 width;
+ UINT32 height;
+
+} D2D_SIZE_U;
+
+
+///
+/// Represents a 3-by-2 matrix.
+///
+typedef struct D2D_MATRIX_3X2_F
+{
+ union
+ {
+ struct
+ {
+ ///
+ /// Horizontal scaling / cosine of rotation
+ ///
+ FLOAT m11;
+
+ ///
+ /// Vertical shear / sine of rotation
+ ///
+ FLOAT m12;
+
+ ///
+ /// Horizontal shear / negative sine of rotation
+ ///
+ FLOAT m21;
+
+ ///
+ /// Vertical scaling / cosine of rotation
+ ///
+ FLOAT m22;
+
+ ///
+ /// Horizontal shift (always orthogonal regardless of rotation)
+ ///
+ FLOAT dx;
+
+ ///
+ /// Vertical shift (always orthogonal regardless of rotation)
+ ///
+ FLOAT dy;
+ };
+
+ struct
+ {
+ FLOAT _11, _12;
+ FLOAT _21, _22;
+ FLOAT _31, _32;
+ };
+
+ FLOAT m[3][2];
+ };
+
+} D2D_MATRIX_3X2_F;
+
+
+
+///
+/// Represents a 4-by-3 matrix.
+///
+typedef struct D2D_MATRIX_4X3_F
+{
+ union
+ {
+ struct
+ {
+ FLOAT _11, _12, _13;
+ FLOAT _21, _22, _23;
+ FLOAT _31, _32, _33;
+ FLOAT _41, _42, _43;
+ };
+
+ FLOAT m[4][3];
+ };
+
+} D2D_MATRIX_4X3_F;
+
+
+///
+/// Represents a 4-by-4 matrix.
+///
+typedef struct D2D_MATRIX_4X4_F
+{
+ union
+ {
+ struct
+ {
+ FLOAT _11, _12, _13, _14;
+ FLOAT _21, _22, _23, _24;
+ FLOAT _31, _32, _33, _34;
+ FLOAT _41, _42, _43, _44;
+ };
+
+ FLOAT m[4][4];
+ };
+
+} D2D_MATRIX_4X4_F;
+
+
+///
+/// Represents a 5-by-4 matrix.
+///
+typedef struct D2D_MATRIX_5X4_F
+{
+ union
+ {
+ struct
+ {
+ FLOAT _11, _12, _13, _14;
+ FLOAT _21, _22, _23, _24;
+ FLOAT _31, _32, _33, _34;
+ FLOAT _41, _42, _43, _44;
+ FLOAT _51, _52, _53, _54;
+ };
+
+ FLOAT m[5][4];
+ };
+
+} D2D_MATRIX_5X4_F;
+
+
+typedef D2D_POINT_2F D2D1_POINT_2F;
+typedef D2D_POINT_2U D2D1_POINT_2U;
+typedef D2D_POINT_2L D2D1_POINT_2L;
+typedef D2D_RECT_F D2D1_RECT_F;
+typedef D2D_RECT_U D2D1_RECT_U;
+typedef D2D_RECT_L D2D1_RECT_L;
+typedef D2D_SIZE_F D2D1_SIZE_F;
+typedef D2D_SIZE_U D2D1_SIZE_U;
+typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
+
+
+#pragma warning(pop)
+
#endif /* DCOMMON_H_INCLUDED */
diff --git a/3rdparty/minidx12/Include/dwrite.h b/3rdparty/minidx12/Include/dwrite.h
index e37bc2f1aa..40c62d8db7 100644
--- a/3rdparty/minidx12/Include/dwrite.h
+++ b/3rdparty/minidx12/Include/dwrite.h
@@ -10,9 +10,7 @@
#ifndef DWRITE_H_INCLUDED
#define DWRITE_H_INCLUDED
-#if _MSC_VER > 1000
#pragma once
-#endif
#ifndef DWRITE_NO_WINDOWS_H
@@ -56,7 +54,7 @@ enum DWRITE_FONT_FILE_TYPE
///
/// OpenType font that contains a TrueType collection.
///
- DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION,
+ DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION,
///
/// Type 1 PFM font.
@@ -76,7 +74,10 @@ enum DWRITE_FONT_FILE_TYPE
///
/// Bitmap .FON font.
///
- DWRITE_FONT_FILE_TYPE_BITMAP
+ DWRITE_FONT_FILE_TYPE_BITMAP,
+
+ // The following name is obsolete, but kept as an alias to avoid breaking existing code.
+ DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION,
};
///
@@ -97,9 +98,9 @@ enum DWRITE_FONT_FACE_TYPE
DWRITE_FONT_FACE_TYPE_TRUETYPE,
///
- /// OpenType font face that is a part of a TrueType collection.
+ /// OpenType font face that is a part of a TrueType or CFF collection.
///
- DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION,
+ DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION,
///
/// A Type 1 font face.
@@ -127,7 +128,10 @@ enum DWRITE_FONT_FACE_TYPE
/// font file loaders) and the resulting font face object supports only the
/// minimum functionality necessary to render glyphs.
///
- DWRITE_FONT_FACE_TYPE_RAW_CFF
+ DWRITE_FONT_FACE_TYPE_RAW_CFF,
+
+ // The following name is obsolete, but kept as an alias to avoid breaking existing code.
+ DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION,
};
///
@@ -2446,7 +2450,7 @@ enum DWRITE_NUMBER_SUBSTITUTION_METHOD
///
/// Holds the appropriate digits and numeric punctuation for a given locale.
///
-interface DECLSPEC_UUID("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D") DECLSPEC_NOVTABLE IDWriteNumberSubstitution : public IUnknown
+interface DWRITE_DECLARE_INTERFACE("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D") IDWriteNumberSubstitution : public IUnknown
{
};
@@ -2511,7 +2515,7 @@ struct DWRITE_SHAPING_GLYPH_PROPERTIES
/// stop prematurely and return a callback error. Rather than return E_NOTIMPL,
/// an application should stub the method and return a constant/null and S_OK.
///
-interface DECLSPEC_UUID("688e1a58-5094-47c8-adc8-fbcea60ae92b") DECLSPEC_NOVTABLE IDWriteTextAnalysisSource : public IUnknown
+interface DWRITE_DECLARE_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") IDWriteTextAnalysisSource : public IUnknown
{
///
/// Get a block of text starting at the specified text position.
@@ -2620,7 +2624,7 @@ interface DECLSPEC_UUID("688e1a58-5094-47c8-adc8-fbcea60ae92b") DECLSPEC_NOVTABL
/// state of the analysis sink, therefore a Set method call on a range
/// overwrites the previously set analysis result of the same range.
///
-interface DECLSPEC_UUID("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") DECLSPEC_NOVTABLE IDWriteTextAnalysisSink : public IUnknown
+interface DWRITE_DECLARE_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") IDWriteTextAnalysisSink : public IUnknown
{
///
/// Report script analysis for the text range.
@@ -2918,7 +2922,7 @@ interface DWRITE_DECLARE_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") IDWri
_In_reads_(glyphCount) UINT16 const* glyphIndices,
_In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps,
UINT32 glyphCount,
- _In_ IDWriteFontFace * fontFace,
+ _In_ IDWriteFontFace* fontFace,
FLOAT fontEmSize,
BOOL isSideways,
BOOL isRightToLeft,
diff --git a/3rdparty/minidx12/Include/dwrite_1.h b/3rdparty/minidx12/Include/dwrite_1.h
index 0939921337..a837d1c267 100644
--- a/3rdparty/minidx12/Include/dwrite_1.h
+++ b/3rdparty/minidx12/Include/dwrite_1.h
@@ -1101,6 +1101,8 @@ interface DWRITE_DECLARE_INTERFACE("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf") IDWri
_Out_ DWRITE_FONT_METRICS1* fontMetrics
) PURE;
+ using IDWriteFontFace::GetMetrics;
+
///
/// Gets common metrics for the font in design units.
/// These metrics are applicable to all the glyphs within a font,
@@ -1355,6 +1357,8 @@ interface DWRITE_DECLARE_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32738") IDWri
_Out_ DWRITE_FONT_METRICS1* fontMetrics
) PURE;
+ using IDWriteFont::GetMetrics;
+
///
/// Gets the PANOSE values from the font, used for font selection and
/// matching.
@@ -1714,7 +1718,7 @@ interface DWRITE_DECLARE_INTERFACE("80DAD800-E21F-4E83-96CE-BFCCE500DB7C") IDWri
/// If any of these callbacks returns an error, the analysis functions will
/// stop prematurely and return a callback error.
///
-interface DECLSPEC_UUID("{639CFAD8-0FB4-4B21-A58A-067920120009}") DECLSPEC_NOVTABLE IDWriteTextAnalysisSource1 : public IDWriteTextAnalysisSource
+interface DWRITE_DECLARE_INTERFACE("639CFAD8-0FB4-4B21-A58A-067920120009") IDWriteTextAnalysisSource1 : public IDWriteTextAnalysisSource
{
///
/// The text analyzer calls back to this to get the desired glyph
@@ -1753,7 +1757,7 @@ interface DECLSPEC_UUID("{639CFAD8-0FB4-4B21-A58A-067920120009}") DECLSPEC_NOVTA
/// The interface implemented by the client to receive the
/// output of the text analyzers.
///
-interface DECLSPEC_UUID("B0D941A0-85E7-4D8B-9FD3-5CED9934482A") DECLSPEC_NOVTABLE IDWriteTextAnalysisSink1 : public IDWriteTextAnalysisSink
+interface DWRITE_DECLARE_INTERFACE("B0D941A0-85E7-4D8B-9FD3-5CED9934482A") IDWriteTextAnalysisSink1 : public IDWriteTextAnalysisSink
{
///
/// The text analyzer calls back to this to report the actual orientation
diff --git a/3rdparty/minidx12/Include/dwrite_2.h b/3rdparty/minidx12/Include/dwrite_2.h
index d833b25d6a..3d4d8505dc 100644
--- a/3rdparty/minidx12/Include/dwrite_2.h
+++ b/3rdparty/minidx12/Include/dwrite_2.h
@@ -554,8 +554,8 @@ interface DWRITE_DECLARE_INTERFACE("EFA008F9-F7A1-48BF-B05C-F224713CC0FF") IDWri
DWRITE_FONT_WEIGHT baseWeight,
DWRITE_FONT_STYLE baseStyle,
DWRITE_FONT_STRETCH baseStretch,
- _Deref_out_range_(0, textLength) UINT32* mappedLength,
- _COM_Outptr_ IDWriteFont** mappedFont,
+ _Out_range_(0, textLength) UINT32* mappedLength,
+ _COM_Outptr_result_maybenull_ IDWriteFont** mappedFont,
_Out_ FLOAT* scale
) PURE;
};
@@ -653,8 +653,10 @@ typedef D3DCOLORVALUE DWRITE_COLOR_F;
interface DWRITE_DECLARE_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") IDWriteFont2 : public IDWriteFont1
{
///
- /// Returns TRUE if the font contains color information (COLR and CPAL tables),
- /// or FALSE if not.
+ /// Returns TRUE if the font contains tables that can provide color information
+ /// (including COLR, CPAL, SVG, CBDT, sbix tables), or FALSE if not. Note that
+ /// TRUE is returned even in the case when the font tables contain only grayscale
+ /// images.
///
STDMETHOD_(BOOL, IsColorFont)() PURE;
};
@@ -667,8 +669,10 @@ interface DWRITE_DECLARE_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") IDWri
interface DWRITE_DECLARE_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") IDWriteFontFace2 : public IDWriteFontFace1
{
///
- /// Returns TRUE if the font contains color information (COLR and CPAL tables),
- /// or FALSE if not.
+ /// Returns TRUE if the font contains tables that can provide color information
+ /// (including COLR, CPAL, SVG, CBDT, sbix tables), or FALSE if not. Note that
+ /// TRUE is returned even in the case when the font tables contain only grayscale
+ /// images.
///
STDMETHOD_(BOOL, IsColorFont)() PURE;
diff --git a/3rdparty/minidx12/Include/dwrite_3.h b/3rdparty/minidx12/Include/dwrite_3.h
index 7119347b58..1f754d6edb 100644
--- a/3rdparty/minidx12/Include/dwrite_3.h
+++ b/3rdparty/minidx12/Include/dwrite_3.h
@@ -10,9 +10,7 @@
#ifndef DWRITE_3_H_INCLUDED
#define DWRITE_3_H_INCLUDED
-#if _MSC_VER > 1000
#pragma once
-#endif
#include
@@ -1247,6 +1245,8 @@ interface DWRITE_DECLARE_INTERFACE("D37D7598-09BE-4222-A236-2081341CC1F2") IDWri
_Out_ DWRITE_GRID_FIT_MODE* gridFitMode
) PURE;
+ using IDWriteFontFace2::GetRecommendedRenderingMode;
+
///
/// Determines whether the character is locally downloaded from the font.
///
@@ -1740,4 +1740,320 @@ interface DWRITE_DECLARE_INTERFACE("07DDCD52-020E-4DE8-AC33-6C953D83F92D") IDWri
) PURE;
};
-#endif /* DWRITE_3_H_INCLUDED */
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
+
+
+///
+/// Fonts may contain multiple drawable data formats for glyphs. These flags specify which formats
+/// are supported in the font, either at a font-wide level or per glyph, and the app may use them
+/// to tell DWrite which formats to return when splitting a color glyph run.
+///
+enum DWRITE_GLYPH_IMAGE_FORMATS
+{
+ ///
+ /// Indicates no data is available for this glyph.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_NONE = 0x00000000,
+
+ ///
+ /// The glyph has TrueType outlines.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE = 0x00000001,
+
+ ///
+ /// The glyph has CFF outlines.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_CFF = 0x00000002,
+
+ ///
+ /// The glyph has multilayered COLR data.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_COLR = 0x00000004,
+
+ ///
+ /// The glyph has SVG outlines as standard XML.
+ ///
+ ///
+ /// Fonts may store the content gzip'd rather than plain text,
+ /// indicated by the first two bytes as gzip header {0x1F 0x8B}.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_SVG = 0x00000008,
+
+ ///
+ /// The glyph has PNG image data, with standard PNG IHDR.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_PNG = 0x00000010,
+
+ ///
+ /// The glyph has JPEG image data, with standard JIFF SOI header.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_JPEG = 0x00000020,
+
+ ///
+ /// The glyph has TIFF image data.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_TIFF = 0x00000040,
+
+ ///
+ /// The glyph has raw 32-bit premultiplied BGRA data.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 = 0x00000080,
+};
+
+#ifdef DEFINE_ENUM_FLAG_OPERATORS
+DEFINE_ENUM_FLAG_OPERATORS(DWRITE_GLYPH_IMAGE_FORMATS);
+#endif
+
+
+///
+/// Represents a color glyph run. The IDWriteFactory4::TranslateColorGlyphRun
+/// method returns an ordered collection of color glyph runs of varying types
+/// depending on what the font supports.
+///
+///
+/// For runs without any specific color, such as PNG data, the runColor field will be zero.
+///
+struct DWRITE_COLOR_GLYPH_RUN1 : DWRITE_COLOR_GLYPH_RUN
+{
+ ///
+ /// Type of glyph image format for this color run. Exactly one type will be set since
+ /// TranslateColorGlyphRun has already broken down the run into separate parts.
+ ///
+ DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
+
+ ///
+ /// Measuring mode to use for this glyph run.
+ ///
+ DWRITE_MEASURING_MODE measuringMode;
+};
+
+
+///
+/// Data for a single glyph from GetGlyphImageData.
+///
+struct DWRITE_GLYPH_IMAGE_DATA
+{
+ ///
+ /// Pointer to the glyph data, be it SVG, PNG, JPEG, TIFF.
+ ///
+ _Field_size_bytes_(imageDataSize) void const* imageData;
+
+ ///
+ /// Size of glyph data in bytes.
+ ///
+ UINT32 imageDataSize;
+
+ ///
+ /// Unique identifier for the glyph data. Clients may use this to cache a parsed/decompressed
+ /// version and tell whether a repeated call to the same font returns the same data.
+ ///
+ UINT32 uniqueDataId;
+
+ ///
+ /// Pixels per em of the returned data. For non-scalable raster data (PNG/TIFF/JPG), this can be larger
+ /// or smaller than requested from GetGlyphImageData when there isn't an exact match.
+ /// For scaling intermediate sizes, use: desired pixels per em * font em size / actual pixels per em.
+ ///
+ UINT32 pixelsPerEm;
+
+ ///
+ /// Size of image when the format is pixel data.
+ ///
+ D2D1_SIZE_U pixelSize;
+
+ ///
+ /// Left origin along the horizontal Roman baseline.
+ ///
+ D2D1_POINT_2L horizontalLeftOrigin;
+
+ ///
+ /// Right origin along the horizontal Roman baseline.
+ ///
+ D2D1_POINT_2L horizontalRightOrigin;
+
+ ///
+ /// Top origin along the vertical central baseline.
+ ///
+ D2D1_POINT_2L verticalTopOrigin;
+
+ ///
+ /// Bottom origin along vertical central baseline.
+ ///
+ D2D1_POINT_2L verticalBottomOrigin;
+};
+
+
+///
+/// Enumerator for an ordered collection of color glyph runs.
+///
+interface DWRITE_DECLARE_INTERFACE("7C5F86DA-C7A1-4F05-B8E1-55A179FE5A35") IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
+{
+ ///
+ /// Gets the current color glyph run.
+ ///
+ /// Receives a pointer to the color
+ /// glyph run. The pointer remains valid until the next call to
+ /// MoveNext or until the interface is released.
+ ///
+ /// Standard HRESULT error code. An error is returned if there is
+ /// no current glyph run, i.e., if MoveNext has not yet been called
+ /// or if the end of the sequence has been reached.
+ ///
+ STDMETHOD(GetCurrentRun)(
+ _Outptr_ DWRITE_COLOR_GLYPH_RUN1 const** colorGlyphRun
+ ) PURE;
+
+ using IDWriteColorGlyphRunEnumerator::GetCurrentRun;
+};
+
+
+///
+/// The interface that represents an absolute reference to a font face.
+/// It contains font face type, appropriate file references and face identification data.
+/// Various font data such as metrics, names and glyph outlines is obtained from IDWriteFontFace.
+///
+interface DWRITE_DECLARE_INTERFACE("27F2A904-4EB8-441D-9678-0563F53E3E2F") IDWriteFontFace4 : public IDWriteFontFace3
+{
+ ///
+ /// Gets all the glyph image formats supported by the entire font (SVG, PNG, JPEG, ...).
+ ///
+ STDMETHOD_(DWRITE_GLYPH_IMAGE_FORMATS, GetGlyphImageFormats)() PURE;
+
+ ///
+ /// Gets the available image formats of a specific glyph and ppem. Glyphs often have at least TrueType
+ /// or CFF outlines, but they may also have SVG outlines, or they may have only bitmaps
+ /// with no TrueType/CFF outlines. Some image formats, notably the PNG/JPEG ones, are size
+ /// specific and will return no match when there isn't an entry in that size range.
+ ///
+ ///
+ /// Glyph ids beyond the glyph count return DWRITE_GLYPH_IMAGE_FORMATS_NONE.
+ ///
+ STDMETHOD(GetGlyphImageFormats)(
+ UINT16 glyphId,
+ UINT32 pixelsPerEmFirst,
+ UINT32 pixelsPerEmLast,
+ _Out_ DWRITE_GLYPH_IMAGE_FORMATS* glyphImageFormats
+ ) PURE;
+
+ ///
+ /// Gets a pointer to the glyph data based on the desired image format.
+ ///
+ ///
+ /// The glyphDataContext must be released via ReleaseGlyphImageData when done if the data is not empty,
+ /// similar to IDWriteFontFileStream::ReadFileFragment and IDWriteFontFileStream::ReleaseFileFragment.
+ /// The data pointer is valid so long as the IDWriteFontFace exists and ReleaseGlyphImageData has not
+ /// been called.
+ ///
+ ///
+ /// The DWRITE_GLYPH_IMAGE_DATA::uniqueDataId is valuable for caching purposes so that if the same
+ /// resource is returned more than once, an existing resource can be quickly retrieved rather than
+ /// needing to reparse or decompress the data.
+ ///
+ ///
+ /// The function only returns SVG or raster data - requesting TrueType/CFF/COLR data returns
+ /// DWRITE_E_INVALIDARG. Those must be drawn via DrawGlyphRun or queried using GetGlyphOutline instead.
+ /// Exactly one format may be requested or else the function returns DWRITE_E_INVALIDARG.
+ /// If the glyph does not have that format, the call is not an error, but the function returns empty data.
+ ///
+ STDMETHOD(GetGlyphImageData)(
+ _In_ UINT16 glyphId,
+ UINT32 pixelsPerEm,
+ DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat,
+ _Out_ DWRITE_GLYPH_IMAGE_DATA* glyphData,
+ _Outptr_result_maybenull_ void** glyphDataContext
+ ) PURE;
+
+ ///
+ /// Releases the table data obtained earlier from ReadGlyphData.
+ ///
+ /// Opaque context from ReadGlyphData.
+ STDMETHOD_(void, ReleaseGlyphImageData)(
+ void* glyphDataContext
+ ) PURE;
+};
+
+
+interface DWRITE_DECLARE_INTERFACE("4B0B5BD3-0797-4549-8AC5-FE915CC53856") IDWriteFactory4 : public IDWriteFactory3
+{
+ ///
+ /// Translates a glyph run to a sequence of color glyph runs, which can be
+ /// rendered to produce a color representation of the original "base" run.
+ ///
+ /// Horizontal and vertical origin of the base glyph run in
+ /// pre-transform coordinates.
+ /// Pointer to the original "base" glyph run.
+ /// Optional glyph run description.
+ /// Which data formats TranslateColorGlyphRun
+ /// should split the runs into.
+ /// Measuring mode, needed to compute the origins
+ /// of each glyph.
+ /// Matrix converting from the client's
+ /// coordinate space to device coordinates (pixels), i.e., the world transform
+ /// multiplied by any DPI scaling.
+ /// Zero-based index of the color palette to use.
+ /// Valid indices are less than the number of palettes in the font, as returned
+ /// by IDWriteFontFace2::GetColorPaletteCount.
+ /// If the function succeeds, receives a pointer
+ /// to an enumerator object that can be used to obtain the color glyph runs.
+ /// If the base run has no color glyphs, then the output pointer is NULL
+ /// and the method returns DWRITE_E_NOCOLOR.
+ ///
+ /// Returns DWRITE_E_NOCOLOR if the font has no color information, the glyph run
+ /// does not contain any color glyphs, or the specified color palette index
+ /// is out of range. In this case, the client should render the original glyph
+ /// run. Otherwise, returns a standard HRESULT error code.
+ ///
+ ///
+ /// The old IDWriteFactory2::TranslateColorGlyphRun is equivalent to passing
+ /// DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE|CFF|COLR.
+ ///
+ STDMETHOD(TranslateColorGlyphRun)(
+ D2D1_POINT_2F baselineOrigin,
+ _In_ DWRITE_GLYPH_RUN const* glyphRun,
+ _In_opt_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
+ DWRITE_GLYPH_IMAGE_FORMATS desiredGlyphImageFormats,
+ DWRITE_MEASURING_MODE measuringMode,
+ _In_opt_ DWRITE_MATRIX const* worldAndDpiTransform,
+ UINT32 colorPaletteIndex,
+ _COM_Outptr_ IDWriteColorGlyphRunEnumerator1** colorLayers
+ ) PURE;
+
+ using IDWriteFactory2::TranslateColorGlyphRun;
+
+ ///
+ /// Converts glyph run placements to glyph origins.
+ ///
+ ///
+ /// Standard HRESULT error code.
+ ///
+ ///
+ /// The transform and DPI have no affect on the origin scaling.
+ /// They are solely used to compute glyph advances when not supplied
+ /// and align glyphs in pixel aligned measuring modes.
+ ///
+ STDMETHOD(ComputeGlyphOrigins)(
+ DWRITE_GLYPH_RUN const* glyphRun,
+ DWRITE_MEASURING_MODE measuringMode,
+ D2D1_POINT_2F baselineOrigin,
+ _In_opt_ DWRITE_MATRIX const* worldAndDpiTransform,
+ _Out_writes_(glyphRun->glyphCount) D2D1_POINT_2F* glyphOrigins
+ ) PURE;
+
+ ///
+ /// Converts glyph run placements to glyph origins. This overload is for natural metrics, which
+ /// includes SVG, TrueType natural modes, and bitmap placement.
+ ///
+ STDMETHOD(ComputeGlyphOrigins)(
+ DWRITE_GLYPH_RUN const* glyphRun,
+ D2D1_POINT_2F baselineOrigin,
+ _Out_writes_(glyphRun->glyphCount) D2D1_POINT_2F* glyphOrigins
+ ) PURE;
+};
+
+#endif // NTDDI_VERSION >= NTDDI_WIN10_RS1
+
+#endif // DWRITE_3_H_INCLUDED
diff --git a/3rdparty/minidx12/Include/dxgi.h b/3rdparty/minidx12/Include/dxgi.h
index 32e4631622..e7901d4b08 100644
--- a/3rdparty/minidx12/Include/dxgi.h
+++ b/3rdparty/minidx12/Include/dxgi.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
@@ -273,7 +273,8 @@ enum DXGI_SWAP_CHAIN_FLAG
DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
- DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024
+ DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048
} DXGI_SWAP_CHAIN_FLAG;
typedef struct DXGI_SWAP_CHAIN_DESC
@@ -1684,6 +1685,7 @@ EXTERN_C const IID IID_IDXGIOutput;
#define DXGI_PRESENT_STEREO_TEMPORARY_MONO 0x00000020UL
#define DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x00000040UL
#define DXGI_PRESENT_USE_DURATION 0x00000100UL
+#define DXGI_PRESENT_ALLOW_TEARING 0x00000200UL
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec;
diff --git a/3rdparty/minidx12/Include/dxgi1_2.h b/3rdparty/minidx12/Include/dxgi1_2.h
index 8a8a3cc99a..5ec808814e 100644
--- a/3rdparty/minidx12/Include/dxgi1_2.h
+++ b/3rdparty/minidx12/Include/dxgi1_2.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/dxgi1_3.h b/3rdparty/minidx12/Include/dxgi1_3.h
index fb53fafddb..3d58b0ed4b 100644
--- a/3rdparty/minidx12/Include/dxgi1_3.h
+++ b/3rdparty/minidx12/Include/dxgi1_3.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/dxgi1_4.h b/3rdparty/minidx12/Include/dxgi1_4.h
index 8bb48d5c56..405252bede 100644
--- a/3rdparty/minidx12/Include/dxgi1_4.h
+++ b/3rdparty/minidx12/Include/dxgi1_4.h
@@ -3,7 +3,7 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
- /* File created by MIDL compiler version 8.00.0613 */
+ /* File created by MIDL compiler version 8.01.0618 */
/* @@MIDL_FILE_HEADING( ) */
diff --git a/3rdparty/minidx12/Include/dxgi1_5.h b/3rdparty/minidx12/Include/dxgi1_5.h
new file mode 100644
index 0000000000..7e134e27e0
--- /dev/null
+++ b/3rdparty/minidx12/Include/dxgi1_5.h
@@ -0,0 +1,1533 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 8.01.0618 */
+/* @@MIDL_FILE_HEADING( ) */
+
+
+
+/* verify that the version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 500
+#endif
+
+/* verify that the version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCSAL_H_VERSION__
+#define __REQUIRED_RPCSAL_H_VERSION__ 100
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of
+#endif /* __RPCNDR_H_VERSION__ */
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __dxgi1_5_h__
+#define __dxgi1_5_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IDXGIOutput5_FWD_DEFINED__
+#define __IDXGIOutput5_FWD_DEFINED__
+typedef interface IDXGIOutput5 IDXGIOutput5;
+
+#endif /* __IDXGIOutput5_FWD_DEFINED__ */
+
+
+#ifndef __IDXGISwapChain4_FWD_DEFINED__
+#define __IDXGISwapChain4_FWD_DEFINED__
+typedef interface IDXGISwapChain4 IDXGISwapChain4;
+
+#endif /* __IDXGISwapChain4_FWD_DEFINED__ */
+
+
+#ifndef __IDXGIDevice4_FWD_DEFINED__
+#define __IDXGIDevice4_FWD_DEFINED__
+typedef interface IDXGIDevice4 IDXGIDevice4;
+
+#endif /* __IDXGIDevice4_FWD_DEFINED__ */
+
+
+#ifndef __IDXGIFactory5_FWD_DEFINED__
+#define __IDXGIFactory5_FWD_DEFINED__
+typedef interface IDXGIFactory5 IDXGIFactory5;
+
+#endif /* __IDXGIFactory5_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "dxgi1_4.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_dxgi1_5_0000_0000 */
+/* [local] */
+
+#include
+#pragma region App Family
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IDXGIOutput5_INTERFACE_DEFINED__
+#define __IDXGIOutput5_INTERFACE_DEFINED__
+
+/* interface IDXGIOutput5 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGIOutput5;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("80A07424-AB52-42EB-833C-0C42FD282D98")
+ IDXGIOutput5 : public IDXGIOutput4
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput1(
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [in] */ UINT Flags,
+ /* [annotation][in] */
+ _In_ UINT SupportedFormatsCount,
+ /* [annotation][in] */
+ _In_reads_(SupportedFormatsCount) const DXGI_FORMAT *pSupportedFormats,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGIOutput5Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGIOutput5 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGIOutput5 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGIOutput5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesc )(
+ IDXGIOutput5 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_OUTPUT_DESC *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )(
+ IDXGIOutput5 * This,
+ /* [in] */ DXGI_FORMAT EnumFormat,
+ /* [in] */ UINT Flags,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pNumModes,
+ /* [annotation][out] */
+ _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_MODE_DESC *pModeToMatch,
+ /* [annotation][out] */
+ _Out_ DXGI_MODE_DESC *pClosestMatch,
+ /* [annotation][in] */
+ _In_opt_ IUnknown *pConcernedDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )(
+ IDXGIOutput5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ BOOL Exclusive);
+
+ void ( STDMETHODCALLTYPE *ReleaseOwnership )(
+ IDXGIOutput5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )(
+ IDXGIOutput5 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps);
+
+ HRESULT ( STDMETHODCALLTYPE *SetGammaControl )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_GAMMA_CONTROL *pArray);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGammaControl )(
+ IDXGIOutput5 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_GAMMA_CONTROL *pArray);
+
+ HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IDXGISurface *pScanoutSurface);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IDXGISurface *pDestination);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
+ IDXGIOutput5 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_FRAME_STATISTICS *pStats);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )(
+ IDXGIOutput5 * This,
+ /* [in] */ DXGI_FORMAT EnumFormat,
+ /* [in] */ UINT Flags,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pNumModes,
+ /* [annotation][out] */
+ _Out_writes_to_opt_(*pNumModes,*pNumModes) DXGI_MODE_DESC1 *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode1 )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_MODE_DESC1 *pModeToMatch,
+ /* [annotation][out] */
+ _Out_ DXGI_MODE_DESC1 *pClosestMatch,
+ /* [annotation][in] */
+ _In_opt_ IUnknown *pConcernedDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData1 )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IDXGIResource *pDestination);
+
+ HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication);
+
+ BOOL ( STDMETHODCALLTYPE *SupportsOverlays )(
+ IDXGIOutput5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ DXGI_FORMAT EnumFormat,
+ /* [annotation][out] */
+ _In_ IUnknown *pConcernedDevice,
+ /* [annotation][out] */
+ _Out_ UINT *pFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation][in] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace,
+ /* [annotation][in] */
+ _In_ IUnknown *pConcernedDevice,
+ /* [annotation][out] */
+ _Out_ UINT *pFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *DuplicateOutput1 )(
+ IDXGIOutput5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [in] */ UINT Flags,
+ /* [annotation][in] */
+ _In_ UINT SupportedFormatsCount,
+ /* [annotation][in] */
+ _In_reads_(SupportedFormatsCount) const DXGI_FORMAT *pSupportedFormats,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication);
+
+ END_INTERFACE
+ } IDXGIOutput5Vtbl;
+
+ interface IDXGIOutput5
+ {
+ CONST_VTBL struct IDXGIOutput5Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGIOutput5_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGIOutput5_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGIOutput5_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGIOutput5_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGIOutput5_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGIOutput5_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGIOutput5_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGIOutput5_GetDesc(This,pDesc) \
+ ( (This)->lpVtbl -> GetDesc(This,pDesc) )
+
+#define IDXGIOutput5_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \
+ ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) )
+
+#define IDXGIOutput5_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \
+ ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
+
+#define IDXGIOutput5_WaitForVBlank(This) \
+ ( (This)->lpVtbl -> WaitForVBlank(This) )
+
+#define IDXGIOutput5_TakeOwnership(This,pDevice,Exclusive) \
+ ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) )
+
+#define IDXGIOutput5_ReleaseOwnership(This) \
+ ( (This)->lpVtbl -> ReleaseOwnership(This) )
+
+#define IDXGIOutput5_GetGammaControlCapabilities(This,pGammaCaps) \
+ ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) )
+
+#define IDXGIOutput5_SetGammaControl(This,pArray) \
+ ( (This)->lpVtbl -> SetGammaControl(This,pArray) )
+
+#define IDXGIOutput5_GetGammaControl(This,pArray) \
+ ( (This)->lpVtbl -> GetGammaControl(This,pArray) )
+
+#define IDXGIOutput5_SetDisplaySurface(This,pScanoutSurface) \
+ ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) )
+
+#define IDXGIOutput5_GetDisplaySurfaceData(This,pDestination) \
+ ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) )
+
+#define IDXGIOutput5_GetFrameStatistics(This,pStats) \
+ ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
+
+
+#define IDXGIOutput5_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \
+ ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) )
+
+#define IDXGIOutput5_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \
+ ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
+
+#define IDXGIOutput5_GetDisplaySurfaceData1(This,pDestination) \
+ ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) )
+
+#define IDXGIOutput5_DuplicateOutput(This,pDevice,ppOutputDuplication) \
+ ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) )
+
+
+#define IDXGIOutput5_SupportsOverlays(This) \
+ ( (This)->lpVtbl -> SupportsOverlays(This) )
+
+
+#define IDXGIOutput5_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \
+ ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) )
+
+
+#define IDXGIOutput5_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \
+ ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) )
+
+
+#define IDXGIOutput5_DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) \
+ ( (This)->lpVtbl -> DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGIOutput5_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_dxgi1_5_0000_0001 */
+/* [local] */
+
+typedef
+enum DXGI_HDR_METADATA_TYPE
+ {
+ DXGI_HDR_METADATA_TYPE_NONE = 0,
+ DXGI_HDR_METADATA_TYPE_HDR10 = 1
+ } DXGI_HDR_METADATA_TYPE;
+
+typedef struct DXGI_HDR_METADATA_HDR10
+ {
+ UINT16 RedPrimary[ 2 ];
+ UINT16 GreenPrimary[ 2 ];
+ UINT16 BluePrimary[ 2 ];
+ UINT16 WhitePoint[ 2 ];
+ UINT MaxMasteringLuminance;
+ UINT MinMasteringLuminance;
+ UINT16 MaxContentLightLevel;
+ UINT16 MaxFrameAverageLightLevel;
+ } DXGI_HDR_METADATA_HDR10;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IDXGISwapChain4_INTERFACE_DEFINED__
+#define __IDXGISwapChain4_INTERFACE_DEFINED__
+
+/* interface IDXGISwapChain4 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGISwapChain4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("3D585D5A-BD4A-489E-B1F4-3DBCB6452FFB")
+ IDXGISwapChain4 : public IDXGISwapChain3
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetHDRMetaData(
+ /* [annotation][in] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation][in] */
+ _In_ UINT Size,
+ /* [annotation][size_is][in] */
+ _In_reads_opt_(Size) void *pMetaData) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGISwapChain4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGISwapChain4 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGISwapChain4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGISwapChain4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevice )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppDevice);
+
+ HRESULT ( STDMETHODCALLTYPE *Present )(
+ IDXGISwapChain4 * This,
+ /* [in] */ UINT SyncInterval,
+ /* [in] */ UINT Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
+ IDXGISwapChain4 * This,
+ /* [in] */ UINT Buffer,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][out][in] */
+ _COM_Outptr_ void **ppSurface);
+
+ HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )(
+ IDXGISwapChain4 * This,
+ /* [in] */ BOOL Fullscreen,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pTarget);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_opt_ BOOL *pFullscreen,
+ /* [annotation][out] */
+ _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesc )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_SWAP_CHAIN_DESC *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )(
+ IDXGISwapChain4 * This,
+ /* [in] */ UINT BufferCount,
+ /* [in] */ UINT Width,
+ /* [in] */ UINT Height,
+ /* [in] */ DXGI_FORMAT NewFormat,
+ /* [in] */ UINT SwapChainFlags);
+
+ HRESULT ( STDMETHODCALLTYPE *ResizeTarget )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_MODE_DESC *pNewTargetParameters);
+
+ HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIOutput **ppOutput);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_FRAME_STATISTICS *pStats);
+
+ HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ UINT *pLastPresentCount);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDesc1 )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
+
+ HRESULT ( STDMETHODCALLTYPE *GetHwnd )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ HWND *pHwnd);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ REFIID refiid,
+ /* [annotation][out] */
+ _COM_Outptr_ void **ppUnk);
+
+ HRESULT ( STDMETHODCALLTYPE *Present1 )(
+ IDXGISwapChain4 * This,
+ /* [in] */ UINT SyncInterval,
+ /* [in] */ UINT PresentFlags,
+ /* [annotation][in] */
+ _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters);
+
+ BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )(
+ IDXGISwapChain4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ IDXGIOutput **ppRestrictToOutput);
+
+ HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_RGBA *pColor);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_RGBA *pColor);
+
+ HRESULT ( STDMETHODCALLTYPE *SetRotation )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ DXGI_MODE_ROTATION Rotation);
+
+ HRESULT ( STDMETHODCALLTYPE *GetRotation )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_MODE_ROTATION *pRotation);
+
+ HRESULT ( STDMETHODCALLTYPE *SetSourceSize )(
+ IDXGISwapChain4 * This,
+ UINT Width,
+ UINT Height);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSourceSize )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ UINT *pWidth,
+ /* [annotation][out] */
+ _Out_ UINT *pHeight);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )(
+ IDXGISwapChain4 * This,
+ UINT MaxLatency);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ UINT *pMaxLatency);
+
+ HANDLE ( STDMETHODCALLTYPE *GetFrameLatencyWaitableObject )(
+ IDXGISwapChain4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMatrixTransform )(
+ IDXGISwapChain4 * This,
+ const DXGI_MATRIX_3X2_F *pMatrix);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMatrixTransform )(
+ IDXGISwapChain4 * This,
+ /* [annotation][out] */
+ _Out_ DXGI_MATRIX_3X2_F *pMatrix);
+
+ UINT ( STDMETHODCALLTYPE *GetCurrentBackBufferIndex )(
+ IDXGISwapChain4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckColorSpaceSupport )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace,
+ /* [annotation][out] */
+ _Out_ UINT *pColorSpaceSupport);
+
+ HRESULT ( STDMETHODCALLTYPE *SetColorSpace1 )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ DXGI_COLOR_SPACE_TYPE ColorSpace);
+
+ HRESULT ( STDMETHODCALLTYPE *ResizeBuffers1 )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ UINT BufferCount,
+ /* [annotation][in] */
+ _In_ UINT Width,
+ /* [annotation][in] */
+ _In_ UINT Height,
+ /* [annotation][in] */
+ _In_ DXGI_FORMAT Format,
+ /* [annotation][in] */
+ _In_ UINT SwapChainFlags,
+ /* [annotation][in] */
+ _In_reads_(BufferCount) const UINT *pCreationNodeMask,
+ /* [annotation][in] */
+ _In_reads_(BufferCount) IUnknown *const *ppPresentQueue);
+
+ HRESULT ( STDMETHODCALLTYPE *SetHDRMetaData )(
+ IDXGISwapChain4 * This,
+ /* [annotation][in] */
+ _In_ DXGI_HDR_METADATA_TYPE Type,
+ /* [annotation][in] */
+ _In_ UINT Size,
+ /* [annotation][size_is][in] */
+ _In_reads_opt_(Size) void *pMetaData);
+
+ END_INTERFACE
+ } IDXGISwapChain4Vtbl;
+
+ interface IDXGISwapChain4
+ {
+ CONST_VTBL struct IDXGISwapChain4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGISwapChain4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGISwapChain4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGISwapChain4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGISwapChain4_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGISwapChain4_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGISwapChain4_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGISwapChain4_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGISwapChain4_GetDevice(This,riid,ppDevice) \
+ ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
+
+
+#define IDXGISwapChain4_Present(This,SyncInterval,Flags) \
+ ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) )
+
+#define IDXGISwapChain4_GetBuffer(This,Buffer,riid,ppSurface) \
+ ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) )
+
+#define IDXGISwapChain4_SetFullscreenState(This,Fullscreen,pTarget) \
+ ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) )
+
+#define IDXGISwapChain4_GetFullscreenState(This,pFullscreen,ppTarget) \
+ ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) )
+
+#define IDXGISwapChain4_GetDesc(This,pDesc) \
+ ( (This)->lpVtbl -> GetDesc(This,pDesc) )
+
+#define IDXGISwapChain4_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \
+ ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) )
+
+#define IDXGISwapChain4_ResizeTarget(This,pNewTargetParameters) \
+ ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) )
+
+#define IDXGISwapChain4_GetContainingOutput(This,ppOutput) \
+ ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) )
+
+#define IDXGISwapChain4_GetFrameStatistics(This,pStats) \
+ ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
+
+#define IDXGISwapChain4_GetLastPresentCount(This,pLastPresentCount) \
+ ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) )
+
+
+#define IDXGISwapChain4_GetDesc1(This,pDesc) \
+ ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
+
+#define IDXGISwapChain4_GetFullscreenDesc(This,pDesc) \
+ ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) )
+
+#define IDXGISwapChain4_GetHwnd(This,pHwnd) \
+ ( (This)->lpVtbl -> GetHwnd(This,pHwnd) )
+
+#define IDXGISwapChain4_GetCoreWindow(This,refiid,ppUnk) \
+ ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) )
+
+#define IDXGISwapChain4_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \
+ ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) )
+
+#define IDXGISwapChain4_IsTemporaryMonoSupported(This) \
+ ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) )
+
+#define IDXGISwapChain4_GetRestrictToOutput(This,ppRestrictToOutput) \
+ ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) )
+
+#define IDXGISwapChain4_SetBackgroundColor(This,pColor) \
+ ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) )
+
+#define IDXGISwapChain4_GetBackgroundColor(This,pColor) \
+ ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) )
+
+#define IDXGISwapChain4_SetRotation(This,Rotation) \
+ ( (This)->lpVtbl -> SetRotation(This,Rotation) )
+
+#define IDXGISwapChain4_GetRotation(This,pRotation) \
+ ( (This)->lpVtbl -> GetRotation(This,pRotation) )
+
+
+#define IDXGISwapChain4_SetSourceSize(This,Width,Height) \
+ ( (This)->lpVtbl -> SetSourceSize(This,Width,Height) )
+
+#define IDXGISwapChain4_GetSourceSize(This,pWidth,pHeight) \
+ ( (This)->lpVtbl -> GetSourceSize(This,pWidth,pHeight) )
+
+#define IDXGISwapChain4_SetMaximumFrameLatency(This,MaxLatency) \
+ ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) )
+
+#define IDXGISwapChain4_GetMaximumFrameLatency(This,pMaxLatency) \
+ ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) )
+
+#define IDXGISwapChain4_GetFrameLatencyWaitableObject(This) \
+ ( (This)->lpVtbl -> GetFrameLatencyWaitableObject(This) )
+
+#define IDXGISwapChain4_SetMatrixTransform(This,pMatrix) \
+ ( (This)->lpVtbl -> SetMatrixTransform(This,pMatrix) )
+
+#define IDXGISwapChain4_GetMatrixTransform(This,pMatrix) \
+ ( (This)->lpVtbl -> GetMatrixTransform(This,pMatrix) )
+
+
+#define IDXGISwapChain4_GetCurrentBackBufferIndex(This) \
+ ( (This)->lpVtbl -> GetCurrentBackBufferIndex(This) )
+
+#define IDXGISwapChain4_CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) \
+ ( (This)->lpVtbl -> CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) )
+
+#define IDXGISwapChain4_SetColorSpace1(This,ColorSpace) \
+ ( (This)->lpVtbl -> SetColorSpace1(This,ColorSpace) )
+
+#define IDXGISwapChain4_ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) \
+ ( (This)->lpVtbl -> ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) )
+
+
+#define IDXGISwapChain4_SetHDRMetaData(This,Type,Size,pMetaData) \
+ ( (This)->lpVtbl -> SetHDRMetaData(This,Type,Size,pMetaData) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGISwapChain4_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_dxgi1_5_0000_0002 */
+/* [local] */
+
+typedef
+enum _DXGI_OFFER_RESOURCE_FLAGS
+ {
+ DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1
+ } DXGI_OFFER_RESOURCE_FLAGS;
+
+typedef
+enum _DXGI_RECLAIM_RESOURCE_RESULTS
+ {
+ DXGI_RECLAIM_RESOURCE_RESULT_OK = 0,
+ DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 1,
+ DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 2
+ } DXGI_RECLAIM_RESOURCE_RESULTS;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IDXGIDevice4_INTERFACE_DEFINED__
+#define __IDXGIDevice4_INTERFACE_DEFINED__
+
+/* interface IDXGIDevice4 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGIDevice4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("95B4F95F-D8DA-4CA4-9EE6-3B76D5968A10")
+ IDXGIDevice4 : public IDXGIDevice3
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE OfferResources1(
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][in] */
+ _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority,
+ /* [annotation][in] */
+ _In_ UINT Flags) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReclaimResources1(
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][size_is][out] */
+ _Out_writes_all_(NumResources) DXGI_RECLAIM_RESOURCE_RESULTS *pResults) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGIDevice4Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGIDevice4 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGIDevice4 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGIDevice4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAdapter )(
+ IDXGIDevice4 * This,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **pAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ const DXGI_SURFACE_DESC *pDesc,
+ /* [in] */ UINT NumSurfaces,
+ /* [in] */ DXGI_USAGE Usage,
+ /* [annotation][in] */
+ _In_opt_ const DXGI_SHARED_RESOURCE *pSharedResource,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISurface **ppSurface);
+
+ HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )(
+ IDXGIDevice4 * This,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IUnknown *const *ppResources,
+ /* [annotation][size_is][out] */
+ _Out_writes_(NumResources) DXGI_RESIDENCY *pResidencyStatus,
+ /* [in] */ UINT NumResources);
+
+ HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )(
+ IDXGIDevice4 * This,
+ /* [in] */ INT Priority);
+
+ HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )(
+ IDXGIDevice4 * This,
+ /* [annotation][retval][out] */
+ _Out_ INT *pPriority);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )(
+ IDXGIDevice4 * This,
+ /* [in] */ UINT MaxLatency);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )(
+ IDXGIDevice4 * This,
+ /* [annotation][out] */
+ _Out_ UINT *pMaxLatency);
+
+ HRESULT ( STDMETHODCALLTYPE *OfferResources )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][in] */
+ _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority);
+
+ HRESULT ( STDMETHODCALLTYPE *ReclaimResources )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][size_is][out] */
+ _Out_writes_all_opt_(NumResources) BOOL *pDiscarded);
+
+ HRESULT ( STDMETHODCALLTYPE *EnqueueSetEvent )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent);
+
+ void ( STDMETHODCALLTYPE *Trim )(
+ IDXGIDevice4 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *OfferResources1 )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][in] */
+ _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority,
+ /* [annotation][in] */
+ _In_ UINT Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *ReclaimResources1 )(
+ IDXGIDevice4 * This,
+ /* [annotation][in] */
+ _In_ UINT NumResources,
+ /* [annotation][size_is][in] */
+ _In_reads_(NumResources) IDXGIResource *const *ppResources,
+ /* [annotation][size_is][out] */
+ _Out_writes_all_(NumResources) DXGI_RECLAIM_RESOURCE_RESULTS *pResults);
+
+ END_INTERFACE
+ } IDXGIDevice4Vtbl;
+
+ interface IDXGIDevice4
+ {
+ CONST_VTBL struct IDXGIDevice4Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGIDevice4_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGIDevice4_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGIDevice4_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGIDevice4_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGIDevice4_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGIDevice4_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGIDevice4_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGIDevice4_GetAdapter(This,pAdapter) \
+ ( (This)->lpVtbl -> GetAdapter(This,pAdapter) )
+
+#define IDXGIDevice4_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \
+ ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) )
+
+#define IDXGIDevice4_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \
+ ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) )
+
+#define IDXGIDevice4_SetGPUThreadPriority(This,Priority) \
+ ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) )
+
+#define IDXGIDevice4_GetGPUThreadPriority(This,pPriority) \
+ ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) )
+
+
+#define IDXGIDevice4_SetMaximumFrameLatency(This,MaxLatency) \
+ ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) )
+
+#define IDXGIDevice4_GetMaximumFrameLatency(This,pMaxLatency) \
+ ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) )
+
+
+#define IDXGIDevice4_OfferResources(This,NumResources,ppResources,Priority) \
+ ( (This)->lpVtbl -> OfferResources(This,NumResources,ppResources,Priority) )
+
+#define IDXGIDevice4_ReclaimResources(This,NumResources,ppResources,pDiscarded) \
+ ( (This)->lpVtbl -> ReclaimResources(This,NumResources,ppResources,pDiscarded) )
+
+#define IDXGIDevice4_EnqueueSetEvent(This,hEvent) \
+ ( (This)->lpVtbl -> EnqueueSetEvent(This,hEvent) )
+
+
+#define IDXGIDevice4_Trim(This) \
+ ( (This)->lpVtbl -> Trim(This) )
+
+
+#define IDXGIDevice4_OfferResources1(This,NumResources,ppResources,Priority,Flags) \
+ ( (This)->lpVtbl -> OfferResources1(This,NumResources,ppResources,Priority,Flags) )
+
+#define IDXGIDevice4_ReclaimResources1(This,NumResources,ppResources,pResults) \
+ ( (This)->lpVtbl -> ReclaimResources1(This,NumResources,ppResources,pResults) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGIDevice4_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_dxgi1_5_0000_0003 */
+/* [local] */
+
+typedef
+enum DXGI_FEATURE
+ {
+ DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0
+ } DXGI_FEATURE;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0003_v0_0_s_ifspec;
+
+#ifndef __IDXGIFactory5_INTERFACE_DEFINED__
+#define __IDXGIFactory5_INTERFACE_DEFINED__
+
+/* interface IDXGIFactory5 */
+/* [unique][local][uuid][object] */
+
+
+EXTERN_C const IID IID_IDXGIFactory5;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7632e1f5-ee65-4dca-87fd-84cd75f8838d")
+ IDXGIFactory5 : public IDXGIFactory4
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+ DXGI_FEATURE Feature,
+ /* [annotation] */
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize) = 0;
+
+ };
+
+
+#else /* C style interface */
+
+ typedef struct IDXGIFactory5Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IDXGIFactory5 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ _COM_Outptr_ void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IDXGIFactory5 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IDXGIFactory5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [in] */ UINT DataSize,
+ /* [annotation][in] */
+ _In_reads_bytes_(DataSize) const void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][in] */
+ _In_ const IUnknown *pUnknown);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ REFGUID Name,
+ /* [annotation][out][in] */
+ _Inout_ UINT *pDataSize,
+ /* [annotation][out] */
+ _Out_writes_bytes_(*pDataSize) void *pData);
+
+ HRESULT ( STDMETHODCALLTYPE *GetParent )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ REFIID riid,
+ /* [annotation][retval][out] */
+ _COM_Outptr_ void **ppParent);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
+ IDXGIFactory5 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
+ IDXGIFactory5 * This,
+ HWND WindowHandle,
+ UINT Flags);
+
+ HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
+ IDXGIFactory5 * This,
+ /* [annotation][out] */
+ _Out_ HWND *pWindowHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ DXGI_SWAP_CHAIN_DESC *pDesc,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
+ IDXGIFactory5 * This,
+ /* [in] */ HMODULE Module,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter **ppAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )(
+ IDXGIFactory5 * This,
+ /* [in] */ UINT Adapter,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGIAdapter1 **ppAdapter);
+
+ BOOL ( STDMETHODCALLTYPE *IsCurrent )(
+ IDXGIFactory5 * This);
+
+ BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )(
+ IDXGIFactory5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ HWND hWnd,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ IUnknown *pWindow,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )(
+ IDXGIFactory5 * This,
+ /* [annotation] */
+ _In_ HANDLE hResource,
+ /* [annotation] */
+ _Out_ LUID *pLuid);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterStereoStatus )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ HWND WindowHandle,
+ /* [annotation][in] */
+ _In_ UINT wMsg,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ HANDLE hEvent,
+ /* [annotation][out] */
+ _Out_ DWORD *pdwCookie);
+
+ void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ DWORD dwCookie);
+
+ HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )(
+ IDXGIFactory5 * This,
+ /* [annotation][in] */
+ _In_ IUnknown *pDevice,
+ /* [annotation][in] */
+ _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc,
+ /* [annotation][in] */
+ _In_opt_ IDXGIOutput *pRestrictToOutput,
+ /* [annotation][out] */
+ _COM_Outptr_ IDXGISwapChain1 **ppSwapChain);
+
+ UINT ( STDMETHODCALLTYPE *GetCreationFlags )(
+ IDXGIFactory5 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )(
+ IDXGIFactory5 * This,
+ /* [annotation] */
+ _In_ LUID AdapterLuid,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )(
+ IDXGIFactory5 * This,
+ /* [annotation] */
+ _In_ REFIID riid,
+ /* [annotation] */
+ _COM_Outptr_ void **ppvAdapter);
+
+ HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
+ IDXGIFactory5 * This,
+ DXGI_FEATURE Feature,
+ /* [annotation] */
+ _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
+ UINT FeatureSupportDataSize);
+
+ END_INTERFACE
+ } IDXGIFactory5Vtbl;
+
+ interface IDXGIFactory5
+ {
+ CONST_VTBL struct IDXGIFactory5Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IDXGIFactory5_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IDXGIFactory5_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IDXGIFactory5_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IDXGIFactory5_SetPrivateData(This,Name,DataSize,pData) \
+ ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
+
+#define IDXGIFactory5_SetPrivateDataInterface(This,Name,pUnknown) \
+ ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
+
+#define IDXGIFactory5_GetPrivateData(This,Name,pDataSize,pData) \
+ ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
+
+#define IDXGIFactory5_GetParent(This,riid,ppParent) \
+ ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
+
+
+#define IDXGIFactory5_EnumAdapters(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory5_MakeWindowAssociation(This,WindowHandle,Flags) \
+ ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
+
+#define IDXGIFactory5_GetWindowAssociation(This,pWindowHandle) \
+ ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
+
+#define IDXGIFactory5_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
+
+#define IDXGIFactory5_CreateSoftwareAdapter(This,Module,ppAdapter) \
+ ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
+
+
+#define IDXGIFactory5_EnumAdapters1(This,Adapter,ppAdapter) \
+ ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) )
+
+#define IDXGIFactory5_IsCurrent(This) \
+ ( (This)->lpVtbl -> IsCurrent(This) )
+
+
+#define IDXGIFactory5_IsWindowedStereoEnabled(This) \
+ ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) )
+
+#define IDXGIFactory5_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory5_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) )
+
+#define IDXGIFactory5_GetSharedResourceAdapterLuid(This,hResource,pLuid) \
+ ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) )
+
+#define IDXGIFactory5_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory5_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory5_UnregisterStereoStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) )
+
+#define IDXGIFactory5_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) )
+
+#define IDXGIFactory5_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \
+ ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) )
+
+#define IDXGIFactory5_UnregisterOcclusionStatus(This,dwCookie) \
+ ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) )
+
+#define IDXGIFactory5_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \
+ ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) )
+
+
+#define IDXGIFactory5_GetCreationFlags(This) \
+ ( (This)->lpVtbl -> GetCreationFlags(This) )
+
+
+#define IDXGIFactory5_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) )
+
+#define IDXGIFactory5_EnumWarpAdapter(This,riid,ppvAdapter) \
+ ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) )
+
+
+#define IDXGIFactory5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \
+ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IDXGIFactory5_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_dxgi1_5_0000_0004 */
+/* [local] */
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+#pragma endregion
+DEFINE_GUID(IID_IDXGIOutput5,0x80A07424,0xAB52,0x42EB,0x83,0x3C,0x0C,0x42,0xFD,0x28,0x2D,0x98);
+DEFINE_GUID(IID_IDXGISwapChain4,0x3D585D5A,0xBD4A,0x489E,0xB1,0xF4,0x3D,0xBC,0xB6,0x45,0x2F,0xFB);
+DEFINE_GUID(IID_IDXGIDevice4,0x95B4F95F,0xD8DA,0x4CA4,0x9E,0xE6,0x3B,0x76,0xD5,0x96,0x8A,0x10);
+DEFINE_GUID(IID_IDXGIFactory5,0x7632e1f5,0xee65,0x4dca,0x87,0xfd,0x84,0xcd,0x75,0xf8,0x83,0x8d);
+
+
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_dxgi1_5_0000_0004_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/3rdparty/minidx12/Include/dxgitype.h b/3rdparty/minidx12/Include/dxgitype.h
index 066fafd53a..525840e1c8 100644
--- a/3rdparty/minidx12/Include/dxgitype.h
+++ b/3rdparty/minidx12/Include/dxgitype.h
@@ -119,6 +119,12 @@ typedef enum DXGI_COLOR_SPACE_TYPE
DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF
} DXGI_COLOR_SPACE_TYPE;
diff --git a/3rdparty/minidx12/Include/sdkddkver.h b/3rdparty/minidx12/Include/sdkddkver.h
new file mode 100644
index 0000000000..99dbfc071a
--- /dev/null
+++ b/3rdparty/minidx12/Include/sdkddkver.h
@@ -0,0 +1,295 @@
+/*
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+Module Name:
+
+ sdkddkver.h
+
+Abstract:
+
+ Master include file for versioning windows SDK/DDK.
+
+*/
+
+#ifndef _INC_SDKDDKVER
+#define _INC_SDKDDKVER
+
+#if (_MSC_VER >= 800)
+#if (_MSC_VER >= 1200)
+#pragma warning(push)
+#pragma warning(disable:4668) /* #if not_defined treated as #if 0 */
+#endif
+#pragma warning(disable:4001) /* nonstandard extension : single line comment */
+#endif
+
+#pragma once
+
+//
+// _WIN32_WINNT version constants
+//
+#define _WIN32_WINNT_NT4 0x0400
+#define _WIN32_WINNT_WIN2K 0x0500
+#define _WIN32_WINNT_WINXP 0x0501
+#define _WIN32_WINNT_WS03 0x0502
+#define _WIN32_WINNT_WIN6 0x0600
+#define _WIN32_WINNT_VISTA 0x0600
+#define _WIN32_WINNT_WS08 0x0600
+#define _WIN32_WINNT_LONGHORN 0x0600
+#define _WIN32_WINNT_WIN7 0x0601
+#define _WIN32_WINNT_WIN8 0x0602
+#define _WIN32_WINNT_WINBLUE 0x0603
+#define _WIN32_WINNT_WINTHRESHOLD 0x0A00 /* ABRACADABRA_THRESHOLD*/
+#define _WIN32_WINNT_WIN10 0x0A00 /* ABRACADABRA_THRESHOLD*/
+
+//
+// _WIN32_IE_ version constants
+//
+#define _WIN32_IE_IE20 0x0200
+#define _WIN32_IE_IE30 0x0300
+#define _WIN32_IE_IE302 0x0302
+#define _WIN32_IE_IE40 0x0400
+#define _WIN32_IE_IE401 0x0401
+#define _WIN32_IE_IE50 0x0500
+#define _WIN32_IE_IE501 0x0501
+#define _WIN32_IE_IE55 0x0550
+#define _WIN32_IE_IE60 0x0600
+#define _WIN32_IE_IE60SP1 0x0601
+#define _WIN32_IE_IE60SP2 0x0603
+#define _WIN32_IE_IE70 0x0700
+#define _WIN32_IE_IE80 0x0800
+#define _WIN32_IE_IE90 0x0900
+#define _WIN32_IE_IE100 0x0A00
+#define _WIN32_IE_IE110 0x0A00 /* ABRACADABRA_THRESHOLD */
+
+//
+// IE <-> OS version mapping
+//
+// NT4 supports IE versions 2.0 -> 6.0 SP1
+#define _WIN32_IE_NT4 _WIN32_IE_IE20
+#define _WIN32_IE_NT4SP1 _WIN32_IE_IE20
+#define _WIN32_IE_NT4SP2 _WIN32_IE_IE20
+#define _WIN32_IE_NT4SP3 _WIN32_IE_IE302
+#define _WIN32_IE_NT4SP4 _WIN32_IE_IE401
+#define _WIN32_IE_NT4SP5 _WIN32_IE_IE401
+#define _WIN32_IE_NT4SP6 _WIN32_IE_IE50
+// Win98 supports IE versions 4.01 -> 6.0 SP1
+#define _WIN32_IE_WIN98 _WIN32_IE_IE401
+// Win98SE supports IE versions 5.0 -> 6.0 SP1
+#define _WIN32_IE_WIN98SE _WIN32_IE_IE50
+// WinME supports IE versions 5.5 -> 6.0 SP1
+#define _WIN32_IE_WINME _WIN32_IE_IE55
+// Win2k supports IE versions 5.01 -> 6.0 SP1
+#define _WIN32_IE_WIN2K _WIN32_IE_IE501
+#define _WIN32_IE_WIN2KSP1 _WIN32_IE_IE501
+#define _WIN32_IE_WIN2KSP2 _WIN32_IE_IE501
+#define _WIN32_IE_WIN2KSP3 _WIN32_IE_IE501
+#define _WIN32_IE_WIN2KSP4 _WIN32_IE_IE501
+#define _WIN32_IE_XP _WIN32_IE_IE60
+#define _WIN32_IE_XPSP1 _WIN32_IE_IE60SP1
+#define _WIN32_IE_XPSP2 _WIN32_IE_IE60SP2
+#define _WIN32_IE_WS03 0x0602
+#define _WIN32_IE_WS03SP1 _WIN32_IE_IE60SP2
+#define _WIN32_IE_WIN6 _WIN32_IE_IE70
+#define _WIN32_IE_LONGHORN _WIN32_IE_IE70
+#define _WIN32_IE_WIN7 _WIN32_IE_IE80
+#define _WIN32_IE_WIN8 _WIN32_IE_IE100
+#define _WIN32_IE_WINBLUE _WIN32_IE_IE100
+#define _WIN32_IE_WINTHRESHOLD _WIN32_IE_IE110 /* ABRACADABRA_THRESHOLD */
+#define _WIN32_IE_WIN10 _WIN32_IE_IE110 /* ABRACADABRA_THRESHOLD */
+
+
+//
+// NTDDI version constants
+//
+#define NTDDI_WIN2K 0x05000000
+#define NTDDI_WIN2KSP1 0x05000100
+#define NTDDI_WIN2KSP2 0x05000200
+#define NTDDI_WIN2KSP3 0x05000300
+#define NTDDI_WIN2KSP4 0x05000400
+
+#define NTDDI_WINXP 0x05010000
+#define NTDDI_WINXPSP1 0x05010100
+#define NTDDI_WINXPSP2 0x05010200
+#define NTDDI_WINXPSP3 0x05010300
+#define NTDDI_WINXPSP4 0x05010400
+
+#define NTDDI_WS03 0x05020000
+#define NTDDI_WS03SP1 0x05020100
+#define NTDDI_WS03SP2 0x05020200
+#define NTDDI_WS03SP3 0x05020300
+#define NTDDI_WS03SP4 0x05020400
+
+#define NTDDI_WIN6 0x06000000
+#define NTDDI_WIN6SP1 0x06000100
+#define NTDDI_WIN6SP2 0x06000200
+#define NTDDI_WIN6SP3 0x06000300
+#define NTDDI_WIN6SP4 0x06000400
+
+#define NTDDI_VISTA NTDDI_WIN6
+#define NTDDI_VISTASP1 NTDDI_WIN6SP1
+#define NTDDI_VISTASP2 NTDDI_WIN6SP2
+#define NTDDI_VISTASP3 NTDDI_WIN6SP3
+#define NTDDI_VISTASP4 NTDDI_WIN6SP4
+
+#define NTDDI_LONGHORN NTDDI_VISTA
+
+#define NTDDI_WS08 NTDDI_WIN6SP1
+#define NTDDI_WS08SP2 NTDDI_WIN6SP2
+#define NTDDI_WS08SP3 NTDDI_WIN6SP3
+#define NTDDI_WS08SP4 NTDDI_WIN6SP4
+
+#define NTDDI_WIN7 0x06010000
+#define NTDDI_WIN8 0x06020000
+#define NTDDI_WINBLUE 0x06030000
+#define NTDDI_WINTHRESHOLD 0x0A000000 /* ABRACADABRA_THRESHOLD */
+#define NTDDI_WIN10 0x0A000000 /* ABRACADABRA_THRESHOLD */
+#define NTDDI_WIN10_TH2 0x0A000001 /* ABRACADABRA_WIN10_TH2 */
+#define NTDDI_WIN10_RS1 0x0A000002 /* ABRACADABRA_WIN10_RS1 */
+
+//
+// masks for version macros
+//
+#define OSVERSION_MASK 0xFFFF0000
+#define SPVERSION_MASK 0x0000FF00
+#define SUBVERSION_MASK 0x000000FF
+
+
+//
+// macros to extract various version fields from the NTDDI version
+//
+#define OSVER(Version) ((Version) & OSVERSION_MASK)
+#define SPVER(Version) (((Version) & SPVERSION_MASK) >> 8)
+#define SUBVER(Version) (((Version) & SUBVERSION_MASK) )
+
+
+#if defined(DECLSPEC_DEPRECATED_DDK)
+
+// deprecate in 2k or later
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#define DECLSPEC_DEPRECATED_DDK_WIN2K DECLSPEC_DEPRECATED_DDK
+#else
+#define DECLSPEC_DEPRECATED_DDK_WIN2K
+#endif
+
+// deprecate in XP or later
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+#define DECLSPEC_DEPRECATED_DDK_WINXP DECLSPEC_DEPRECATED_DDK
+#else
+#define DECLSPEC_DEPRECATED_DDK_WINXP
+#endif
+
+// deprecate in WS03 or later
+#if (NTDDI_VERSION >= NTDDI_WS03)
+#define DECLSPEC_DEPRECATED_DDK_WIN2003 DECLSPEC_DEPRECATED_DDK
+#else
+#define DECLSPEC_DEPRECATED_DDK_WIN2003
+#endif
+
+// deprecate in WIN6 or later
+#if (NTDDI_VERSION >= NTDDI_WIN6)
+#define DECLSPEC_DEPRECATED_DDK_WIN6 DECLSPEC_DEPRECATED_DDK
+#else
+#define DECLSPEC_DEPRECATED_DDK_WIN6
+#endif
+
+#define DECLSPEC_DEPRECATED_DDK_LONGHORN DECLSPEC_DEPRECATED_DDK_WIN6
+
+#endif // defined(DECLSPEC_DEPRECATED_DDK)
+
+
+//
+// if versions aren't already defined, default to most current
+//
+
+#define NTDDI_VERSION_FROM_WIN32_WINNT2(ver) ver##0000
+#define NTDDI_VERSION_FROM_WIN32_WINNT(ver) NTDDI_VERSION_FROM_WIN32_WINNT2(ver)
+
+#if !defined(_WIN32_WINNT) && !defined(_CHICAGO_)
+#define _WIN32_WINNT 0x0A00
+#endif
+
+#ifndef NTDDI_VERSION
+#ifdef _WIN32_WINNT
+// set NTDDI_VERSION based on _WIN32_WINNT
+#define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT)
+#else
+#define NTDDI_VERSION 0x0A000002
+#endif
+#endif
+
+#ifndef WINVER
+#ifdef _WIN32_WINNT
+// set WINVER based on _WIN32_WINNT
+#define WINVER _WIN32_WINNT
+#else
+#define WINVER 0x0A00
+#endif
+#endif
+
+#ifndef _WIN32_IE
+#ifdef _WIN32_WINNT
+// set _WIN32_IE based on _WIN32_WINNT
+#if (_WIN32_WINNT <= _WIN32_WINNT_NT4)
+#define _WIN32_IE _WIN32_IE_IE50
+#elif (_WIN32_WINNT <= _WIN32_WINNT_WIN2K)
+#define _WIN32_IE _WIN32_IE_IE501
+#elif (_WIN32_WINNT <= _WIN32_WINNT_WINXP)
+#define _WIN32_IE _WIN32_IE_IE60
+#elif (_WIN32_WINNT <= _WIN32_WINNT_WS03)
+#define _WIN32_IE _WIN32_IE_WS03
+#elif (_WIN32_WINNT <= _WIN32_WINNT_VISTA)
+#define _WIN32_IE _WIN32_IE_LONGHORN
+#elif (_WIN32_WINNT <= _WIN32_WINNT_WIN7)
+#define _WIN32_IE _WIN32_IE_WIN7
+#elif (_WIN32_WINNT <= _WIN32_WINNT_WIN8)
+#define _WIN32_IE _WIN32_IE_WIN8
+#else
+#define _WIN32_IE 0x0A00
+#endif
+#else
+#define _WIN32_IE 0x0A00
+#endif
+#endif
+
+//
+// Sanity check for compatible versions
+//
+#if defined(_WIN32_WINNT) && !defined(MIDL_PASS) && !defined(RC_INVOKED)
+
+#if (defined(WINVER) && (WINVER < 0x0400) && (_WIN32_WINNT > 0x0400))
+#error WINVER setting conflicts with _WIN32_WINNT setting
+#endif
+
+#if (((OSVERSION_MASK & NTDDI_VERSION) == NTDDI_WIN2K) && (_WIN32_WINNT != _WIN32_WINNT_WIN2K))
+#error NTDDI_VERSION setting conflicts with _WIN32_WINNT setting
+#endif
+
+#if (((OSVERSION_MASK & NTDDI_VERSION) == NTDDI_WINXP) && (_WIN32_WINNT != _WIN32_WINNT_WINXP))
+#error NTDDI_VERSION setting conflicts with _WIN32_WINNT setting
+#endif
+
+#if (((OSVERSION_MASK & NTDDI_VERSION) == NTDDI_WS03) && (_WIN32_WINNT != _WIN32_WINNT_WS03))
+#error NTDDI_VERSION setting conflicts with _WIN32_WINNT setting
+#endif
+
+#if (((OSVERSION_MASK & NTDDI_VERSION) == NTDDI_VISTA) && (_WIN32_WINNT != _WIN32_WINNT_VISTA))
+#error NTDDI_VERSION setting conflicts with _WIN32_WINNT setting
+#endif
+
+#if ((_WIN32_WINNT < _WIN32_WINNT_WIN2K) && (_WIN32_IE > _WIN32_IE_IE60SP1))
+#error _WIN32_WINNT settings conflicts with _WIN32_IE setting
+#endif
+
+#endif // defined(_WIN32_WINNT) && !defined(MIDL_PASS) && !defined(_WINRESRC_)
+
+#if (_MSC_VER >= 800)
+#if (_MSC_VER >= 1200)
+#pragma warning(pop)
+#else
+#pragma warning(default:4001) /* nonstandard extension : single line comment */
+#endif
+#endif
+
+#endif /* !_INC_SDKDDKVER */
+
diff --git a/3rdparty/minidx12/Lib/d2d1.lib b/3rdparty/minidx12/Lib/d2d1.lib
index e584cf6665..98c3c0a83e 100644
Binary files a/3rdparty/minidx12/Lib/d2d1.lib and b/3rdparty/minidx12/Lib/d2d1.lib differ
diff --git a/3rdparty/minidx12/Lib/dwrite.lib b/3rdparty/minidx12/Lib/dwrite.lib
index 75d18cecbe..18d5fd9b0f 100644
Binary files a/3rdparty/minidx12/Lib/dwrite.lib and b/3rdparty/minidx12/Lib/dwrite.lib differ
diff --git a/3rdparty/minidx12/Lib/dxgi.lib b/3rdparty/minidx12/Lib/dxgi.lib
index 8dfdb2dd72..4d8b354740 100644
Binary files a/3rdparty/minidx12/Lib/dxgi.lib and b/3rdparty/minidx12/Lib/dxgi.lib differ