From 92ad64cae3d42e3f255139fe5f49522093443382 Mon Sep 17 00:00:00 2001 From: Zangetsu38 Date: Thu, 3 Dec 2015 00:37:31 +0100 Subject: [PATCH] d3d12: Update minidx12 SDK on build 15.063. --- 3rdparty/minidx12/Include/D2DBaseTypes.h | 25 + 3rdparty/minidx12/Include/d2d1.h | 5823 ++++-------------- 3rdparty/minidx12/Include/d2d1_1.h | 3958 +++--------- 3rdparty/minidx12/Include/d2d1_2.h | 711 +-- 3rdparty/minidx12/Include/d2d1_3.h | 2703 ++++---- 3rdparty/minidx12/Include/d2d1_3helper.h | 32 + 3rdparty/minidx12/Include/d2d1effects.h | 3329 +++++----- 3rdparty/minidx12/Include/d2d1effects_1.h | 90 +- 3rdparty/minidx12/Include/d2d1effects_2.h | 803 ++- 3rdparty/minidx12/Include/d2d1svg.h | 1832 ++++++ 3rdparty/minidx12/Include/d3d10.h | 2 +- 3rdparty/minidx12/Include/d3d10_1.h | 2 +- 3rdparty/minidx12/Include/d3d11.h | 25 +- 3rdparty/minidx12/Include/d3d11_1.h | 2 +- 3rdparty/minidx12/Include/d3d11_2.h | 2 +- 3rdparty/minidx12/Include/d3d11_3.h | 2023 +++++- 3rdparty/minidx12/Include/d3d11_4.h | 3097 ++++++++++ 3rdparty/minidx12/Include/d3d11on12.h | 2 +- 3rdparty/minidx12/Include/d3d12.h | 2666 +++++++- 3rdparty/minidx12/Include/d3d12sdklayers.h | 701 ++- 3rdparty/minidx12/Include/d3dcommon.h | 126 +- 3rdparty/minidx12/Include/dcommon.h | 325 +- 3rdparty/minidx12/Include/dwrite.h | 36 +- 3rdparty/minidx12/Include/dwrite_1.h | 12 +- 3rdparty/minidx12/Include/dwrite_2.h | 29 +- 3rdparty/minidx12/Include/dwrite_3.h | 687 ++- 3rdparty/minidx12/Include/dxgi.h | 43 +- 3rdparty/minidx12/Include/dxgi1_2.h | 21 +- 3rdparty/minidx12/Include/dxgi1_3.h | 12 +- 3rdparty/minidx12/Include/dxgi1_4.h | 10 +- 3rdparty/minidx12/Include/dxgi1_5.h | 1539 +++++ 3rdparty/minidx12/Include/dxgi1_6.h | 727 +++ 3rdparty/minidx12/Include/dxgicommon.h | 51 + 3rdparty/minidx12/Include/dxgitype.h | 36 +- 3rdparty/minidx12/Include/sdkddkver.h | 305 + 3rdparty/minidx12/Include/winapifamily.h | 240 + 3rdparty/minidx12/Include/winpackagefamily.h | 91 + 3rdparty/minidx12/Lib/d2d1.lib | Bin 4396 -> 4882 bytes 3rdparty/minidx12/Lib/dwrite.lib | Bin 1746 -> 1746 bytes 3rdparty/minidx12/Lib/dxgi.lib | Bin 4670 -> 4962 bytes rpcs3_default.props | 2 +- 41 files changed, 19510 insertions(+), 12610 deletions(-) create mode 100644 3rdparty/minidx12/Include/D2DBaseTypes.h create mode 100644 3rdparty/minidx12/Include/d2d1svg.h create mode 100644 3rdparty/minidx12/Include/d3d11_4.h create mode 100644 3rdparty/minidx12/Include/dxgi1_5.h create mode 100644 3rdparty/minidx12/Include/dxgi1_6.h create mode 100644 3rdparty/minidx12/Include/dxgicommon.h create mode 100644 3rdparty/minidx12/Include/sdkddkver.h create mode 100644 3rdparty/minidx12/Include/winapifamily.h create mode 100644 3rdparty/minidx12/Include/winpackagefamily.h diff --git a/3rdparty/minidx12/Include/D2DBaseTypes.h b/3rdparty/minidx12/Include/D2DBaseTypes.h new file mode 100644 index 0000000000..3e331f8da4 --- /dev/null +++ b/3rdparty/minidx12/Include/D2DBaseTypes.h @@ -0,0 +1,25 @@ +//--------------------------------------------------------------------------- +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// This file is automatically generated. Please do not edit it directly. +// +// File name: D2DBaseTypes.h +//--------------------------------------------------------------------------- +#ifdef _MSC_VER +#pragma once +#endif // #ifdef _MSC_VER + +#ifndef _D2DBASETYPES_INCLUDED +#define _D2DBASETYPES_INCLUDED + +#ifndef COM_NO_WINDOWS_H +#include +#endif // #ifndef COM_NO_WINDOWS_H +#ifndef __dxgitype_h__ +#include +#endif // #ifndef __dxgitype_h__ +#ifndef DCOMMON_H_INCLUDED +#include +#endif // #ifndef DCOMMON_H_INCLUDED +typedef D3DCOLORVALUE D2D_COLOR_F; +#endif // #ifndef _D2DBASETYPES_INCLUDED diff --git a/3rdparty/minidx12/Include/d2d1.h b/3rdparty/minidx12/Include/d2d1.h index 36d032e469..e120584be1 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; @@ -1217,85 +1022,110 @@ typedef struct D2D1_FACTORY_OPTIONS #pragma endregion +#pragma region Application Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + + +EXTERN_C CONST IID IID_ID2D1Resource; +EXTERN_C CONST IID IID_ID2D1Image; +EXTERN_C CONST IID IID_ID2D1Bitmap; +EXTERN_C CONST IID IID_ID2D1GradientStopCollection; +EXTERN_C CONST IID IID_ID2D1Brush; +EXTERN_C CONST IID IID_ID2D1BitmapBrush; +EXTERN_C CONST IID IID_ID2D1SolidColorBrush; +EXTERN_C CONST IID IID_ID2D1LinearGradientBrush; +EXTERN_C CONST IID IID_ID2D1RadialGradientBrush; +EXTERN_C CONST IID IID_ID2D1StrokeStyle; +EXTERN_C CONST IID IID_ID2D1Geometry; +EXTERN_C CONST IID IID_ID2D1RectangleGeometry; +EXTERN_C CONST IID IID_ID2D1RoundedRectangleGeometry; +EXTERN_C CONST IID IID_ID2D1EllipseGeometry; +EXTERN_C CONST IID IID_ID2D1GeometryGroup; +EXTERN_C CONST IID IID_ID2D1TransformedGeometry; +EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink; +EXTERN_C CONST IID IID_ID2D1GeometrySink; +EXTERN_C CONST IID IID_ID2D1TessellationSink; +EXTERN_C CONST IID IID_ID2D1PathGeometry; +EXTERN_C CONST IID IID_ID2D1Mesh; +EXTERN_C CONST IID IID_ID2D1Layer; +EXTERN_C CONST IID IID_ID2D1DrawingStateBlock; +EXTERN_C CONST IID IID_ID2D1RenderTarget; +EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget; +EXTERN_C CONST IID IID_ID2D1HwndRenderTarget; +EXTERN_C CONST IID IID_ID2D1DCRenderTarget; +EXTERN_C CONST IID IID_ID2D1Factory; + + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ +#pragma endregion + +#pragma region Desktop Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + + +EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget; + + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ +#pragma endregion + + #ifndef D2D_USE_C_DEFINITIONS #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 +1151,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 +1184,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 +1222,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 +1268,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 +1297,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 +1307,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 +1327,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 +1374,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 +1404,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 +1415,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 +1443,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 +1456,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 +1466,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 +1476,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 +1487,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 +1508,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 +1547,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 +1558,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 +1571,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 +1588,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 +1604,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 +1634,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 +1676,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 +1701,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 +1716,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 +1730,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 +1744,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 +1760,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 +1775,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 +1790,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 +1804,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 +1817,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 +1830,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 +1847,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 +1863,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 +1879,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 +1894,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 +1908,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 +1922,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 +1936,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 +1949,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 +1962,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 +1976,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 +1989,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 +2002,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 +2018,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 +2033,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 +2048,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 +2064,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 +2079,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 +2096,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 +2108,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 +2120,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 +2132,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 +2151,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 +2167,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 +2206,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 +2263,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 +2279,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 +2310,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 +2336,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 +2384,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 +2571,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 +2611,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 +2673,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 +2722,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 +2755,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 +2774,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 +2829,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 +2840,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 +2922,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 +2933,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 +2944,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 +2955,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 +2967,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 +2978,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 +2990,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 +2999,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 +3009,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 +3020,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 +3032,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 +3045,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 +3055,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 +3064,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 +3213,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 +3224,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 +3243,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 +3298,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 +3322,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 +3335,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 +3358,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 +3466,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 +3476,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 +3487,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 +3499,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 +3509,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 +3518,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 +3529,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 +3540,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 +3551,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); @@ -3986,54 +3567,6 @@ interface DX_DECLARE_INTERFACE("06152247-6f50-465a-9245-118bfd3b6007") ID2D1Fact #endif -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -EXTERN_C CONST IID IID_ID2D1Resource; -EXTERN_C CONST IID IID_ID2D1Image; -EXTERN_C CONST IID IID_ID2D1Bitmap; -EXTERN_C CONST IID IID_ID2D1GradientStopCollection; -EXTERN_C CONST IID IID_ID2D1Brush; -EXTERN_C CONST IID IID_ID2D1BitmapBrush; -EXTERN_C CONST IID IID_ID2D1SolidColorBrush; -EXTERN_C CONST IID IID_ID2D1LinearGradientBrush; -EXTERN_C CONST IID IID_ID2D1RadialGradientBrush; -EXTERN_C CONST IID IID_ID2D1StrokeStyle; -EXTERN_C CONST IID IID_ID2D1Geometry; -EXTERN_C CONST IID IID_ID2D1RectangleGeometry; -EXTERN_C CONST IID IID_ID2D1RoundedRectangleGeometry; -EXTERN_C CONST IID IID_ID2D1EllipseGeometry; -EXTERN_C CONST IID IID_ID2D1GeometryGroup; -EXTERN_C CONST IID IID_ID2D1TransformedGeometry; -EXTERN_C CONST IID IID_ID2D1SimplifiedGeometrySink; -EXTERN_C CONST IID IID_ID2D1GeometrySink; -EXTERN_C CONST IID IID_ID2D1TessellationSink; -EXTERN_C CONST IID IID_ID2D1PathGeometry; -EXTERN_C CONST IID IID_ID2D1Mesh; -EXTERN_C CONST IID IID_ID2D1Layer; -EXTERN_C CONST IID IID_ID2D1DrawingStateBlock; -EXTERN_C CONST IID IID_ID2D1RenderTarget; -EXTERN_C CONST IID IID_ID2D1BitmapRenderTarget; -EXTERN_C CONST IID IID_ID2D1HwndRenderTarget; -EXTERN_C CONST IID IID_ID2D1DCRenderTarget; -EXTERN_C CONST IID IID_ID2D1Factory; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -EXTERN_C CONST IID IID_ID2D1GdiInteropRenderTarget; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - - #ifdef D2D_USE_C_DEFINITIONS @@ -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..bfa87b6b69 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,339 @@ 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_MAX = 4, + 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 +397,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 +426,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 +473,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 +487,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 +500,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 +512,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 +525,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 +564,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 +605,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; @@ -809,26 +643,39 @@ typedef struct D2D1_CREATION_PROPERTIES } D2D1_CREATION_PROPERTIES; +EXTERN_C CONST IID IID_ID2D1GdiMetafileSink; +EXTERN_C CONST IID IID_ID2D1GdiMetafile; +EXTERN_C CONST IID IID_ID2D1CommandSink; +EXTERN_C CONST IID IID_ID2D1CommandList; +EXTERN_C CONST IID IID_ID2D1PrintControl; +EXTERN_C CONST IID IID_ID2D1ImageBrush; +EXTERN_C CONST IID IID_ID2D1BitmapBrush1; +EXTERN_C CONST IID IID_ID2D1StrokeStyle1; +EXTERN_C CONST IID IID_ID2D1PathGeometry1; +EXTERN_C CONST IID IID_ID2D1Properties; +EXTERN_C CONST IID IID_ID2D1Effect; +EXTERN_C CONST IID IID_ID2D1Bitmap1; +EXTERN_C CONST IID IID_ID2D1ColorContext; +EXTERN_C CONST IID IID_ID2D1GradientStopCollection1; +EXTERN_C CONST IID IID_ID2D1DrawingStateBlock1; +EXTERN_C CONST IID IID_ID2D1DeviceContext; +EXTERN_C CONST IID IID_ID2D1Device; +EXTERN_C CONST IID IID_ID2D1Factory1; +EXTERN_C CONST IID IID_ID2D1Multithread; + + #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 +684,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 +845,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 +886,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 +914,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 +932,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 +951,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 +962,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 +1017,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 +1070,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 +1080,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 +1091,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 +1101,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 +1292,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 +1363,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 +1436,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 +1515,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 +1686,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 +1763,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 +1775,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 +1794,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 +1804,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 +1844,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 +1865,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 +1903,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 +1915,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 +1926,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 +1936,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 +1947,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 +1959,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 +2143,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 +2157,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 +2209,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 +2217,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 +2285,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 +2297,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 +2337,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 +2347,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 +2356,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 +2364,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 @@ -2754,2049 +2396,47 @@ interface DX_DECLARE_INTERFACE("31e6e7bc-e0ff-4d46-8c64-a0a8c41c15d3") ID2D1Mult #endif -EXTERN_C CONST IID IID_ID2D1GdiMetafileSink; -EXTERN_C CONST IID IID_ID2D1GdiMetafile; -EXTERN_C CONST IID IID_ID2D1CommandSink; -EXTERN_C CONST IID IID_ID2D1CommandList; -EXTERN_C CONST IID IID_ID2D1PrintControl; -EXTERN_C CONST IID IID_ID2D1ImageBrush; -EXTERN_C CONST IID IID_ID2D1BitmapBrush1; -EXTERN_C CONST IID IID_ID2D1StrokeStyle1; -EXTERN_C CONST IID IID_ID2D1PathGeometry1; -EXTERN_C CONST IID IID_ID2D1Properties; -EXTERN_C CONST IID IID_ID2D1Effect; -EXTERN_C CONST IID IID_ID2D1Bitmap1; -EXTERN_C CONST IID IID_ID2D1ColorContext; -EXTERN_C CONST IID IID_ID2D1GradientStopCollection1; -EXTERN_C CONST IID IID_ID2D1DrawingStateBlock1; -EXTERN_C CONST IID IID_ID2D1DeviceContext; -EXTERN_C CONST IID IID_ID2D1Device; -EXTERN_C CONST IID IID_ID2D1Factory1; -EXTERN_C CONST IID IID_ID2D1Multithread; - - #ifdef D2D_USE_C_DEFINITIONS 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..83a4827d36 100644 --- a/3rdparty/minidx12/Include/d2d1_2.h +++ b/3rdparty/minidx12/Include/d2d1_2.h @@ -33,53 +33,47 @@ 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; +EXTERN_C CONST IID IID_ID2D1GeometryRealization; +EXTERN_C CONST IID IID_ID2D1DeviceContext1; +EXTERN_C CONST IID IID_ID2D1Device1; +EXTERN_C CONST IID IID_ID2D1Factory2; +EXTERN_C CONST IID IID_ID2D1CommandSink1; + + #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 +81,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 +91,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; @@ -183,605 +164,19 @@ interface DX_DECLARE_INTERFACE("9eb767fd-4269-4467-b8c2-eb30cb305743") ID2D1Comm #endif -EXTERN_C CONST IID IID_ID2D1GeometryRealization; -EXTERN_C CONST IID IID_ID2D1DeviceContext1; -EXTERN_C CONST IID IID_ID2D1Device1; -EXTERN_C CONST IID IID_ID2D1Factory2; -EXTERN_C CONST IID IID_ID2D1CommandSink1; - - #ifdef D2D_USE_C_DEFINITIONS 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..5513db67c8 100644 --- a/3rdparty/minidx12/Include/d2d1_3.h +++ b/3rdparty/minidx12/Include/d2d1_3.h @@ -18,6 +18,9 @@ #ifndef _D2D1_EFFECTS_2_ #include #endif // #ifndef _D2D1_EFFECTS_2_ +#ifndef _D2D1_SVG_ +#include +#endif // #ifndef _D2D1_SVG_ #include @@ -25,161 +28,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 +158,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 +172,337 @@ 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; + + +/// +/// This determines what gamma is used for interpolation/blending. +/// +typedef enum D2D1_GAMMA1 +{ + + /// + /// Colors are manipulated in 2.2 gamma color space. + /// + D2D1_GAMMA1_G22 = D2D1_GAMMA_2_2, + + /// + /// Colors are manipulated in 1.0 gamma color space. + /// + D2D1_GAMMA1_G10 = D2D1_GAMMA_1_0, + + /// + /// Colors are manipulated in ST.2084 PQ gamma color space. + /// + D2D1_GAMMA1_G2084 = 2, + D2D1_GAMMA1_FORCE_DWORD = 0xffffffff + +} D2D1_GAMMA1; + + +/// +/// Simple description of a color space. +/// +typedef struct D2D1_SIMPLE_COLOR_PROFILE +{ + + /// + /// The XY coordinates of the red primary in CIEXYZ space. + /// + D2D1_POINT_2F redPrimary; + + /// + /// The XY coordinates of the green primary in CIEXYZ space. + /// + D2D1_POINT_2F greenPrimary; + + /// + /// The XY coordinates of the blue primary in CIEXYZ space. + /// + D2D1_POINT_2F bluePrimary; + + /// + /// The X/Z tristimulus values for the whitepoint, normalized for relative + /// luminance. + /// + D2D1_POINT_2F whitePointXZ; + + /// + /// The gamma encoding to use for this color space. + /// + D2D1_GAMMA1 gamma; + +} D2D1_SIMPLE_COLOR_PROFILE; + + +/// +/// Specifies which way a color profile is defined. +/// +typedef enum D2D1_COLOR_CONTEXT_TYPE +{ + D2D1_COLOR_CONTEXT_TYPE_ICC = 0, + D2D1_COLOR_CONTEXT_TYPE_SIMPLE = 1, + D2D1_COLOR_CONTEXT_TYPE_DXGI = 2, + D2D1_COLOR_CONTEXT_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_COLOR_CONTEXT_TYPE; + + + +typedef enum DWRITE_GLYPH_IMAGE_FORMATS DWRITE_GLYPH_IMAGE_FORMATS; + + + +EXTERN_C CONST IID IID_ID2D1InkStyle; +EXTERN_C CONST IID IID_ID2D1Ink; +EXTERN_C CONST IID IID_ID2D1GradientMesh; +EXTERN_C CONST IID IID_ID2D1ImageSource; +EXTERN_C CONST IID IID_ID2D1ImageSourceFromWic; +EXTERN_C CONST IID IID_ID2D1TransformedImageSource; +EXTERN_C CONST IID IID_ID2D1LookupTable3D; +EXTERN_C CONST IID IID_ID2D1DeviceContext2; +EXTERN_C CONST IID IID_ID2D1Device2; +EXTERN_C CONST IID IID_ID2D1Factory3; +EXTERN_C CONST IID IID_ID2D1CommandSink2; +EXTERN_C CONST IID IID_ID2D1GdiMetafile1; +EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1; +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; +EXTERN_C CONST IID IID_ID2D1CommandSink4; +EXTERN_C CONST IID IID_ID2D1ColorContext1; +EXTERN_C CONST IID IID_ID2D1DeviceContext5; +EXTERN_C CONST IID IID_ID2D1Device5; +EXTERN_C CONST IID IID_ID2D1Factory6; + #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 +532,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 +608,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 +638,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 +653,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 +667,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 +683,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 +708,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 +723,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 +761,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 +777,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 +838,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 +860,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 +871,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 +908,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 +918,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 +938,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 +954,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 +1012,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 +1039,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,23 +1083,625 @@ 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 +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 + +interface DX_DECLARE_INTERFACE("c78a6519-40d6-4218-b2de-beeeb744bb3e") ID2D1CommandSink4 : public ID2D1CommandSink3 +{ + + /// + /// A new function to set blend mode that respects the new MAX blend. + /// + /// Implementers of SetPrimitiveBlend2 should expect and handle blend mode: + /// D2D1_PRIMITIVE_BLEND_MAX + /// + /// Implementers of SetPrimitiveBlend1 should expect and handle blend modes: + /// D2D1_PRIMITIVE_BLEND_MIN and D2D1_PRIMITIVE_BLEND_ADD + /// + /// Implementers of SetPrimitiveBlend should expect and handle blend modes: + /// D2D1_PRIMITIVE_BLEND_SOURCE_OVER and D2D1_PRIMITIVE_BLEND_COPY + /// + STDMETHOD(SetPrimitiveBlend2)( + D2D1_PRIMITIVE_BLEND primitiveBlend + ) PURE; +}; // interface ID2D1CommandSink4 + + +/// +/// Represents a color context to be used with the Color Management Effect. +/// +interface DX_DECLARE_INTERFACE("1ab42875-c57f-4be9-bd85-9cd78d6f55ee") ID2D1ColorContext1 : public ID2D1ColorContext +{ + + /// + /// Retrieves the color context type. + /// + STDMETHOD_(D2D1_COLOR_CONTEXT_TYPE, GetColorContextType)( + ) CONST PURE; + + /// + /// Retrieves the DXGI color space of this context. Returns DXGI_COLOR_SPACE_CUSTOM + /// when color context type is ICC. + /// + STDMETHOD_(DXGI_COLOR_SPACE_TYPE, GetDXGIColorSpace)( + ) CONST PURE; + + /// + /// Retrieves a set simple color profile. + /// + STDMETHOD(GetSimpleColorProfile)( + _Out_ D2D1_SIMPLE_COLOR_PROFILE *simpleProfile + ) CONST PURE; +}; // interface ID2D1ColorContext1 + + +interface DX_DECLARE_INTERFACE("7836d248-68cc-4df6-b9e8-de991bf62eb7") ID2D1DeviceContext5 : public ID2D1DeviceContext4 +{ + + /// + /// Creates an SVG document from a stream. + /// + /// An input stream containing the SVG XML document. If + /// null, an empty document is created. + /// Size of the initial viewport of the document. + /// When this method returns, contains a pointer to the + /// SVG document. + STDMETHOD(CreateSvgDocument)( + _In_opt_ IStream *inputXmlStream, + D2D1_SIZE_F viewportSize, + _COM_Outptr_ ID2D1SvgDocument **svgDocument + ) PURE; + + /// + /// Draw an SVG document. + /// + STDMETHOD_(void, DrawSvgDocument)( + _In_ ID2D1SvgDocument *svgDocument + ) PURE; + + /// + /// Creates a color context from a DXGI color space type. It is only valid to use + /// this with the Color Management Effect in 'Best' mode. + /// + STDMETHOD(CreateColorContextFromDxgiColorSpace)( + DXGI_COLOR_SPACE_TYPE colorSpace, + _COM_Outptr_ ID2D1ColorContext1 **colorContext + ) PURE; + + /// + /// Creates a color context from a simple color profile. It is only valid to use + /// this with the Color Management Effect in 'Best' mode. + /// + STDMETHOD(CreateColorContextFromSimpleColorProfile)( + _In_ CONST D2D1_SIMPLE_COLOR_PROFILE *simpleProfile, + _COM_Outptr_ ID2D1ColorContext1 **colorContext + ) PURE; + + /// + /// Creates a color context from a simple color profile. + /// + COM_DECLSPEC_NOTHROW + HRESULT + CreateColorContextFromSimpleColorProfile( + CONST D2D1_SIMPLE_COLOR_PROFILE &simpleProfile, + _COM_Outptr_ ID2D1ColorContext1 **colorContext + ) + { + return CreateColorContextFromSimpleColorProfile(&simpleProfile, colorContext); + } +}; // interface ID2D1DeviceContext5 + + +interface DX_DECLARE_INTERFACE("d55ba0a4-6405-4694-aef5-08ee1a4358b4") ID2D1Device5 : public ID2D1Device4 +{ + + /// + /// Creates a new device context with no initially assigned target. + /// + STDMETHOD(CreateDeviceContext)( + D2D1_DEVICE_CONTEXT_OPTIONS options, + _COM_Outptr_ ID2D1DeviceContext5 **deviceContext5 + ) PURE; + + using ID2D1Device4::CreateDeviceContext; + + using ID2D1Device3::CreateDeviceContext; + + using ID2D1Device2::CreateDeviceContext; + + using ID2D1Device1::CreateDeviceContext; + + using ID2D1Device::CreateDeviceContext; +}; // interface ID2D1Device5 + + +/// +/// Creates Direct2D resources. This interface also enables the creation of +/// ID2D1Device5 objects. +/// +interface DX_DECLARE_INTERFACE("f9976f46-f642-44c1-97ca-da32ea2a2635") ID2D1Factory6 : public ID2D1Factory5 +{ + + /// + /// This creates a new Direct2D device from the given IDXGIDevice. + /// + STDMETHOD(CreateDevice)( + _In_ IDXGIDevice *dxgiDevice, + _COM_Outptr_ ID2D1Device5 **d2dDevice5 + ) PURE; + + using ID2D1Factory5::CreateDevice; + + using ID2D1Factory4::CreateDevice; + + using ID2D1Factory3::CreateDevice; + + using ID2D1Factory2::CreateDevice; + + using ID2D1Factory1::CreateDevice; +}; // interface ID2D1Factory6 + #endif - -EXTERN_C CONST IID IID_ID2D1InkStyle; -EXTERN_C CONST IID IID_ID2D1Ink; -EXTERN_C CONST IID IID_ID2D1GradientMesh; -EXTERN_C CONST IID IID_ID2D1ImageSource; -EXTERN_C CONST IID IID_ID2D1ImageSourceFromWic; -EXTERN_C CONST IID IID_ID2D1TransformedImageSource; -EXTERN_C CONST IID IID_ID2D1LookupTable3D; -EXTERN_C CONST IID IID_ID2D1DeviceContext2; -EXTERN_C CONST IID IID_ID2D1Device2; -EXTERN_C CONST IID IID_ID2D1Factory3; -EXTERN_C CONST IID IID_ID2D1CommandSink2; -EXTERN_C CONST IID IID_ID2D1GdiMetafile1; -EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1; +#endif #ifdef D2D_USE_C_DEFINITIONS @@ -1078,1150 +1709,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..542f0a2405 100644 --- a/3rdparty/minidx12/Include/d2d1_3helper.h +++ b/3rdparty/minidx12/Include/d2d1_3helper.h @@ -215,6 +215,38 @@ namespace D2D1 return inkStyleProperties; } + + COM_DECLSPEC_NOTHROW + D2D1FORCEINLINE + D2D1_RECT_U + InfiniteRectU() + { + D2D1_RECT_U rect = { 0u, 0u, UINT_MAX, UINT_MAX }; + + return rect; + } + + COM_DECLSPEC_NOTHROW + D2D1FORCEINLINE + D2D1_SIMPLE_COLOR_PROFILE + SimpleColorProfile( + const D2D1_POINT_2F &redPrimary, + const D2D1_POINT_2F &greenPrimary, + const D2D1_POINT_2F &bluePrimary, + const D2D1_GAMMA1 gamma, + const D2D1_POINT_2F &whitePointXZ + ) + { + D2D1_SIMPLE_COLOR_PROFILE simpleColorProfile; + + simpleColorProfile.redPrimary = redPrimary; + simpleColorProfile.greenPrimary = greenPrimary; + simpleColorProfile.bluePrimary = bluePrimary; + simpleColorProfile.gamma = gamma; + simpleColorProfile.whitePointXZ = whitePointXZ; + + return simpleColorProfile; + } } // 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/d2d1svg.h b/3rdparty/minidx12/Include/d2d1svg.h new file mode 100644 index 0000000000..827922b36e --- /dev/null +++ b/3rdparty/minidx12/Include/d2d1svg.h @@ -0,0 +1,1832 @@ +//--------------------------------------------------------------------------- +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// This file is automatically generated. Please do not edit it directly. +// +// File name: D2D1Svg.h +//--------------------------------------------------------------------------- +#ifdef _MSC_VER +#pragma once +#endif // #ifdef _MSC_VER + +#ifndef _D2D1_SVG_ +#define _D2D1_SVG_ + +#ifndef _D2D1_2_H_ +#include +#endif // #ifndef _D2D1_2_H_ + +#include + +#pragma region Application Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + +typedef interface ID2D1SvgDocument ID2D1SvgDocument; +typedef interface ID2D1SvgElement ID2D1SvgElement; + +/// +/// Specifies the paint type for an SVG fill or stroke. +/// +typedef enum D2D1_SVG_PAINT_TYPE +{ + + /// + /// The fill or stroke is not rendered. + /// + D2D1_SVG_PAINT_TYPE_NONE = 0, + + /// + /// A solid color is rendered. + /// + D2D1_SVG_PAINT_TYPE_COLOR = 1, + + /// + /// The current color is rendered. + /// + D2D1_SVG_PAINT_TYPE_CURRENT_COLOR = 2, + + /// + /// A paint server, defined by another element in the SVG document, is used. + /// + D2D1_SVG_PAINT_TYPE_URI = 3, + + /// + /// A paint server, defined by another element in the SVG document, is used. If the + /// paint server reference is invalid, fall back to D2D1_SVG_PAINT_TYPE_NONE. + /// + D2D1_SVG_PAINT_TYPE_URI_NONE = 4, + + /// + /// A paint server, defined by another element in the SVG document, is used. If the + /// paint server reference is invalid, fall back to D2D1_SVG_PAINT_TYPE_COLOR. + /// + D2D1_SVG_PAINT_TYPE_URI_COLOR = 5, + + /// + /// A paint server, defined by another element in the SVG document, is used. If the + /// paint server reference is invalid, fall back to + /// D2D1_SVG_PAINT_TYPE_CURRENT_COLOR. + /// + D2D1_SVG_PAINT_TYPE_URI_CURRENT_COLOR = 6, + D2D1_SVG_PAINT_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_PAINT_TYPE; + + +/// +/// Specifies the units for an SVG length. +/// +typedef enum D2D1_SVG_LENGTH_UNITS +{ + + /// + /// The length is unitless. + /// + D2D1_SVG_LENGTH_UNITS_NUMBER = 0, + + /// + /// The length is a percentage value. + /// + D2D1_SVG_LENGTH_UNITS_PERCENTAGE = 1, + D2D1_SVG_LENGTH_UNITS_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_LENGTH_UNITS; + + +/// +/// Specifies a value for the SVG display property. +/// +typedef enum D2D1_SVG_DISPLAY +{ + + /// + /// The element uses the default display behavior. + /// + D2D1_SVG_DISPLAY_INLINE = 0, + + /// + /// The element and all children are not rendered directly. + /// + D2D1_SVG_DISPLAY_NONE = 1, + D2D1_SVG_DISPLAY_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_DISPLAY; + + +/// +/// Specifies a value for the SVG visibility property. +/// +typedef enum D2D1_SVG_VISIBILITY +{ + + /// + /// The element is visible. + /// + D2D1_SVG_VISIBILITY_VISIBLE = 0, + + /// + /// The element is invisible. + /// + D2D1_SVG_VISIBILITY_HIDDEN = 1, + D2D1_SVG_VISIBILITY_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_VISIBILITY; + + +/// +/// Specifies a value for the SVG overflow property. +/// +typedef enum D2D1_SVG_OVERFLOW +{ + + /// + /// The element is not clipped to its viewport. + /// + D2D1_SVG_OVERFLOW_VISIBLE = 0, + + /// + /// The element is clipped to its viewport. + /// + D2D1_SVG_OVERFLOW_HIDDEN = 1, + D2D1_SVG_OVERFLOW_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_OVERFLOW; + + +/// +/// Specifies a value for the SVG stroke-linecap property. +/// +typedef enum D2D1_SVG_LINE_CAP +{ + + /// + /// The property is set to SVG's 'butt' value. + /// + D2D1_SVG_LINE_CAP_BUTT = D2D1_CAP_STYLE_FLAT, + + /// + /// The property is set to SVG's 'square' value. + /// + D2D1_SVG_LINE_CAP_SQUARE = D2D1_CAP_STYLE_SQUARE, + + /// + /// The property is set to SVG's 'round' value. + /// + D2D1_SVG_LINE_CAP_ROUND = D2D1_CAP_STYLE_ROUND, + D2D1_SVG_LINE_CAP_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_LINE_CAP; + + +/// +/// Specifies a value for the SVG stroke-linejoin property. +/// +typedef enum D2D1_SVG_LINE_JOIN +{ + + /// + /// The property is set to SVG's 'bevel' value. + /// + D2D1_SVG_LINE_JOIN_BEVEL = D2D1_LINE_JOIN_BEVEL, + + /// + /// The property is set to SVG's 'miter' value. Note that this is equivalent to + /// D2D1_LINE_JOIN_MITER_OR_BEVEL, not D2D1_LINE_JOIN_MITER. + /// + D2D1_SVG_LINE_JOIN_MITER = D2D1_LINE_JOIN_MITER_OR_BEVEL, + + /// + /// \ The property is set to SVG's 'round' value. + /// + D2D1_SVG_LINE_JOIN_ROUND = D2D1_LINE_JOIN_ROUND, + D2D1_SVG_LINE_JOIN_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_LINE_JOIN; + + +/// +/// The alignment portion of the SVG preserveAspectRatio attribute. +/// +typedef enum D2D1_SVG_ASPECT_ALIGN +{ + + /// + /// The alignment is set to SVG's 'none' value. + /// + D2D1_SVG_ASPECT_ALIGN_NONE = 0, + + /// + /// The alignment is set to SVG's 'xMinYMin' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MIN = 1, + + /// + /// The alignment is set to SVG's 'xMidYMin' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MIN = 2, + + /// + /// The alignment is set to SVG's 'xMaxYMin' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MIN = 3, + + /// + /// The alignment is set to SVG's 'xMinYMid' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MID = 4, + + /// + /// The alignment is set to SVG's 'xMidYMid' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MID = 5, + + /// + /// The alignment is set to SVG's 'xMaxYMid' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MID = 6, + + /// + /// The alignment is set to SVG's 'xMinYMax' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MIN_Y_MAX = 7, + + /// + /// The alignment is set to SVG's 'xMidYMax' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MID_Y_MAX = 8, + + /// + /// The alignment is set to SVG's 'xMaxYMax' value. + /// + D2D1_SVG_ASPECT_ALIGN_X_MAX_Y_MAX = 9, + D2D1_SVG_ASPECT_ALIGN_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_ASPECT_ALIGN; + + +/// +/// The meetOrSlice portion of the SVG preserveAspectRatio attribute. +/// +typedef enum D2D1_SVG_ASPECT_SCALING +{ + + /// + /// Scale the viewBox up as much as possible such that the entire viewBox is visible + /// within the viewport. + /// + D2D1_SVG_ASPECT_SCALING_MEET = 0, + + /// + /// Scale the viewBox down as much as possible such that the entire viewport is + /// covered by the viewBox. + /// + D2D1_SVG_ASPECT_SCALING_SLICE = 1, + D2D1_SVG_ASPECT_SCALING_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_ASPECT_SCALING; + + +/// +/// Represents a path commmand. Each command may reference floats from the segment +/// data. Commands ending in _ABSOLUTE interpret data as absolute coordinate. +/// Commands ending in _RELATIVE interpret data as being relative to the previous +/// point. +/// +typedef enum D2D1_SVG_PATH_COMMAND +{ + + /// + /// Closes the current subpath. Uses no segment data. + /// + D2D1_SVG_PATH_COMMAND_CLOSE_PATH = 0, + + /// + /// Starts a new subpath at the coordinate (x y). Uses 2 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_MOVE_ABSOLUTE = 1, + + /// + /// Starts a new subpath at the coordinate (x y). Uses 2 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_MOVE_RELATIVE = 2, + + /// + /// Draws a line to the coordinate (x y). Uses 2 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_LINE_ABSOLUTE = 3, + + /// + /// Draws a line to the coordinate (x y). Uses 2 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_LINE_RELATIVE = 4, + + /// + /// Draws a cubic Bezier curve (x1 y1 x2 y2 x y). The curve ends at (x, y) and is + /// defined by the two control points (x1, y1) and (x2, y2). Uses 6 floats of + /// segment data. + /// + D2D1_SVG_PATH_COMMAND_CUBIC_ABSOLUTE = 5, + + /// + /// Draws a cubic Bezier curve (x1 y1 x2 y2 x y). The curve ends at (x, y) and is + /// defined by the two control points (x1, y1) and (x2, y2). Uses 6 floats of + /// segment data. + /// + D2D1_SVG_PATH_COMMAND_CUBIC_RELATIVE = 6, + + /// + /// Draws a quadratic Bezier curve (x1 y1 x y). The curve ends at (x, y) and is + /// defined by the control point (x1 y1). Uses 4 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_QUADRADIC_ABSOLUTE = 7, + + /// + /// Draws a quadratic Bezier curve (x1 y1 x y). The curve ends at (x, y) and is + /// defined by the control point (x1 y1). Uses 4 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_QUADRADIC_RELATIVE = 8, + + /// + /// Draws an elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y). + /// The curve ends at (x, y) and is defined by the arc parameters. The two flags are + /// considered set if their values are non-zero. Uses 7 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_ARC_ABSOLUTE = 9, + + /// + /// Draws an elliptical arc (rx ry x-axis-rotation large-arc-flag sweep-flag x y). + /// The curve ends at (x, y) and is defined by the arc parameters. The two flags are + /// considered set if their values are non-zero. Uses 7 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_ARC_RELATIVE = 10, + + /// + /// Draws a horizontal line to the coordinate (x). Uses 1 float of segment data. + /// + D2D1_SVG_PATH_COMMAND_HORIZONTAL_ABSOLUTE = 11, + + /// + /// Draws a horizontal line to the coordinate (x). Uses 1 float of segment data. + /// + D2D1_SVG_PATH_COMMAND_HORIZONTAL_RELATIVE = 12, + + /// + /// Draws a vertical line to the coordinate (y). Uses 1 float of segment data. + /// + D2D1_SVG_PATH_COMMAND_VERTICAL_ABSOLUTE = 13, + + /// + /// Draws a vertical line to the coordinate (y). Uses 1 float of segment data. + /// + D2D1_SVG_PATH_COMMAND_VERTICAL_RELATIVE = 14, + + /// + /// Draws a smooth cubic Bezier curve (x2 y2 x y). The curve ends at (x, y) and is + /// defined by the control point (x2, y2). Uses 4 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_CUBIC_SMOOTH_ABSOLUTE = 15, + + /// + /// Draws a smooth cubic Bezier curve (x2 y2 x y). The curve ends at (x, y) and is + /// defined by the control point (x2, y2). Uses 4 floats of segment data. + /// + D2D1_SVG_PATH_COMMAND_CUBIC_SMOOTH_RELATIVE = 16, + + /// + /// Draws a smooth quadratic Bezier curve ending at (x, y). Uses 2 floats of segment + /// data. + /// + D2D1_SVG_PATH_COMMAND_QUADRADIC_SMOOTH_ABSOLUTE = 17, + + /// + /// Draws a smooth quadratic Bezier curve ending at (x, y). Uses 2 floats of segment + /// data. + /// + D2D1_SVG_PATH_COMMAND_QUADRADIC_SMOOTH_RELATIVE = 18, + D2D1_SVG_PATH_COMMAND_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_PATH_COMMAND; + + +/// +/// Defines the coordinate system used for SVG gradient or clipPath elements. +/// +typedef enum D2D1_SVG_UNIT_TYPE +{ + + /// + /// The property is set to SVG's 'userSpaceOnUse' value. + /// + D2D1_SVG_UNIT_TYPE_USER_SPACE_ON_USE = 0, + + /// + /// The property is set to SVG's 'objectBoundingBox' value. + /// + D2D1_SVG_UNIT_TYPE_OBJECT_BOUNDING_BOX = 1, + D2D1_SVG_UNIT_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_UNIT_TYPE; + + +/// +/// Defines the type of SVG string attribute to set or get. +/// +typedef enum D2D1_SVG_ATTRIBUTE_STRING_TYPE +{ + + /// + /// The attribute is a string in the same form as it would appear in the SVG XML. + /// + /// Note that when getting values of this type, the value returned may not exactly + /// match the value that was set. Instead, the output value is a normalized version + /// of the value. For example, an input color of 'red' may be output as '#FF0000'. + /// + D2D1_SVG_ATTRIBUTE_STRING_TYPE_SVG = 0, + + /// + /// The attribute is an element ID. + /// + D2D1_SVG_ATTRIBUTE_STRING_TYPE_ID = 1, + D2D1_SVG_ATTRIBUTE_STRING_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_ATTRIBUTE_STRING_TYPE; + + +/// +/// Defines the type of SVG POD attribute to set or get. +/// +typedef enum D2D1_SVG_ATTRIBUTE_POD_TYPE +{ + + /// + /// The attribute is a FLOAT. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_FLOAT = 0, + + /// + /// The attribute is a D2D1_COLOR_F. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_COLOR = 1, + + /// + /// The attribute is a D2D1_FILL_MODE. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_FILL_MODE = 2, + + /// + /// The attribute is a D2D1_SVG_DISPLAY. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_DISPLAY = 3, + + /// + /// The attribute is a D2D1_SVG_OVERFLOW. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_OVERFLOW = 4, + + /// + /// The attribute is a D2D1_SVG_LINE_CAP. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_CAP = 5, + + /// + /// The attribute is a D2D1_SVG_LINE_JOIN. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_JOIN = 6, + + /// + /// The attribute is a D2D1_SVG_VISIBILITY. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_VISIBILITY = 7, + + /// + /// The attribute is a D2D1_MATRIX_3X2_F. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_MATRIX = 8, + + /// + /// The attribute is a D2D1_SVG_UNIT_TYPE. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_UNIT_TYPE = 9, + + /// + /// The attribute is a D2D1_EXTEND_MODE. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_EXTEND_MODE = 10, + + /// + /// The attribute is a D2D1_SVG_PRESERVE_ASPECT_RATIO. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_PRESERVE_ASPECT_RATIO = 11, + + /// + /// The attribute is a D2D1_SVG_VIEWBOX. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_VIEWBOX = 12, + + /// + /// The attribute is a D2D1_SVG_LENGTH. + /// + D2D1_SVG_ATTRIBUTE_POD_TYPE_LENGTH = 13, + D2D1_SVG_ATTRIBUTE_POD_TYPE_FORCE_DWORD = 0xffffffff + +} D2D1_SVG_ATTRIBUTE_POD_TYPE; + + +/// +/// Represents an SVG length. +/// +typedef struct D2D1_SVG_LENGTH +{ + FLOAT value; + D2D1_SVG_LENGTH_UNITS units; + +} D2D1_SVG_LENGTH; + + +/// +/// Represents all SVG preserveAspectRatio settings. +/// +typedef struct D2D1_SVG_PRESERVE_ASPECT_RATIO +{ + + /// + /// Sets the 'defer' portion of the preserveAspectRatio settings. This field only + /// has an effect on an 'image' element that references another SVG document. As + /// this is not currently supported, the field has no impact on rendering. + /// + BOOL defer; + + /// + /// Sets the align portion of the preserveAspectRatio settings. + /// + D2D1_SVG_ASPECT_ALIGN align; + + /// + /// Sets the meetOrSlice portion of the preserveAspectRatio settings. + /// + D2D1_SVG_ASPECT_SCALING meetOrSlice; + +} D2D1_SVG_PRESERVE_ASPECT_RATIO; + + +/// +/// Represents an SVG viewBox. +/// +typedef struct D2D1_SVG_VIEWBOX +{ + FLOAT x; + FLOAT y; + FLOAT width; + FLOAT height; + +} D2D1_SVG_VIEWBOX; + + +EXTERN_C CONST IID IID_ID2D1SvgAttribute; +EXTERN_C CONST IID IID_ID2D1SvgPaint; +EXTERN_C CONST IID IID_ID2D1SvgStrokeDashArray; +EXTERN_C CONST IID IID_ID2D1SvgPointCollection; +EXTERN_C CONST IID IID_ID2D1SvgPathData; +EXTERN_C CONST IID IID_ID2D1SvgElement; +EXTERN_C CONST IID IID_ID2D1SvgDocument; + + +#ifndef D2D_USE_C_DEFINITIONS + +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 + +/// +/// Interface describing an SVG attribute. +/// +interface DX_DECLARE_INTERFACE("c9cdb0dd-f8c9-4e70-b7c2-301c80292c5e") ID2D1SvgAttribute : public ID2D1Resource +{ + + /// + /// Returns the element on which this attribute is set. Returns null if the + /// attribute is not set on any element. + /// + STDMETHOD_(void, GetElement)( + _Outptr_result_maybenull_ ID2D1SvgElement **element + ) PURE; + + /// + /// Creates a clone of this attribute value. On creation, the cloned attribute is + /// not set on any element. + /// + STDMETHOD(Clone)( + _COM_Outptr_ ID2D1SvgAttribute **attribute + ) PURE; +}; // interface ID2D1SvgAttribute + + +/// +/// Interface describing an SVG 'fill' or 'stroke' value. +/// +interface DX_DECLARE_INTERFACE("d59bab0a-68a2-455b-a5dc-9eb2854e2490") ID2D1SvgPaint : public ID2D1SvgAttribute +{ + + /// + /// Sets the paint type. + /// + STDMETHOD(SetPaintType)( + D2D1_SVG_PAINT_TYPE paintType + ) PURE; + + /// + /// Gets the paint type. + /// + STDMETHOD_(D2D1_SVG_PAINT_TYPE, GetPaintType)( + ) PURE; + + /// + /// Sets the paint color that is used if the paint type is + /// D2D1_SVG_PAINT_TYPE_COLOR. + /// + STDMETHOD(SetColor)( + _In_ CONST D2D1_COLOR_F *color + ) PURE; + + /// + /// Gets the paint color that is used if the paint type is + /// D2D1_SVG_PAINT_TYPE_COLOR. + /// + STDMETHOD_(void, GetColor)( + _Out_ D2D1_COLOR_F *color + ) PURE; + + /// + /// Sets the element id which acts as the paint server. This id is used if the paint + /// type is D2D1_SVG_PAINT_TYPE_URI. + /// + STDMETHOD(SetId)( + _In_ PCWSTR id + ) PURE; + + /// + /// Gets the element id which acts as the paint server. This id is used if the paint + /// type is D2D1_SVG_PAINT_TYPE_URI. + /// + STDMETHOD(GetId)( + _Out_writes_(idCount) PWSTR id, + UINT32 idCount + ) PURE; + + /// + /// Gets the string length of the element id which acts as the paint server. This id + /// is used if the paint type is D2D1_SVG_PAINT_TYPE_URI. The returned string length + /// does not include room for the null terminator. + /// + STDMETHOD_(UINT32, GetIdLength)( + ) PURE; + + /// + /// Sets the paint color that is used if the paint type is + /// D2D1_SVG_PAINT_TYPE_COLOR. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetColor( + CONST D2D1_COLOR_F &color + ) + { + return SetColor(&color); + } +}; // interface ID2D1SvgPaint + + +/// +/// Interface describing an SVG 'stroke-dasharray' value. +/// +interface DX_DECLARE_INTERFACE("f1c0ca52-92a3-4f00-b4ce-f35691efd9d9") ID2D1SvgStrokeDashArray : public ID2D1SvgAttribute +{ + + /// + /// Removes dashes from the end of the array. + /// + /// Specifies how many dashes to remove. + STDMETHOD(RemoveDashesAtEnd)( + UINT32 dashesCount + ) PURE; + + /// + /// Updates the array. Existing dashes not updated by this method are preserved. The + /// array is resized larger if necessary to accomodate the new dashes. + /// + /// The dashes array. + /// The number of dashes to update. + /// The index at which to begin updating dashes. Must be + /// less than or equal to the size of the array. + STDMETHOD(UpdateDashes)( + _In_reads_(dashesCount) CONST FLOAT *dashes, + UINT32 dashesCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Updates the array. Existing dashes not updated by this method are preserved. The + /// array is resized larger if necessary to accomodate the new dashes. + /// + /// The dashes array. + /// The number of dashes to update. + /// The index at which to begin updating dashes. Must be + /// less than or equal to the size of the array. + STDMETHOD(UpdateDashes)( + _In_reads_(dashesCount) CONST D2D1_SVG_LENGTH *dashes, + UINT32 dashesCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets dashes from the array. + /// + /// Buffer to contain the dashes. + /// The element count of buffer. + /// The index of the first dash to retrieve. + STDMETHOD(GetDashes)( + _Out_writes_(dashesCount) FLOAT *dashes, + UINT32 dashesCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets dashes from the array. + /// + /// Buffer to contain the dashes. + /// The element count of buffer. + /// The index of the first dash to retrieve. + STDMETHOD(GetDashes)( + _Out_writes_(dashesCount) D2D1_SVG_LENGTH *dashes, + UINT32 dashesCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets the number of the dashes in the array. + /// + STDMETHOD_(UINT32, GetDashesCount)( + ) PURE; +}; // interface ID2D1SvgStrokeDashArray + + +/// +/// Interface describing an SVG 'points' value in a 'polyline' or 'polygon' element. +/// +interface DX_DECLARE_INTERFACE("9dbe4c0d-3572-4dd9-9825-5530813bb712") ID2D1SvgPointCollection : public ID2D1SvgAttribute +{ + + /// + /// Removes points from the end of the array. + /// + /// Specifies how many points to remove. + STDMETHOD(RemovePointsAtEnd)( + UINT32 pointsCount + ) PURE; + + /// + /// Updates the points array. Existing points not updated by this method are + /// preserved. The array is resized larger if necessary to accomodate the new + /// points. + /// + /// The points array. + /// The number of points to update. + /// The index at which to begin updating points. Must be + /// less than or equal to the size of the array. + STDMETHOD(UpdatePoints)( + _In_reads_(pointsCount) CONST D2D1_POINT_2F *points, + UINT32 pointsCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets points from the points array. + /// + /// Buffer to contain the points. + /// The element count of the buffer. + /// The index of the first point to retrieve. + STDMETHOD(GetPoints)( + _Out_writes_(pointsCount) D2D1_POINT_2F *points, + UINT32 pointsCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets the number of points in the array. + /// + STDMETHOD_(UINT32, GetPointsCount)( + ) PURE; +}; // interface ID2D1SvgPointCollection + + +/// +/// Interface describing SVG path data. Path data can be set as the 'd' attribute on +/// a 'path' element. +/// +/// The path data set is factored into two arrays. The segment data array stores all +/// numbers and the commands array stores the set of commands. Unlike the string +/// data set in the d attribute, each command in this representation uses a fixed +/// number of elements in the segment data array. Therefore, the path 'M 0,0 100,0 +/// 0,100 Z' is represented as: 'M0,0 L100,0 L0,100 Z'. This is split into two +/// arrays, with the segment data containing '0,0 100,0 0,100', and the commands +/// containing 'M L L Z'. +/// +interface DX_DECLARE_INTERFACE("c095e4f4-bb98-43d6-9745-4d1b84ec9888") ID2D1SvgPathData : public ID2D1SvgAttribute +{ + + /// + /// Removes data from the end of the segment data array. + /// + /// Specifies how much data to remove. + STDMETHOD(RemoveSegmentDataAtEnd)( + UINT32 dataCount + ) PURE; + + /// + /// Updates the segment data array. Existing segment data not updated by this method + /// are preserved. The array is resized larger if necessary to accomodate the new + /// segment data. + /// + /// The data array. + /// The number of data to update. + /// The index at which to begin updating segment data. Must + /// be less than or equal to the size of the segment data array. + STDMETHOD(UpdateSegmentData)( + _In_reads_(dataCount) CONST FLOAT *data, + UINT32 dataCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets data from the segment data array. + /// + /// Buffer to contain the segment data array. + /// The element count of the buffer. + /// The index of the first segment data to retrieve. + /// + STDMETHOD(GetSegmentData)( + _Out_writes_(dataCount) FLOAT *data, + UINT32 dataCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets the size of the segment data array. + /// + STDMETHOD_(UINT32, GetSegmentDataCount)( + ) PURE; + + /// + /// Removes commands from the end of the commands array. + /// + /// Specifies how many commands to remove. + STDMETHOD(RemoveCommandsAtEnd)( + UINT32 commandsCount + ) PURE; + + /// + /// Updates the commands array. Existing commands not updated by this method are + /// preserved. The array is resized larger if necessary to accomodate the new + /// commands. + /// + /// The commands array. + /// The number of commands to update. + /// The index at which to begin updating commands. Must be + /// less than or equal to the size of the commands array. + STDMETHOD(UpdateCommands)( + _In_reads_(commandsCount) CONST D2D1_SVG_PATH_COMMAND *commands, + UINT32 commandsCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets commands from the commands array. + /// + /// Buffer to contain the commands + /// The element count of the buffer. + /// The index of the first commands to retrieve. + STDMETHOD(GetCommands)( + _Out_writes_(commandsCount) D2D1_SVG_PATH_COMMAND *commands, + UINT32 commandsCount, + UINT32 startIndex = 0 + ) PURE; + + /// + /// Gets the size of the commands array. + /// + STDMETHOD_(UINT32, GetCommandsCount)( + ) PURE; + + /// + /// Creates a path geometry object representing the path data. + /// + STDMETHOD(CreatePathGeometry)( + D2D1_FILL_MODE fillMode, + _COM_Outptr_ ID2D1PathGeometry1 **pathGeometry + ) PURE; +}; // interface ID2D1SvgPathData + + +/// +/// Interface for all SVG elements. +/// +interface DX_DECLARE_INTERFACE("ac7b67a6-183e-49c1-a823-0ebe40b0db29") ID2D1SvgElement : public ID2D1Resource +{ + + /// + /// Gets the document that contains this element. Returns null if the element has + /// been removed from the tree. + /// + STDMETHOD_(void, GetDocument)( + _Outptr_result_maybenull_ ID2D1SvgDocument **document + ) PURE; + + /// + /// Gets the tag name. + /// + STDMETHOD(GetTagName)( + _Out_writes_(nameCount) PWSTR name, + UINT32 nameCount + ) PURE; + + /// + /// Gets the string length of the tag name. The returned string length does not + /// include room for the null terminator. + /// + STDMETHOD_(UINT32, GetTagNameLength)( + ) PURE; + + /// + /// Returns TRUE if this element represents text content, e.g. the content of a + /// 'title' or 'desc' element. Text content does not have a tag name. + /// + STDMETHOD_(BOOL, IsTextContent)( + ) PURE; + + /// + /// Gets the parent element. + /// + STDMETHOD_(void, GetParent)( + _Outptr_result_maybenull_ ID2D1SvgElement **parent + ) PURE; + + /// + /// Returns whether this element has children. + /// + STDMETHOD_(BOOL, HasChildren)( + ) PURE; + + /// + /// Gets the first child of this element. + /// + STDMETHOD_(void, GetFirstChild)( + _Outptr_result_maybenull_ ID2D1SvgElement **child + ) PURE; + + /// + /// Gets the last child of this element. + /// + STDMETHOD_(void, GetLastChild)( + _Outptr_result_maybenull_ ID2D1SvgElement **child + ) PURE; + + /// + /// Gets the previous sibling of the referenceChild element. + /// + /// The referenceChild must be an immediate child of + /// this element. + /// The output previousChild element will be non-null if + /// the referenceChild has a previous sibling. If the referenceChild is the first + /// child, the output is null. + STDMETHOD(GetPreviousChild)( + _In_ ID2D1SvgElement *referenceChild, + _COM_Outptr_result_maybenull_ ID2D1SvgElement **previousChild + ) PURE; + + /// + /// Gets the next sibling of the referenceChild element. + /// + /// The referenceChild must be an immediate child of + /// this element. + /// The output nextChild element will be non-null if the + /// referenceChild has a next sibling. If the referenceChild is the last child, the + /// output is null. + STDMETHOD(GetNextChild)( + _In_ ID2D1SvgElement *referenceChild, + _COM_Outptr_result_maybenull_ ID2D1SvgElement **nextChild + ) PURE; + + /// + /// Inserts newChild as a child of this element, before the referenceChild element. + /// If the newChild element already has a parent, it is removed from this parent as + /// part of the insertion. Returns an error if this element cannot accept children + /// of the type of newChild. Returns an error if the newChild is an ancestor of this + /// element. + /// + /// The element to be inserted. + /// The element that the child should be inserted + /// before. If referenceChild is null, the newChild is placed as the last child. If + /// referenceChild is non-null, it must be an immediate child of this element. + /// + STDMETHOD(InsertChildBefore)( + _In_ ID2D1SvgElement *newChild, + _In_opt_ ID2D1SvgElement *referenceChild = NULL + ) PURE; + + /// + /// Appends newChild to the list of children. If the newChild element already has a + /// parent, it is removed from this parent as part of the append operation. Returns + /// an error if this element cannot accept children of the type of newChild. Returns + /// an error if the newChild is an ancestor of this element. + /// + /// The element to be appended. + STDMETHOD(AppendChild)( + _In_ ID2D1SvgElement *newChild + ) PURE; + + /// + /// Replaces the oldChild element with the newChild. This operation removes the + /// oldChild from the tree. If the newChild element already has a parent, it is + /// removed from this parent as part of the replace operation. Returns an error if + /// this element cannot accept children of the type of newChild. Returns an error if + /// the newChild is an ancestor of this element. + /// + /// The element to be inserted. + /// The child element to be replaced. The oldChild element + /// must be an immediate child of this element. + STDMETHOD(ReplaceChild)( + _In_ ID2D1SvgElement *newChild, + _In_ ID2D1SvgElement *oldChild + ) PURE; + + /// + /// Removes the oldChild from the tree. Children of oldChild remain children of + /// oldChild. + /// + /// The child element to be removed. The oldChild element + /// must be an immediate child of this element. + STDMETHOD(RemoveChild)( + _In_ ID2D1SvgElement *oldChild + ) PURE; + + /// + /// Creates an element from a tag name. The element is appended to the list of + /// children. Returns an error if this element cannot accept children of the + /// specified type. + /// + /// The tag name of the new child. A NULL tagName or an empty + /// string is interpreted to be a text content element. + /// The new child element. + STDMETHOD(CreateChild)( + _In_opt_ PCWSTR tagName, + _COM_Outptr_ ID2D1SvgElement **newChild + ) PURE; + + /// + /// Returns true if the attribute is explicitly set on the element or if it is + /// present within an inline style. Returns FALSE if the attribute is not a valid + /// attribute on this element. + /// + /// The name of the attribute. + /// Outputs whether the attribute is set to the 'inherit' + /// value. + STDMETHOD_(BOOL, IsAttributeSpecified)( + _In_ PCWSTR name, + _Out_opt_ BOOL *inherited = NULL + ) PURE; + + /// + /// Returns the number of specified attributes on this element. Attributes are only + /// considered specified if they are explicitly set on the element or present within + /// an inline style. Properties that receive their value through CSS inheritance are + /// not considered specified. An attribute can become specified if it is set through + /// a method call. It can become unspecified if it is removed via RemoveAttribute. + /// + STDMETHOD_(UINT32, GetSpecifiedAttributeCount)( + ) PURE; + + /// + /// Gets the name of the specified attribute at the given index. + /// + /// The specified index of the attribute. + /// Outputs the name of the attribute. + /// Outputs whether the attribute is set to the 'inherit' + /// value. + STDMETHOD(GetSpecifiedAttributeName)( + UINT32 index, + _Out_writes_(nameCount) PWSTR name, + UINT32 nameCount, + _Out_opt_ BOOL *inherited = NULL + ) PURE; + + /// + /// Gets the string length of the name of the specified attribute at the given + /// index. The output string length does not include room for the null terminator. + /// + /// The specified index of the attribute. + /// Outputs the string length of the name of the specified + /// attribute. + /// Outputs whether the attribute is set to the 'inherit' + /// value. + STDMETHOD(GetSpecifiedAttributeNameLength)( + UINT32 index, + _Out_ UINT32 *nameLength, + _Out_opt_ BOOL *inherited = NULL + ) PURE; + + /// + /// Removes the attribute from this element. Also removes this attribute from within + /// an inline style if present. Returns an error if the attribute name is not valid + /// on this element. + /// + STDMETHOD(RemoveAttribute)( + _In_ PCWSTR name + ) PURE; + + /// + /// Sets the value of a text content element. + /// + STDMETHOD(SetTextValue)( + _In_reads_(nameCount) CONST WCHAR *name, + UINT32 nameCount + ) PURE; + + /// + /// Gets the value of a text content element. + /// + STDMETHOD(GetTextValue)( + _Out_writes_(nameCount) PWSTR name, + UINT32 nameCount + ) PURE; + + /// + /// Gets the length of the text content value. The returned string length does not + /// include room for the null terminator. + /// + STDMETHOD_(UINT32, GetTextValueLength)( + ) PURE; + + /// + /// Sets an attribute of this element using a string. Returns an error if the + /// attribute name is not valid on this element. Returns an error if the attribute + /// cannot be expressed as the specified type. + /// + STDMETHOD(SetAttributeValue)( + _In_ PCWSTR name, + D2D1_SVG_ATTRIBUTE_STRING_TYPE type, + _In_ PCWSTR value + ) PURE; + + /// + /// Gets an attribute of this element as a string. Returns an error if the attribute + /// is not specified. Returns an error if the attribute name is not valid on this + /// element. Returns an error if the attribute cannot be expressed as the specified + /// string type. + /// + STDMETHOD(GetAttributeValue)( + _In_ PCWSTR name, + D2D1_SVG_ATTRIBUTE_STRING_TYPE type, + _Out_writes_(valueCount) PWSTR value, + UINT32 valueCount + ) PURE; + + /// + /// Gets the string length of an attribute of this element. The returned string + /// length does not include room for the null terminator. Returns an error if the + /// attribute is not specified. Returns an error if the attribute name is not valid + /// on this element. Returns an error if the attribute cannot be expressed as the + /// specified string type. + /// + STDMETHOD(GetAttributeValueLength)( + _In_ PCWSTR name, + D2D1_SVG_ATTRIBUTE_STRING_TYPE type, + _Out_ UINT32 *valueLength + ) PURE; + + /// + /// Sets an attribute of this element using a POD type. Returns an error if the + /// attribute name is not valid on this element. Returns an error if the attribute + /// cannot be expressed as the specified type. + /// + STDMETHOD(SetAttributeValue)( + _In_ PCWSTR name, + D2D1_SVG_ATTRIBUTE_POD_TYPE type, + _In_reads_bytes_(valueSizeInBytes) CONST void *value, + UINT32 valueSizeInBytes + ) PURE; + + /// + /// Gets an attribute of this element as a POD type. Returns an error if the + /// attribute is not specified. Returns an error if the attribute name is not valid + /// on this element. Returns an error if the attribute cannot be expressed as the + /// specified POD type. + /// + STDMETHOD(GetAttributeValue)( + _In_ PCWSTR name, + D2D1_SVG_ATTRIBUTE_POD_TYPE type, + _Out_writes_bytes_(valueSizeInBytes) void *value, + UINT32 valueSizeInBytes + ) PURE; + + /// + /// Sets an attribute of this element using an interface. Returns an error if the + /// attribute name is not valid on this element. Returns an error if the attribute + /// cannot be expressed as the specified interface type. Returns an error if the + /// attribute object is already set on an element. A given attribute object may only + /// be set on one element in one attribute location at a time. + /// + STDMETHOD(SetAttributeValue)( + _In_ PCWSTR name, + _In_ ID2D1SvgAttribute *value + ) PURE; + + /// + /// Gets an attribute of this element as an interface type. Returns an error if the + /// attribute is not specified. Returns an error if the attribute name is not valid + /// on this element. Returns an error if the attribute cannot be expressed as the + /// specified interface type. + /// + /// The interface ID of the attribute value. + STDMETHOD(GetAttributeValue)( + _In_ PCWSTR name, + _In_ REFIID riid, + _COM_Outptr_result_maybenull_ void **value + ) PURE; + + /// + /// Sets an attribute of this element using a float. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + FLOAT value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_FLOAT, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a float. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ FLOAT *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_FLOAT, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a color. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + CONST D2D1_COLOR_F &value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_COLOR, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a color. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_COLOR_F *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_COLOR, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a fill mode. This method can be used to set + /// the value of the 'fill-rule' or 'clip-rule' properties. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_FILL_MODE value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_FILL_MODE, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a fill mode. This method can be used to get + /// the value of the 'fill-rule' or 'clip-rule' properties. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_FILL_MODE *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_FILL_MODE, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a display value. This method can be used to + /// set the value of the 'display' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_DISPLAY value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_DISPLAY, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a display value. This method can be used to + /// get the value of the 'display' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_DISPLAY *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_DISPLAY, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as an overflow value. This method can be used + /// to set the value of the 'overflow' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_OVERFLOW value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_OVERFLOW, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as an overflow value. This method can be used + /// to get the value of the 'overflow' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_OVERFLOW *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_OVERFLOW, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a line join value. This method can be used + /// to set the value of the 'stroke-linejoin' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_LINE_JOIN value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_JOIN, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a line join value. This method can be used + /// to get the value of the 'stroke-linejoin' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_LINE_JOIN *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_JOIN, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a line cap value. This method can be used + /// to set the value of the 'stroke-linecap' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_LINE_CAP value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_CAP, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a line cap value. This method can be used + /// to get the value of the 'stroke-linecap' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_LINE_CAP *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LINE_CAP, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a visibility value. This method can be used + /// to set the value of the 'visibility' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_VISIBILITY value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_VISIBILITY, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a visibility value. This method can be used + /// to get the value of the 'visibility' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_VISIBILITY *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_VISIBILITY, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a matrix value. This method can be used to + /// set the value of a 'transform' or 'gradientTransform' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + CONST D2D1_MATRIX_3X2_F &value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_MATRIX, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a matrix value. This method can be used to + /// get the value of a 'transform' or 'gradientTransform' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_MATRIX_3X2_F *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_MATRIX, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a unit type value. This method can be used + /// to set the value of a 'gradientUnits' or 'clipPathUnits' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_SVG_UNIT_TYPE value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_UNIT_TYPE, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a unit type value. This method can be used + /// to get the value of a 'gradientUnits' or 'clipPathUnits' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_UNIT_TYPE *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_UNIT_TYPE, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as an extend mode value. This method can be + /// used to set the value of a 'spreadMethod' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + D2D1_EXTEND_MODE value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_EXTEND_MODE, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a extend mode value. This method can be + /// used to get the value of a 'spreadMethod' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_EXTEND_MODE *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_EXTEND_MODE, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a preserve aspect ratio value. This method + /// can be used to set the value of a 'preserveAspectRatio' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + CONST D2D1_SVG_PRESERVE_ASPECT_RATIO &value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_PRESERVE_ASPECT_RATIO, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as a preserve aspect ratio value. This method + /// can be used to get the value of a 'preserveAspectRatio' attribute. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_PRESERVE_ASPECT_RATIO *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_PRESERVE_ASPECT_RATIO, value, sizeof(*value)); + } + + /// + /// Sets an attribute of this element as a length value. + /// + COM_DECLSPEC_NOTHROW + HRESULT + SetAttributeValue( + _In_ PCWSTR name, + CONST D2D1_SVG_LENGTH &value + ) + { + return SetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LENGTH, &value, sizeof(value)); + } + + /// + /// Gets an attribute of this element as length value. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _Out_ D2D1_SVG_LENGTH *value + ) + { + return GetAttributeValue(name, D2D1_SVG_ATTRIBUTE_POD_TYPE_LENGTH, value, sizeof(*value)); + } + + /// + /// Gets an attribute of this element. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _COM_Outptr_result_maybenull_ ID2D1SvgAttribute **value + ) + { + return GetAttributeValue(name, IID_ID2D1SvgAttribute, reinterpret_cast(value)); + } + + /// + /// Gets an attribute of this element as a paint. This method can be used to get the + /// value of the 'fill' or 'stroke' properties. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _COM_Outptr_result_maybenull_ ID2D1SvgPaint **value + ) + { + return GetAttributeValue(name, IID_ID2D1SvgPaint, reinterpret_cast(value)); + } + + /// + /// Gets an attribute of this element as a stroke dash array. This method can be + /// used to get the value of the 'stroke-dasharray' property. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _COM_Outptr_result_maybenull_ ID2D1SvgStrokeDashArray **value + ) + { + return GetAttributeValue(name, IID_ID2D1SvgStrokeDashArray, reinterpret_cast(value)); + } + + /// + /// Gets an attribute of this element as points. This method can be used to get the + /// value of the 'points' attribute on a 'polygon' or 'polyline' element. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _COM_Outptr_result_maybenull_ ID2D1SvgPointCollection **value + ) + { + return GetAttributeValue(name, IID_ID2D1SvgPointCollection, reinterpret_cast(value)); + } + + /// + /// Gets an attribute of this element as path data. This method can be used to get + /// the value of the 'd' attribute on a 'path' element. + /// + COM_DECLSPEC_NOTHROW + HRESULT + GetAttributeValue( + _In_ PCWSTR name, + _COM_Outptr_result_maybenull_ ID2D1SvgPathData **value + ) + { + return GetAttributeValue(name, IID_ID2D1SvgPathData, reinterpret_cast(value)); + } +}; // interface ID2D1SvgElement + + +interface DX_DECLARE_INTERFACE("86b88e4d-afa4-4d7b-88e4-68a51c4a0aec") ID2D1SvgDocument : public ID2D1Resource +{ + + /// + /// Sets the size of the initial viewport. + /// + STDMETHOD(SetViewportSize)( + D2D1_SIZE_F viewportSize + ) PURE; + + /// + /// Returns the size of the initial viewport. + /// + STDMETHOD_(D2D1_SIZE_F, GetViewportSize)( + ) CONST PURE; + + /// + /// Sets the root element of the document. The root element must be an 'svg' + /// element. If the element already exists within an svg tree, it is first removed. + /// + STDMETHOD(SetRoot)( + _In_opt_ ID2D1SvgElement *root + ) PURE; + + /// + /// Gets the root element of the document. + /// + STDMETHOD_(void, GetRoot)( + _Outptr_result_maybenull_ ID2D1SvgElement **root + ) PURE; + + /// + /// Gets the SVG element with the specified ID. If the element cannot be found, the + /// returned element will be null. + /// + STDMETHOD(FindElementById)( + _In_ PCWSTR id, + _COM_Outptr_result_maybenull_ ID2D1SvgElement **svgElement + ) PURE; + + /// + /// Serializes an element and its subtree to XML. The output XML is encoded as + /// UTF-8. + /// + /// An output stream to contain the SVG XML subtree. + /// + /// The root of the subtree. If null, the entire document is + /// serialized. + STDMETHOD(Serialize)( + _In_ IStream *outputXmlStream, + _In_opt_ ID2D1SvgElement *subtree = NULL + ) PURE; + + /// + /// Deserializes a subtree from the stream. The stream must have only one root + /// element, but that root element need not be an 'svg' element. The output element + /// is not inserted into this document tree. + /// + /// An input stream containing the SVG XML subtree. + /// + /// The root of the subtree. + STDMETHOD(Deserialize)( + _In_ IStream *inputXmlStream, + _COM_Outptr_ ID2D1SvgElement **subtree + ) PURE; + + /// + /// Creates a paint object which can be used to set the 'fill' or 'stroke' + /// properties. + /// + /// The color used if the paintType is + /// D2D1_SVG_PAINT_TYPE_COLOR. + /// The element id which acts as the paint server. This id is used + /// if the paint type is D2D1_SVG_PAINT_TYPE_URI. + STDMETHOD(CreatePaint)( + D2D1_SVG_PAINT_TYPE paintType, + _In_opt_ CONST D2D1_COLOR_F *color, + _In_opt_ PCWSTR id, + _COM_Outptr_ ID2D1SvgPaint **paint + ) PURE; + + /// + /// Creates a dash array object which can be used to set the 'stroke-dasharray' + /// property. + /// + STDMETHOD(CreateStrokeDashArray)( + _In_reads_opt_(dashesCount) CONST D2D1_SVG_LENGTH *dashes, + UINT32 dashesCount, + _COM_Outptr_ ID2D1SvgStrokeDashArray **strokeDashArray + ) PURE; + + /// + /// Creates a points object which can be used to set a 'points' attribute on a + /// 'polygon' or 'polyline' element. + /// + STDMETHOD(CreatePointCollection)( + _In_reads_opt_(pointsCount) CONST D2D1_POINT_2F *points, + UINT32 pointsCount, + _COM_Outptr_ ID2D1SvgPointCollection **pointCollection + ) PURE; + + /// + /// Creates a path data object which can be used to set a 'd' attribute on a 'path' + /// element. + /// + STDMETHOD(CreatePathData)( + _In_reads_opt_(segmentDataCount) CONST FLOAT *segmentData, + UINT32 segmentDataCount, + _In_reads_opt_(commandsCount) CONST D2D1_SVG_PATH_COMMAND *commands, + UINT32 commandsCount, + _COM_Outptr_ ID2D1SvgPathData **pathData + ) PURE; + + /// + /// Creates a paint object which can be used to set the 'fill' or 'stroke' + /// properties. + /// + /// The color used if the paintType is + /// D2D1_SVG_PAINT_TYPE_COLOR. + /// The element id which acts as the paint server. This id is used + /// if the paint type is D2D1_SVG_PAINT_TYPE_URI. + COM_DECLSPEC_NOTHROW + HRESULT + CreatePaint( + D2D1_SVG_PAINT_TYPE paintType, + CONST D2D1_COLOR_F &color, + _In_opt_ PCWSTR id, + _COM_Outptr_ ID2D1SvgPaint **paint + ) + { + return CreatePaint(paintType, &color, id, paint); + } +}; // interface ID2D1SvgDocument + + +#endif + +#endif + + +#ifdef D2D_USE_C_DEFINITIONS + + +#endif + + + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ +#pragma endregion +#endif // #ifndef _D2D1_SVG_ diff --git a/3rdparty/minidx12/Include/d3d10.h b/3rdparty/minidx12/Include/d3d10.h index 533ea057ac..5d2a17373d 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ diff --git a/3rdparty/minidx12/Include/d3d10_1.h b/3rdparty/minidx12/Include/d3d10_1.h index 24d1573fe8..5063894db9 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ diff --git a/3rdparty/minidx12/Include/d3d11.h b/3rdparty/minidx12/Include/d3d11.h index 8d7838d4e5..d54b1d8710 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -7306,7 +7306,9 @@ 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_SHADER_CACHE = ( D3D11_FEATURE_D3D11_OPTIONS4 + 1 ) } D3D11_FEATURE; typedef struct D3D11_FEATURE_DATA_THREADING @@ -7463,6 +7465,19 @@ typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT UINT MaxGPUVirtualAddressBitsPerProcess; } D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; +typedef +enum D3D11_SHADER_CACHE_SUPPORT_FLAGS + { + D3D11_SHADER_CACHE_SUPPORT_NONE = 0, + D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1, + D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2 + } D3D11_SHADER_CACHE_SUPPORT_FLAGS; + +typedef struct D3D11_FEATURE_DATA_SHADER_CACHE + { + UINT SupportFlags; + } D3D11_FEATURE_DATA_SHADER_CACHE; + extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec; @@ -9661,6 +9676,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 +9947,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..3ea2744f3f 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ diff --git a/3rdparty/minidx12/Include/d3d11_2.h b/3rdparty/minidx12/Include/d3d11_2.h index c8dccdc7ca..eb7a1bfefa 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ diff --git a/3rdparty/minidx12/Include/d3d11_3.h b/3rdparty/minidx12/Include/d3d11_3.h index 76922367dc..e8cb8898f0 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -100,6 +100,20 @@ typedef interface ID3D11DeviceContext3 ID3D11DeviceContext3; #endif /* __ID3D11DeviceContext3_FWD_DEFINED__ */ +#ifndef __ID3D11Fence_FWD_DEFINED__ +#define __ID3D11Fence_FWD_DEFINED__ +typedef interface ID3D11Fence ID3D11Fence; + +#endif /* __ID3D11Fence_FWD_DEFINED__ */ + + +#ifndef __ID3D11DeviceContext4_FWD_DEFINED__ +#define __ID3D11DeviceContext4_FWD_DEFINED__ +typedef interface ID3D11DeviceContext4 ID3D11DeviceContext4; + +#endif /* __ID3D11DeviceContext4_FWD_DEFINED__ */ + + #ifndef __ID3D11Device3_FWD_DEFINED__ #define __ID3D11Device3_FWD_DEFINED__ typedef interface ID3D11Device3 ID3D11Device3; @@ -2105,6 +2119,23 @@ EXTERN_C const IID IID_ID3D11Query1; #endif /* __ID3D11Query1_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d11_3_0000_0007 */ +/* [local] */ + +typedef +enum D3D11_FENCE_FLAG + { + D3D11_FENCE_FLAG_NONE = 0x1, + D3D11_FENCE_FLAG_SHARED = 0x2, + D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4 + } D3D11_FENCE_FLAG; + +DEFINE_ENUM_FLAG_OPERATORS(D3D11_FENCE_FLAG); + + +extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0007_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0007_v0_0_s_ifspec; + #ifndef __ID3D11DeviceContext3_INTERFACE_DEFINED__ #define __ID3D11DeviceContext3_INTERFACE_DEFINED__ @@ -3906,6 +3937,1988 @@ EXTERN_C const IID IID_ID3D11DeviceContext3; #endif /* __ID3D11DeviceContext3_INTERFACE_DEFINED__ */ +#ifndef __ID3D11Fence_INTERFACE_DEFINED__ +#define __ID3D11Fence_INTERFACE_DEFINED__ + +/* interface ID3D11Fence */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D11Fence; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("affde9d1-1df7-4bb7-8a34-0f46251dab80") + ID3D11Fence : public ID3D11DeviceChild + { + public: + virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( + /* [annotation] */ + _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, + /* [annotation] */ + _In_ DWORD dwAccess, + /* [annotation] */ + _In_opt_ LPCWSTR lpName, + /* [annotation] */ + _Out_ HANDLE *pHandle) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( + /* [annotation] */ + _In_ UINT64 Value, + /* [annotation] */ + _In_ HANDLE hEvent) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D11FenceVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D11Fence * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D11Fence * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D11Fence * This); + + void ( STDMETHODCALLTYPE *GetDevice )( + ID3D11Fence * This, + /* [annotation] */ + _Outptr_ ID3D11Device **ppDevice); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D11Fence * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _Inout_ UINT *pDataSize, + /* [annotation] */ + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D11Fence * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_ UINT DataSize, + /* [annotation] */ + _In_reads_bytes_opt_( DataSize ) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D11Fence * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_opt_ const IUnknown *pData); + + HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( + ID3D11Fence * This, + /* [annotation] */ + _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, + /* [annotation] */ + _In_ DWORD dwAccess, + /* [annotation] */ + _In_opt_ LPCWSTR lpName, + /* [annotation] */ + _Out_ HANDLE *pHandle); + + UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( + ID3D11Fence * This); + + HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( + ID3D11Fence * This, + /* [annotation] */ + _In_ UINT64 Value, + /* [annotation] */ + _In_ HANDLE hEvent); + + END_INTERFACE + } ID3D11FenceVtbl; + + interface ID3D11Fence + { + CONST_VTBL struct ID3D11FenceVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D11Fence_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D11Fence_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D11Fence_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D11Fence_GetDevice(This,ppDevice) \ + ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) + +#define ID3D11Fence_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D11Fence_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D11Fence_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + + +#define ID3D11Fence_CreateSharedHandle(This,pAttributes,dwAccess,lpName,pHandle) \ + ( (This)->lpVtbl -> CreateSharedHandle(This,pAttributes,dwAccess,lpName,pHandle) ) + +#define ID3D11Fence_GetCompletedValue(This) \ + ( (This)->lpVtbl -> GetCompletedValue(This) ) + +#define ID3D11Fence_SetEventOnCompletion(This,Value,hEvent) \ + ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D11Fence_INTERFACE_DEFINED__ */ + + +#ifndef __ID3D11DeviceContext4_INTERFACE_DEFINED__ +#define __ID3D11DeviceContext4_INTERFACE_DEFINED__ + +/* interface ID3D11DeviceContext4 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D11DeviceContext4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("917600da-f58c-4c33-98d8-3e15b390fa24") + ID3D11DeviceContext4 : public ID3D11DeviceContext3 + { + public: + virtual HRESULT STDMETHODCALLTYPE Signal( + /* [annotation] */ + _In_ ID3D11Fence *pFence, + /* [annotation] */ + _In_ UINT64 Value) = 0; + + virtual HRESULT STDMETHODCALLTYPE Wait( + /* [annotation] */ + _In_ ID3D11Fence *pFence, + /* [annotation] */ + _In_ UINT64 Value) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D11DeviceContext4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D11DeviceContext4 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D11DeviceContext4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D11DeviceContext4 * This); + + void ( STDMETHODCALLTYPE *GetDevice )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_ ID3D11Device **ppDevice); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _Inout_ UINT *pDataSize, + /* [annotation] */ + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_ UINT DataSize, + /* [annotation] */ + _In_reads_bytes_opt_( DataSize ) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_opt_ const IUnknown *pData); + + void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *PSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *PSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11PixelShader *pPixelShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *PSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *VSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11VertexShader *pVertexShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *DrawIndexed )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT IndexCount, + /* [annotation] */ + _In_ UINT StartIndexLocation, + /* [annotation] */ + _In_ INT BaseVertexLocation); + + void ( STDMETHODCALLTYPE *Draw )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT VertexCount, + /* [annotation] */ + _In_ UINT StartVertexLocation); + + HRESULT ( STDMETHODCALLTYPE *Map )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_ UINT Subresource, + /* [annotation] */ + _In_ D3D11_MAP MapType, + /* [annotation] */ + _In_ UINT MapFlags, + /* [annotation] */ + _Out_opt_ D3D11_MAPPED_SUBRESOURCE *pMappedResource); + + void ( STDMETHODCALLTYPE *Unmap )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_ UINT Subresource); + + void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *IASetInputLayout )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11InputLayout *pInputLayout); + + void ( STDMETHODCALLTYPE *IASetVertexBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppVertexBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pStrides, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pOffsets); + + void ( STDMETHODCALLTYPE *IASetIndexBuffer )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11Buffer *pIndexBuffer, + /* [annotation] */ + _In_ DXGI_FORMAT Format, + /* [annotation] */ + _In_ UINT Offset); + + void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT IndexCountPerInstance, + /* [annotation] */ + _In_ UINT InstanceCount, + /* [annotation] */ + _In_ UINT StartIndexLocation, + /* [annotation] */ + _In_ INT BaseVertexLocation, + /* [annotation] */ + _In_ UINT StartInstanceLocation); + + void ( STDMETHODCALLTYPE *DrawInstanced )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT VertexCountPerInstance, + /* [annotation] */ + _In_ UINT InstanceCount, + /* [annotation] */ + _In_ UINT StartVertexLocation, + /* [annotation] */ + _In_ UINT StartInstanceLocation); + + void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *GSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11GeometryShader *pShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ D3D11_PRIMITIVE_TOPOLOGY Topology); + + void ( STDMETHODCALLTYPE *VSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *VSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *Begin )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Asynchronous *pAsync); + + void ( STDMETHODCALLTYPE *End )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Asynchronous *pAsync); + + HRESULT ( STDMETHODCALLTYPE *GetData )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Asynchronous *pAsync, + /* [annotation] */ + _Out_writes_bytes_opt_( DataSize ) void *pData, + /* [annotation] */ + _In_ UINT DataSize, + /* [annotation] */ + _In_ UINT GetDataFlags); + + void ( STDMETHODCALLTYPE *SetPredication )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11Predicate *pPredicate, + /* [annotation] */ + _In_ BOOL PredicateValue); + + void ( STDMETHODCALLTYPE *GSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *GSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *OMSetRenderTargets )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11RenderTargetView *const *ppRenderTargetViews, + /* [annotation] */ + _In_opt_ ID3D11DepthStencilView *pDepthStencilView); + + void ( STDMETHODCALLTYPE *OMSetRenderTargetsAndUnorderedAccessViews )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT NumRTVs, + /* [annotation] */ + _In_reads_opt_(NumRTVs) ID3D11RenderTargetView *const *ppRenderTargetViews, + /* [annotation] */ + _In_opt_ ID3D11DepthStencilView *pDepthStencilView, + /* [annotation] */ + _In_range_( 0, D3D11_1_UAV_SLOT_COUNT - 1 ) UINT UAVStartSlot, + /* [annotation] */ + _In_ UINT NumUAVs, + /* [annotation] */ + _In_reads_opt_(NumUAVs) ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, + /* [annotation] */ + _In_reads_opt_(NumUAVs) const UINT *pUAVInitialCounts); + + void ( STDMETHODCALLTYPE *OMSetBlendState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11BlendState *pBlendState, + /* [annotation] */ + _In_opt_ const FLOAT BlendFactor[ 4 ], + /* [annotation] */ + _In_ UINT SampleMask); + + void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11DepthStencilState *pDepthStencilState, + /* [annotation] */ + _In_ UINT StencilRef); + + void ( STDMETHODCALLTYPE *SOSetTargets )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppSOTargets, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pOffsets); + + void ( STDMETHODCALLTYPE *DrawAuto )( + ID3D11DeviceContext4 * This); + + void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Buffer *pBufferForArgs, + /* [annotation] */ + _In_ UINT AlignedByteOffsetForArgs); + + void ( STDMETHODCALLTYPE *DrawInstancedIndirect )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Buffer *pBufferForArgs, + /* [annotation] */ + _In_ UINT AlignedByteOffsetForArgs); + + void ( STDMETHODCALLTYPE *Dispatch )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ UINT ThreadGroupCountX, + /* [annotation] */ + _In_ UINT ThreadGroupCountY, + /* [annotation] */ + _In_ UINT ThreadGroupCountZ); + + void ( STDMETHODCALLTYPE *DispatchIndirect )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Buffer *pBufferForArgs, + /* [annotation] */ + _In_ UINT AlignedByteOffsetForArgs); + + void ( STDMETHODCALLTYPE *RSSetState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11RasterizerState *pRasterizerState); + + void ( STDMETHODCALLTYPE *RSSetViewports )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, + /* [annotation] */ + _In_reads_opt_(NumViewports) const D3D11_VIEWPORT *pViewports); + + void ( STDMETHODCALLTYPE *RSSetScissorRects )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, + /* [annotation] */ + _In_reads_opt_(NumRects) const D3D11_RECT *pRects); + + void ( STDMETHODCALLTYPE *CopySubresourceRegion )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDstResource, + /* [annotation] */ + _In_ UINT DstSubresource, + /* [annotation] */ + _In_ UINT DstX, + /* [annotation] */ + _In_ UINT DstY, + /* [annotation] */ + _In_ UINT DstZ, + /* [annotation] */ + _In_ ID3D11Resource *pSrcResource, + /* [annotation] */ + _In_ UINT SrcSubresource, + /* [annotation] */ + _In_opt_ const D3D11_BOX *pSrcBox); + + void ( STDMETHODCALLTYPE *CopyResource )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDstResource, + /* [annotation] */ + _In_ ID3D11Resource *pSrcResource); + + void ( STDMETHODCALLTYPE *UpdateSubresource )( + ID3D11DeviceContext4 * 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 *CopyStructureCount )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Buffer *pDstBuffer, + /* [annotation] */ + _In_ UINT DstAlignedByteOffset, + /* [annotation] */ + _In_ ID3D11UnorderedAccessView *pSrcView); + + void ( STDMETHODCALLTYPE *ClearRenderTargetView )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11RenderTargetView *pRenderTargetView, + /* [annotation] */ + _In_ const FLOAT ColorRGBA[ 4 ]); + + void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, + /* [annotation] */ + _In_ const UINT Values[ 4 ]); + + void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, + /* [annotation] */ + _In_ const FLOAT Values[ 4 ]); + + void ( STDMETHODCALLTYPE *ClearDepthStencilView )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11DepthStencilView *pDepthStencilView, + /* [annotation] */ + _In_ UINT ClearFlags, + /* [annotation] */ + _In_ FLOAT Depth, + /* [annotation] */ + _In_ UINT8 Stencil); + + void ( STDMETHODCALLTYPE *GenerateMips )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11ShaderResourceView *pShaderResourceView); + + void ( STDMETHODCALLTYPE *SetResourceMinLOD )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + FLOAT MinLOD); + + FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource); + + void ( STDMETHODCALLTYPE *ResolveSubresource )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDstResource, + /* [annotation] */ + _In_ UINT DstSubresource, + /* [annotation] */ + _In_ ID3D11Resource *pSrcResource, + /* [annotation] */ + _In_ UINT SrcSubresource, + /* [annotation] */ + _In_ DXGI_FORMAT Format); + + void ( STDMETHODCALLTYPE *ExecuteCommandList )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11CommandList *pCommandList, + BOOL RestoreContextState); + + void ( STDMETHODCALLTYPE *HSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *HSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11HullShader *pHullShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *HSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *HSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *DSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *DSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11DomainShader *pDomainShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *DSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *DSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *CSSetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _In_reads_opt_(NumViews) ID3D11ShaderResourceView *const *ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *CSSetUnorderedAccessViews )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_1_UAV_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_1_UAV_SLOT_COUNT - StartSlot ) UINT NumUAVs, + /* [annotation] */ + _In_reads_opt_(NumUAVs) ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, + /* [annotation] */ + _In_reads_opt_(NumUAVs) const UINT *pUAVInitialCounts); + + void ( STDMETHODCALLTYPE *CSSetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11ComputeShader *pComputeShader, + /* [annotation] */ + _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, + UINT NumClassInstances); + + void ( STDMETHODCALLTYPE *CSSetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _In_reads_opt_(NumSamplers) ID3D11SamplerState *const *ppSamplers); + + void ( STDMETHODCALLTYPE *CSSetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers); + + void ( STDMETHODCALLTYPE *VSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *PSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *PSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *PSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *VSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *IAGetInputLayout )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout); + + void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppVertexBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pStrides, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pOffsets); + + void ( STDMETHODCALLTYPE *IAGetIndexBuffer )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, + /* [annotation] */ + _Out_opt_ DXGI_FORMAT *Format, + /* [annotation] */ + _Out_opt_ UINT *Offset); + + void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *GSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology); + + void ( STDMETHODCALLTYPE *VSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *VSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *GetPredication )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, + /* [annotation] */ + _Out_opt_ BOOL *pPredicateValue); + + void ( STDMETHODCALLTYPE *GSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *GSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *OMGetRenderTargets )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11RenderTargetView **ppRenderTargetViews, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11DepthStencilView **ppDepthStencilView); + + void ( STDMETHODCALLTYPE *OMGetRenderTargetsAndUnorderedAccessViews )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumRTVs, + /* [annotation] */ + _Out_writes_opt_(NumRTVs) ID3D11RenderTargetView **ppRenderTargetViews, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11DepthStencilView **ppDepthStencilView, + /* [annotation] */ + _In_range_( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - 1 ) UINT UAVStartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_PS_CS_UAV_REGISTER_COUNT - UAVStartSlot ) UINT NumUAVs, + /* [annotation] */ + _Out_writes_opt_(NumUAVs) ID3D11UnorderedAccessView **ppUnorderedAccessViews); + + void ( STDMETHODCALLTYPE *OMGetBlendState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, + /* [annotation] */ + _Out_opt_ FLOAT BlendFactor[ 4 ], + /* [annotation] */ + _Out_opt_ UINT *pSampleMask); + + void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, + /* [annotation] */ + _Out_opt_ UINT *pStencilRef); + + void ( STDMETHODCALLTYPE *SOGetTargets )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets); + + void ( STDMETHODCALLTYPE *RSGetState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState); + + void ( STDMETHODCALLTYPE *RSGetViewports )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Inout_ /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *pNumViewports, + /* [annotation] */ + _Out_writes_opt_(*pNumViewports) D3D11_VIEWPORT *pViewports); + + void ( STDMETHODCALLTYPE *RSGetScissorRects )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Inout_ /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *pNumRects, + /* [annotation] */ + _Out_writes_opt_(*pNumRects) D3D11_RECT *pRects); + + void ( STDMETHODCALLTYPE *HSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *HSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *HSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *HSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *DSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *DSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *DSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *DSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *CSGetShaderResources )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, + /* [annotation] */ + _Out_writes_opt_(NumViews) ID3D11ShaderResourceView **ppShaderResourceViews); + + void ( STDMETHODCALLTYPE *CSGetUnorderedAccessViews )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_1_UAV_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_1_UAV_SLOT_COUNT - StartSlot ) UINT NumUAVs, + /* [annotation] */ + _Out_writes_opt_(NumUAVs) ID3D11UnorderedAccessView **ppUnorderedAccessViews); + + void ( STDMETHODCALLTYPE *CSGetShader )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, + /* [annotation] */ + _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, + /* [annotation] */ + _Inout_opt_ UINT *pNumClassInstances); + + void ( STDMETHODCALLTYPE *CSGetSamplers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, + /* [annotation] */ + _Out_writes_opt_(NumSamplers) ID3D11SamplerState **ppSamplers); + + void ( STDMETHODCALLTYPE *CSGetConstantBuffers )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers); + + void ( STDMETHODCALLTYPE *ClearState )( + ID3D11DeviceContext4 * This); + + void ( STDMETHODCALLTYPE *Flush )( + ID3D11DeviceContext4 * This); + + D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )( + ID3D11DeviceContext4 * This); + + UINT ( STDMETHODCALLTYPE *GetContextFlags )( + ID3D11DeviceContext4 * This); + + HRESULT ( STDMETHODCALLTYPE *FinishCommandList )( + ID3D11DeviceContext4 * This, + BOOL RestoreDeferredContextState, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11CommandList **ppCommandList); + + void ( STDMETHODCALLTYPE *CopySubresourceRegion1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDstResource, + /* [annotation] */ + _In_ UINT DstSubresource, + /* [annotation] */ + _In_ UINT DstX, + /* [annotation] */ + _In_ UINT DstY, + /* [annotation] */ + _In_ UINT DstZ, + /* [annotation] */ + _In_ ID3D11Resource *pSrcResource, + /* [annotation] */ + _In_ UINT SrcSubresource, + /* [annotation] */ + _In_opt_ const D3D11_BOX *pSrcBox, + /* [annotation] */ + _In_ UINT CopyFlags); + + void ( STDMETHODCALLTYPE *UpdateSubresource1 )( + ID3D11DeviceContext4 * 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, + /* [annotation] */ + _In_ UINT CopyFlags); + + void ( STDMETHODCALLTYPE *DiscardResource )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource); + + void ( STDMETHODCALLTYPE *DiscardView )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11View *pResourceView); + + void ( STDMETHODCALLTYPE *VSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *HSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *DSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *GSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *PSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *CSSetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) ID3D11Buffer *const *ppConstantBuffers, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pFirstConstant, + /* [annotation] */ + _In_reads_opt_(NumBuffers) const UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *VSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *HSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *DSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *GSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *PSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *CSGetConstantBuffers1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, + /* [annotation] */ + _In_range_( 0, D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppConstantBuffers, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pFirstConstant, + /* [annotation] */ + _Out_writes_opt_(NumBuffers) UINT *pNumConstants); + + void ( STDMETHODCALLTYPE *SwapDeviceContextState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3DDeviceContextState *pState, + /* [annotation] */ + _Outptr_opt_ ID3DDeviceContextState **ppPreviousState); + + void ( STDMETHODCALLTYPE *ClearView )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11View *pView, + /* [annotation] */ + _In_ const FLOAT Color[ 4 ], + /* [annotation] */ + _In_reads_opt_(NumRects) const D3D11_RECT *pRect, + UINT NumRects); + + void ( STDMETHODCALLTYPE *DiscardView1 )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11View *pResourceView, + /* [annotation] */ + _In_reads_opt_(NumRects) const D3D11_RECT *pRects, + UINT NumRects); + + HRESULT ( STDMETHODCALLTYPE *UpdateTileMappings )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pTiledResource, + /* [annotation] */ + _In_ UINT NumTiledResourceRegions, + /* [annotation] */ + _In_reads_opt_(NumTiledResourceRegions) const D3D11_TILED_RESOURCE_COORDINATE *pTiledResourceRegionStartCoordinates, + /* [annotation] */ + _In_reads_opt_(NumTiledResourceRegions) const D3D11_TILE_REGION_SIZE *pTiledResourceRegionSizes, + /* [annotation] */ + _In_opt_ ID3D11Buffer *pTilePool, + /* [annotation] */ + _In_ UINT NumRanges, + /* [annotation] */ + _In_reads_opt_(NumRanges) const UINT *pRangeFlags, + /* [annotation] */ + _In_reads_opt_(NumRanges) const UINT *pTilePoolStartOffsets, + /* [annotation] */ + _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, + /* [annotation] */ + _In_ UINT Flags); + + HRESULT ( STDMETHODCALLTYPE *CopyTileMappings )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDestTiledResource, + /* [annotation] */ + _In_ const D3D11_TILED_RESOURCE_COORDINATE *pDestRegionStartCoordinate, + /* [annotation] */ + _In_ ID3D11Resource *pSourceTiledResource, + /* [annotation] */ + _In_ const D3D11_TILED_RESOURCE_COORDINATE *pSourceRegionStartCoordinate, + /* [annotation] */ + _In_ const D3D11_TILE_REGION_SIZE *pTileRegionSize, + /* [annotation] */ + _In_ UINT Flags); + + void ( STDMETHODCALLTYPE *CopyTiles )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pTiledResource, + /* [annotation] */ + _In_ const D3D11_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, + /* [annotation] */ + _In_ const D3D11_TILE_REGION_SIZE *pTileRegionSize, + /* [annotation] */ + _In_ ID3D11Buffer *pBuffer, + /* [annotation] */ + _In_ UINT64 BufferStartOffsetInBytes, + /* [annotation] */ + _In_ UINT Flags); + + void ( STDMETHODCALLTYPE *UpdateTiles )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Resource *pDestTiledResource, + /* [annotation] */ + _In_ const D3D11_TILED_RESOURCE_COORDINATE *pDestTileRegionStartCoordinate, + /* [annotation] */ + _In_ const D3D11_TILE_REGION_SIZE *pDestTileRegionSize, + /* [annotation] */ + _In_ const void *pSourceTileData, + /* [annotation] */ + _In_ UINT Flags); + + HRESULT ( STDMETHODCALLTYPE *ResizeTilePool )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Buffer *pTilePool, + /* [annotation] */ + _In_ UINT64 NewSizeInBytes); + + void ( STDMETHODCALLTYPE *TiledResourceBarrier )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier, + /* [annotation] */ + _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier); + + BOOL ( STDMETHODCALLTYPE *IsAnnotationEnabled )( + ID3D11DeviceContext4 * This); + + void ( STDMETHODCALLTYPE *SetMarkerInt )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ LPCWSTR pLabel, + INT Data); + + void ( STDMETHODCALLTYPE *BeginEventInt )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ LPCWSTR pLabel, + INT Data); + + void ( STDMETHODCALLTYPE *EndEvent )( + ID3D11DeviceContext4 * This); + + void ( STDMETHODCALLTYPE *Flush1 )( + ID3D11DeviceContext4 * This, + D3D11_CONTEXT_TYPE ContextType, + /* [annotation] */ + _In_opt_ HANDLE hEvent); + + void ( STDMETHODCALLTYPE *SetHardwareProtectionState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ BOOL HwProtectionEnable); + + void ( STDMETHODCALLTYPE *GetHardwareProtectionState )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _Out_ BOOL *pHwProtectionEnable); + + HRESULT ( STDMETHODCALLTYPE *Signal )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Fence *pFence, + /* [annotation] */ + _In_ UINT64 Value); + + HRESULT ( STDMETHODCALLTYPE *Wait )( + ID3D11DeviceContext4 * This, + /* [annotation] */ + _In_ ID3D11Fence *pFence, + /* [annotation] */ + _In_ UINT64 Value); + + END_INTERFACE + } ID3D11DeviceContext4Vtbl; + + interface ID3D11DeviceContext4 + { + CONST_VTBL struct ID3D11DeviceContext4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D11DeviceContext4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D11DeviceContext4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D11DeviceContext4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D11DeviceContext4_GetDevice(This,ppDevice) \ + ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) + +#define ID3D11DeviceContext4_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D11DeviceContext4_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D11DeviceContext4_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + + +#define ID3D11DeviceContext4_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ + ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) + +#define ID3D11DeviceContext4_Draw(This,VertexCount,StartVertexLocation) \ + ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) + +#define ID3D11DeviceContext4_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) \ + ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) ) + +#define ID3D11DeviceContext4_Unmap(This,pResource,Subresource) \ + ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) ) + +#define ID3D11DeviceContext4_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_IASetInputLayout(This,pInputLayout) \ + ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) + +#define ID3D11DeviceContext4_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ + ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) + +#define ID3D11DeviceContext4_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ + ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) + +#define ID3D11DeviceContext4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ + ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) + +#define ID3D11DeviceContext4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ + ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) + +#define ID3D11DeviceContext4_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_IASetPrimitiveTopology(This,Topology) \ + ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) + +#define ID3D11DeviceContext4_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_Begin(This,pAsync) \ + ( (This)->lpVtbl -> Begin(This,pAsync) ) + +#define ID3D11DeviceContext4_End(This,pAsync) \ + ( (This)->lpVtbl -> End(This,pAsync) ) + +#define ID3D11DeviceContext4_GetData(This,pAsync,pData,DataSize,GetDataFlags) \ + ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) ) + +#define ID3D11DeviceContext4_SetPredication(This,pPredicate,PredicateValue) \ + ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) + +#define ID3D11DeviceContext4_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ + ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) + +#define ID3D11DeviceContext4_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ + ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) + +#define ID3D11DeviceContext4_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ + ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) + +#define ID3D11DeviceContext4_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ + ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) + +#define ID3D11DeviceContext4_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ + ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) + +#define ID3D11DeviceContext4_DrawAuto(This) \ + ( (This)->lpVtbl -> DrawAuto(This) ) + +#define ID3D11DeviceContext4_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ + ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) + +#define ID3D11DeviceContext4_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ + ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) + +#define ID3D11DeviceContext4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ + ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) + +#define ID3D11DeviceContext4_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ + ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) + +#define ID3D11DeviceContext4_RSSetState(This,pRasterizerState) \ + ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) + +#define ID3D11DeviceContext4_RSSetViewports(This,NumViewports,pViewports) \ + ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) + +#define ID3D11DeviceContext4_RSSetScissorRects(This,NumRects,pRects) \ + ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) + +#define ID3D11DeviceContext4_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ + ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) + +#define ID3D11DeviceContext4_CopyResource(This,pDstResource,pSrcResource) \ + ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) + +#define ID3D11DeviceContext4_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ + ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) + +#define ID3D11DeviceContext4_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) \ + ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) ) + +#define ID3D11DeviceContext4_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ + ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) + +#define ID3D11DeviceContext4_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) \ + ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) ) + +#define ID3D11DeviceContext4_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) \ + ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) ) + +#define ID3D11DeviceContext4_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ + ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) + +#define ID3D11DeviceContext4_GenerateMips(This,pShaderResourceView) \ + ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) + +#define ID3D11DeviceContext4_SetResourceMinLOD(This,pResource,MinLOD) \ + ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) ) + +#define ID3D11DeviceContext4_GetResourceMinLOD(This,pResource) \ + ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) ) + +#define ID3D11DeviceContext4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ + ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) + +#define ID3D11DeviceContext4_ExecuteCommandList(This,pCommandList,RestoreContextState) \ + ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) ) + +#define ID3D11DeviceContext4_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ + ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) + +#define ID3D11DeviceContext4_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) \ + ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) ) + +#define ID3D11DeviceContext4_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_IAGetInputLayout(This,ppInputLayout) \ + ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) + +#define ID3D11DeviceContext4_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ + ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) + +#define ID3D11DeviceContext4_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ + ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) + +#define ID3D11DeviceContext4_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_IAGetPrimitiveTopology(This,pTopology) \ + ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) + +#define ID3D11DeviceContext4_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_GetPredication(This,ppPredicate,pPredicateValue) \ + ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) + +#define ID3D11DeviceContext4_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ + ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) + +#define ID3D11DeviceContext4_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) \ + ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) ) + +#define ID3D11DeviceContext4_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ + ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) + +#define ID3D11DeviceContext4_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ + ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) + +#define ID3D11DeviceContext4_SOGetTargets(This,NumBuffers,ppSOTargets) \ + ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) ) + +#define ID3D11DeviceContext4_RSGetState(This,ppRasterizerState) \ + ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) + +#define ID3D11DeviceContext4_RSGetViewports(This,pNumViewports,pViewports) \ + ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) ) + +#define ID3D11DeviceContext4_RSGetScissorRects(This,pNumRects,pRects) \ + ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) ) + +#define ID3D11DeviceContext4_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ + ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) + +#define ID3D11DeviceContext4_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) \ + ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) ) + +#define ID3D11DeviceContext4_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) \ + ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) ) + +#define ID3D11DeviceContext4_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ + ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) + +#define ID3D11DeviceContext4_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ + ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) + +#define ID3D11DeviceContext4_ClearState(This) \ + ( (This)->lpVtbl -> ClearState(This) ) + +#define ID3D11DeviceContext4_Flush(This) \ + ( (This)->lpVtbl -> Flush(This) ) + +#define ID3D11DeviceContext4_GetType(This) \ + ( (This)->lpVtbl -> GetType(This) ) + +#define ID3D11DeviceContext4_GetContextFlags(This) \ + ( (This)->lpVtbl -> GetContextFlags(This) ) + +#define ID3D11DeviceContext4_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) \ + ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) ) + + +#define ID3D11DeviceContext4_CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) \ + ( (This)->lpVtbl -> CopySubresourceRegion1(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox,CopyFlags) ) + +#define ID3D11DeviceContext4_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) \ + ( (This)->lpVtbl -> UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) ) + +#define ID3D11DeviceContext4_DiscardResource(This,pResource) \ + ( (This)->lpVtbl -> DiscardResource(This,pResource) ) + +#define ID3D11DeviceContext4_DiscardView(This,pResourceView) \ + ( (This)->lpVtbl -> DiscardView(This,pResourceView) ) + +#define ID3D11DeviceContext4_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ + ( (This)->lpVtbl -> CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) + +#define ID3D11DeviceContext4_SwapDeviceContextState(This,pState,ppPreviousState) \ + ( (This)->lpVtbl -> SwapDeviceContextState(This,pState,ppPreviousState) ) + +#define ID3D11DeviceContext4_ClearView(This,pView,Color,pRect,NumRects) \ + ( (This)->lpVtbl -> ClearView(This,pView,Color,pRect,NumRects) ) + +#define ID3D11DeviceContext4_DiscardView1(This,pResourceView,pRects,NumRects) \ + ( (This)->lpVtbl -> DiscardView1(This,pResourceView,pRects,NumRects) ) + + +#define ID3D11DeviceContext4_UpdateTileMappings(This,pTiledResource,NumTiledResourceRegions,pTiledResourceRegionStartCoordinates,pTiledResourceRegionSizes,pTilePool,NumRanges,pRangeFlags,pTilePoolStartOffsets,pRangeTileCounts,Flags) \ + ( (This)->lpVtbl -> UpdateTileMappings(This,pTiledResource,NumTiledResourceRegions,pTiledResourceRegionStartCoordinates,pTiledResourceRegionSizes,pTilePool,NumRanges,pRangeFlags,pTilePoolStartOffsets,pRangeTileCounts,Flags) ) + +#define ID3D11DeviceContext4_CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) \ + ( (This)->lpVtbl -> CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) ) + +#define ID3D11DeviceContext4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ + ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) + +#define ID3D11DeviceContext4_UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) \ + ( (This)->lpVtbl -> UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) ) + +#define ID3D11DeviceContext4_ResizeTilePool(This,pTilePool,NewSizeInBytes) \ + ( (This)->lpVtbl -> ResizeTilePool(This,pTilePool,NewSizeInBytes) ) + +#define ID3D11DeviceContext4_TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) \ + ( (This)->lpVtbl -> TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) ) + +#define ID3D11DeviceContext4_IsAnnotationEnabled(This) \ + ( (This)->lpVtbl -> IsAnnotationEnabled(This) ) + +#define ID3D11DeviceContext4_SetMarkerInt(This,pLabel,Data) \ + ( (This)->lpVtbl -> SetMarkerInt(This,pLabel,Data) ) + +#define ID3D11DeviceContext4_BeginEventInt(This,pLabel,Data) \ + ( (This)->lpVtbl -> BeginEventInt(This,pLabel,Data) ) + +#define ID3D11DeviceContext4_EndEvent(This) \ + ( (This)->lpVtbl -> EndEvent(This) ) + + +#define ID3D11DeviceContext4_Flush1(This,ContextType,hEvent) \ + ( (This)->lpVtbl -> Flush1(This,ContextType,hEvent) ) + +#define ID3D11DeviceContext4_SetHardwareProtectionState(This,HwProtectionEnable) \ + ( (This)->lpVtbl -> SetHardwareProtectionState(This,HwProtectionEnable) ) + +#define ID3D11DeviceContext4_GetHardwareProtectionState(This,pHwProtectionEnable) \ + ( (This)->lpVtbl -> GetHardwareProtectionState(This,pHwProtectionEnable) ) + + +#define ID3D11DeviceContext4_Signal(This,pFence,Value) \ + ( (This)->lpVtbl -> Signal(This,pFence,Value) ) + +#define ID3D11DeviceContext4_Wait(This,pFence,Value) \ + ( (This)->lpVtbl -> Wait(This,pFence,Value) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D11DeviceContext4_INTERFACE_DEFINED__ */ + + #ifndef __ID3D11Device3_INTERFACE_DEFINED__ #define __ID3D11Device3_INTERFACE_DEFINED__ @@ -4787,7 +6800,7 @@ EXTERN_C const IID IID_ID3D11Device3; #endif /* __ID3D11Device3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d11_3_0000_0009 */ +/* interface __MIDL_itf_d3d11_3_0000_0011 */ /* [local] */ DEFINE_GUID(IID_ID3D11Texture2D1,0x51218251,0x1E33,0x4617,0x9C,0xCB,0x4D,0x3A,0x43,0x67,0xE7,0xBB); @@ -4798,11 +6811,13 @@ DEFINE_GUID(IID_ID3D11RenderTargetView1,0xffbe2e23,0xf011,0x418a,0xac,0x56,0x5c, DEFINE_GUID(IID_ID3D11UnorderedAccessView1,0x7b3b6153,0xa886,0x4544,0xab,0x37,0x65,0x37,0xc8,0x50,0x04,0x03); DEFINE_GUID(IID_ID3D11Query1,0x631b4766,0x36dc,0x461d,0x8d,0xb6,0xc4,0x7e,0x13,0xe6,0x09,0x16); DEFINE_GUID(IID_ID3D11DeviceContext3,0xb4e3c01d,0xe79e,0x4637,0x91,0xb2,0x51,0x0e,0x9f,0x4c,0x9b,0x8f); +DEFINE_GUID(IID_ID3D11Fence,0xaffde9d1,0x1df7,0x4bb7,0x8a,0x34,0x0f,0x46,0x25,0x1d,0xab,0x80); +DEFINE_GUID(IID_ID3D11DeviceContext4,0x917600da,0xf58c,0x4c33,0x98,0xd8,0x3e,0x15,0xb3,0x90,0xfa,0x24); DEFINE_GUID(IID_ID3D11Device3,0xA05C8C37,0xD2C6,0x4732,0xB3,0xA0,0x9C,0xE0,0xB0,0xDC,0x9A,0xE6); -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0009_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0011_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0011_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/3rdparty/minidx12/Include/d3d11_4.h b/3rdparty/minidx12/Include/d3d11_4.h new file mode 100644 index 0000000000..3510513e53 --- /dev/null +++ b/3rdparty/minidx12/Include/d3d11_4.h @@ -0,0 +1,3097 @@ +/*------------------------------------------------------------------------------------- + * + * Copyright (c) Microsoft Corporation + * + *-------------------------------------------------------------------------------------*/ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.01.0622 */ +/* @@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 __ID3D11Device5_FWD_DEFINED__ +#define __ID3D11Device5_FWD_DEFINED__ +typedef interface ID3D11Device5 ID3D11Device5; + +#endif /* __ID3D11Device5_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 __ID3D11Device5_INTERFACE_DEFINED__ +#define __ID3D11Device5_INTERFACE_DEFINED__ + +/* interface ID3D11Device5 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D11Device5; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("8ffde202-a0e7-45df-9e01-e837801b5ea0") + ID3D11Device5 : public ID3D11Device4 + { + public: + virtual HRESULT STDMETHODCALLTYPE OpenSharedFence( + /* [annotation] */ + _In_ HANDLE hFence, + /* [annotation] */ + _In_ REFIID ReturnedInterface, + /* [annotation] */ + _COM_Outptr_opt_ void **ppFence) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFence( + /* [annotation] */ + _In_ UINT64 InitialValue, + /* [annotation] */ + _In_ D3D11_FENCE_FLAG Flags, + /* [annotation] */ + _In_ REFIID ReturnedInterface, + /* [annotation] */ + _COM_Outptr_opt_ void **ppFence) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D11Device5Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D11Device5 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D11Device5 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D11Device5 * This); + + HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView); + + HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView); + + HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView); + + HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView); + + HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _COM_Outptr_ ID3D11ClassLinkage **ppLinkage); + + HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_BLEND_DESC *pBlendStateDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11BlendState **ppBlendState); + + HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState); + + HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState); + + HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState); + + HRESULT ( STDMETHODCALLTYPE *CreateQuery )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_QUERY_DESC *pQueryDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11Query **ppQuery); + + HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_QUERY_DESC *pPredicateDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11Predicate **ppPredicate); + + HRESULT ( STDMETHODCALLTYPE *CreateCounter )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_COUNTER_DESC *pCounterDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11Counter **ppCounter); + + HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )( + ID3D11Device5 * This, + UINT ContextFlags, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext); + + HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ HANDLE hResource, + /* [annotation] */ + _In_ REFIID ReturnedInterface, + /* [annotation] */ + _COM_Outptr_opt_ void **ppResource); + + HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ DXGI_FORMAT Format, + /* [annotation] */ + _Out_ UINT *pFormatSupport); + + HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ DXGI_FORMAT Format, + /* [annotation] */ + _In_ UINT SampleCount, + /* [annotation] */ + _Out_ UINT *pNumQualityLevels); + + void ( STDMETHODCALLTYPE *CheckCounterInfo )( + ID3D11Device5 * This, + /* [annotation] */ + _Out_ D3D11_COUNTER_INFO *pCounterInfo); + + HRESULT ( STDMETHODCALLTYPE *CheckCounter )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + D3D11_FEATURE Feature, + /* [annotation] */ + _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, + UINT FeatureSupportDataSize); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _Inout_ UINT *pDataSize, + /* [annotation] */ + _Out_writes_bytes_opt_(*pDataSize) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_ UINT DataSize, + /* [annotation] */ + _In_reads_bytes_opt_(DataSize) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ REFGUID guid, + /* [annotation] */ + _In_opt_ const IUnknown *pData); + + D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )( + ID3D11Device5 * This); + + UINT ( STDMETHODCALLTYPE *GetCreationFlags )( + ID3D11Device5 * This); + + HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( + ID3D11Device5 * This); + + void ( STDMETHODCALLTYPE *GetImmediateContext )( + ID3D11Device5 * This, + /* [annotation] */ + _Outptr_ ID3D11DeviceContext **ppImmediateContext); + + HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( + ID3D11Device5 * This, + UINT RaiseFlags); + + UINT ( STDMETHODCALLTYPE *GetExceptionMode )( + ID3D11Device5 * This); + + void ( STDMETHODCALLTYPE *GetImmediateContext1 )( + ID3D11Device5 * This, + /* [annotation] */ + _Outptr_ ID3D11DeviceContext1 **ppImmediateContext); + + HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext1 )( + ID3D11Device5 * This, + UINT ContextFlags, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext); + + HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState); + + HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState); + + HRESULT ( STDMETHODCALLTYPE *CreateDeviceContextState )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ HANDLE hResource, + /* [annotation] */ + _In_ REFIID returnedInterface, + /* [annotation] */ + _COM_Outptr_ void **ppResource); + + HRESULT ( STDMETHODCALLTYPE *OpenSharedResourceByName )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ LPCWSTR lpName, + /* [annotation] */ + _In_ DWORD dwDesiredAccess, + /* [annotation] */ + _In_ REFIID returnedInterface, + /* [annotation] */ + _COM_Outptr_ void **ppResource); + + void ( STDMETHODCALLTYPE *GetImmediateContext2 )( + ID3D11Device5 * This, + /* [annotation] */ + _Outptr_ ID3D11DeviceContext2 **ppImmediateContext); + + HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext2 )( + ID3D11Device5 * This, + UINT ContextFlags, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DeviceContext2 **ppDeferredContext); + + void ( STDMETHODCALLTYPE *GetResourceTiling )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ DXGI_FORMAT Format, + /* [annotation] */ + _In_ UINT SampleCount, + /* [annotation] */ + _In_ UINT Flags, + /* [annotation] */ + _Out_ UINT *pNumQualityLevels); + + HRESULT ( STDMETHODCALLTYPE *CreateTexture2D1 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_RASTERIZER_DESC2 *pRasterizerDesc, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11RasterizerState2 **ppRasterizerState); + + HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11ShaderResourceView1 **ppSRView1); + + HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11UnorderedAccessView1 **ppUAView1); + + HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ ID3D11Resource *pResource, + /* [annotation] */ + _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11RenderTargetView1 **ppRTView1); + + HRESULT ( STDMETHODCALLTYPE *CreateQuery1 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ const D3D11_QUERY_DESC1 *pQueryDesc1, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11Query1 **ppQuery1); + + void ( STDMETHODCALLTYPE *GetImmediateContext3 )( + ID3D11Device5 * This, + /* [annotation] */ + _Outptr_ ID3D11DeviceContext3 **ppImmediateContext); + + HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext3 )( + ID3D11Device5 * This, + UINT ContextFlags, + /* [annotation] */ + _COM_Outptr_opt_ ID3D11DeviceContext3 **ppDeferredContext); + + void ( STDMETHODCALLTYPE *WriteToSubresource )( + ID3D11Device5 * 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 )( + ID3D11Device5 * 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 )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ HANDLE hEvent, + /* [annotation] */ + _Out_ DWORD *pdwCookie); + + void ( STDMETHODCALLTYPE *UnregisterDeviceRemoved )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ DWORD dwCookie); + + HRESULT ( STDMETHODCALLTYPE *OpenSharedFence )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ HANDLE hFence, + /* [annotation] */ + _In_ REFIID ReturnedInterface, + /* [annotation] */ + _COM_Outptr_opt_ void **ppFence); + + HRESULT ( STDMETHODCALLTYPE *CreateFence )( + ID3D11Device5 * This, + /* [annotation] */ + _In_ UINT64 InitialValue, + /* [annotation] */ + _In_ D3D11_FENCE_FLAG Flags, + /* [annotation] */ + _In_ REFIID ReturnedInterface, + /* [annotation] */ + _COM_Outptr_opt_ void **ppFence); + + END_INTERFACE + } ID3D11Device5Vtbl; + + interface ID3D11Device5 + { + CONST_VTBL struct ID3D11Device5Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D11Device5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D11Device5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D11Device5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D11Device5_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ + ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) + +#define ID3D11Device5_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ + ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) + +#define ID3D11Device5_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ + ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) + +#define ID3D11Device5_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ + ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) + +#define ID3D11Device5_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ + ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) + +#define ID3D11Device5_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \ + ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ) + +#define ID3D11Device5_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ + ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) + +#define ID3D11Device5_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ + ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) + +#define ID3D11Device5_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ + ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) + +#define ID3D11Device5_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \ + ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ) + +#define ID3D11Device5_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \ + ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ) + +#define ID3D11Device5_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 ID3D11Device5_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \ + ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ) + +#define ID3D11Device5_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \ + ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ) + +#define ID3D11Device5_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \ + ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ) + +#define ID3D11Device5_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \ + ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ) + +#define ID3D11Device5_CreateClassLinkage(This,ppLinkage) \ + ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) ) + +#define ID3D11Device5_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ + ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) + +#define ID3D11Device5_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ + ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) + +#define ID3D11Device5_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ + ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) + +#define ID3D11Device5_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ + ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) + +#define ID3D11Device5_CreateQuery(This,pQueryDesc,ppQuery) \ + ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) + +#define ID3D11Device5_CreatePredicate(This,pPredicateDesc,ppPredicate) \ + ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) + +#define ID3D11Device5_CreateCounter(This,pCounterDesc,ppCounter) \ + ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) + +#define ID3D11Device5_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \ + ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) ) + +#define ID3D11Device5_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ + ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) + +#define ID3D11Device5_CheckFormatSupport(This,Format,pFormatSupport) \ + ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) + +#define ID3D11Device5_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ + ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) + +#define ID3D11Device5_CheckCounterInfo(This,pCounterInfo) \ + ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) + +#define ID3D11Device5_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 ID3D11Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ + ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) + +#define ID3D11Device5_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D11Device5_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D11Device5_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D11Device5_GetFeatureLevel(This) \ + ( (This)->lpVtbl -> GetFeatureLevel(This) ) + +#define ID3D11Device5_GetCreationFlags(This) \ + ( (This)->lpVtbl -> GetCreationFlags(This) ) + +#define ID3D11Device5_GetDeviceRemovedReason(This) \ + ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) + +#define ID3D11Device5_GetImmediateContext(This,ppImmediateContext) \ + ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) ) + +#define ID3D11Device5_SetExceptionMode(This,RaiseFlags) \ + ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) + +#define ID3D11Device5_GetExceptionMode(This) \ + ( (This)->lpVtbl -> GetExceptionMode(This) ) + + +#define ID3D11Device5_GetImmediateContext1(This,ppImmediateContext) \ + ( (This)->lpVtbl -> GetImmediateContext1(This,ppImmediateContext) ) + +#define ID3D11Device5_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) \ + ( (This)->lpVtbl -> CreateDeferredContext1(This,ContextFlags,ppDeferredContext) ) + +#define ID3D11Device5_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \ + ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) ) + +#define ID3D11Device5_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) \ + ( (This)->lpVtbl -> CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) ) + +#define ID3D11Device5_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) \ + ( (This)->lpVtbl -> CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) ) + +#define ID3D11Device5_OpenSharedResource1(This,hResource,returnedInterface,ppResource) \ + ( (This)->lpVtbl -> OpenSharedResource1(This,hResource,returnedInterface,ppResource) ) + +#define ID3D11Device5_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) \ + ( (This)->lpVtbl -> OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) ) + + +#define ID3D11Device5_GetImmediateContext2(This,ppImmediateContext) \ + ( (This)->lpVtbl -> GetImmediateContext2(This,ppImmediateContext) ) + +#define ID3D11Device5_CreateDeferredContext2(This,ContextFlags,ppDeferredContext) \ + ( (This)->lpVtbl -> CreateDeferredContext2(This,ContextFlags,ppDeferredContext) ) + +#define ID3D11Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ + ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) + +#define ID3D11Device5_CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) \ + ( (This)->lpVtbl -> CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) ) + + +#define ID3D11Device5_CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) \ + ( (This)->lpVtbl -> CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) ) + +#define ID3D11Device5_CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) \ + ( (This)->lpVtbl -> CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) ) + +#define ID3D11Device5_CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) \ + ( (This)->lpVtbl -> CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) ) + +#define ID3D11Device5_CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) \ + ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) ) + +#define ID3D11Device5_CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) \ + ( (This)->lpVtbl -> CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) ) + +#define ID3D11Device5_CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) \ + ( (This)->lpVtbl -> CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) ) + +#define ID3D11Device5_CreateQuery1(This,pQueryDesc1,ppQuery1) \ + ( (This)->lpVtbl -> CreateQuery1(This,pQueryDesc1,ppQuery1) ) + +#define ID3D11Device5_GetImmediateContext3(This,ppImmediateContext) \ + ( (This)->lpVtbl -> GetImmediateContext3(This,ppImmediateContext) ) + +#define ID3D11Device5_CreateDeferredContext3(This,ContextFlags,ppDeferredContext) \ + ( (This)->lpVtbl -> CreateDeferredContext3(This,ContextFlags,ppDeferredContext) ) + +#define ID3D11Device5_WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ + ( (This)->lpVtbl -> WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) + +#define ID3D11Device5_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) \ + ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) ) + + +#define ID3D11Device5_RegisterDeviceRemovedEvent(This,hEvent,pdwCookie) \ + ( (This)->lpVtbl -> RegisterDeviceRemovedEvent(This,hEvent,pdwCookie) ) + +#define ID3D11Device5_UnregisterDeviceRemoved(This,dwCookie) \ + ( (This)->lpVtbl -> UnregisterDeviceRemoved(This,dwCookie) ) + + +#define ID3D11Device5_OpenSharedFence(This,hFence,ReturnedInterface,ppFence) \ + ( (This)->lpVtbl -> OpenSharedFence(This,hFence,ReturnedInterface,ppFence) ) + +#define ID3D11Device5_CreateFence(This,InitialValue,Flags,ReturnedInterface,ppFence) \ + ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,ReturnedInterface,ppFence) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D11Device5_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_0004 */ +/* [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_ID3D11Device5,0x8ffde202,0xa0e7,0x45df,0x9e,0x01,0xe8,0x37,0x80,0x1b,0x5e,0xa0); +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_0004_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d11_4_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/d3d11on12.h b/3rdparty/minidx12/Include/d3d11on12.h index f7f3fdd937..0de36e3fbd 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.0622 */ diff --git a/3rdparty/minidx12/Include/d3d12.h b/3rdparty/minidx12/Include/d3d12.h index 0755bc96fa..ae59c46720 100644 --- a/3rdparty/minidx12/Include/d3d12.h +++ b/3rdparty/minidx12/Include/d3d12.h @@ -1,4 +1,4 @@ -/*------------------------------------------------------------------------------------- +/*------------------------------------------------------------------------------------- * * Copyright (c) Microsoft Corporation * @@ -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.0622 */ @@ -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; @@ -148,6 +155,13 @@ typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ +#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__ +#define __ID3D12GraphicsCommandList1_FWD_DEFINED__ +typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1; + +#endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */ + + #ifndef __ID3D12CommandQueue_FWD_DEFINED__ #define __ID3D12CommandQueue_FWD_DEFINED__ typedef interface ID3D12CommandQueue ID3D12CommandQueue; @@ -162,10 +176,46 @@ 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 __ID3D12PipelineLibrary1_FWD_DEFINED__ +#define __ID3D12PipelineLibrary1_FWD_DEFINED__ +typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1; + +#endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */ + + +#ifndef __ID3D12Device1_FWD_DEFINED__ +#define __ID3D12Device1_FWD_DEFINED__ +typedef interface ID3D12Device1 ID3D12Device1; + +#endif /* __ID3D12Device1_FWD_DEFINED__ */ + + +#ifndef __ID3D12Device2_FWD_DEFINED__ +#define __ID3D12Device2_FWD_DEFINED__ +typedef interface ID3D12Device2 ID3D12Device2; + +#endif /* __ID3D12Device2_FWD_DEFINED__ */ + + +#ifndef __ID3D12Tools_FWD_DEFINED__ +#define __ID3D12Tools_FWD_DEFINED__ +typedef interface ID3D12Tools ID3D12Tools; + +#endif /* __ID3D12Tools_FWD_DEFINED__ */ + + /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" -#include "dxgi.h" +#include "dxgicommon.h" +#include "dxgiformat.h" #include "d3dcommon.h" #ifdef __cplusplus @@ -951,7 +1001,8 @@ typedef enum D3D12_COMMAND_QUEUE_PRIORITY { D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, - D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100 + D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, + D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 } D3D12_COMMAND_QUEUE_PRIORITY; typedef struct D3D12_COMMAND_QUEUE_DESC @@ -1094,6 +1145,19 @@ typedef struct D3D12_DEPTH_STENCIL_DESC D3D12_DEPTH_STENCILOP_DESC BackFace; } D3D12_DEPTH_STENCIL_DESC; +typedef struct D3D12_DEPTH_STENCIL_DESC1 + { + BOOL DepthEnable; + D3D12_DEPTH_WRITE_MASK DepthWriteMask; + D3D12_COMPARISON_FUNC DepthFunc; + BOOL StencilEnable; + UINT8 StencilReadMask; + UINT8 StencilWriteMask; + D3D12_DEPTH_STENCILOP_DESC FrontFace; + D3D12_DEPTH_STENCILOP_DESC BackFace; + BOOL DepthBoundsTestEnable; + } D3D12_DEPTH_STENCIL_DESC1; + typedef enum D3D12_BLEND { @@ -1633,16 +1697,62 @@ typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_COMPUTE_PIPELINE_STATE_DESC; +struct D3D12_RT_FORMAT_ARRAY + { + DXGI_FORMAT RTFormats[ 8 ]; + UINT NumRenderTargets; + } ; +typedef struct D3D12_PIPELINE_STATE_STREAM_DESC + { + _In_ SIZE_T SizeInBytes; + _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream; + } D3D12_PIPELINE_STATE_STREAM_DESC; + +typedef +enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE + { + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0, + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) , + D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) + } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; + 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_ARCHITECTURE1 = 16, + D3D12_FEATURE_D3D12_OPTIONS2 = 18, + D3D12_FEATURE_SHADER_CACHE = 19, + D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20 } D3D12_FEATURE; typedef @@ -1758,6 +1868,14 @@ enum D3D12_RESOURCE_HEAP_TIER D3D12_RESOURCE_HEAP_TIER_2 = 2 } D3D12_RESOURCE_HEAP_TIER; +typedef +enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER + { + D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, + D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, + D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2 + } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; + typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS { _Out_ BOOL DoublePrecisionFloatShaderOps; @@ -1777,6 +1895,35 @@ 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 struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 + { + _Out_ BOOL DepthBoundsTestSupported; + _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; + } D3D12_FEATURE_DATA_D3D12_OPTIONS2; + +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; @@ -1785,6 +1932,15 @@ typedef struct D3D12_FEATURE_DATA_ARCHITECTURE _Out_ BOOL CacheCoherentUMA; } D3D12_FEATURE_DATA_ARCHITECTURE; +typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 + { + _In_ UINT NodeIndex; + _Out_ BOOL TileBasedRenderer; + _Out_ BOOL UMA; + _Out_ BOOL CacheCoherentUMA; + _Out_ BOOL IsolatedMMU; + } D3D12_FEATURE_DATA_ARCHITECTURE1; + typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS { _In_ UINT NumFeatureLevels; @@ -1792,6 +1948,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; @@ -1819,6 +1987,29 @@ typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT UINT MaxGPUVirtualAddressBitsPerProcess; } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; +typedef +enum D3D12_SHADER_CACHE_SUPPORT_FLAGS + { + D3D12_SHADER_CACHE_SUPPORT_NONE = 0, + D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, + D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, + D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, + D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8 + } D3D12_SHADER_CACHE_SUPPORT_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS ); +typedef struct D3D12_FEATURE_DATA_SHADER_CACHE + { + _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; + } D3D12_FEATURE_DATA_SHADER_CACHE; + +typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY + { + _In_ D3D12_COMMAND_LIST_TYPE CommandListType; + _In_ UINT Priority; + _Out_ BOOL PriorityForTypeIsSupported; + } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; + typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; @@ -1870,6 +2061,8 @@ 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_WRITE_WATCH = 0x200, 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, @@ -1953,6 +2146,18 @@ typedef struct D3D12_RANGE SIZE_T End; } D3D12_RANGE; +typedef struct D3D12_RANGE_UINT64 + { + UINT64 Begin; + UINT64 End; + } D3D12_RANGE_UINT64; + +typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 + { + UINT Subresource; + D3D12_RANGE_UINT64 Range; + } D3D12_SUBRESOURCE_RANGE_UINT64; + typedef struct D3D12_SUBRESOURCE_INFO { UINT64 Offset; @@ -2133,6 +2338,21 @@ typedef struct D3D12_TEXTURE_COPY_LOCATION } ; } D3D12_TEXTURE_COPY_LOCATION; +typedef +enum D3D12_RESOLVE_MODE + { + D3D12_RESOLVE_MODE_DECOMPRESS = 0, + D3D12_RESOLVE_MODE_MIN = 1, + D3D12_RESOLVE_MODE_MAX = 2, + D3D12_RESOLVE_MODE_AVERAGE = 3 + } D3D12_RESOLVE_MODE; + +typedef struct D3D12_SAMPLE_POSITION + { + INT8 X; + INT8 Y; + } D3D12_SAMPLE_POSITION; + typedef enum D3D12_SHADER_COMPONENT_MAPPING { @@ -2799,10 +3019,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 +3175,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 +3290,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 +3490,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 +4924,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 +5001,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 +5241,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 +5336,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); @@ -5237,6 +5638,674 @@ EXTERN_C const IID IID_ID3D12GraphicsCommandList; #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ +#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ +#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ + +/* interface ID3D12GraphicsCommandList1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12GraphicsCommandList1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7") + ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList + { + public: + virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT( + _In_ ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + _In_ ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, + _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; + + virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64( + _In_ ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + _In_ ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, + _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; + + virtual void STDMETHODCALLTYPE OMSetDepthBounds( + _In_ FLOAT Min, + _In_ FLOAT Max) = 0; + + virtual void STDMETHODCALLTYPE SetSamplePositions( + _In_ UINT NumSamplesPerPixel, + _In_ UINT NumPixels, + _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0; + + virtual void STDMETHODCALLTYPE ResolveSubresourceRegion( + _In_ ID3D12Resource *pDstResource, + _In_ UINT DstSubresource, + _In_ UINT DstX, + _In_ UINT DstY, + _In_ ID3D12Resource *pSrcResource, + _In_ UINT SrcSubresource, + _In_opt_ D3D12_RECT *pSrcRect, + _In_ DXGI_FORMAT Format, + _In_ D3D12_RESOLVE_MODE ResolveMode) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12GraphicsCommandList1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12GraphicsCommandList1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12GraphicsCommandList1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12GraphicsCommandList1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12GraphicsCommandList1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12GraphicsCommandList1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12GraphicsCommandList1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12GraphicsCommandList1 * This, + _In_z_ LPCWSTR Name); + + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12GraphicsCommandList1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( + ID3D12GraphicsCommandList1 * This); + + HRESULT ( STDMETHODCALLTYPE *Close )( + ID3D12GraphicsCommandList1 * This); + + HRESULT ( STDMETHODCALLTYPE *Reset )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12CommandAllocator *pAllocator, + _In_opt_ ID3D12PipelineState *pInitialState); + + void ( STDMETHODCALLTYPE *ClearState )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ ID3D12PipelineState *pPipelineState); + + void ( STDMETHODCALLTYPE *DrawInstanced )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT VertexCountPerInstance, + _In_ UINT InstanceCount, + _In_ UINT StartVertexLocation, + _In_ UINT StartInstanceLocation); + + void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT IndexCountPerInstance, + _In_ UINT InstanceCount, + _In_ UINT StartIndexLocation, + _In_ INT BaseVertexLocation, + _In_ UINT StartInstanceLocation); + + void ( STDMETHODCALLTYPE *Dispatch )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT ThreadGroupCountX, + _In_ UINT ThreadGroupCountY, + _In_ UINT ThreadGroupCountZ); + + void ( STDMETHODCALLTYPE *CopyBufferRegion )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + _In_ ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT64 NumBytes); + + void ( STDMETHODCALLTYPE *CopyTextureRegion )( + ID3D12GraphicsCommandList1 * This, + _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, + UINT DstX, + UINT DstY, + UINT DstZ, + _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, + _In_opt_ const D3D12_BOX *pSrcBox); + + void ( STDMETHODCALLTYPE *CopyResource )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstResource, + _In_ ID3D12Resource *pSrcResource); + + void ( STDMETHODCALLTYPE *CopyTiles )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pTiledResource, + _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, + _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, + _In_ ID3D12Resource *pBuffer, + UINT64 BufferStartOffsetInBytes, + D3D12_TILE_COPY_FLAGS Flags); + + void ( STDMETHODCALLTYPE *ResolveSubresource )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstResource, + _In_ UINT DstSubresource, + _In_ ID3D12Resource *pSrcResource, + _In_ UINT SrcSubresource, + _In_ DXGI_FORMAT Format); + + void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( + ID3D12GraphicsCommandList1 * This, + _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); + + void ( STDMETHODCALLTYPE *RSSetViewports )( + ID3D12GraphicsCommandList1 * This, + _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, + _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); + + void ( STDMETHODCALLTYPE *RSSetScissorRects )( + ID3D12GraphicsCommandList1 * This, + _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, + _In_reads_( NumRects) const D3D12_RECT *pRects); + + void ( STDMETHODCALLTYPE *OMSetBlendFactor )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ const FLOAT BlendFactor[ 4 ]); + + void ( STDMETHODCALLTYPE *OMSetStencilRef )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT StencilRef); + + void ( STDMETHODCALLTYPE *SetPipelineState )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12PipelineState *pPipelineState); + + void ( STDMETHODCALLTYPE *ResourceBarrier )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT NumBarriers, + _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); + + void ( STDMETHODCALLTYPE *ExecuteBundle )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12GraphicsCommandList *pCommandList); + + void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT NumDescriptorHeaps, + _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); + + void ( STDMETHODCALLTYPE *SetComputeRootSignature )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ ID3D12RootSignature *pRootSignature); + + void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ ID3D12RootSignature *pRootSignature); + + void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); + + void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); + + void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ UINT SrcData, + _In_ UINT DestOffsetIn32BitValues); + + void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ UINT SrcData, + _In_ UINT DestOffsetIn32BitValues); + + void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ UINT Num32BitValuesToSet, + _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, + _In_ UINT DestOffsetIn32BitValues); + + void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ UINT Num32BitValuesToSet, + _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, + _In_ UINT DestOffsetIn32BitValues); + + void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT RootParameterIndex, + _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); + + void ( STDMETHODCALLTYPE *IASetIndexBuffer )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); + + void ( STDMETHODCALLTYPE *IASetVertexBuffers )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT StartSlot, + _In_ UINT NumViews, + _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); + + void ( STDMETHODCALLTYPE *SOSetTargets )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT StartSlot, + _In_ UINT NumViews, + _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); + + void ( STDMETHODCALLTYPE *OMSetRenderTargets )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT NumRenderTargetDescriptors, + _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, + _In_ BOOL RTsSingleHandleToDescriptorRange, + _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); + + void ( STDMETHODCALLTYPE *ClearDepthStencilView )( + ID3D12GraphicsCommandList1 * This, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, + _In_ D3D12_CLEAR_FLAGS ClearFlags, + _In_ FLOAT Depth, + _In_ UINT8 Stencil, + _In_ UINT NumRects, + _In_reads_(NumRects) const D3D12_RECT *pRects); + + void ( STDMETHODCALLTYPE *ClearRenderTargetView )( + ID3D12GraphicsCommandList1 * This, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, + _In_ const FLOAT ColorRGBA[ 4 ], + _In_ UINT NumRects, + _In_reads_(NumRects) const D3D12_RECT *pRects); + + void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( + ID3D12GraphicsCommandList1 * This, + _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + _In_ ID3D12Resource *pResource, + _In_ const UINT Values[ 4 ], + _In_ UINT NumRects, + _In_reads_(NumRects) const D3D12_RECT *pRects); + + void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( + ID3D12GraphicsCommandList1 * This, + _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, + _In_ ID3D12Resource *pResource, + _In_ const FLOAT Values[ 4 ], + _In_ UINT NumRects, + _In_reads_(NumRects) const D3D12_RECT *pRects); + + void ( STDMETHODCALLTYPE *DiscardResource )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pResource, + _In_opt_ const D3D12_DISCARD_REGION *pRegion); + + void ( STDMETHODCALLTYPE *BeginQuery )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT Index); + + void ( STDMETHODCALLTYPE *EndQuery )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT Index); + + void ( STDMETHODCALLTYPE *ResolveQueryData )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12QueryHeap *pQueryHeap, + _In_ D3D12_QUERY_TYPE Type, + _In_ UINT StartIndex, + _In_ UINT NumQueries, + _In_ ID3D12Resource *pDestinationBuffer, + _In_ UINT64 AlignedDestinationBufferOffset); + + void ( STDMETHODCALLTYPE *SetPredication )( + ID3D12GraphicsCommandList1 * This, + _In_opt_ ID3D12Resource *pBuffer, + _In_ UINT64 AlignedBufferOffset, + _In_ D3D12_PREDICATION_OP Operation); + + void ( STDMETHODCALLTYPE *SetMarker )( + ID3D12GraphicsCommandList1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + void ( STDMETHODCALLTYPE *BeginEvent )( + ID3D12GraphicsCommandList1 * This, + UINT Metadata, + _In_reads_bytes_opt_(Size) const void *pData, + UINT Size); + + void ( STDMETHODCALLTYPE *EndEvent )( + ID3D12GraphicsCommandList1 * This); + + void ( STDMETHODCALLTYPE *ExecuteIndirect )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12CommandSignature *pCommandSignature, + _In_ UINT MaxCommandCount, + _In_ ID3D12Resource *pArgumentBuffer, + _In_ UINT64 ArgumentBufferOffset, + _In_opt_ ID3D12Resource *pCountBuffer, + _In_ UINT64 CountBufferOffset); + + void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + _In_ ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, + _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); + + void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstBuffer, + UINT64 DstOffset, + _In_ ID3D12Resource *pSrcBuffer, + UINT64 SrcOffset, + UINT Dependencies, + _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, + _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); + + void ( STDMETHODCALLTYPE *OMSetDepthBounds )( + ID3D12GraphicsCommandList1 * This, + _In_ FLOAT Min, + _In_ FLOAT Max); + + void ( STDMETHODCALLTYPE *SetSamplePositions )( + ID3D12GraphicsCommandList1 * This, + _In_ UINT NumSamplesPerPixel, + _In_ UINT NumPixels, + _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); + + void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( + ID3D12GraphicsCommandList1 * This, + _In_ ID3D12Resource *pDstResource, + _In_ UINT DstSubresource, + _In_ UINT DstX, + _In_ UINT DstY, + _In_ ID3D12Resource *pSrcResource, + _In_ UINT SrcSubresource, + _In_opt_ D3D12_RECT *pSrcRect, + _In_ DXGI_FORMAT Format, + _In_ D3D12_RESOLVE_MODE ResolveMode); + + END_INTERFACE + } ID3D12GraphicsCommandList1Vtbl; + + interface ID3D12GraphicsCommandList1 + { + CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12GraphicsCommandList1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12GraphicsCommandList1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12GraphicsCommandList1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + +#define ID3D12GraphicsCommandList1_GetType(This) \ + ( (This)->lpVtbl -> GetType(This) ) + + +#define ID3D12GraphicsCommandList1_Close(This) \ + ( (This)->lpVtbl -> Close(This) ) + +#define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \ + ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) + +#define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \ + ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) + +#define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ + ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) + +#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ + ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) + +#define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ + ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) + +#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ + ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) + +#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ + ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) + +#define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \ + ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) + +#define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ + ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) + +#define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ + ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) + +#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \ + ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) + +#define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \ + ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) + +#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \ + ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) + +#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \ + ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) + +#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \ + ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) + +#define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \ + ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) + +#define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ + ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) + +#define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \ + ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) + +#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ + ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) + +#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \ + ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \ + ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) + +#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ + ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ + ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) + +#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ + ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ + ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) + +#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ + ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ + ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) + +#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ + ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) + +#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \ + ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) + +#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ + ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) + +#define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \ + ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) + +#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ + ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) + +#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ + ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) + +#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ + ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) + +#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ + ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) + +#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ + ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) + +#define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \ + ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) + +#define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ + ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) + +#define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ + ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) + +#define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ + ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) + +#define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ + ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) + +#define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) + +#define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \ + ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) + +#define ID3D12GraphicsCommandList1_EndEvent(This) \ + ( (This)->lpVtbl -> EndEvent(This) ) + +#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ + ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) + + +#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ + ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) + +#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ + ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) + +#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \ + ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) + +#define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ + ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) + +#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ + ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ + + #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ #define __ID3D12CommandQueue_INTERFACE_DEFINED__ @@ -5504,6 +6573,27 @@ EXTERN_C const IID IID_ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12_0000_0018 */ +/* [local] */ + +#ifdef __midl +#ifndef LUID_DEFINED +#define LUID_DEFINED 1 +typedef struct __LUID + { + DWORD LowPart; + LONG HighPart; + } LUID; + +typedef struct __LUID *PLUID; + +#endif +#endif + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0018_v0_0_s_ifspec; + #ifndef __ID3D12Device_INTERFACE_DEFINED__ #define __ID3D12Device_INTERFACE_DEFINED__ @@ -5625,7 +6715,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 +6979,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 +7187,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 +7261,1469 @@ 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__ */ + + +#ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ +#define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ + +/* interface ID3D12PipelineLibrary1 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12PipelineLibrary1; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3") + ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary + { + public: + virtual HRESULT STDMETHODCALLTYPE LoadPipeline( + _In_ LPCWSTR pName, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12PipelineLibrary1Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12PipelineLibrary1 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12PipelineLibrary1 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12PipelineLibrary1 * This); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12PipelineLibrary1 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12PipelineLibrary1 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12PipelineLibrary1 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12PipelineLibrary1 * This, + _In_z_ LPCWSTR Name); + + HRESULT ( STDMETHODCALLTYPE *GetDevice )( + ID3D12PipelineLibrary1 * This, + REFIID riid, + _COM_Outptr_opt_ void **ppvDevice); + + HRESULT ( STDMETHODCALLTYPE *StorePipeline )( + ID3D12PipelineLibrary1 * This, + _In_opt_ LPCWSTR pName, + _In_ ID3D12PipelineState *pPipeline); + + HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( + ID3D12PipelineLibrary1 * This, + _In_ LPCWSTR pName, + _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( + ID3D12PipelineLibrary1 * This, + _In_ LPCWSTR pName, + _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( + ID3D12PipelineLibrary1 * This); + + HRESULT ( STDMETHODCALLTYPE *Serialize )( + ID3D12PipelineLibrary1 * This, + _Out_writes_(DataSizeInBytes) void *pData, + SIZE_T DataSizeInBytes); + + HRESULT ( STDMETHODCALLTYPE *LoadPipeline )( + ID3D12PipelineLibrary1 * This, + _In_ LPCWSTR pName, + _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + END_INTERFACE + } ID3D12PipelineLibrary1Vtbl; + + interface ID3D12PipelineLibrary1 + { + CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12PipelineLibrary1_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12PipelineLibrary1_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12PipelineLibrary1_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \ + ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) + + +#define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \ + ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) + +#define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) + +#define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) + +#define ID3D12PipelineLibrary1_GetSerializedSize(This) \ + ( (This)->lpVtbl -> GetSerializedSize(This) ) + +#define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \ + ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) + + +#define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0021 */ +/* [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 = 0xa0010000, + D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 + } D3D12_RESIDENCY_PRIORITY; + + + +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_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__ */ + + +#ifndef __ID3D12Device2_INTERFACE_DEFINED__ +#define __ID3D12Device2_INTERFACE_DEFINED__ + +/* interface ID3D12Device2 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12Device2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328") + ID3D12Device2 : public ID3D12Device1 + { + public: + virtual HRESULT STDMETHODCALLTYPE CreatePipelineState( + const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12Device2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12Device2 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12Device2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12Device2 * This); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + ID3D12Device2 * This, + _In_ REFGUID guid, + _Inout_ UINT *pDataSize, + _Out_writes_bytes_opt_( *pDataSize ) void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + ID3D12Device2 * This, + _In_ REFGUID guid, + _In_ UINT DataSize, + _In_reads_bytes_opt_( DataSize ) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + ID3D12Device2 * This, + _In_ REFGUID guid, + _In_opt_ const IUnknown *pData); + + HRESULT ( STDMETHODCALLTYPE *SetName )( + ID3D12Device2 * This, + _In_z_ LPCWSTR Name); + + UINT ( STDMETHODCALLTYPE *GetNodeCount )( + ID3D12Device2 * This); + + HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( + ID3D12Device2 * This, + _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppCommandQueue); + + HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( + ID3D12Device2 * This, + _In_ D3D12_COMMAND_LIST_TYPE type, + REFIID riid, + _COM_Outptr_ void **ppCommandAllocator); + + HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( + ID3D12Device2 * This, + _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( + ID3D12Device2 * This, + _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + D3D12_FEATURE Feature, + _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, + UINT FeatureSupportDataSize); + + HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( + ID3D12Device2 * This, + _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, + REFIID riid, + _COM_Outptr_ void **ppvHeap); + + UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( + ID3D12Device2 * This, + _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); + + HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( + ID3D12Device2 * This, + _In_ UINT nodeMask, + _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, + _In_ SIZE_T blobLengthInBytes, + REFIID riid, + _COM_Outptr_ void **ppvRootSignature); + + void ( STDMETHODCALLTYPE *CreateConstantBufferView )( + ID3D12Device2 * This, + _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + + void ( STDMETHODCALLTYPE *CreateShaderResourceView )( + ID3D12Device2 * This, + _In_opt_ ID3D12Resource *pResource, + _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + + void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + _In_opt_ ID3D12Resource *pResource, + _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + + void ( STDMETHODCALLTYPE *CreateDepthStencilView )( + ID3D12Device2 * This, + _In_opt_ ID3D12Resource *pResource, + _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + + void ( STDMETHODCALLTYPE *CreateSampler )( + ID3D12Device2 * This, + _In_ const D3D12_SAMPLER_DESC *pDesc, + _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); + + void ( STDMETHODCALLTYPE *CopyDescriptors )( + ID3D12Device2 * 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 )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + _In_ UINT visibleMask, + _In_ UINT numResourceDescs, + _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); + + D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( + ID3D12Device2 * This, + _In_ UINT nodeMask, + D3D12_HEAP_TYPE heapType); + + HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + _In_ const D3D12_HEAP_DESC *pDesc, + REFIID riid, + _COM_Outptr_opt_ void **ppvHeap); + + HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( + ID3D12Device2 * 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 )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + _In_ ID3D12DeviceChild *pObject, + _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, + DWORD Access, + _In_opt_ LPCWSTR Name, + _Out_ HANDLE *pHandle); + + HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( + ID3D12Device2 * This, + _In_ HANDLE NTHandle, + REFIID riid, + _COM_Outptr_opt_ void **ppvObj); + + HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( + ID3D12Device2 * This, + _In_ LPCWSTR Name, + DWORD Access, + /* [annotation][out] */ + _Out_ HANDLE *pNTHandle); + + HRESULT ( STDMETHODCALLTYPE *MakeResident )( + ID3D12Device2 * This, + UINT NumObjects, + _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); + + HRESULT ( STDMETHODCALLTYPE *Evict )( + ID3D12Device2 * This, + UINT NumObjects, + _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); + + HRESULT ( STDMETHODCALLTYPE *CreateFence )( + ID3D12Device2 * This, + UINT64 InitialValue, + D3D12_FENCE_FLAGS Flags, + REFIID riid, + _COM_Outptr_ void **ppFence); + + HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( + ID3D12Device2 * This); + + void ( STDMETHODCALLTYPE *GetCopyableFootprints )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + _In_ const D3D12_QUERY_HEAP_DESC *pDesc, + REFIID riid, + _COM_Outptr_opt_ void **ppvHeap); + + HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( + ID3D12Device2 * This, + BOOL Enable); + + HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( + ID3D12Device2 * This, + _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, + _In_opt_ ID3D12RootSignature *pRootSignature, + REFIID riid, + _COM_Outptr_opt_ void **ppvCommandSignature); + + void ( STDMETHODCALLTYPE *GetResourceTiling )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This); + + HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( + ID3D12Device2 * This, + _In_reads_(BlobLength) const void *pLibraryBlob, + SIZE_T BlobLength, + REFIID riid, + _COM_Outptr_ void **ppPipelineLibrary); + + HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( + ID3D12Device2 * 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 )( + ID3D12Device2 * This, + UINT NumObjects, + _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, + _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); + + HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( + ID3D12Device2 * This, + const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, + REFIID riid, + _COM_Outptr_ void **ppPipelineState); + + END_INTERFACE + } ID3D12Device2Vtbl; + + interface ID3D12Device2 + { + CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12Device2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12Device2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12Device2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) + +#define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) + +#define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) + +#define ID3D12Device2_SetName(This,Name) \ + ( (This)->lpVtbl -> SetName(This,Name) ) + + +#define ID3D12Device2_GetNodeCount(This) \ + ( (This)->lpVtbl -> GetNodeCount(This) ) + +#define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ + ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) + +#define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ + ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) + +#define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) + +#define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) + +#define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ + ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) + +#define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ + ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) + +#define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ + ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) + +#define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ + ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) + +#define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ + ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) + +#define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \ + ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) + +#define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ + ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) + +#define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ + ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) + +#define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ + ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) + +#define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \ + ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) + +#define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ + ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) + +#define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \ + ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) + +#define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ + ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) + +#define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ + ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) + +#define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ + ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) + +#define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ + ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) + +#define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ + ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) + +#define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \ + ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) + +#define ID3D12Device2_Evict(This,NumObjects,ppObjects) \ + ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) + +#define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \ + ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) + +#define ID3D12Device2_GetDeviceRemovedReason(This) \ + ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) + +#define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ + ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) + +#define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ + ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) + +#define ID3D12Device2_SetStablePowerState(This,Enable) \ + ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) + +#define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ + ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) + +#define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ + ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) + +#define ID3D12Device2_GetAdapterLuid(This) \ + ( (This)->lpVtbl -> GetAdapterLuid(This) ) + + +#define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ + ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) + +#define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ + ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) + +#define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ + ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) + + +#define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ + ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ + + +#ifndef __ID3D12Tools_INTERFACE_DEFINED__ +#define __ID3D12Tools_INTERFACE_DEFINED__ + +/* interface ID3D12Tools */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12Tools; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5") + ID3D12Tools : public IUnknown + { + public: + virtual void STDMETHODCALLTYPE EnableShaderInstrumentation( + BOOL bEnable) = 0; + + virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12ToolsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12Tools * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12Tools * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12Tools * This); + + void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( + ID3D12Tools * This, + BOOL bEnable); + + BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( + ID3D12Tools * This); + + END_INTERFACE + } ID3D12ToolsVtbl; + + interface ID3D12Tools + { + CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12Tools_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12Tools_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12Tools_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \ + ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) + +#define ID3D12Tools_ShaderInstrumentationEnabled(This) \ + ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12_0000_0024 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA @@ -6228,12 +8780,58 @@ typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outpt HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); +// -------------------------------------------------------------------------------------------------------------------------------- +// D3D12EnableExperimentalFeatures +// +// Pass in a list of feature GUIDs to be enabled together. +// +// If a particular feature requires some configuration information on enablement, it will have +// a configuration struct that can be passed alongside the GUID. +// +// Some features might use an interface IID as the GUID. For these, once the feature is enabled via +// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface +// for manipulating the feature. This allows for control that might not cleanly be expressed by just +// the configuration struct that D3D12EnableExperimentalFeatures provides. +// +// If this method is called and a change to existing feature enablement is made, +// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one +// singleton device for a process. Removing the devices when configuration changes prevents +// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view. +// +// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on. +// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed +// in are known to be incompatible with each other, or other errors. +// Returns S_OK otherwise. +// +// -------------------------------------------------------------------------------------------------------------------------------- +HRESULT WINAPI D3D12EnableExperimentalFeatures( + UINT NumFeatures, + __in_ecount(NumFeatures) const IID* pIIDs, + __in_ecount_opt(NumFeatures) void* pConfigurationStructs, + __in_ecount_opt(NumFeatures) UINT* pConfigurationStructSizes); + +// -------------------------------------------------------------------------------------------------------------------------------- +// Experimental Feature: D3D12ExperimentalShaderModels +// +// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support, +// meaning shader models that haven't been finalized for use in retail. +// +// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array. +// +// -------------------------------------------------------------------------------------------------------------------------------- +static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */ + 0x76f5573e, + 0xf13a, + 0x40f5, + { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } +}; #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ #pragma endregion DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8); 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); @@ -6245,12 +8843,18 @@ DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5); DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55); +DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); 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_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); +DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e); +DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28); +DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); -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_0024_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0024_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..0a1ad03c28 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.0622 */ @@ -50,6 +50,27 @@ 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 __ID3D12Debug2_FWD_DEFINED__ +#define __ID3D12Debug2_FWD_DEFINED__ +typedef interface ID3D12Debug2 ID3D12Debug2; + +#endif /* __ID3D12Debug2_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 +85,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 +204,201 @@ 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 +enum D3D12_GPU_BASED_VALIDATION_FLAGS { - D3D12_DEBUG_FEATURE_NONE = 0, - D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DRAW = 0x1, - D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DISPATCH = 0x2 - } D3D12_DEBUG_FEATURE; + D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0, + D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x1 + } D3D12_GPU_BASED_VALIDATION_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS) + + +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 __ID3D12Debug2_INTERFACE_DEFINED__ +#define __ID3D12Debug2_INTERFACE_DEFINED__ + +/* interface ID3D12Debug2 */ +/* [unique][local][object][uuid] */ + + +EXTERN_C const IID IID_ID3D12Debug2; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("93a665c4-a3b2-4e5d-b692-a26ae14e3374") + ID3D12Debug2 : public IUnknown + { + public: + virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags( + D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ID3D12Debug2Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ID3D12Debug2 * This, + REFIID riid, + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ID3D12Debug2 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ID3D12Debug2 * This); + + void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( + ID3D12Debug2 * This, + D3D12_GPU_BASED_VALIDATION_FLAGS Flags); + + END_INTERFACE + } ID3D12Debug2Vtbl; + + interface ID3D12Debug2 + { + CONST_VTBL struct ID3D12Debug2Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ID3D12Debug2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ID3D12Debug2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ID3D12Debug2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ID3D12Debug2_SetGPUBasedValidationFlags(This,Flags) \ + ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ID3D12Debug2_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_d3d12sdklayers_0000_0003 */ +/* [local] */ -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEBUG_FEATURE ); typedef enum D3D12_RLDO_FLAGS { @@ -198,10 +409,169 @@ 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_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 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; + +typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR + { + FLOAT SlowdownFactor; + } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; -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_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0003_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 +670,14 @@ EXTERN_C const IID IID_ID3D12DebugDevice; #endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12sdklayers_0000_0002 */ +/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */ /* [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_0005_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0005_v0_0_s_ifspec; #ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ #define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ @@ -392,6 +762,136 @@ EXTERN_C const IID IID_ID3D12DebugCommandQueue; #endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */ +/* interface __MIDL_itf_d3d12sdklayers_0000_0006 */ +/* [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_0006_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0006_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 +993,7 @@ EXTERN_C const IID IID_ID3D12DebugCommandList; #endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12sdklayers_0000_0004 */ +/* interface __MIDL_itf_d3d12sdklayers_0000_0008 */ /* [local] */ typedef @@ -929,10 +1429,10 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN + 1 ) , D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT + 1 ) , D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER + 1 ) , - D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS + 1 ) , + D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARRAYWITHDECODER = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARRAYWITHDECODER + 1 ) , + D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARRAYWITHDECODER + 1 ) , D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY = ( D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE + 1 ) , D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY + 1 ) , D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW + 1 ) , @@ -1271,10 +1771,7 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = ( D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID + 1 ) , D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID + 1 ) , D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = ( D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = ( D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION + 4 ) , D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX + 1 ) , D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , @@ -1319,8 +1816,8 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE + 1 ) , D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS + 1 ) , D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPRTEDCOPYFLAGS + 1 ) , + D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOPYFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOPYFLAGS + 1 ) , D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET = ( D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED + 1 ) , D3D12_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET + 1 ) , D3D12_MESSAGE_ID_JPEGENCODE_SOURCENOT2D = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS + 1 ) , @@ -1338,8 +1835,8 @@ enum D3D12_MESSAGE_ID D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE + 1 ) , D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS + 1 ) , D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY = ( D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTTYPEFORQUERY + 1 ) , + D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTYPEFORQUERY = ( D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE = ( D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTYPEFORQUERY + 1 ) , D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = ( D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE + 1 ) , D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE + 1 ) , D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT + 1 ) , @@ -1459,9 +1956,145 @@ 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_VIDEODECODECOMMANDLIST = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEODECODER = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODER + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODER = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODER + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST + 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_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = ( D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE + 1 ) , + D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = ( D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE + 1 ) , + D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = ( D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = ( D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS + 1 ) , + D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS + 1 ) , + D3D12_MESSAGE_ID_CREATE_PASS = ( D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY + 1 ) , + D3D12_MESSAGE_ID_DESTROY_PASS = ( D3D12_MESSAGE_ID_CREATE_PASS + 1 ) , + D3D12_MESSAGE_ID_LIVE_PASS = ( D3D12_MESSAGE_ID_DESTROY_PASS + 1 ) , + D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = ( D3D12_MESSAGE_ID_LIVE_PASS + 1 ) , + D3D12_MESSAGE_ID_BEGIN_EVENT = ( D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS + 1 ) , + D3D12_MESSAGE_ID_END_EVENT = ( D3D12_MESSAGE_ID_BEGIN_EVENT + 1 ) , + D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = ( D3D12_MESSAGE_ID_END_EVENT + 1 ) , + D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = ( D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM + 1 ) , + D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = ( D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = ( D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = ( D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS + 1 ) , + D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = ( D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES + 1 ) , + D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG + 1 ) , + D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = ( D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE + 1 ) , + D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = ( D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS + 1 ) , + D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = ( D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE + 1 ) , + D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET + 1 ) , + D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH + 1 ) , + D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = ( D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE + 1 ) , + D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = ( D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED + 1 ) , + D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = ( D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = ( D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = ( D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = ( D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = ( D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = ( D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE + 1 ) , + D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = ( D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = ( D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM + 1 ) , + D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = ( D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = ( D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM + 1 ) , + D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = ( D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR + 1 ) , + D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM + 1 ) , + D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = ( D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS + 1 ) , + D3D12_MESSAGE_ID_D3D12_MESSAGES_END = ( D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT + 1 ) } D3D12_MESSAGE_ID; +static_assert(D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED == 1000, "Publicly released SDK D3D12_MESSAGE_ID enum values must not be changed. New enum values must be added to the end of the list."); +static_assert(D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT == 1067, "Publicly released SDK D3D12_MESSAGE_ID enum values must not be changed. New enum values must be added to the end of the list."); typedef struct D3D12_MESSAGE { D3D12_MESSAGE_CATEGORY Category; @@ -1490,8 +2123,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_0008_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0008_v0_0_s_ifspec; #ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__ #define __ID3D12InfoQueue_INTERFACE_DEFINED__ @@ -1898,20 +2531,24 @@ EXTERN_C const IID IID_ID3D12InfoQueue; #endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */ +/* interface __MIDL_itf_d3d12sdklayers_0000_0009 */ /* [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_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74); +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_0009_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0009_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..2b6f31fc42 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.0622 */ /* @@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..d1740ae4fd 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, @@ -4371,6 +4375,16 @@ interface DWRITE_DECLARE_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") IDWri UINT32 maxHitTestMetricsCount, _Out_ UINT32* actualHitTestMetricsCount ) PURE; + + using IDWriteTextFormat::GetFontCollection; + using IDWriteTextFormat::GetFontFamilyNameLength; + using IDWriteTextFormat::GetFontFamilyName; + using IDWriteTextFormat::GetFontWeight; + using IDWriteTextFormat::GetFontStyle; + using IDWriteTextFormat::GetFontStretch; + using IDWriteTextFormat::GetFontSize; + using IDWriteTextFormat::GetLocaleNameLength; + using IDWriteTextFormat::GetLocaleName; }; diff --git a/3rdparty/minidx12/Include/dwrite_1.h b/3rdparty/minidx12/Include/dwrite_1.h index 0939921337..ba83072f8e 100644 --- a/3rdparty/minidx12/Include/dwrite_1.h +++ b/3rdparty/minidx12/Include/dwrite_1.h @@ -10,9 +10,7 @@ #ifndef DWRITE_1_H_INCLUDED #define DWRITE_1_H_INCLUDED -#if _MSC_VER > 1000 #pragma once -#endif #include @@ -1337,6 +1335,10 @@ interface DWRITE_DECLARE_INTERFACE("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf") IDWri /// True if the font contains vertical glyph variants. /// STDMETHOD_(BOOL, HasVerticalGlyphVariants)() PURE; + + using IDWriteFontFace::GetMetrics; + using IDWriteFontFace::GetGdiCompatibleMetrics; + using IDWriteFontFace::GetRecommendedRenderingMode; }; @@ -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..3fffdd04f0 100644 --- a/3rdparty/minidx12/Include/dwrite_2.h +++ b/3rdparty/minidx12/Include/dwrite_2.h @@ -10,9 +10,7 @@ #ifndef DWRITE_2_H_INCLUDED #define DWRITE_2_H_INCLUDED -#if _MSC_VER > 1000 #pragma once -#endif #include @@ -238,6 +236,11 @@ interface DWRITE_DECLARE_INTERFACE("D3E0E934-22A0-427E-AAE4-7D9574B59DB1") IDWri BOOL isRightToLeft, _In_opt_ IUnknown* clientDrawingEffect ) PURE; + + using IDWriteTextRenderer::DrawGlyphRun; + using IDWriteTextRenderer::DrawUnderline; + using IDWriteTextRenderer::DrawStrikethrough; + using IDWriteTextRenderer::DrawInlineObject; }; @@ -510,6 +513,8 @@ interface DWRITE_DECLARE_INTERFACE("553A9FF3-5693-4DF7-B52B-74806F7F2EB9") IDWri _In_reads_(glyphCount) UINT16 const* glyphIndices, _Out_writes_(glyphCount) UINT8* featureApplies ) PURE; + + using IDWriteTextAnalyzer1::GetGlyphOrientationTransform; }; @@ -554,8 +559,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; }; @@ -643,7 +648,7 @@ typedef struct _D3DCOLORVALUE { } D3DCOLORVALUE; #define D3DCOLORVALUE_DEFINED -#endif D3DCOLORVALUE_DEFINED +#endif // D3DCOLORVALUE_DEFINED typedef D3DCOLORVALUE DWRITE_COLOR_F; @@ -653,8 +658,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 +674,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; @@ -747,6 +756,8 @@ interface DWRITE_DECLARE_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") IDWri _Out_ DWRITE_RENDERING_MODE* renderingMode, _Out_ DWRITE_GRID_FIT_MODE* gridFitMode ) PURE; + + using IDWriteFontFace1::GetRecommendedRenderingMode; }; /// diff --git a/3rdparty/minidx12/Include/dwrite_3.h b/3rdparty/minidx12/Include/dwrite_3.h index 7119347b58..c923558096 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. /// @@ -1578,6 +1578,8 @@ interface DWRITE_DECLARE_INTERFACE("4556BE70-3ABD-4F70-90BE-421780A6F515") IDWri _In_ IDWriteFontSet* fontSet, _COM_Outptr_ IDWriteFontSet** filteredSet ) PURE; + + using IDWriteGdiInterop::CreateFontFromLOGFONT; }; /// @@ -1684,6 +1686,9 @@ interface DWRITE_DECLARE_INTERFACE("F67E0EDD-9E3D-4ECC-8C32-4183253DFE70") IDWri /// Standard HRESULT error code. /// STDMETHOD(GetLineSpacing)(_Out_ DWRITE_LINE_SPACING* lineSpacingOptions) PURE; + + using IDWriteTextFormat1::SetLineSpacing; + using IDWriteTextFormat1::GetLineSpacing; }; interface DWRITE_DECLARE_INTERFACE("07DDCD52-020E-4DE8-AC33-6C953D83F92D") IDWriteTextLayout3 : public IDWriteTextLayout2 @@ -1738,6 +1743,682 @@ interface DWRITE_DECLARE_INTERFACE("07DDCD52-020E-4DE8-AC33-6C953D83F92D") IDWri UINT32 maxLineCount, _Out_ UINT32* actualLineCount ) PURE; + + using IDWriteTextLayout2::SetLineSpacing; + using IDWriteTextLayout2::GetLineSpacing; + using IDWriteTextLayout2::GetLineMetrics; }; -#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 + + +//////////////////////////////////////////////////////////////////////////////////////////////////// + + +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 + +interface DWRITE_DECLARE_INTERFACE("3FF7715F-3CDC-4DC6-9B72-EC5621DCCAFD") IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder +{ + /// + /// Adds references to all the fonts in the specified font file. The method + /// parses the font file to determine the fonts and their properties. + /// + /// Font file reference object to add to the set. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(AddFontFile)( + _In_ IDWriteFontFile* fontFile + ) throw(); +}; + +/// +/// The IDWriteAsyncResult interface represents the result of an asynchronous +/// operation. A client can use the interface to wait for the operation to +/// complete and to get the result. +/// +interface DWRITE_DECLARE_INTERFACE("CE25F8FD-863B-4D13-9651-C1F88DC73FE2") IDWriteAsyncResult : public IUnknown +{ + /// + /// The GetWaitHandleMethod method returns a handle that can be used to wait + /// for the asynchronous operation to complete. The handle remains valid + /// until the interface is released. + /// + STDMETHOD_(HANDLE, GetWaitHandle)() PURE; + + /// + /// The GetResult method returns the result of the asynchronous operation. + /// The return value is E_PENDING if the operation has not yet completed. + /// + STDMETHOD(GetResult)() PURE; +}; + + +/// +/// DWRITE_FILE_FRAGMENT represents a range of bytes in a font file. +/// +struct DWRITE_FILE_FRAGMENT +{ + /// + /// Starting offset of the fragment from the beginning of the file. + /// + UINT64 fileOffset; + + /// + /// Size of the file fragment, in bytes. + /// + UINT64 fragmentSize; +}; + + +/// +/// IDWriteRemoteFontFileStream represents a font file stream parts of which may be +/// non-local. Non-local data must be downloaded before it can be accessed using +/// ReadFragment. The interface exposes methods to download font data and query the +/// locality of font data. +/// +/// +/// For more information, see the description of IDWriteRemoteFontFileLoader. +/// +interface DWRITE_DECLARE_INTERFACE("4DB3757A-2C72-4ED9-B2B6-1ABABE1AFF9C") IDWriteRemoteFontFileStream : public IDWriteFontFileStream +{ + /// + /// GetLocalFileSize returns the number of bytes of the font file that are + /// currently local, which should always be less than or equal to the full + /// file size returned by GetFileSize. If the locality is remote, the return + /// value is zero. If the file is fully local, the return value must be the + /// same as GetFileSize. + /// + /// Receives the local size of the file. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(GetLocalFileSize)( + _Out_ UINT64* localFileSize + ) PURE; + + /// + /// GetFileFragmentLocality returns information about the locality of a byte range (i.e., + /// font fragment) within the font file stream. + /// + /// Offset of the fragment from the beginning of the font file. + /// Size of the fragment in bytes. + /// Receives TRUE if the first byte of the fragment is local, FALSE if not. + /// Receives the number of contiguous bytes from the start of the + /// fragment that have the same locality as the first byte. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(GetFileFragmentLocality)( + UINT64 fileOffset, + UINT64 fragmentSize, + _Out_ BOOL* isLocal, + _Out_range_(0, fragmentSize) UINT64* partialSize + ) PURE; + + /// + /// Gets the current locality of the file. + /// + /// + /// Returns the locality enumeration (i.e., remote, partial, or local). + /// + STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE; + + /// + /// BeginDownload begins downloading all or part of the font file. + /// + /// Array of structures, each specifying a byte + /// range to download. + /// Number of elements in the fileFragments array. + /// This can be zero to just download file information, such as the size. + /// Receives an object that can be used to wait for + /// the asynchronous download to complete and to get the download result upon + /// completion. The result may be NULL if the download completes synchronously. + /// For example, this can happen if method determines that the requested data + /// is already local. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(BeginDownload)( + _In_ UUID const* downloadOperationID, + _In_reads_(fragmentCount) DWRITE_FILE_FRAGMENT const* fileFragments, + UINT32 fragmentCount, + _COM_Outptr_result_maybenull_ IDWriteAsyncResult** asyncResult + ) PURE; +}; + + +/// +/// Specifies the container format of a font resource. A container format is distinct from +/// a font file format (DWRITE_FONT_FILE_TYPE) because the container describes the container +/// in which the underlying font file is packaged. +/// +enum DWRITE_CONTAINER_TYPE +{ + DWRITE_CONTAINER_TYPE_UNKNOWN, + DWRITE_CONTAINER_TYPE_WOFF, + DWRITE_CONTAINER_TYPE_WOFF2 +}; + + +/// +/// The IDWriteRemoteFontFileLoader interface represents a font file loader that can access +/// remote (i.e., downloadable) fonts. The IDWriteFactory5::CreateHttpFontFileLoader method +/// returns an instance of this interface, or a client can create its own implementation. +/// +/// +/// Calls to a remote file loader or stream should never block waiting for network operations. +/// Any call that cannot succeeded immediately using local (e.g., cached) must should return +/// DWRITE_E_REMOTEFONT. This error signifies to DWrite that it should add requests to the +/// font download queue. +/// +interface DWRITE_DECLARE_INTERFACE("68648C83-6EDE-46C0-AB46-20083A887FDE") IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader +{ + /// + /// Creates a remote font file stream object that encapsulates an open file resource + /// and can be used to download remote file data. + /// + /// Font file reference key that uniquely identifies the font file resource + /// within the scope of the font loader being used. + /// Size of font file reference key in bytes. + /// Pointer to the newly created font file stream. + /// + /// Standard HRESULT error code. + /// + /// + /// Unlike CreateStreamFromKey, this method can be used to create a stream for a remote file. + /// If the file is remote, the client must call IDWriteRemoteFontFileStream::DownloadFileInformation + /// before the stream can be used to get the file size or access data. + /// + STDMETHOD(CreateRemoteStreamFromKey)( + _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + _COM_Outptr_ IDWriteRemoteFontFileStream** fontFileStream + ) PURE; + + /// + /// Gets the locality of the file resource identified by the unique key. + /// + /// Font file reference key that uniquely identifies the font file resource + /// within the scope of the font loader being used. + /// Size of font file reference key in bytes. + /// Locality of the file. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(GetLocalityFromKey)( + _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + _Out_ DWRITE_LOCALITY* locality + ) PURE; + + /// + /// Creates a font file reference from a URL if the loader supports this capability. + /// + /// Factory used to create the font file reference. + /// Optional base URL. The base URL is used to resolve the fontFileUrl + /// if it is relative. For example, the baseUrl might be the URL of the referring document + /// that contained the fontFileUrl. + /// URL of the font resource. + /// Receives a pointer to the newly created font file reference. + /// + /// Standard HRESULT error code, or E_NOTIMPL if the loader does not implement this method. + /// + STDMETHOD(CreateFontFileReferenceFromUrl)( + IDWriteFactory* factory, + _In_opt_z_ WCHAR const* baseUrl, + _In_z_ WCHAR const* fontFileUrl, + _COM_Outptr_ IDWriteFontFile** fontFile + ) PURE; +}; + + +/// +/// The IDWriteInMemoryFontFileLoader interface enables clients to reference +/// in-memory fonts without having to implement a custom loader. The +/// IDWriteFactory5::CreateInMemoryFontFileLoader method returns an instance +/// of this interface, which the client is responsible for registering and +/// unregistering using IDWriteFactory::RegisterFontFileLoader and +/// IDWriteFactory::UnregisterFontFileLoader. +/// +interface DWRITE_DECLARE_INTERFACE("DC102F47-A12D-4B1C-822D-9E117E33043F") IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader +{ + /// + /// The CreateInMemoryFontFileReference method creates a font file reference + /// (IDWriteFontFile object) from an array of bytes. The font file reference + /// is bound to the IDWRiteInMemoryFontFileLoader instance with which it was + /// created and remains valid for as long as that loader is registered with + /// the factory. + /// + /// Factory object used to create the font file reference. + /// Pointer to a memory block containing the font data. + /// Size of the font data. + /// Optional object that owns the memory specified by + /// the fontData parameter. If this parameter is not NULL, the method stores a + /// pointer to the font data and adds a reference to the owner object. The + /// fontData pointer must remain valid until the owner object is released. If + /// this parameter is NULL, the method makes a copy of the font data. + /// Receives a pointer to the newly-created font file + /// reference. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(CreateInMemoryFontFileReference)( + IDWriteFactory* factory, + _In_reads_bytes_(fontDataSize) void const* fontData, + UINT32 fontDataSize, + _In_opt_ IUnknown* ownerObject, + _COM_Outptr_ IDWriteFontFile** fontFile + ) PURE; + + /// + /// The GetFileCount method returns the number of font file references that + /// have been created using this loader instance. + /// + STDMETHOD_(UINT32, GetFileCount)() PURE; +}; + + +/// +/// The root factory interface for all DWrite objects. +/// +interface DWRITE_DECLARE_INTERFACE("958DB99A-BE2A-4F09-AF7D-65189803D1D3") IDWriteFactory5 : public IDWriteFactory4 +{ + /// + /// Creates an empty font set builder to add font face references + /// and create a custom font set. + /// + /// Holds the newly created font set builder object, or NULL in case of failure. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(CreateFontSetBuilder)( + _COM_Outptr_ IDWriteFontSetBuilder1** fontSetBuilder + ) PURE; + + using IDWriteFactory3::CreateFontSetBuilder; + + /// + /// The CreateInMemoryFontFileLoader method creates a loader object that can + /// be used to create font file references to in-memory fonts. The caller is + /// responsible for registering and unregistering the loader. + /// + /// Receives a pointer to the newly-created loader object. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(CreateInMemoryFontFileLoader)( + _COM_Outptr_ IDWriteInMemoryFontFileLoader** newLoader + ) PURE; + + /// + /// The CreateHttpFontFileLoader function creates a remote font file loader + /// that can create font file references from HTTP or HTTPS URLs. The caller + /// is responsible for registering and unregistering the loader. + /// + /// Optional referrer URL for HTTP requests. + /// Optional additional header fields to include + /// in HTTP requests. Each header field consists of a name followed by a colon + /// (":") and the field value, as specified by RFC 2616. Multiple header fields + /// may be separated by newlines. + /// Receives a pointer to the newly-created loader object. + /// + /// Standard HRESULT error code. + /// + STDMETHOD(CreateHttpFontFileLoader)( + _In_opt_z_ wchar_t const* referrerUrl, + _In_opt_z_ wchar_t const* extraHeaders, + _COM_Outptr_ IDWriteRemoteFontFileLoader** newLoader + ); + + /// + /// The AnalyzeContainerType method analyzes the specified file data to determine + /// whether it is a known font container format (e.g., WOFF or WOFF2). + /// + /// + /// Returns the container type if recognized. DWRITE_CONTAINER_TYPE_UNKOWNN is + /// returned for all other files, including uncompressed font files. + /// + STDMETHOD_(DWRITE_CONTAINER_TYPE, AnalyzeContainerType)( + _In_reads_bytes_(fileDataSize) void const* fileData, + UINT32 fileDataSize + ) PURE; + + /// + /// The UnpackFontFile method unpacks font data from a container file (WOFF or + /// WOFF2) and returns the unpacked font data in the form of a font file stream. + /// + /// Container type returned by AnalyzeContainerType. + /// Pointer to the compressed data. + /// Size of the compressed data, in bytes. + /// Receives a pointer to a newly created font + /// file stream containing the uncompressed data. + /// + /// Standard HRESULT error code. The return value is E_INVALIDARG if the container + /// type is DWRITE_CONTAINER_TYPE_UNKNOWN. + /// + STDMETHOD(UnpackFontFile)( + DWRITE_CONTAINER_TYPE containerType, + _In_reads_bytes_(fileDataSize) void const* fileData, + UINT32 fileDataSize, + _COM_Outptr_ IDWriteFontFileStream** unpackedFontStream + ) PURE; +}; + +#endif // NTDDI_VERSION >= NTDDI_WIN10_RS2 + +#endif // DWRITE_3_H_INCLUDED diff --git a/3rdparty/minidx12/Include/dxgi.h b/3rdparty/minidx12/Include/dxgi.h index 32e4631622..19456e4c1b 100644 --- a/3rdparty/minidx12/Include/dxgi.h +++ b/3rdparty/minidx12/Include/dxgi.h @@ -1,9 +1,9 @@ - + /* 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -140,6 +140,7 @@ typedef interface IDXGIDevice1 IDXGIDevice1; /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" +#include "dxgicommon.h" #include "dxgitype.h" #ifdef __cplusplus @@ -181,6 +182,8 @@ typedef struct DXGI_MAPPED_RECT } DXGI_MAPPED_RECT; #ifdef __midl +#ifndef LUID_DEFINED +#define LUID_DEFINED 1 typedef struct _LUID { DWORD LowPart; @@ -189,6 +192,7 @@ typedef struct _LUID typedef struct _LUID *PLUID; +#endif #endif typedef struct DXGI_ADAPTER_DESC { @@ -273,7 +277,9 @@ 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_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096 } DXGI_SWAP_CHAIN_FLAG; typedef struct DXGI_SWAP_CHAIN_DESC @@ -319,7 +325,7 @@ EXTERN_C const IID IID_IDXGIObject; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown) = 0; + _In_opt_ const IUnknown *pUnknown) = 0; virtual HRESULT STDMETHODCALLTYPE GetPrivateData( /* [annotation][in] */ @@ -369,7 +375,7 @@ EXTERN_C const IID IID_IDXGIObject; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIObject * This, @@ -488,7 +494,7 @@ EXTERN_C const IID IID_IDXGIDeviceSubObject; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIDeviceSubObject * This, @@ -626,7 +632,7 @@ EXTERN_C const IID IID_IDXGIResource; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIResource * This, @@ -788,7 +794,7 @@ EXTERN_C const IID IID_IDXGIKeyedMutex; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIKeyedMutex * This, @@ -953,7 +959,7 @@ EXTERN_C const IID IID_IDXGISurface; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISurface * This, @@ -1110,7 +1116,7 @@ EXTERN_C const IID IID_IDXGISurface1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISurface1 * This, @@ -1300,7 +1306,7 @@ EXTERN_C const IID IID_IDXGIAdapter; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIAdapter * This, @@ -1506,7 +1512,7 @@ EXTERN_C const IID IID_IDXGIOutput; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutput * This, @@ -1684,6 +1690,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; @@ -1787,7 +1794,7 @@ EXTERN_C const IID IID_IDXGISwapChain; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISwapChain * This, @@ -2039,7 +2046,7 @@ EXTERN_C const IID IID_IDXGIFactory; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIFactory * This, @@ -2241,7 +2248,7 @@ EXTERN_C const IID IID_IDXGIDevice; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIDevice * This, @@ -2448,7 +2455,7 @@ EXTERN_C const IID IID_IDXGIFactory1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIFactory1 * This, @@ -2628,7 +2635,7 @@ EXTERN_C const IID IID_IDXGIAdapter1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIAdapter1 * This, @@ -2785,7 +2792,7 @@ EXTERN_C const IID IID_IDXGIDevice1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIDevice1 * This, diff --git a/3rdparty/minidx12/Include/dxgi1_2.h b/3rdparty/minidx12/Include/dxgi1_2.h index 8a8a3cc99a..b855f80a6d 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -360,7 +360,7 @@ EXTERN_C const IID IID_IDXGIOutputDuplication; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutputDuplication * This, @@ -582,7 +582,7 @@ EXTERN_C const IID IID_IDXGISurface2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISurface2 * This, @@ -776,7 +776,7 @@ EXTERN_C const IID IID_IDXGIResource1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIResource1 * This, @@ -991,7 +991,7 @@ EXTERN_C const IID IID_IDXGIDevice2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIDevice2 * This, @@ -1209,7 +1209,8 @@ typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC typedef struct DXGI_PRESENT_PARAMETERS { UINT DirtyRectsCount; - RECT *pDirtyRects; + /* [annotation] */ + _Field_size_full_opt_(DirtyRectsCount) RECT *pDirtyRects; RECT *pScrollRect; POINT *pScrollOffset; } DXGI_PRESENT_PARAMETERS; @@ -1314,7 +1315,7 @@ EXTERN_C const IID IID_IDXGISwapChain1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISwapChain1 * This, @@ -1699,7 +1700,7 @@ EXTERN_C const IID IID_IDXGIFactory2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIFactory2 * This, @@ -2048,7 +2049,7 @@ EXTERN_C const IID IID_IDXGIAdapter2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIAdapter2 * This, @@ -2233,7 +2234,7 @@ EXTERN_C const IID IID_IDXGIOutput1; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutput1 * This, diff --git a/3rdparty/minidx12/Include/dxgi1_3.h b/3rdparty/minidx12/Include/dxgi1_3.h index fb53fafddb..6a9462dcd2 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -168,7 +168,7 @@ EXTERN_C const IID IID_IDXGIDevice3; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIDevice3 * This, @@ -430,7 +430,7 @@ EXTERN_C const IID IID_IDXGISwapChain2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISwapChain2 * This, @@ -792,7 +792,7 @@ EXTERN_C const IID IID_IDXGIOutput2; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutput2 * This, @@ -1059,7 +1059,7 @@ EXTERN_C const IID IID_IDXGIFactory3; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIFactory3 * This, @@ -1861,7 +1861,7 @@ EXTERN_C const IID IID_IDXGIOutput3; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutput3 * This, diff --git a/3rdparty/minidx12/Include/dxgi1_4.h b/3rdparty/minidx12/Include/dxgi1_4.h index 8bb48d5c56..5ff289c0eb 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.0622 */ /* @@MIDL_FILE_HEADING( ) */ @@ -170,7 +170,7 @@ EXTERN_C const IID IID_IDXGISwapChain3; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGISwapChain3 * This, @@ -599,7 +599,7 @@ EXTERN_C const IID IID_IDXGIOutput4; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIOutput4 * This, @@ -906,7 +906,7 @@ EXTERN_C const IID IID_IDXGIFactory4; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIFactory4 * This, @@ -1296,7 +1296,7 @@ EXTERN_C const IID IID_IDXGIAdapter3; /* [annotation][in] */ _In_ REFGUID Name, /* [annotation][in] */ - _In_ const IUnknown *pUnknown); + _In_opt_ const IUnknown *pUnknown); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( IDXGIAdapter3 * This, diff --git a/3rdparty/minidx12/Include/dxgi1_5.h b/3rdparty/minidx12/Include/dxgi1_5.h new file mode 100644 index 0000000000..7a7dd7519c --- /dev/null +++ b/3rdparty/minidx12/Include/dxgi1_5.h @@ -0,0 +1,1539 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.01.0622 */ +/* @@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) +typedef +enum DXGI_OUTDUPL_FLAG + { + DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 1 + } DXGI_OUTDUPL_FLAG; + + + +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_opt_ 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_opt_ 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_opt_ 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_opt_ 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/dxgi1_6.h b/3rdparty/minidx12/Include/dxgi1_6.h new file mode 100644 index 0000000000..0c19c38604 --- /dev/null +++ b/3rdparty/minidx12/Include/dxgi1_6.h @@ -0,0 +1,727 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.01.0622 */ +/* @@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_6_h__ +#define __dxgi1_6_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __IDXGIAdapter4_FWD_DEFINED__ +#define __IDXGIAdapter4_FWD_DEFINED__ +typedef interface IDXGIAdapter4 IDXGIAdapter4; + +#endif /* __IDXGIAdapter4_FWD_DEFINED__ */ + + +#ifndef __IDXGIOutput6_FWD_DEFINED__ +#define __IDXGIOutput6_FWD_DEFINED__ +typedef interface IDXGIOutput6 IDXGIOutput6; + +#endif /* __IDXGIOutput6_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "dxgi1_5.h" + +#ifdef __cplusplus +extern "C"{ +#endif + + +/* interface __MIDL_itf_dxgi1_6_0000_0000 */ +/* [local] */ + +// Copyright (c) Microsoft Corporation. All Rights Reserved +#include +#pragma region App Family +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +typedef +enum DXGI_ADAPTER_FLAG3 + { + DXGI_ADAPTER_FLAG3_NONE = 0, + DXGI_ADAPTER_FLAG3_REMOTE = 1, + DXGI_ADAPTER_FLAG3_SOFTWARE = 2, + DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 4, + DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff + } DXGI_ADAPTER_FLAG3; + +DEFINE_ENUM_FLAG_OPERATORS( DXGI_ADAPTER_FLAG3 ); +typedef struct DXGI_ADAPTER_DESC3 + { + WCHAR Description[ 128 ]; + UINT VendorId; + UINT DeviceId; + UINT SubSysId; + UINT Revision; + SIZE_T DedicatedVideoMemory; + SIZE_T DedicatedSystemMemory; + SIZE_T SharedSystemMemory; + LUID AdapterLuid; + DXGI_ADAPTER_FLAG3 Flags; + DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; + DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; + } DXGI_ADAPTER_DESC3; + + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0000_v0_0_s_ifspec; + +#ifndef __IDXGIAdapter4_INTERFACE_DEFINED__ +#define __IDXGIAdapter4_INTERFACE_DEFINED__ + +/* interface IDXGIAdapter4 */ +/* [unique][local][uuid][object] */ + + +EXTERN_C const IID IID_IDXGIAdapter4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3c8d99d1-4fbf-4181-a82c-af66bf7bd24e") + IDXGIAdapter4 : public IDXGIAdapter3 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetDesc3( + /* [annotation][out] */ + _Out_ DXGI_ADAPTER_DESC3 *pDesc) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IDXGIAdapter4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDXGIAdapter4 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDXGIAdapter4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDXGIAdapter4 * This); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [in] */ UINT DataSize, + /* [annotation][in] */ + _In_reads_bytes_(DataSize) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [annotation][in] */ + _In_opt_ const IUnknown *pUnknown); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [annotation][out][in] */ + _Inout_ UINT *pDataSize, + /* [annotation][out] */ + _Out_writes_bytes_(*pDataSize) void *pData); + + HRESULT ( STDMETHODCALLTYPE *GetParent )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][retval][out] */ + _COM_Outptr_ void **ppParent); + + HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( + IDXGIAdapter4 * This, + /* [in] */ UINT Output, + /* [annotation][out][in] */ + _COM_Outptr_ IDXGIOutput **ppOutput); + + HRESULT ( STDMETHODCALLTYPE *GetDesc )( + IDXGIAdapter4 * This, + /* [annotation][out] */ + _Out_ DXGI_ADAPTER_DESC *pDesc); + + HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ REFGUID InterfaceName, + /* [annotation][out] */ + _Out_ LARGE_INTEGER *pUMDVersion); + + HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( + IDXGIAdapter4 * This, + /* [annotation][out] */ + _Out_ DXGI_ADAPTER_DESC1 *pDesc); + + HRESULT ( STDMETHODCALLTYPE *GetDesc2 )( + IDXGIAdapter4 * This, + /* [annotation][out] */ + _Out_ DXGI_ADAPTER_DESC2 *pDesc); + + HRESULT ( STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ HANDLE hEvent, + /* [annotation][out] */ + _Out_ DWORD *pdwCookie); + + void ( STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ DWORD dwCookie); + + HRESULT ( STDMETHODCALLTYPE *QueryVideoMemoryInfo )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ UINT NodeIndex, + /* [annotation][in] */ + _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + /* [annotation][out] */ + _Out_ DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo); + + HRESULT ( STDMETHODCALLTYPE *SetVideoMemoryReservation )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ UINT NodeIndex, + /* [annotation][in] */ + _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, + /* [annotation][in] */ + _In_ UINT64 Reservation); + + HRESULT ( STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ HANDLE hEvent, + /* [annotation][out] */ + _Out_ DWORD *pdwCookie); + + void ( STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification )( + IDXGIAdapter4 * This, + /* [annotation][in] */ + _In_ DWORD dwCookie); + + HRESULT ( STDMETHODCALLTYPE *GetDesc3 )( + IDXGIAdapter4 * This, + /* [annotation][out] */ + _Out_ DXGI_ADAPTER_DESC3 *pDesc); + + END_INTERFACE + } IDXGIAdapter4Vtbl; + + interface IDXGIAdapter4 + { + CONST_VTBL struct IDXGIAdapter4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDXGIAdapter4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDXGIAdapter4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDXGIAdapter4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDXGIAdapter4_SetPrivateData(This,Name,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) + +#define IDXGIAdapter4_SetPrivateDataInterface(This,Name,pUnknown) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) + +#define IDXGIAdapter4_GetPrivateData(This,Name,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) + +#define IDXGIAdapter4_GetParent(This,riid,ppParent) \ + ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) + + +#define IDXGIAdapter4_EnumOutputs(This,Output,ppOutput) \ + ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) + +#define IDXGIAdapter4_GetDesc(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc(This,pDesc) ) + +#define IDXGIAdapter4_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ + ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) + + +#define IDXGIAdapter4_GetDesc1(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) + + +#define IDXGIAdapter4_GetDesc2(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc2(This,pDesc) ) + + +#define IDXGIAdapter4_RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) \ + ( (This)->lpVtbl -> RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) ) + +#define IDXGIAdapter4_UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) \ + ( (This)->lpVtbl -> UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) ) + +#define IDXGIAdapter4_QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) \ + ( (This)->lpVtbl -> QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) ) + +#define IDXGIAdapter4_SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) \ + ( (This)->lpVtbl -> SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) ) + +#define IDXGIAdapter4_RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) \ + ( (This)->lpVtbl -> RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) ) + +#define IDXGIAdapter4_UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) \ + ( (This)->lpVtbl -> UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) ) + + +#define IDXGIAdapter4_GetDesc3(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc3(This,pDesc) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDXGIAdapter4_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_dxgi1_6_0000_0001 */ +/* [local] */ + +typedef struct DXGI_OUTPUT_DESC1 + { + WCHAR DeviceName[ 32 ]; + RECT DesktopCoordinates; + BOOL AttachedToDesktop; + DXGI_MODE_ROTATION Rotation; + HMONITOR Monitor; + UINT BitsPerColor; + DXGI_COLOR_SPACE_TYPE ColorSpace; + FLOAT RedPrimary[ 2 ]; + FLOAT GreenPrimary[ 2 ]; + FLOAT BluePrimary[ 2 ]; + FLOAT WhitePoint[ 2 ]; + FLOAT MinLuminance; + FLOAT MaxLuminance; + FLOAT MaxFullFrameLuminance; + } DXGI_OUTPUT_DESC1; + +typedef +enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS + { + DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 1, + DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 2, + DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 4 + } DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS; + +DEFINE_ENUM_FLAG_OPERATORS( DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS ); + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0001_v0_0_s_ifspec; + +#ifndef __IDXGIOutput6_INTERFACE_DEFINED__ +#define __IDXGIOutput6_INTERFACE_DEFINED__ + +/* interface IDXGIOutput6 */ +/* [unique][local][uuid][object] */ + + +EXTERN_C const IID IID_IDXGIOutput6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("068346e8-aaec-4b84-add7-137f513f77a1") + IDXGIOutput6 : public IDXGIOutput5 + { + public: + virtual HRESULT STDMETHODCALLTYPE GetDesc1( + /* [annotation][out] */ + _Out_ DXGI_OUTPUT_DESC1 *pDesc) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckHardwareCompositionSupport( + /* [annotation][out] */ + _Out_ UINT *pFlags) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IDXGIOutput6Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IDXGIOutput6 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IDXGIOutput6 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IDXGIOutput6 * This); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [in] */ UINT DataSize, + /* [annotation][in] */ + _In_reads_bytes_(DataSize) const void *pData); + + HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [annotation][in] */ + _In_opt_ const IUnknown *pUnknown); + + HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ REFGUID Name, + /* [annotation][out][in] */ + _Inout_ UINT *pDataSize, + /* [annotation][out] */ + _Out_writes_bytes_(*pDataSize) void *pData); + + HRESULT ( STDMETHODCALLTYPE *GetParent )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][retval][out] */ + _COM_Outptr_ void **ppParent); + + HRESULT ( STDMETHODCALLTYPE *GetDesc )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ DXGI_OUTPUT_DESC *pDesc); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( + IDXGIOutput6 * 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 )( + IDXGIOutput6 * 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 )( + IDXGIOutput6 * This); + + HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ IUnknown *pDevice, + BOOL Exclusive); + + void ( STDMETHODCALLTYPE *ReleaseOwnership )( + IDXGIOutput6 * This); + + HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); + + HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ const DXGI_GAMMA_CONTROL *pArray); + + HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ DXGI_GAMMA_CONTROL *pArray); + + HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ IDXGISurface *pScanoutSurface); + + HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ IDXGISurface *pDestination); + + HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ DXGI_FRAME_STATISTICS *pStats); + + HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( + IDXGIOutput6 * 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 )( + IDXGIOutput6 * 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 )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ IDXGIResource *pDestination); + + HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ IUnknown *pDevice, + /* [annotation][out] */ + _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); + + BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( + IDXGIOutput6 * This); + + HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )( + IDXGIOutput6 * This, + /* [annotation][in] */ + _In_ DXGI_FORMAT EnumFormat, + /* [annotation][out] */ + _In_ IUnknown *pConcernedDevice, + /* [annotation][out] */ + _Out_ UINT *pFlags); + + HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )( + IDXGIOutput6 * 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 )( + IDXGIOutput6 * 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); + + HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ DXGI_OUTPUT_DESC1 *pDesc); + + HRESULT ( STDMETHODCALLTYPE *CheckHardwareCompositionSupport )( + IDXGIOutput6 * This, + /* [annotation][out] */ + _Out_ UINT *pFlags); + + END_INTERFACE + } IDXGIOutput6Vtbl; + + interface IDXGIOutput6 + { + CONST_VTBL struct IDXGIOutput6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IDXGIOutput6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IDXGIOutput6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IDXGIOutput6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IDXGIOutput6_SetPrivateData(This,Name,DataSize,pData) \ + ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) + +#define IDXGIOutput6_SetPrivateDataInterface(This,Name,pUnknown) \ + ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) + +#define IDXGIOutput6_GetPrivateData(This,Name,pDataSize,pData) \ + ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) + +#define IDXGIOutput6_GetParent(This,riid,ppParent) \ + ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) + + +#define IDXGIOutput6_GetDesc(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc(This,pDesc) ) + +#define IDXGIOutput6_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ + ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) + +#define IDXGIOutput6_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ + ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) + +#define IDXGIOutput6_WaitForVBlank(This) \ + ( (This)->lpVtbl -> WaitForVBlank(This) ) + +#define IDXGIOutput6_TakeOwnership(This,pDevice,Exclusive) \ + ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) + +#define IDXGIOutput6_ReleaseOwnership(This) \ + ( (This)->lpVtbl -> ReleaseOwnership(This) ) + +#define IDXGIOutput6_GetGammaControlCapabilities(This,pGammaCaps) \ + ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) + +#define IDXGIOutput6_SetGammaControl(This,pArray) \ + ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) + +#define IDXGIOutput6_GetGammaControl(This,pArray) \ + ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) + +#define IDXGIOutput6_SetDisplaySurface(This,pScanoutSurface) \ + ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) + +#define IDXGIOutput6_GetDisplaySurfaceData(This,pDestination) \ + ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) + +#define IDXGIOutput6_GetFrameStatistics(This,pStats) \ + ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) + + +#define IDXGIOutput6_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ + ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) + +#define IDXGIOutput6_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ + ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) + +#define IDXGIOutput6_GetDisplaySurfaceData1(This,pDestination) \ + ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) + +#define IDXGIOutput6_DuplicateOutput(This,pDevice,ppOutputDuplication) \ + ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) + + +#define IDXGIOutput6_SupportsOverlays(This) \ + ( (This)->lpVtbl -> SupportsOverlays(This) ) + + +#define IDXGIOutput6_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \ + ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) ) + + +#define IDXGIOutput6_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \ + ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) ) + + +#define IDXGIOutput6_DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) \ + ( (This)->lpVtbl -> DuplicateOutput1(This,pDevice,Flags,SupportedFormatsCount,pSupportedFormats,ppOutputDuplication) ) + + +#define IDXGIOutput6_GetDesc1(This,pDesc) \ + ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) + +#define IDXGIOutput6_CheckHardwareCompositionSupport(This,pFlags) \ + ( (This)->lpVtbl -> CheckHardwareCompositionSupport(This,pFlags) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IDXGIOutput6_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_dxgi1_6_0000_0002 */ +/* [local] */ + +#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ +#pragma endregion +DEFINE_GUID(IID_IDXGIAdapter4,0x3c8d99d1,0x4fbf,0x4181,0xa8,0x2c,0xaf,0x66,0xbf,0x7b,0xd2,0x4e); +DEFINE_GUID(IID_IDXGIOutput6,0x068346e8,0xaaec,0x4b84,0xad,0xd7,0x13,0x7f,0x51,0x3f,0x77,0xa1); + + +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_dxgi1_6_0000_0002_v0_0_s_ifspec; + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/3rdparty/minidx12/Include/dxgicommon.h b/3rdparty/minidx12/Include/dxgicommon.h new file mode 100644 index 0000000000..d6fed0fac7 --- /dev/null +++ b/3rdparty/minidx12/Include/dxgicommon.h @@ -0,0 +1,51 @@ +// +// Copyright (C) Microsoft. All rights reserved. +// + +#ifndef __dxgicommon_h__ +#define __dxgicommon_h__ + + +typedef struct DXGI_RATIONAL +{ + UINT Numerator; + UINT Denominator; +} DXGI_RATIONAL; + +// The following values are used with DXGI_SAMPLE_DESC::Quality: +#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff +#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe + +typedef struct DXGI_SAMPLE_DESC +{ + UINT Count; + UINT Quality; +} DXGI_SAMPLE_DESC; + +typedef enum DXGI_COLOR_SPACE_TYPE +{ + DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, + DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, + DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, + DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, + DXGI_COLOR_SPACE_RESERVED = 4, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, + DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, + DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, + 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_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18, + DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19, + DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF +} DXGI_COLOR_SPACE_TYPE; + +#endif // __dxgicommon_h__ + diff --git a/3rdparty/minidx12/Include/dxgitype.h b/3rdparty/minidx12/Include/dxgitype.h index 066fafd53a..294c119fd2 100644 --- a/3rdparty/minidx12/Include/dxgitype.h +++ b/3rdparty/minidx12/Include/dxgitype.h @@ -1,9 +1,10 @@ -// +// // Copyright (C) Microsoft. All rights reserved. // #ifndef __dxgitype_h__ #define __dxgitype_h__ +#include "dxgicommon.h" #include "dxgiformat.h" #define _FACDXGI 0x87a @@ -55,12 +56,6 @@ typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES float ControlPointPositions[1025]; } DXGI_GAMMA_CONTROL_CAPABILITIES; -typedef struct DXGI_RATIONAL -{ - UINT Numerator; - UINT Denominator; -} DXGI_RATIONAL; - typedef enum DXGI_MODE_SCANLINE_ORDER { DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, @@ -95,33 +90,6 @@ typedef struct DXGI_MODE_DESC DXGI_MODE_SCALING Scaling; } DXGI_MODE_DESC; -// The following values are used with DXGI_SAMPLE_DESC::Quality: -#define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff -#define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe - -typedef struct DXGI_SAMPLE_DESC -{ - UINT Count; - UINT Quality; -} DXGI_SAMPLE_DESC; - -typedef enum DXGI_COLOR_SPACE_TYPE -{ - DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, - DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, - DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, - DXGI_COLOR_SPACE_RESERVED = 4, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, - DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, - DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, - 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_CUSTOM = 0xFFFFFFFF -} DXGI_COLOR_SPACE_TYPE; - typedef struct DXGI_JPEG_DC_HUFFMAN_TABLE { BYTE CodeCounts[12]; diff --git a/3rdparty/minidx12/Include/sdkddkver.h b/3rdparty/minidx12/Include/sdkddkver.h new file mode 100644 index 0000000000..cc41d49d13 --- /dev/null +++ b/3rdparty/minidx12/Include/sdkddkver.h @@ -0,0 +1,305 @@ +/* + +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 */ +#define NTDDI_WIN10_RS2 0x0A000003 /* ABRACADABRA_WIN10_RS2 */ + + +#define WDK_NTDDI_VERSION NTDDI_WIN10_RS2 + +// +// 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 +#if (_WIN32_WINNT <= _WIN32_WINNT_WINBLUE) +// set NTDDI_VERSION based on _WIN32_WINNT +#define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT) +#elif (_WIN32_WINNT >= _WIN32_WINNT_WIN10) +// set NTDDI_VERSION to default to WDK_NTDDI_VERSION +#define NTDDI_VERSION WDK_NTDDI_VERSION +#endif // (_WIN32_WINNT <= _WIN32_WINNT_WINBLUE) +#else +// set NTDDI_VERSION to default to latest if _WIN32_WINNT isn't set +#define NTDDI_VERSION 0x0A000003 +#endif // _WIN32_WINNT +#endif // NTDDI_VERSION + +#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/Include/winapifamily.h b/3rdparty/minidx12/Include/winapifamily.h new file mode 100644 index 0000000000..1fac1d4eeb --- /dev/null +++ b/3rdparty/minidx12/Include/winapifamily.h @@ -0,0 +1,240 @@ +/* + +Copyright (c) Microsoft Corporation. All rights reserved. + +Module Name: + + winapifamily.h + +Abstract: + + Master include file for API family partitioning. + +*/ + +#ifndef _INC_WINAPIFAMILY +#define _INC_WINAPIFAMILY + +#if defined(_MSC_VER) && !defined(MOFCOMP_PASS) +#if _MSC_VER >= 1200 +#pragma warning(push) +#pragma warning(disable:4001) /* nonstandard extension 'single line comment' was used */ +#endif +#pragma once +#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS) + +#include + +/* + * When compiling C and C++ code using SDK header files, the development + * environment can specify a target platform by #define-ing the + * pre-processor symbol WINAPI_FAMILY to one of the following values. + * Each FAMILY value denotes an application family for which a different + * subset of the total set of header-file-defined APIs are available. + * Setting the WINAPI_FAMILY value will effectively hide from the + * editing and compilation environments the existence of APIs that + * are not applicable to the family of applications targeting a + * specific platform. + */ + +/* In Windows 10, WINAPI_PARTITIONs will be used to add additional + * device specific APIs to a particular WINAPI_FAMILY. + * For example, when writing Windows Universal apps, specifying + * WINAPI_FAMILY_APP will hide phone APIs from compilation. + * However, specifying WINAPI_PARTITION_PHONE_APP=1 additionally, will + * unhide any API hidden behind the partition, to the compiler. + + * The following partitions are currently defined: + * WINAPI_PARTITION_DESKTOP // usable for Desktop Win32 apps (but not store apps) + * WINAPI_PARTITION_APP // usable for Windows Universal store apps + * WINAPI_PARTITION_PC_APP // specific to Desktop-only store apps + * WINAPI_PARTITION_PHONE_APP // specific to Phone-only store apps + * WINAPI_PARTITION_SYSTEM // specific to System applications + + * The following partitions are indirect partitions and defined in + * winpackagefamily.h. These partitions are related to package based + * partitions. For example, specifying WINAPI_PARTITION_SERVER=1 will light up + * any API hidden behind the package based partitions that are bound to + * WINAPI_PARTITION_SERVER, to the compiler. + * WINAPI_PARTITION_SERVER // specific to Server applications +*/ + +/* + * The WINAPI_FAMILY values of 0 and 1 are reserved to ensure that + * an error will occur if WINAPI_FAMILY is set to any + * WINAPI_PARTITION value (which must be 0 or 1, see below). + */ +#define WINAPI_FAMILY_PC_APP 2 /* Windows Store Applications */ +#define WINAPI_FAMILY_PHONE_APP 3 /* Windows Phone Applications */ +#define WINAPI_FAMILY_SYSTEM 4 /* Windows Drivers and Tools */ +#define WINAPI_FAMILY_SERVER 5 /* Windows Server Applications */ +#define WINAPI_FAMILY_DESKTOP_APP 100 /* Windows Desktop Applications */ +/* The value of WINAPI_FAMILY_DESKTOP_APP may change in future SDKs. */ +/* Additional WINAPI_FAMILY values may be defined in future SDKs. */ + +/* + * For compatibility with Windows 8 header files, the following + * synonym for WINAPI_FAMILY_PC_APP is temporarily #define'd. + * Use of this symbol should be considered deprecated. + */ +#define WINAPI_FAMILY_APP WINAPI_FAMILY_PC_APP + +/* + * If no WINAPI_FAMILY value is specified, then all APIs available to + * Windows desktop applications are exposed. + */ +#ifndef WINAPI_FAMILY +#define WINAPI_FAMILY WINAPI_FAMILY_DESKTOP_APP +#endif + +/* + * API PARTITONs are part of an indirection mechanism for mapping between + * individual APIs and the FAMILYs to which they apply. + * Each PARTITION is a category or subset of named APIs. PARTITIONs + * are permitted to have overlapping membership -- some single API + * might be part of more than one PARTITION. PARTITIONS are each #define-ed + * to be either 1 or 0 or depending on the platform at which the app is targeted. + */ + +/* + * The mapping between families and partitions is summarized here. + * An X indicates that the given partition is active for the given + * platform/family. + * + * +-------------------+---+ + * | *Partition* | | + * +---+---+---+---+---+---+ + * | | | | | | | + * | | | | | | | + * | | | | P | | | + * | | | | H | | | + * | D | | | O | | | + * | E | | P | N | S | S | + * | S | | C | E | Y | E | + * | K | | _ | _ | S | R | + * | T | A | A | A | T | V | + * +-------------------------+----+ O | P | P | P | E | E | + * | *Platform/Family* \| P | P | P | P | M | R | + * +------------------------------+---+---+---+---+---+---+ + * | WINAPI_FAMILY_DESKTOP_APP | X | X | X | | | | + * +------------------------------+---+---+---+---+---+---+ + * | WINAPI_FAMILY_PC_APP | | X | X | | | | + * +------------------------------+---+---+---+---+---+---+ + * | WINAPI_FAMILY_PHONE_APP | | X | | X | | | + * +----------------------------- +---+---+---+---+---+---+ + * | WINAPI_FAMILY_SYSTEM | | | | | X | | + * +----------------------------- +---+---+---+---+---+---+ + * | WINAPI_FAMILY_SERVER | | | | | X | X | + * +------------------------------+---+---+---+---+---+---+ + * + * The table above is encoded in the following expressions, + * each of which evaluates to 1 or 0. + * + * Whenever a new family is added, all of these expressions + * need to be reconsidered. + */ +#if WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP && \ + WINAPI_FAMILY != WINAPI_FAMILY_PC_APP && \ + WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP && \ + WINAPI_FAMILY != WINAPI_FAMILY_SYSTEM && \ + WINAPI_FAMILY != WINAPI_FAMILY_SERVER +#error Unknown WINAPI_FAMILY value. Was it defined in terms of a WINAPI_PARTITION_* value? +#endif + +#ifndef WINAPI_PARTITION_DESKTOP +#define WINAPI_PARTITION_DESKTOP (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) +#endif + +#ifndef WINAPI_PARTITION_APP +#define WINAPI_PARTITION_APP \ + (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP || \ + WINAPI_FAMILY == WINAPI_FAMILY_PC_APP || \ + WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) +#endif + +#ifndef WINAPI_PARTITION_PC_APP +#define WINAPI_PARTITION_PC_APP \ + (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP || \ + WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) +#endif + +#ifndef WINAPI_PARTITION_PHONE_APP +#define WINAPI_PARTITION_PHONE_APP (WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) +#endif + +/* + * SYSTEM is the only partition defined here. + * All other System based editions are defined as packages + * on top of the System partition. + * See winpackagefamily.h for packages level partitions + */ +#ifndef WINAPI_PARTITION_SYSTEM +#define WINAPI_PARTITION_SYSTEM \ + (WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM || \ + WINAPI_FAMILY == WINAPI_FAMILY_SERVER) +#endif + +/* + * For compatibility with Windows Phone 8 header files, the following + * synonym for WINAPI_PARTITION_PHONE_APP is temporarily #define'd. + * Use of this symbol should be regarded as deprecated. + */ +#define WINAPI_PARTITION_PHONE WINAPI_PARTITION_PHONE_APP + +/* + * Header files use the WINAPI_FAMILY_PARTITION macro to assign one or + * more declarations to some group of partitions. The macro chooses + * whether the preprocessor will emit or omit a sequence of declarations + * bracketed by an #if/#endif pair. All header file references to the + * WINAPI_PARTITION_* values should be in the form of occurrences of + * WINAPI_FAMILY_PARTITION(...). + * + * For example, the following usage of WINAPI_FAMILY_PARTITION identifies + * a sequence of declarations that are part of both the Windows Desktop + * Partition and the Windows-Phone-Specific Store Partition: + * + * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP) + * ... + * #endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_PHONE_APP) + * + * The comment on the closing #endif allow tools as well as people to find the + * matching #ifdef properly. + * + * Usages of WINAPI_FAMILY_PARTITION may be combined, when the partitition definitions are + * related. In particular one might use declarations like + * + * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + * + * or + * + * #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) + * + * Direct references to WINAPI_PARTITION_ values (eg #if !WINAPI_FAMILY_PARTITION_...) + * should not be used. + */ +#define WINAPI_FAMILY_PARTITION(Partitions) (Partitions) + +/* + * Macro used to #define or typedef a symbol used for selective deprecation + * of individual methods of a COM interfaces that are otherwise available + * for a given set of partitions. + */ +#define _WINAPI_DEPRECATED_DECLARATION __declspec(deprecated("This API cannot be used in the context of the caller's application type.")) + +/* + * For compatibility with Windows 8 header files, the following + * symbol is temporarily conditionally #define'd. Additional symbols + * like this should be not defined in winapifamily.h, but rather should be + * introduced locally to the header files of the component that needs them. + */ +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +# define APP_DEPRECATED_HRESULT HRESULT _WINAPI_DEPRECATED_DECLARATION +#endif // WINAPIFAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) + +#if defined(_MSC_VER) && !defined(MOFCOMP_PASS) +#if _MSC_VER >= 1200 +#pragma warning(pop) +#endif +#endif + +#endif /* !_INC_WINAPIFAMILY */ diff --git a/3rdparty/minidx12/Include/winpackagefamily.h b/3rdparty/minidx12/Include/winpackagefamily.h new file mode 100644 index 0000000000..ee691f9c25 --- /dev/null +++ b/3rdparty/minidx12/Include/winpackagefamily.h @@ -0,0 +1,91 @@ +/* + +Copyright (c) Microsoft Corporation. All rights reserved. + +Module Name: + + winpackagefamily.h + +Abstract: + + API family partitioning based on packages. + +*/ + +#ifndef _INC_WINPACKAGEFAMILY +#define _INC_WINPACKAGEFAMILY + +#if defined(_MSC_VER) && !defined(MOFCOMP_PASS) +#if _MSC_VER >= 1200 +#pragma warning(push) +#pragma warning(disable:4001) /* nonstandard extension 'single line comment' was used */ +#endif +#pragma once +#endif // defined(_MSC_VER) && !defined(MOFCOMP_PASS) + +#ifndef WINAPI_PARTITION_SERVER +#define WINAPI_PARTITION_SERVER (WINAPI_FAMILY == WINAPI_FAMILY_SERVER) +#endif + +/* + * PARTITIONS based on packages are each #undef'ed below, and then will be #define-ed + * to be either 1 or 0 or depending on the active WINAPI_FAMILY. + */ +#undef WINAPI_PARTITION_PKG_WINTRUST +#undef WINAPI_PARTITION_PKG_WEBSERVICES +#undef WINAPI_PARTITION_PKG_EVENTLOGSERVICE +#undef WINAPI_PARTITION_PKG_VHD +#undef WINAPI_PARTITION_PKG_PERFCOUNTER +#undef WINAPI_PARTITION_PKG_SECURESTARTUP +#undef WINAPI_PARTITION_PKG_REMOTEFS +#undef WINAPI_PARTITION_PKG_BOOTABLESKU +#undef WINAPI_PARTITION_PKG_CMDTOOLS +#undef WINAPI_PARTITION_PKG_DISM +#undef WINAPI_PARTITION_PKG_CORESETUP +#undef WINAPI_PARTITION_PKG_APPRUNTIME +#undef WINAPI_PARTITION_PKG_ESENT +#undef WINAPI_PARTITION_PKG_WINMGMT +#undef WINAPI_PARTITION_PKG_WNV +#undef WINAPI_PARTITION_PKG_CLUSTER +#undef WINAPI_PARTITION_PKG_VSS +#undef WINAPI_PARTITION_PKG_TRAFFIC +#undef WINAPI_PARTITION_PKG_ISCSI +#undef WINAPI_PARTITION_PKG_STORAGE +#undef WINAPI_PARTITION_PKG_MPSSVC +#undef WINAPI_PARTITION_PKG_APPXDEPLOYMENT +#undef WINAPI_PARTITION_PKG_WER + +/* + * PARTITIONS for feature packages. Each package might be active for one or more editions + */ +#define WINAPI_PARTITION_PKG_WINTRUST (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_WEBSERVICES (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_EVENTLOGSERVICE (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_VHD (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_PERFCOUNTER (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_SECURESTARTUP (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_REMOTEFS (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_BOOTABLESKU (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_CMDTOOLS (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_DISM (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_CORESETUP (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_APPRUNTIME (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_ESENT (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_WINMGMT (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_WNV (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_CLUSTER (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_VSS (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_TRAFFIC (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_ISCSI (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_STORAGE (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_MPSSVC (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_APPXDEPLOYMENT (WINAPI_PARTITION_SERVER == 1) +#define WINAPI_PARTITION_PKG_WER (WINAPI_PARTITION_SERVER == 1) + +#if defined(_MSC_VER) && !defined(MOFCOMP_PASS) +#if _MSC_VER >= 1200 +#pragma warning(pop) +#endif +#endif + +#endif /* !_INC_WINPACKAGEFAMILY */ diff --git a/3rdparty/minidx12/Lib/d2d1.lib b/3rdparty/minidx12/Lib/d2d1.lib index e584cf66653a9b8a62359a7781def205fab79fc1..4dfafcdad514ff823f169c56e7ae074de3579c44 100644 GIT binary patch literal 4882 zcmb_g&2JM&6n}AO;yPbW=%H$9YfvhR6asNs z8>b!+e?tBS#5o5}JykvS&;v*QhKlsP*_rk1m)W(l((}x|_hx=G^FHRSukR>kyYnD* zC*yu@Z@AyZ+g;w-&gFQol>&h40J9$fQb~Zh9e~A#P3cttMsKi1T6)XrF}6qxsLyDK zEzt*?(w|TtY59=Tdu);BU)!{Jj`Jg}oN-#icCFbgR}c1Ujb`bWda+hMXzbUTYF6EV zW^?aprQ(;u?dN`A%4J~Qe_Q~3_2q}%K>;0lJkQ6zCWDTV+3FwWu z&$RYtMe83~9Z4uL*;R8(E-TUBk)DdT=j z-7pUfy>AU3nntf^82!P4VzuRE#2JMsjbr;*_WK)I?*RwMq!GK_Bg53KPS5A7Vw_JS zcC6<|vA%-A{&5x{iBZ2Z2hdmqSWN@GL3+Cc@E9q%05C-QfbST!AzsVHUoC8JLF!ScDZ=hABvVMq}EJ*0C0h;LXfcBtMoN)13<9 zx&-O_VlO0gqvQ*k&l4HMa=U$~=}}e4T&@;3aY_j>^yp=sF{ws6bvY&_wlIb?A(Q$% ze!^IFnP&tNV5E`IXDYWy%Htz}FT=Uhnq)#}j4+ljhJ6~6IfHLCy6V=|ZdXMA=Wh7i zR@S-U)mPJSfzQkoMmI(+J?pA=czU#2x8DFBVCN6rB*ms~!qqfpCHRZ6u{gltH(D!Iy=@u; z!Tvjx)LCE zTfkIDoQ~kIec32nCr3J{GSbP9IK=;se)vOk0XT<){RC9-_p)jpvCF95kq>^lMtdO12twj|HVeu+&VvNlY55*5CRud5h6^;%-?A+!2b>p$m*NA|h sbZi$=G3o$`PGmm_*~yQHfuD(l6I$O2toYevTxQ0PPZ?FJnMZj414UP?%>V!Z delta 846 zcmZ9IOG_J36vt0w66SH|-We0BC_Ye8h>|pM$U~%vi&9((>bCXKO(8y(f(z|82y?cf zrAx(KhOS5IqN{!Y7hSk?)8bk}&&^!xom}{F;GW0-e@-}mJ<}ewE5ULtXa@Cq6}j>1 zyiuu5CvVpVfC+%y1At`$*sB2Uc7m7#=o3;Tc%;~%NHD7Jb4pQipCEcvPk8%^TZ)9! zPH?j^3B(v%@4AJ|$0#yEa4CcCkb&ybO7x1Rfu!AEOeKh+T*!EsX<(c;$~ESZ-% z1~x<;EVJ3r3XG`p2k<=`#ZBv{-bNS3hV5l#+jsozOkvC3OZ6IT?cn(Er1a_I{~41` zX>dl%@e=6^N0VNB)?L@@e~A&iVR=VtF3^o=b-XdAu*b#*%bIRJ8N2B=^qk!GOsHJ! zR`r}5pXVx9N29Ukca@(h1@p>L^4mgw^MI$Oatk+PJM4aI=08vP_vR^NE) szvb0*Njd9>r)=JNDLXP(_Eqk!zohp`tD#>=*0}PEdhWNcwAk?UKR=tsd;kCd diff --git a/3rdparty/minidx12/Lib/dwrite.lib b/3rdparty/minidx12/Lib/dwrite.lib index 75d18cecbe052fb26a6b1a41f76d067d0356a71d..5543e7d118453b87556a5347304146edf07b9a39 100644 GIT binary patch delta 240 zcmcb_dx>{~1edO%0u)UAAU@G@EsDT76rR}RdyE2{|AByuk%56@vMh`A)>h-DI!-Pm-{bWUOuf#_VtrU3xFdquGT delta 240 zcmcb_dx>{~1ec+Sv6+dbiMgrC#1G;VE!Uz5oI~M>O}@t{z`00!ekd0s0|UooSr+NZ zd92ctb(sp-co?`Cw#=ElkVSp+DJCP9Epy&8Ok#e5rk#aFfEA>D$7Fw2`N~SRX|rM#U;$~H?8mwqp+lL+Avr&{Krb@|VwuEbH#QwKos-x^AUapEX#fDP CE=Yg? diff --git a/3rdparty/minidx12/Lib/dxgi.lib b/3rdparty/minidx12/Lib/dxgi.lib index 8dfdb2dd72d7146bfed1fed04c7a68afa182bd1d..126476d65e72a6c423aebfdc8d323638da9c1ac1 100644 GIT binary patch delta 1106 zcma))ziSg=7{{L@*W_|P-!~VN7=+X)Db(6tq>2=YsaT1EF5+NNl9L)Jm>6l=p^IAw z?GSn9N*(PYQg9NfgR4VF2RS-s@lS})KmkDM0H`|v+980|3OS;cV3mN>7QhIFR)Y6K^0X3cKOi-r=Y)|C zp*n*w;~~Z-{qdn9bMX0VDb~9AsJrU+p4aZ*UTJTVnI}dwqZ)3e$eY||H@t|6V zMq{nrZTv^!!g$tj6^D1r&XtqlIZfZ8QFc^-Lk*y10UQw(2C$W)ScpCq<%xaT8_<2) zpgkgP0&Efkf)WG+Ot63f$F^LMIKGv)i<8~rJJZH_$;P^5AKaa4O6MnP4nD-MO5!Um zC5LpyC31|eb`4jQ4%t(o*u+oj40?(q7n_oV>7*wLGniJ{lrR2*PqhNpRQFW45QvV| zJO7Gm8k2nyKG8m&)?dJRT?sTx`Yl1jv$(6-lIMW3xeD$EZa2 zyL?vjwbP_!pyR7p4u2SDqa}M*7Ker%$TQ}R=rfOJmlwxhh5yM9hXAYFe#bfLXp@_X zsn?NNf>$q*#dR}0@Qt}B9GJ+VXQoE;o}&|F`r-GujocDUdqG`b`k5v4*t5bcep=U~ zy-zZ#Fd-v9fL&&fa+;wtlOW?Cser$jVB0S{!$aG1d@0(RVh*gl=faWRc;8Gpe*xO+ BB?kZi delta 885 zcmZvZKWGzi6vw|;?vmX9yEK^d&?aE0l0wxsO-&Jz(oK*qZ3m^aP$90k{gJn}B)(=pJCr3K|?4+mCP;fe?rLx&#~4oI5k7|?sVI7{fnFdZ&z|(_=vs`jMVc+XDI@g8J!f(Fe^dAVpnWYXCY;aCBx~iab&;(Nw!W3}2B!=Esz01F Y!X<8Sn+X|oG*nR6p07U{Ukd{K18e`$b^rhX diff --git a/rpcs3_default.props b/rpcs3_default.props index e472dc741c..f901c98d01 100644 --- a/rpcs3_default.props +++ b/rpcs3_default.props @@ -3,7 +3,7 @@ - .\;..\;..\asmjit\src\asmjit;..\Utilities\yaml-cpp\include;..\3rdparty\ffmpeg\WindowsInclude;..\3rdparty\cereal\include;..\3rdparty\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(UniversalCRT_IncludePath);..\3rdparty\minidx12\Include;..\3rdparty\GSL\include;..\3rdparty\libpng;..\3rdparty\GL;..\3rdparty\stblib;..\3rdparty\OpenAL\include;..\3rdparty\pugixml\src;..\3rdparty\hidapi\hidapi + .\;..\;..\asmjit\src\asmjit;..\Utilities\yaml-cpp\include;..\3rdparty\ffmpeg\WindowsInclude;..\3rdparty\cereal\include;..\3rdparty\ffmpeg\Windows\x86_64\Include;..\3rdparty\minidx12\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);$(UniversalCRT_IncludePath);..\3rdparty\GSL\include;..\3rdparty\libpng;..\3rdparty\GL;..\3rdparty\stblib;..\3rdparty\OpenAL\include;..\3rdparty\pugixml\src;..\3rdparty\hidapi\hidapi $(SolutionDir)lib\$(Configuration)-$(Platform)\ $(SolutionDir)lib\$(Configuration)-$(Platform)\;$(UniversalCRT_LibraryPath_x64);$(LibraryPath) $(SolutionDir)tmp\$(ProjectName)-$(Configuration)-$(Platform)\