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