diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index f3d72796eb..97e1f9689b 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -388,13 +388,6 @@ else() endif() -# dx12 -add_library(3rdparty_dx12 INTERFACE) -if (WIN32) - target_link_libraries(3rdparty_dx12 INTERFACE dxgi.lib d2d1.lib dwrite.lib) -endif() - - # GLEW add_library(3rdparty_glew INTERFACE) if(NOT MSVC) @@ -427,5 +420,4 @@ add_library(3rdparty::libevdev ALIAS ${LIBEVDEV_TARGET}) add_library(3rdparty::vulkan ALIAS ${VULKAN_TARGET}) add_library(3rdparty::openal ALIAS 3rdparty_openal) add_library(3rdparty::ffmpeg ALIAS 3rdparty_ffmpeg) -add_library(3rdparty::dx12 ALIAS 3rdparty_dx12) add_library(3rdparty::glew ALIAS 3rdparty_glew) diff --git a/3rdparty/minidx12/Include/d2d1.h b/3rdparty/minidx12/Include/d2d1.h deleted file mode 100644 index 36d032e469..0000000000 --- a/3rdparty/minidx12/Include/d2d1.h +++ /dev/null @@ -1,7183 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_H_ -#define _D2D1_H_ - -#ifndef COM_NO_WINDOWS_H -#include -#endif // #ifndef COM_NO_WINDOWS_H -#include -#include -#include -#include -#include -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#include -#else -#include -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ - -#ifndef D2D_USE_C_DEFINITIONS - -// -// We use the 'C' definitions if C++ is not defined -// -#ifndef __cplusplus -#define D2D_USE_C_DEFINITIONS -#endif - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#include - -// -// Forward declarations here -// - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -typedef interface IDWriteTextFormat IDWriteTextFormat; -typedef interface IDWriteTextLayout IDWriteTextLayout; -typedef interface IDWriteRenderingParams IDWriteRenderingParams; -typedef interface IDXGISurface IDXGISurface; -typedef interface IWICBitmap IWICBitmap; -typedef interface IWICBitmapSource IWICBitmapSource; - -typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; - -#ifndef D2D_USE_C_DEFINITIONS - -interface ID2D1Factory; -interface ID2D1RenderTarget; -interface ID2D1BitmapRenderTarget; -interface ID2D1SimplifiedGeometrySink; -interface ID2D1TessellationSink; -interface ID2D1Geometry; -interface ID2D1Brush; - -#else - -typedef interface ID2D1Factory ID2D1Factory; -typedef interface ID2D1RenderTarget ID2D1RenderTarget; -typedef interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget; -typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink;; -typedef interface ID2D1TessellationSink ID2D1TessellationSink; -typedef interface ID2D1Geometry ID2D1Geometry; -typedef interface ID2D1Brush ID2D1Brush; - -#endif - -#define D2D1_INVALID_TAG ULONGLONG_MAX -#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 -// -//------------------------------------------------------------------------------ -enum -{ - D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0, - D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1, - D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2, - D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3, - D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4, - D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5, - D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6, - D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7 - -}; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_GAMMA -// -// Synopsis: -// 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 - -} D2D1_GAMMA; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_OPACITY_MASK_CONTENT -// -// Synopsis: -// 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 - -} D2D1_OPACITY_MASK_CONTENT; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_EXTEND_MODE -// -// Synopsis: -// 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 - -} D2D1_EXTEND_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_ANTIALIAS_MODE -// -// Synopsis: -// 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 - -} D2D1_ANTIALIAS_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_TEXT_ANTIALIAS_MODE -// -//------------------------------------------------------------------------------ -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 - -} D2D1_TEXT_ANTIALIAS_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BITMAP_INTERPOLATION_MODE -// -//------------------------------------------------------------------------------ -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 - -} D2D1_BITMAP_INTERPOLATION_MODE; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_DRAW_TEXT_OPTIONS -// -// Synopsis: -// 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 - -} D2D1_DRAW_TEXT_OPTIONS; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS); - -typedef D2D_POINT_2U D2D1_POINT_2U; -typedef D2D_POINT_2F D2D1_POINT_2F; -typedef D2D_RECT_F D2D1_RECT_F; -typedef D2D_RECT_U D2D1_RECT_U; -typedef D2D_SIZE_F D2D1_SIZE_F; -typedef D2D_SIZE_U D2D1_SIZE_U; -typedef D2D_COLOR_F D2D1_COLOR_F; -typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F; -typedef UINT64 D2D1_TAG; - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_BITMAP_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BITMAP_PROPERTIES -{ - D2D1_PIXEL_FORMAT pixelFormat; - FLOAT dpiX; - FLOAT dpiY; - -} D2D1_BITMAP_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_GRADIENT_STOP -// -//------------------------------------------------------------------------------ -typedef struct D2D1_GRADIENT_STOP -{ - FLOAT position; - D2D1_COLOR_F color; - -} D2D1_GRADIENT_STOP; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_BRUSH_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BRUSH_PROPERTIES -{ - FLOAT opacity; - D2D1_MATRIX_3X2_F transform; - -} D2D1_BRUSH_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_BITMAP_BRUSH_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BITMAP_BRUSH_PROPERTIES -{ - D2D1_EXTEND_MODE extendModeX; - D2D1_EXTEND_MODE extendModeY; - D2D1_BITMAP_INTERPOLATION_MODE interpolationMode; - -} D2D1_BITMAP_BRUSH_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES -{ - D2D1_POINT_2F startPoint; - D2D1_POINT_2F endPoint; - -} D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES -{ - D2D1_POINT_2F center; - D2D1_POINT_2F gradientOriginOffset; - FLOAT radiusX; - FLOAT radiusY; - -} D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_ARC_SIZE -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CAP_STYLE -// -// Synopsis: -// 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 - -} D2D1_CAP_STYLE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DASH_STYLE -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_LINE_JOIN -// -// Synopsis: -// 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 - -} D2D1_LINE_JOIN; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COMBINE_MODE -// -// Synopsis: -// 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 - -} D2D1_COMBINE_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_GEOMETRY_RELATION -// -//------------------------------------------------------------------------------ -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 - -} D2D1_GEOMETRY_RELATION; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_GEOMETRY_SIMPLIFICATION_OPTION -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FIGURE_BEGIN -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FIGURE_END -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_BEZIER_SEGMENT -// -// Synopsis: -// Describes a cubic bezier in a path. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BEZIER_SEGMENT -{ - D2D1_POINT_2F point1; - D2D1_POINT_2F point2; - D2D1_POINT_2F point3; - -} D2D1_BEZIER_SEGMENT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_TRIANGLE -// -// Synopsis: -// Describes a triangle. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_TRIANGLE -{ - D2D1_POINT_2F point1; - D2D1_POINT_2F point2; - D2D1_POINT_2F point3; - -} 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. -// -//------------------------------------------------------------------------------ -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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_PATH_SEGMENT); - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SWEEP_DIRECTION -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FILL_MODE -// -//------------------------------------------------------------------------------ -typedef enum D2D1_FILL_MODE -{ - 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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_ARC_SEGMENT -{ - D2D1_POINT_2F point; - D2D1_SIZE_F size; - FLOAT rotationAngle; - D2D1_SWEEP_DIRECTION sweepDirection; - D2D1_ARC_SIZE arcSize; - -} D2D1_ARC_SEGMENT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_QUADRATIC_BEZIER_SEGMENT -// -//------------------------------------------------------------------------------ -typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT -{ - D2D1_POINT_2F point1; - D2D1_POINT_2F point2; - -} D2D1_QUADRATIC_BEZIER_SEGMENT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_ELLIPSE -// -//------------------------------------------------------------------------------ -typedef struct D2D1_ELLIPSE -{ - D2D1_POINT_2F point; - FLOAT radiusX; - FLOAT radiusY; - -} D2D1_ELLIPSE; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_ROUNDED_RECT -// -//------------------------------------------------------------------------------ -typedef struct D2D1_ROUNDED_RECT -{ - D2D1_RECT_F rect; - FLOAT radiusX; - FLOAT radiusY; - -} D2D1_ROUNDED_RECT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_STROKE_STYLE_PROPERTIES -// -// Synopsis: -// Properties, aside from the width, that allow geometric penning to be specified. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_STROKE_STYLE_PROPERTIES -{ - D2D1_CAP_STYLE startCap; - D2D1_CAP_STYLE endCap; - D2D1_CAP_STYLE dashCap; - D2D1_LINE_JOIN lineJoin; - FLOAT miterLimit; - D2D1_DASH_STYLE dashStyle; - FLOAT dashOffset; - -} 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. -// -//------------------------------------------------------------------------------ -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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_LAYER_PARAMETERS -// -//------------------------------------------------------------------------------ -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. - // - 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. - // - _Field_size_opt_(1) ID2D1Geometry *geometricMask; - - // - // 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. - // - 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. - // - 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. - // - _Field_size_opt_(1) ID2D1Brush *opacityBrush; - - // - // Specifies if ClearType will be rendered into the layer. - // - D2D1_LAYER_OPTIONS layerOptions; - -} D2D1_LAYER_PARAMETERS; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_WINDOW_STATE -// -//------------------------------------------------------------------------------ -typedef enum D2D1_WINDOW_STATE -{ - 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 -// -//------------------------------------------------------------------------------ -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 - -} D2D1_RENDER_TARGET_TYPE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FEATURE_LEVEL -// -//------------------------------------------------------------------------------ -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 - -} D2D1_FEATURE_LEVEL; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_RENDER_TARGET_USAGE -// -//------------------------------------------------------------------------------ -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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_RENDER_TARGET_USAGE); - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_PRESENT_OPTIONS -// -// Synopsis: -// 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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_PRESENT_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_RENDER_TARGET_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_RENDER_TARGET_PROPERTIES -{ - D2D1_RENDER_TARGET_TYPE type; - D2D1_PIXEL_FORMAT pixelFormat; - FLOAT dpiX; - FLOAT dpiY; - D2D1_RENDER_TARGET_USAGE usage; - D2D1_FEATURE_LEVEL minLevel; - -} D2D1_RENDER_TARGET_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_HWND_RENDER_TARGET_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES -{ - HWND hwnd; - D2D1_SIZE_U pixelSize; - D2D1_PRESENT_OPTIONS presentOptions; - -} D2D1_HWND_RENDER_TARGET_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS -// -//------------------------------------------------------------------------------ -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; - -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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_DRAWING_STATE_DESCRIPTION -{ - D2D1_ANTIALIAS_MODE antialiasMode; - D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; - D2D1_TAG tag1; - D2D1_TAG tag2; - D2D1_MATRIX_3X2_F transform; - -} D2D1_DRAWING_STATE_DESCRIPTION; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DC_INITIALIZE_MODE -// -//------------------------------------------------------------------------------ -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 - -} D2D1_DC_INITIALIZE_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DEBUG_LEVEL -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FACTORY_TYPE -// -// Synopsis: -// 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 - -} D2D1_FACTORY_TYPE; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_FACTORY_OPTIONS -// -// Synopsis: -// 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. - // - D2D1_DEBUG_LEVEL debugLevel; - -} D2D1_FACTORY_OPTIONS; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd90691-12e2-11dc-9fed-001143a055f9") ID2D1Resource : public IUnknown -{ - - - // - // Retrieve the factory associated with this resource. - // - STDMETHOD_(void, GetFactory)( - _Outptr_ ID2D1Factory **factory - ) CONST PURE; -}; // interface ID2D1Resource - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Image -// -//------------------------------------------------------------------------------ -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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("a2296057-ea42-4099-983b-539fb6505426") ID2D1Bitmap : public ID2D1Image -{ - - - // - // 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). - // - STDMETHOD_(D2D1_SIZE_U, GetPixelSize)( - ) CONST PURE; - - - // - // Retrieve the format of the bitmap. - // - STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)( - ) CONST PURE; - - - // - // Return the DPI of the bitmap. - // - STDMETHOD_(void, GetDpi)( - _Out_ FLOAT *dpiX, - _Out_ FLOAT *dpiY - ) CONST PURE; - - STDMETHOD(CopyFromBitmap)( - _In_opt_ CONST D2D1_POINT_2U *destPoint, - _In_ ID2D1Bitmap *bitmap, - _In_opt_ CONST D2D1_RECT_U *srcRect - ) PURE; - - STDMETHOD(CopyFromRenderTarget)( - _In_opt_ CONST D2D1_POINT_2U *destPoint, - _In_ ID2D1RenderTarget *renderTarget, - _In_opt_ CONST D2D1_RECT_U *srcRect - ) PURE; - - STDMETHOD(CopyFromMemory)( - _In_opt_ CONST D2D1_RECT_U *dstRect, - _In_ CONST void *srcData, - UINT32 pitch - ) PURE; -}; // 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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a7-12e2-11dc-9fed-001143a055f9") ID2D1GradientStopCollection : public ID2D1Resource -{ - - - // - // 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. - // - 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. - // - STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)( - ) CONST PURE; - - STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)( - ) CONST PURE; -}; // interface ID2D1GradientStopCollection - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Brush -// -// Synopsis: -// 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. - // - STDMETHOD_(void, SetOpacity)( - FLOAT opacity - ) PURE; - - - // - // Sets the transform that applies to everything drawn by the brush. - // - STDMETHOD_(void, SetTransform)( - _In_ CONST D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD_(FLOAT, GetOpacity)( - ) CONST PURE; - - STDMETHOD_(void, GetTransform)( - _Out_ D2D1_MATRIX_3X2_F *transform - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - void - SetTransform( - CONST D2D1_MATRIX_3X2_F &transform - ) - { - SetTransform(&transform); - } -}; // interface ID2D1Brush - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1BitmapBrush -// -// Synopsis: -// 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. - // - 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. - // - STDMETHOD_(void, SetExtendModeY)( - D2D1_EXTEND_MODE extendModeY - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, SetBitmap)( - _In_opt_ ID2D1Bitmap *bitmap - ) PURE; - - STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( - ) CONST PURE; - - STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( - ) CONST PURE; - - STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)( - ) CONST PURE; - - STDMETHOD_(void, GetBitmap)( - _Outptr_ ID2D1Bitmap **bitmap - ) CONST PURE; -}; // interface ID2D1BitmapBrush - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1SolidColorBrush -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a9-12e2-11dc-9fed-001143a055f9") ID2D1SolidColorBrush : public ID2D1Brush -{ - - STDMETHOD_(void, SetColor)( - _In_ CONST D2D1_COLOR_F *color - ) PURE; - - STDMETHOD_(D2D1_COLOR_F, GetColor)( - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - void - SetColor( - CONST D2D1_COLOR_F &color - ) - { - SetColor(&color); - } -}; // interface ID2D1SolidColorBrush - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1LinearGradientBrush -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906ab-12e2-11dc-9fed-001143a055f9") ID2D1LinearGradientBrush : public ID2D1Brush -{ - - STDMETHOD_(void, SetStartPoint)( - 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. - // - STDMETHOD_(void, SetEndPoint)( - D2D1_POINT_2F endPoint - ) PURE; - - STDMETHOD_(D2D1_POINT_2F, GetStartPoint)( - ) CONST PURE; - - STDMETHOD_(D2D1_POINT_2F, GetEndPoint)( - ) CONST PURE; - - STDMETHOD_(void, GetGradientStopCollection)( - _Outptr_ ID2D1GradientStopCollection **gradientStopCollection - ) CONST PURE; -}; // interface ID2D1LinearGradientBrush - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1RadialGradientBrush -// -//------------------------------------------------------------------------------ -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. - // - STDMETHOD_(void, SetCenter)( - D2D1_POINT_2F center - ) PURE; - - - // - // Sets offset of the origin relative to the radial gradient center. - // - STDMETHOD_(void, SetGradientOriginOffset)( - D2D1_POINT_2F gradientOriginOffset - ) PURE; - - STDMETHOD_(void, SetRadiusX)( - FLOAT radiusX - ) PURE; - - STDMETHOD_(void, SetRadiusY)( - FLOAT radiusY - ) PURE; - - STDMETHOD_(D2D1_POINT_2F, GetCenter)( - ) CONST PURE; - - STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)( - ) CONST PURE; - - STDMETHOD_(FLOAT, GetRadiusX)( - ) CONST PURE; - - STDMETHOD_(FLOAT, GetRadiusY)( - ) CONST PURE; - - STDMETHOD_(void, GetGradientStopCollection)( - _Outptr_ ID2D1GradientStopCollection **gradientStopCollection - ) CONST PURE; -}; // interface ID2D1RadialGradientBrush - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1StrokeStyle -// -// Synopsis: -// Resource interface that holds pen style properties. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd9069d-12e2-11dc-9fed-001143a055f9") ID2D1StrokeStyle : public ID2D1Resource -{ - - STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)( - ) CONST PURE; - - STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)( - ) CONST PURE; - - STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)( - ) CONST PURE; - - STDMETHOD_(FLOAT, GetMiterLimit)( - ) CONST PURE; - - STDMETHOD_(D2D1_LINE_JOIN, GetLineJoin)( - ) CONST PURE; - - STDMETHOD_(FLOAT, GetDashOffset)( - ) CONST PURE; - - STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)( - ) CONST PURE; - - 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. - // - STDMETHOD_(void, GetDashes)( - _Out_writes_(dashesCount) FLOAT *dashes, - UINT32 dashesCount - ) CONST PURE; -}; // interface ID2D1StrokeStyle - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Geometry -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a1-12e2-11dc-9fed-001143a055f9") ID2D1Geometry : public ID2D1Resource -{ - - - // - // 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. - // - STDMETHOD(GetWidenedBounds)( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_RECT_F *bounds - ) CONST PURE; - - - // - // Checks to see whether the corresponding penned and widened geometry contains the - // given point. - // - STDMETHOD(StrokeContainsPoint)( - D2D1_POINT_2F point, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _Out_ BOOL *contains - ) CONST PURE; - - - // - // 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, - FLOAT flatteningTolerance, - _Out_ BOOL *contains - ) CONST PURE; - - - // - // Compare how one geometry intersects or contains another geometry. - // - STDMETHOD(CompareWithGeometry)( - _In_ ID2D1Geometry *inputGeometry, - _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_GEOMETRY_RELATION *relation - ) CONST PURE; - - - // - // 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, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST PURE; - - - // - // 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. - // - STDMETHOD(CombineWithGeometry)( - _In_ ID2D1Geometry *inputGeometry, - D2D1_COMBINE_MODE combineMode, - _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST PURE; - - - // - // 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. - // - STDMETHOD(ComputeArea)( - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _Out_ FLOAT *area - ) CONST PURE; - - - // - // 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. - // - STDMETHOD(ComputePointAtLength)( - FLOAT length, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _Out_opt_ D2D1_POINT_2F *point, - _Out_opt_ D2D1_POINT_2F *unitTangentVector - ) CONST PURE; - - - // - // Get the geometry and widen it as well as apply an optional pen style. - // - STDMETHOD(Widen)( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST PURE; - - - // - // Retrieve the bounds of the geometry, with an optional applied transform. - // - COM_DECLSPEC_NOTHROW - HRESULT - GetBounds( - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ D2D1_RECT_F *bounds - ) CONST - { - return GetBounds(&worldTransform, bounds); - } - - - // - // Get the bounds of the corresponding geometry after it has been widened or have - // an optional pen style applied. - // - COM_DECLSPEC_NOTHROW - HRESULT - GetWidenedBounds( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_RECT_F *bounds - ) CONST - { - 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. - // - COM_DECLSPEC_NOTHROW - HRESULT - GetWidenedBounds( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ D2D1_RECT_F *bounds - ) CONST - { - 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. - // - COM_DECLSPEC_NOTHROW - HRESULT - GetWidenedBounds( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ D2D1_RECT_F *bounds - ) CONST - { - return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, bounds); - } - - COM_DECLSPEC_NOTHROW - HRESULT - StrokeContainsPoint( - D2D1_POINT_2F point, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ BOOL *contains - ) CONST - { - return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, contains); - } - - - // - // Checks to see whether the corresponding penned and widened geometry contains the - // given point. - // - COM_DECLSPEC_NOTHROW - HRESULT - StrokeContainsPoint( - D2D1_POINT_2F point, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ BOOL *contains - ) CONST - { - return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); - } - - COM_DECLSPEC_NOTHROW - HRESULT - StrokeContainsPoint( - D2D1_POINT_2F point, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ BOOL *contains - ) CONST - { - return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); - } - - COM_DECLSPEC_NOTHROW - HRESULT - FillContainsPoint( - D2D1_POINT_2F point, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ BOOL *contains - ) CONST - { - return FillContainsPoint(point, &worldTransform, flatteningTolerance, contains); - } - - - // - // Test whether the given fill of this geometry would contain this point. - // - COM_DECLSPEC_NOTHROW - HRESULT - FillContainsPoint( - D2D1_POINT_2F point, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ BOOL *contains - ) CONST - { - return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); - } - - COM_DECLSPEC_NOTHROW - HRESULT - FillContainsPoint( - D2D1_POINT_2F point, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ BOOL *contains - ) CONST - { - return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains); - } - - - // - // Compare how one geometry intersects or contains another geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CompareWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_GEOMETRY_RELATION *relation - ) CONST - { - return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatteningTolerance, relation); - } - - - // - // Compare how one geometry intersects or contains another geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CompareWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, - _Out_ D2D1_GEOMETRY_RELATION *relation - ) CONST - { - return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, relation); - } - - - // - // Compare how one geometry intersects or contains another geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CompareWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, - _Out_ D2D1_GEOMETRY_RELATION *relation - ) CONST - { - return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, relation); - } - - - // - // Converts a geometry to a simplified geometry that has arcs and quadratic beziers - // removed. - // - COM_DECLSPEC_NOTHROW - HRESULT - Simplify( - D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Simplify(simplificationOption, &worldTransform, flatteningTolerance, geometrySink); - } - - - // - // Converts a geometry to a simplified geometry that has arcs and quadratic beziers - // removed. - // - COM_DECLSPEC_NOTHROW - HRESULT - Simplify( - D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Converts a geometry to a simplified geometry that has arcs and quadratic beziers - // removed. - // - COM_DECLSPEC_NOTHROW - HRESULT - Simplify( - D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Tessellates a geometry into triangles. - // - COM_DECLSPEC_NOTHROW - HRESULT - Tessellate( - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1TessellationSink *tessellationSink - ) CONST - { - return Tessellate(&worldTransform, flatteningTolerance, tessellationSink); - } - - - // - // Tessellates a geometry into triangles. - // - COM_DECLSPEC_NOTHROW - HRESULT - Tessellate( - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _In_ ID2D1TessellationSink *tessellationSink - ) CONST - { - return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink); - } - - - // - // Tessellates a geometry into triangles. - // - COM_DECLSPEC_NOTHROW - HRESULT - Tessellate( - CONST D2D1_MATRIX_3X2_F &worldTransform, - _In_ ID2D1TessellationSink *tessellationSink - ) CONST - { - return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink); - } - - - // - // Performs a combine operation between the two geometries to produce a resulting - // geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CombineWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - D2D1_COMBINE_MODE combineMode, - CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, flatteningTolerance, geometrySink); - } - - - // - // Performs a combine operation between the two geometries to produce a resulting - // geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CombineWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - D2D1_COMBINE_MODE combineMode, - _In_opt_ CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Performs a combine operation between the two geometries to produce a resulting - // geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - CombineWithGeometry( - _In_ ID2D1Geometry *inputGeometry, - D2D1_COMBINE_MODE combineMode, - CONST D2D1_MATRIX_3X2_F &inputGeometryTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - 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. - // - COM_DECLSPEC_NOTHROW - HRESULT - Outline( - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Outline(&worldTransform, flatteningTolerance, geometrySink); - } - - - // - // Computes the outline of the geometry. The result is written back into a - // simplified geometry sink. - // - COM_DECLSPEC_NOTHROW - HRESULT - Outline( - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Computes the outline of the geometry. The result is written back into a - // simplified geometry sink. - // - COM_DECLSPEC_NOTHROW - HRESULT - Outline( - CONST D2D1_MATRIX_3X2_F &worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Computes the area of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeArea( - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ FLOAT *area - ) CONST - { - return ComputeArea(&worldTransform, flatteningTolerance, area); - } - - - // - // Computes the area of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeArea( - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ FLOAT *area - ) CONST - { - return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area); - } - - - // - // Computes the area of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeArea( - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ FLOAT *area - ) CONST - { - return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area); - } - - - // - // Computes the length of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeLength( - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ FLOAT *length - ) CONST - { - return ComputeLength(&worldTransform, flatteningTolerance, length); - } - - - // - // Computes the length of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeLength( - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ FLOAT *length - ) CONST - { - return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); - } - - - // - // Computes the length of the geometry. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputeLength( - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ FLOAT *length - ) CONST - { - return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length); - } - - - // - // Computes the point and tangent a given distance along the path. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAtLength( - FLOAT length, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_opt_ D2D1_POINT_2F *point, - _Out_opt_ D2D1_POINT_2F *unitTangentVector - ) CONST - { - return ComputePointAtLength(length, &worldTransform, flatteningTolerance, point, unitTangentVector); - } - - - // - // Computes the point and tangent a given distance along the path. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAtLength( - FLOAT length, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_opt_ D2D1_POINT_2F *point, - _Out_opt_ D2D1_POINT_2F *unitTangentVector - ) CONST - { - return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, point, unitTangentVector); - } - - - // - // Computes the point and tangent a given distance along the path. - // - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAtLength( - FLOAT length, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_opt_ D2D1_POINT_2F *point, - _Out_opt_ D2D1_POINT_2F *unitTangentVector - ) CONST - { - return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, point, unitTangentVector); - } - - - // - // Get the geometry and widen it as well as apply an optional pen style. - // - COM_DECLSPEC_NOTHROW - HRESULT - Widen( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, geometrySink); - } - - - // - // Get the geometry and widen it as well as apply an optional pen style. - // - COM_DECLSPEC_NOTHROW - HRESULT - Widen( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Get the geometry and widen it as well as apply an optional pen style. - // - COM_DECLSPEC_NOTHROW - HRESULT - Widen( - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } -}; // interface ID2D1Geometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1RectangleGeometry -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a2-12e2-11dc-9fed-001143a055f9") ID2D1RectangleGeometry : public ID2D1Geometry -{ - - STDMETHOD_(void, GetRect)( - _Out_ D2D1_RECT_F *rect - ) CONST PURE; -}; // interface ID2D1RectangleGeometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1RoundedRectangleGeometry -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a3-12e2-11dc-9fed-001143a055f9") ID2D1RoundedRectangleGeometry : public ID2D1Geometry -{ - - STDMETHOD_(void, GetRoundedRect)( - _Out_ D2D1_ROUNDED_RECT *roundedRect - ) CONST PURE; -}; // interface ID2D1RoundedRectangleGeometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1EllipseGeometry -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a4-12e2-11dc-9fed-001143a055f9") ID2D1EllipseGeometry : public ID2D1Geometry -{ - - STDMETHOD_(void, GetEllipse)( - _Out_ D2D1_ELLIPSE *ellipse - ) CONST PURE; -}; // interface ID2D1EllipseGeometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GeometryGroup -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906a6-12e2-11dc-9fed-001143a055f9") ID2D1GeometryGroup : public ID2D1Geometry -{ - - STDMETHOD_(D2D1_FILL_MODE, GetFillMode)( - ) CONST PURE; - - STDMETHOD_(UINT32, GetSourceGeometryCount)( - ) CONST PURE; - - STDMETHOD_(void, GetSourceGeometries)( - _Out_writes_(geometriesCount) ID2D1Geometry **geometries, - UINT32 geometriesCount - ) CONST PURE; -}; // interface ID2D1GeometryGroup - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1TransformedGeometry -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906bb-12e2-11dc-9fed-001143a055f9") ID2D1TransformedGeometry : public ID2D1Geometry -{ - - STDMETHOD_(void, GetSourceGeometry)( - _Outptr_ ID2D1Geometry **sourceGeometry - ) CONST PURE; - - STDMETHOD_(void, GetTransform)( - _Out_ D2D1_MATRIX_3X2_F *transform - ) CONST PURE; -}; // interface ID2D1TransformedGeometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1SimplifiedGeometrySink -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd9069e-12e2-11dc-9fed-001143a055f9") ID2D1SimplifiedGeometrySink : public IUnknown -{ - - STDMETHOD_(void, SetFillMode)( - D2D1_FILL_MODE fillMode - ) PURE; - - STDMETHOD_(void, SetSegmentFlags)( - D2D1_PATH_SEGMENT vertexFlags - ) PURE; - - STDMETHOD_(void, BeginFigure)( - D2D1_POINT_2F startPoint, - D2D1_FIGURE_BEGIN figureBegin - ) PURE; - - STDMETHOD_(void, AddLines)( - _In_reads_(pointsCount) CONST D2D1_POINT_2F *points, - UINT32 pointsCount - ) PURE; - - STDMETHOD_(void, AddBeziers)( - _In_reads_(beziersCount) CONST D2D1_BEZIER_SEGMENT *beziers, - UINT32 beziersCount - ) PURE; - - STDMETHOD_(void, EndFigure)( - D2D1_FIGURE_END figureEnd - ) PURE; - - STDMETHOD(Close)( - ) PURE; -}; // interface ID2D1SimplifiedGeometrySink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GeometrySink -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd9069f-12e2-11dc-9fed-001143a055f9") ID2D1GeometrySink : public ID2D1SimplifiedGeometrySink -{ - - STDMETHOD_(void, AddLine)( - D2D1_POINT_2F point - ) PURE; - - STDMETHOD_(void, AddBezier)( - _In_ CONST D2D1_BEZIER_SEGMENT *bezier - ) PURE; - - STDMETHOD_(void, AddQuadraticBezier)( - _In_ CONST D2D1_QUADRATIC_BEZIER_SEGMENT *bezier - ) PURE; - - STDMETHOD_(void, AddQuadraticBeziers)( - _In_reads_(beziersCount) CONST D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, - UINT32 beziersCount - ) PURE; - - STDMETHOD_(void, AddArc)( - _In_ CONST D2D1_ARC_SEGMENT *arc - ) PURE; - - COM_DECLSPEC_NOTHROW - void - AddBezier( - CONST D2D1_BEZIER_SEGMENT &bezier - ) - { - AddBezier(&bezier); - } - - COM_DECLSPEC_NOTHROW - void - AddQuadraticBezier( - CONST D2D1_QUADRATIC_BEZIER_SEGMENT &bezier - ) - { - AddQuadraticBezier(&bezier); - } - - COM_DECLSPEC_NOTHROW - void - AddArc( - CONST D2D1_ARC_SEGMENT &arc - ) - { - AddArc(&arc); - } -}; // interface ID2D1GeometrySink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1TessellationSink -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906c1-12e2-11dc-9fed-001143a055f9") ID2D1TessellationSink : public IUnknown -{ - - STDMETHOD_(void, AddTriangles)( - _In_reads_(trianglesCount) CONST D2D1_TRIANGLE *triangles, - UINT32 trianglesCount - ) PURE; - - STDMETHOD(Close)( - ) PURE; -}; // interface ID2D1TessellationSink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1PathGeometry -// -//------------------------------------------------------------------------------ -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. - // - STDMETHOD(Open)( - _Outptr_ ID2D1GeometrySink **geometrySink - ) PURE; - - - // - // 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; - - STDMETHOD(GetSegmentCount)( - _Out_ UINT32 *count - ) CONST PURE; - - STDMETHOD(GetFigureCount)( - _Out_ UINT32 *count - ) CONST PURE; -}; // interface ID2D1PathGeometry - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Mesh -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd906c2-12e2-11dc-9fed-001143a055f9") ID2D1Mesh : public ID2D1Resource -{ - - - // - // Opens the mesh for population. - // - STDMETHOD(Open)( - _Outptr_ ID2D1TessellationSink **tessellationSink - ) PURE; -}; // interface ID2D1Mesh - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Layer -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd9069b-12e2-11dc-9fed-001143a055f9") ID2D1Layer : public ID2D1Resource -{ - - STDMETHOD_(D2D1_SIZE_F, GetSize)( - ) CONST PURE; -}; // interface ID2D1Layer - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1DrawingStateBlock -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("28506e39-ebf6-46a1-bb47-fd85565ab957") ID2D1DrawingStateBlock : public ID2D1Resource -{ - - - // - // 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. - // - STDMETHOD_(void, SetDescription)( - _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION *stateDescription - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, GetTextRenderingParams)( - _Outptr_result_maybenull_ IDWriteRenderingParams **textRenderingParams - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - void - SetDescription( - CONST D2D1_DRAWING_STATE_DESCRIPTION &stateDescription - ) - { - SetDescription(&stateDescription); - } -}; // interface ID2D1DrawingStateBlock - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1RenderTarget -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd90694-12e2-11dc-9fed-001143a055f9") ID2D1RenderTarget : public ID2D1Resource -{ - - - // - // 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 - ) PURE; - - - // - // Create a D2D bitmap by copying a WIC bitmap. - // - STDMETHOD(CreateBitmapFromWicBitmap)( - _In_ IWICBitmapSource *wicBitmapSource, - _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, - _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. - // - STDMETHOD(CreateSharedBitmap)( - _In_ REFIID riid, - _Inout_ void *data, - _In_opt_ CONST D2D1_BITMAP_PROPERTIES *bitmapProperties, - _Outptr_ ID2D1Bitmap **bitmap - ) PURE; - - - // - // 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 - ) PURE; - - STDMETHOD(CreateSolidColorBrush)( - _In_ CONST D2D1_COLOR_F *color, - _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties, - _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. - // - 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 - ) PURE; - - STDMETHOD(CreateLinearGradientBrush)( - _In_ CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, - _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties, - _In_ ID2D1GradientStopCollection *gradientStopCollection, - _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 - ) PURE; - - - // - // Creates a bitmap render target whose bitmap can be used as a source for - // rendering in the API. - // - 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 - ) PURE; - - - // - // Creates a layer resource that can be used on any target and which will resize - // under the covers if necessary. - // - 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 - ) PURE; - - - // - // Create a D2D mesh. - // - STDMETHOD(CreateMesh)( - _Outptr_ ID2D1Mesh **mesh - ) PURE; - - STDMETHOD_(void, DrawLine)( - D2D1_POINT_2F point0, - D2D1_POINT_2F point1, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) PURE; - - STDMETHOD_(void, DrawRectangle)( - _In_ CONST D2D1_RECT_F *rect, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) PURE; - - STDMETHOD_(void, FillRectangle)( - _In_ CONST D2D1_RECT_F *rect, - _In_ ID2D1Brush *brush - ) PURE; - - STDMETHOD_(void, DrawRoundedRectangle)( - _In_ CONST D2D1_ROUNDED_RECT *roundedRect, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) PURE; - - STDMETHOD_(void, FillRoundedRectangle)( - _In_ CONST D2D1_ROUNDED_RECT *roundedRect, - _In_ ID2D1Brush *brush - ) PURE; - - STDMETHOD_(void, DrawEllipse)( - _In_ CONST D2D1_ELLIPSE *ellipse, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) PURE; - - STDMETHOD_(void, FillEllipse)( - _In_ CONST D2D1_ELLIPSE *ellipse, - _In_ ID2D1Brush *brush - ) PURE; - - STDMETHOD_(void, DrawGeometry)( - _In_ ID2D1Geometry *geometry, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) PURE; - - 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. - // - 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. - // - STDMETHOD_(void, FillOpacityMask)( - _In_ ID2D1Bitmap *opacityMask, - _In_ ID2D1Brush *brush, - D2D1_OPACITY_MASK_CONTENT content, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) PURE; - - STDMETHOD_(void, DrawBitmap)( - _In_ ID2D1Bitmap *bitmap, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL, - FLOAT opacity = 1.0f, - D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, - _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. - // - STDMETHOD_(void, DrawText)( - _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 = 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. - // - 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. - // - D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE - ) PURE; - - STDMETHOD_(void, DrawGlyphRun)( - D2D1_POINT_2F baselineOrigin, - _In_ CONST DWRITE_GLYPH_RUN *glyphRun, - _In_ ID2D1Brush *foregroundBrush, - DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL - ) PURE; - - STDMETHOD_(void, SetTransform)( - _In_ CONST D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD_(void, GetTransform)( - _Out_ D2D1_MATRIX_3X2_F *transform - ) CONST PURE; - - STDMETHOD_(void, SetAntialiasMode)( - D2D1_ANTIALIAS_MODE antialiasMode - ) PURE; - - STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)( - ) CONST PURE; - - STDMETHOD_(void, SetTextAntialiasMode)( - D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode - ) PURE; - - STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)( - ) CONST PURE; - - STDMETHOD_(void, SetTextRenderingParams)( - _In_opt_ IDWriteRenderingParams *textRenderingParams = NULL - ) PURE; - - - // - // 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. - // - 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. - // - 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. - // - STDMETHOD_(void, PushLayer)( - _In_ CONST D2D1_LAYER_PARAMETERS *layerParameters, - _In_opt_ ID2D1Layer *layer - ) PURE; - - - // - // Ends a layer that was defined with particular layer resources. - // - STDMETHOD_(void, PopLayer)( - ) PURE; - - STDMETHOD(Flush)( - _Out_opt_ D2D1_TAG *tag1 = NULL, - _Out_opt_ D2D1_TAG *tag2 = NULL - ) PURE; - - - // - // 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. - // - 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. - // - STDMETHOD_(void, PushAxisAlignedClip)( - _In_ CONST D2D1_RECT_F *clipRect, - D2D1_ANTIALIAS_MODE antialiasMode - ) PURE; - - STDMETHOD_(void, PopAxisAlignedClip)( - ) PURE; - - STDMETHOD_(void, Clear)( - _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. - // - STDMETHOD_(void, BeginDraw)( - ) PURE; - - - // - // 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 - ) PURE; - - 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. - // - STDMETHOD_(void, SetDpi)( - FLOAT dpiX, - FLOAT dpiY - ) PURE; - - - // - // 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. - // - STDMETHOD_(D2D1_SIZE_F, GetSize)( - ) CONST PURE; - - - // - // 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. - // - 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. - // - STDMETHOD_(BOOL, IsSupported)( - _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmap( - D2D1_SIZE_U size, - _In_opt_ CONST void *srcData, - UINT32 pitch, - CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, - _Outptr_ ID2D1Bitmap **bitmap - ) - { - return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmap( - D2D1_SIZE_U size, - CONST D2D1_BITMAP_PROPERTIES &bitmapProperties, - _Outptr_ ID2D1Bitmap **bitmap - ) - { - return CreateBitmap(size, NULL, 0, &bitmapProperties, 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 - ) - { - return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap); - } - - - // - // Create a D2D bitmap by copying a WIC bitmap. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapFromWicBitmap( - _In_ IWICBitmapSource *wicBitmapSource, - _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. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - _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. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, - _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. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - CONST D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _Outptr_ ID2D1BitmapBrush **bitmapBrush - ) - { - return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateSolidColorBrush( - CONST D2D1_COLOR_F &color, - _Outptr_ ID2D1SolidColorBrush **solidColorBrush - ) - { - return CreateSolidColorBrush(&color, NULL, solidColorBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateSolidColorBrush( - CONST D2D1_COLOR_F &color, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _Outptr_ ID2D1SolidColorBrush **solidColorBrush - ) - { - return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateGradientStopCollection( - _In_reads_(gradientStopsCount) CONST D2D1_GRADIENT_STOP *gradientStops, - UINT32 gradientStopsCount, - _Outptr_ ID2D1GradientStopCollection **gradientStopCollection - ) - { - return CreateGradientStopCollection(gradientStops, gradientStopsCount, D2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateLinearGradientBrush( - CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, - _In_ ID2D1GradientStopCollection *gradientStopCollection, - _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush - ) - { - return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, gradientStopCollection, linearGradientBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateLinearGradientBrush( - CONST D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _In_ ID2D1GradientStopCollection *gradientStopCollection, - _Outptr_ ID2D1LinearGradientBrush **linearGradientBrush - ) - { - return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushProperties, gradientStopCollection, linearGradientBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateRadialGradientBrush( - CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, - _In_ ID2D1GradientStopCollection *gradientStopCollection, - _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush - ) - { - return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, gradientStopCollection, radialGradientBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateRadialGradientBrush( - CONST D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _In_ ID2D1GradientStopCollection *gradientStopCollection, - _Outptr_ ID2D1RadialGradientBrush **radialGradientBrush - ) - { - return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushProperties, gradientStopCollection, radialGradientBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateCompatibleRenderTarget( - _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget - ) - { - return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateCompatibleRenderTarget( - D2D1_SIZE_F desiredSize, - _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget - ) - { - return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateCompatibleRenderTarget( - D2D1_SIZE_F desiredSize, - D2D1_SIZE_U desiredPixelSize, - _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget - ) - { - return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateCompatibleRenderTarget( - D2D1_SIZE_F desiredSize, - D2D1_SIZE_U desiredPixelSize, - D2D1_PIXEL_FORMAT desiredFormat, - _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget - ) - { - return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateCompatibleRenderTarget( - D2D1_SIZE_F desiredSize, - D2D1_SIZE_U desiredPixelSize, - D2D1_PIXEL_FORMAT desiredFormat, - D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, - _Outptr_ ID2D1BitmapRenderTarget **bitmapRenderTarget - ) - { - return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, options, bitmapRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateLayer( - D2D1_SIZE_F size, - _Outptr_ ID2D1Layer **layer - ) - { - return CreateLayer(&size, layer); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateLayer( - _Outptr_ ID2D1Layer **layer - ) - { - return CreateLayer(NULL, layer); - } - - COM_DECLSPEC_NOTHROW - void - DrawRectangle( - CONST D2D1_RECT_F &rect, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) - { - DrawRectangle(&rect, brush, strokeWidth, strokeStyle); - } - - COM_DECLSPEC_NOTHROW - void - FillRectangle( - CONST D2D1_RECT_F &rect, - _In_ ID2D1Brush *brush - ) - { - FillRectangle(&rect, brush); - } - - COM_DECLSPEC_NOTHROW - void - DrawRoundedRectangle( - CONST D2D1_ROUNDED_RECT &roundedRect, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) - { - DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle); - } - - COM_DECLSPEC_NOTHROW - void - FillRoundedRectangle( - CONST D2D1_ROUNDED_RECT &roundedRect, - _In_ ID2D1Brush *brush - ) - { - FillRoundedRectangle(&roundedRect, brush); - } - - COM_DECLSPEC_NOTHROW - void - DrawEllipse( - CONST D2D1_ELLIPSE &ellipse, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth = 1.0f, - _In_opt_ ID2D1StrokeStyle *strokeStyle = NULL - ) - { - DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle); - } - - COM_DECLSPEC_NOTHROW - void - FillEllipse( - CONST D2D1_ELLIPSE &ellipse, - _In_ ID2D1Brush *brush - ) - { - FillEllipse(&ellipse, brush); - } - - COM_DECLSPEC_NOTHROW - void - FillOpacityMask( - _In_ ID2D1Bitmap *opacityMask, - _In_ ID2D1Brush *brush, - D2D1_OPACITY_MASK_CONTENT content, - CONST D2D1_RECT_F &destinationRectangle, - CONST D2D1_RECT_F &sourceRectangle - ) - { - FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sourceRectangle); - } - - COM_DECLSPEC_NOTHROW - void - DrawBitmap( - _In_ ID2D1Bitmap *bitmap, - CONST D2D1_RECT_F &destinationRectangle, - FLOAT opacity = 1.0f, - D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) - { - DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle); - } - - COM_DECLSPEC_NOTHROW - void - DrawBitmap( - _In_ ID2D1Bitmap *bitmap, - CONST D2D1_RECT_F &destinationRectangle, - FLOAT opacity, - D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, - CONST D2D1_RECT_F &sourceRectangle - ) - { - DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle); - } - - COM_DECLSPEC_NOTHROW - void - SetTransform( - CONST D2D1_MATRIX_3X2_F &transform - ) - { - SetTransform(&transform); - } - - COM_DECLSPEC_NOTHROW - void - PushLayer( - CONST D2D1_LAYER_PARAMETERS &layerParameters, - _In_opt_ ID2D1Layer *layer - ) - { - PushLayer(&layerParameters, layer); - } - - COM_DECLSPEC_NOTHROW - void - PushAxisAlignedClip( - CONST D2D1_RECT_F &clipRect, - D2D1_ANTIALIAS_MODE antialiasMode - ) - { - return PushAxisAlignedClip(&clipRect, antialiasMode); - } - - COM_DECLSPEC_NOTHROW - void - Clear( - CONST D2D1_COLOR_F &clearColor - ) - { - return Clear(&clearColor); - } - - - // - // Draws the text within the given layout rectangle and by default also snaps and - // clips it. - // - COM_DECLSPEC_NOTHROW - void - DrawText( - _In_reads_(stringLength) CONST WCHAR *string, - UINT32 stringLength, - _In_ IDWriteTextFormat *textFormat, - CONST D2D1_RECT_F &layoutRect, - _In_ ID2D1Brush *defaultForegroundBrush, - 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); - } - - COM_DECLSPEC_NOTHROW - BOOL - IsSupported( - CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties - ) CONST - { - return IsSupported(&renderTargetProperties); - } -}; // interface ID2D1RenderTarget - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1BitmapRenderTarget -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2cd90695-12e2-11dc-9fed-001143a055f9") ID2D1BitmapRenderTarget : public ID2D1RenderTarget -{ - - STDMETHOD(GetBitmap)( - _Outptr_ ID2D1Bitmap **bitmap - ) PURE; -}; // interface ID2D1BitmapRenderTarget - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1HwndRenderTarget -// -//------------------------------------------------------------------------------ -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. - // - STDMETHOD(Resize)( - _In_ CONST D2D1_SIZE_U *pixelSize - ) PURE; - - STDMETHOD_(HWND, GetHwnd)( - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - Resize( - CONST D2D1_SIZE_U &pixelSize - ) - { - return Resize(&pixelSize); - } -}; // interface ID2D1HwndRenderTarget - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GdiInteropRenderTarget -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("e0db51c3-6f77-4bae-b3d5-e47509b35838") ID2D1GdiInteropRenderTarget : public IUnknown -{ - - STDMETHOD(GetDC)( - D2D1_DC_INITIALIZE_MODE mode, - _Out_ HDC *hdc - ) PURE; - - STDMETHOD(ReleaseDC)( - _In_opt_ CONST RECT *update - ) PURE; -}; // interface ID2D1GdiInteropRenderTarget - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1DCRenderTarget -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("1c51bc64-de61-46fd-9899-63a5d8f03950") ID2D1DCRenderTarget : public ID2D1RenderTarget -{ - - STDMETHOD(BindDC)( - _In_ CONST HDC hDC, - _In_ CONST RECT *pSubRect - ) PURE; -}; // interface ID2D1DCRenderTarget - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Factory -// -// Synopsis: -// 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. - // - STDMETHOD(ReloadSystemMetrics)( - ) PURE; - - - // - // Retrieves the current desktop DPI. To refresh this, call ReloadSystemMetrics. - // - STDMETHOD_(void, GetDesktopDpi)( - _Out_ FLOAT *dpiX, - _Out_ FLOAT *dpiY - ) PURE; - - STDMETHOD(CreateRectangleGeometry)( - _In_ CONST D2D1_RECT_F *rectangle, - _Outptr_ ID2D1RectangleGeometry **rectangleGeometry - ) PURE; - - STDMETHOD(CreateRoundedRectangleGeometry)( - _In_ CONST D2D1_ROUNDED_RECT *roundedRectangle, - _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry - ) PURE; - - STDMETHOD(CreateEllipseGeometry)( - _In_ CONST D2D1_ELLIPSE *ellipse, - _Outptr_ ID2D1EllipseGeometry **ellipseGeometry - ) PURE; - - - // - // Create a geometry which holds other geometries. - // - STDMETHOD(CreateGeometryGroup)( - D2D1_FILL_MODE fillMode, - _In_reads_(geometriesCount) ID2D1Geometry **geometries, - UINT32 geometriesCount, - _Outptr_ ID2D1GeometryGroup **geometryGroup - ) PURE; - - STDMETHOD(CreateTransformedGeometry)( - _In_ ID2D1Geometry *sourceGeometry, - _In_ CONST D2D1_MATRIX_3X2_F *transform, - _Outptr_ ID2D1TransformedGeometry **transformedGeometry - ) PURE; - - - // - // Returns an initially empty path geometry interface. A geometry sink is created - // off the interface to populate it. - // - STDMETHOD(CreatePathGeometry)( - _Outptr_ ID2D1PathGeometry **pathGeometry - ) PURE; - - - // - // 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 - ) PURE; - - - // - // 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 - ) PURE; - - - // - // 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 - ) PURE; - - - // - // 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 - ) PURE; - - - // - // 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 - ) PURE; - - - // - // Creates a render target that draws to a GDI device context. - // - STDMETHOD(CreateDCRenderTarget)( - _In_ CONST D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, - _Outptr_ ID2D1DCRenderTarget **dcRenderTarget - ) PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - CreateRectangleGeometry( - CONST D2D1_RECT_F &rectangle, - _Outptr_ ID2D1RectangleGeometry **rectangleGeometry - ) - { - return CreateRectangleGeometry(&rectangle, rectangleGeometry); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateRoundedRectangleGeometry( - CONST D2D1_ROUNDED_RECT &roundedRectangle, - _Outptr_ ID2D1RoundedRectangleGeometry **roundedRectangleGeometry - ) - { - return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangleGeometry); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateEllipseGeometry( - CONST D2D1_ELLIPSE &ellipse, - _Outptr_ ID2D1EllipseGeometry **ellipseGeometry - ) - { - return CreateEllipseGeometry(&ellipse, ellipseGeometry); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateTransformedGeometry( - _In_ ID2D1Geometry *sourceGeometry, - CONST D2D1_MATRIX_3X2_F &transform, - _Outptr_ ID2D1TransformedGeometry **transformedGeometry - ) - { - return CreateTransformedGeometry(sourceGeometry, &transform, transformedGeometry); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateStrokeStyle( - CONST D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties, - _In_reads_opt_(dashesCount) CONST FLOAT *dashes, - UINT32 dashesCount, - _Outptr_ ID2D1StrokeStyle **strokeStyle - ) - { - return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateDrawingStateBlock( - CONST D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription, - _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock - ) - { - return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateDrawingStateBlock( - _Outptr_ ID2D1DrawingStateBlock **drawingStateBlock - ) - { - return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateWicBitmapRenderTarget( - _In_ IWICBitmap *target, - CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, - _Outptr_ ID2D1RenderTarget **renderTarget - ) - { - return CreateWicBitmapRenderTarget(target, &renderTargetProperties, renderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateHwndRenderTarget( - CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, - CONST D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties, - _Outptr_ ID2D1HwndRenderTarget **hwndRenderTarget - ) - { - return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTargetProperties, hwndRenderTarget); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateDxgiSurfaceRenderTarget( - _In_ IDXGISurface *dxgiSurface, - CONST D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, - _Outptr_ ID2D1RenderTarget **renderTarget - ) - { - return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetProperties, renderTarget); - } -}; // interface ID2D1Factory - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - - -#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 - - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -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 - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -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 - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -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 - - -#endif - - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -#ifdef __cplusplus -extern "C" -{ -#endif - - // - // This export cannot be in a namespace because compiler name mangling isn't consistent - // also, this must be 'C' callable. - // - HRESULT WINAPI - D2D1CreateFactory( - _In_ D2D1_FACTORY_TYPE factoryType, - _In_ REFIID riid, - _In_opt_ CONST D2D1_FACTORY_OPTIONS *pFactoryOptions, - _Out_ void **ppIFactory - ); - - - void WINAPI - D2D1MakeRotateMatrix( - _In_ FLOAT angle, - _In_ D2D1_POINT_2F center, - _Out_ D2D1_MATRIX_3X2_F *matrix - ); - - void WINAPI - D2D1MakeSkewMatrix( - _In_ FLOAT angleX, - _In_ FLOAT angleY, - _In_ D2D1_POINT_2F center, - _Out_ D2D1_MATRIX_3X2_F *matrix - ); - - BOOL WINAPI - D2D1IsMatrixInvertible( - _In_ CONST D2D1_MATRIX_3X2_F *matrix - ); - - BOOL WINAPI - D2D1InvertMatrix( - _Inout_ D2D1_MATRIX_3X2_F *matrix - ); - -#ifdef __cplusplus -} -#endif - -#ifndef D2D1FORCEINLINE -#define D2D1FORCEINLINE FORCEINLINE -#endif // #ifndef D2D1FORCEINLINE - - -#include - - -#ifndef D2D_USE_C_DEFINITIONS - -COM_DECLSPEC_NOTHROW -inline -HRESULT -D2D1CreateFactory( - _In_ D2D1_FACTORY_TYPE factoryType, - _In_ REFIID riid, - _Out_ void **factory - ) -{ - return - D2D1CreateFactory( - factoryType, - riid, - NULL, - factory); -} - - -template -COM_DECLSPEC_NOTHROW -HRESULT -D2D1CreateFactory( - _In_ D2D1_FACTORY_TYPE factoryType, - _Out_ Factory **factory - ) -{ - return - D2D1CreateFactory( - factoryType, - __uuidof(Factory), - reinterpret_cast(factory)); -} - -template -COM_DECLSPEC_NOTHROW -HRESULT -D2D1CreateFactory( - _In_ D2D1_FACTORY_TYPE factoryType, - _In_ CONST D2D1_FACTORY_OPTIONS &factoryOptions, - _Out_ Factory **ppFactory - ) -{ - return - D2D1CreateFactory( - factoryType, - __uuidof(Factory), - &factoryOptions, - reinterpret_cast(ppFactory)); -} - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef _D2D1_H_ diff --git a/3rdparty/minidx12/Include/d2d1_1.h b/3rdparty/minidx12/Include/d2d1_1.h deleted file mode 100644 index 12749f9980..0000000000 --- a/3rdparty/minidx12/Include/d2d1_1.h +++ /dev/null @@ -1,4890 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1_1.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_1_H_ -#define _D2D1_1_H_ - -#ifndef _D2D1_H_ -#include -#endif // #ifndef _D2D1_H_ -#ifndef _D2D1_EFFECTS_ -#include -#endif // #ifndef _D2D1_EFFECTS_ - -#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#include -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -typedef interface ID2D1ColorContext ID2D1ColorContext; -typedef interface IWICColorContext IWICColorContext; -typedef interface IWICImagingFactory IWICImagingFactory; -typedef interface IPrintDocumentPackageTarget IPrintDocumentPackageTarget; -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. -// -//------------------------------------------------------------------------------ -typedef HRESULT (CALLBACK *PD2D1_EFFECT_FACTORY)( - _Outptr_ IUnknown **effectImpl - ); - -#ifndef D2D_USE_C_DEFINITIONS - -interface ID2D1Device; -interface ID2D1Effect; -#else - -typedef interface ID2D1Device ID2D1Device; -typedef interface ID2D1Effect ID2D1Effect; - -#endif -#define D2D1_INVALID_PROPERTY_INDEX UINT_MAX -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. -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_PROPERTY -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SUBPROPERTY -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_BITMAP_OPTIONS -// -// Synopsis: -// 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 - -} D2D1_BITMAP_OPTIONS; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_BITMAP_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COMPOSITE_MODE -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BUFFER_PRECISION -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_MAP_OPTIONS -// -// Synopsis: -// 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 - -} 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. -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_UNIT_MODE -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COLOR_SPACE -// -// Synopsis: -// 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 - -} D2D1_COLOR_SPACE; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_DEVICE_CONTEXT_OPTIONS -// -// Synopsis: -// 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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_DEVICE_CONTEXT_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_STROKE_TRANSFORM_TYPE -// -//------------------------------------------------------------------------------ -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 - -} D2D1_STROKE_TRANSFORM_TYPE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_PRIMITIVE_BLEND -// -// Synopsis: -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_THREADING_MODE -// -// Synopsis: -// 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 - -} D2D1_THREADING_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COLOR_INTERPOLATION_MODE -// -// Synopsis: -// 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 - -} D2D1_COLOR_INTERPOLATION_MODE; - -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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BITMAP_PROPERTIES1 -{ - D2D1_PIXEL_FORMAT pixelFormat; - FLOAT dpiX; - FLOAT dpiY; - - // - // 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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_MAPPED_RECT -{ - UINT32 pitch; - BYTE *bits; - -} D2D1_MAPPED_RECT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_RENDERING_CONTROLS -// -// Synopsis: -// 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. - // - D2D1_BUFFER_PRECISION bufferPrecision; - - // - // 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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_EFFECT_INPUT_DESCRIPTION -{ - - // - // The effect whose input connection is being specified. - // - ID2D1Effect *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. - // - D2D1_RECT_F inputRectangle; - -} D2D1_EFFECT_INPUT_DESCRIPTION; - -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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_POINT_DESCRIPTION -{ - D2D1_POINT_2F point; - D2D1_POINT_2F unitTangentVector; - UINT32 endSegment; - UINT32 endFigure; - FLOAT lengthToEndSegment; - -} D2D1_POINT_DESCRIPTION; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_IMAGE_BRUSH_PROPERTIES -// -// Synopsis: -// Creation properties for an image brush. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_IMAGE_BRUSH_PROPERTIES -{ - D2D1_RECT_F sourceRectangle; - D2D1_EXTEND_MODE extendModeX; - D2D1_EXTEND_MODE extendModeY; - D2D1_INTERPOLATION_MODE interpolationMode; - -} D2D1_IMAGE_BRUSH_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_BITMAP_BRUSH_PROPERTIES1 -// -//------------------------------------------------------------------------------ -typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1 -{ - D2D1_EXTEND_MODE extendModeX; - D2D1_EXTEND_MODE extendModeY; - D2D1_INTERPOLATION_MODE interpolationMode; - -} D2D1_BITMAP_BRUSH_PROPERTIES1; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_STROKE_STYLE_PROPERTIES1 -// -// Synopsis: -// This defines how geometries should be drawn and widened. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_STROKE_STYLE_PROPERTIES1 -{ - D2D1_CAP_STYLE startCap; - D2D1_CAP_STYLE endCap; - D2D1_CAP_STYLE dashCap; - D2D1_LINE_JOIN lineJoin; - FLOAT miterLimit; - D2D1_DASH_STYLE dashStyle; - FLOAT dashOffset; - - // - // 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. -// -//------------------------------------------------------------------------------ -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; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS1); - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_LAYER_PARAMETERS1 -// -// Synopsis: -// All parameters related to pushing a layer. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_LAYER_PARAMETERS1 -{ - D2D1_RECT_F contentBounds; - _Field_size_opt_(1) ID2D1Geometry *geometricMask; - D2D1_ANTIALIAS_MODE maskAntialiasMode; - D2D1_MATRIX_3X2_F maskTransform; - FLOAT opacity; - _Field_size_opt_(1) ID2D1Brush *opacityBrush; - D2D1_LAYER_OPTIONS1 layerOptions; - -} D2D1_LAYER_PARAMETERS1; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_PRINT_FONT_SUBSET_MODE -// -//------------------------------------------------------------------------------ -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 - -} D2D1_PRINT_FONT_SUBSET_MODE; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_DRAWING_STATE_DESCRIPTION1 -// -// Synopsis: -// This describes the drawing state. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_DRAWING_STATE_DESCRIPTION1 -{ - D2D1_ANTIALIAS_MODE antialiasMode; - D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode; - D2D1_TAG tag1; - D2D1_TAG tag2; - D2D1_MATRIX_3X2_F transform; - D2D1_PRIMITIVE_BLEND primitiveBlend; - D2D1_UNIT_MODE unitMode; - -} D2D1_DRAWING_STATE_DESCRIPTION1; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_PRINT_CONTROL_PROPERTIES -// -//------------------------------------------------------------------------------ -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 - // - FLOAT rasterDPI; - - // - // 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. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_CREATION_PROPERTIES -{ - - // - // Describes locking behavior of D2D resources - // - D2D1_THREADING_MODE threadingMode; - D2D1_DEBUG_LEVEL debugLevel; - D2D1_DEVICE_CONTEXT_OPTIONS options; - -} D2D1_CREATION_PROPERTIES; - - -#ifndef D2D_USE_C_DEFINITIONS - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GdiMetafileSink -// -// Synopsis: -// 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. - // - STDMETHOD(ProcessRecord)( - DWORD recordType, - _In_opt_ CONST void *recordData, - DWORD recordDataSize - ) PURE; -}; // interface ID2D1GdiMetafileSink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GdiMetafile -// -// Synopsis: -// 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. - // - STDMETHOD(Stream)( - _In_ ID2D1GdiMetafileSink *sink - ) PURE; - - - // - // 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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("54d7898a-a061-40a7-bec7-e465bcba2c4f") ID2D1CommandSink : public IUnknown -{ - - STDMETHOD(BeginDraw)( - ) PURE; - - STDMETHOD(EndDraw)( - ) PURE; - - STDMETHOD(SetAntialiasMode)( - D2D1_ANTIALIAS_MODE antialiasMode - ) PURE; - - STDMETHOD(SetTags)( - D2D1_TAG tag1, - D2D1_TAG tag2 - ) PURE; - - STDMETHOD(SetTextAntialiasMode)( - D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode - ) PURE; - - STDMETHOD(SetTextRenderingParams)( - _In_opt_ IDWriteRenderingParams *textRenderingParams - ) PURE; - - STDMETHOD(SetTransform)( - _In_ CONST D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD(SetPrimitiveBlend)( - D2D1_PRIMITIVE_BLEND primitiveBlend - ) PURE; - - STDMETHOD(SetUnitMode)( - D2D1_UNIT_MODE unitMode - ) PURE; - - STDMETHOD(Clear)( - _In_opt_ CONST D2D1_COLOR_F *color - ) PURE; - - STDMETHOD(DrawGlyphRun)( - 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)( - D2D1_POINT_2F point0, - D2D1_POINT_2F point1, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle - ) PURE; - - STDMETHOD(DrawGeometry)( - _In_ ID2D1Geometry *geometry, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle - ) PURE; - - STDMETHOD(DrawRectangle)( - _In_ CONST D2D1_RECT_F *rect, - _In_ ID2D1Brush *brush, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle - ) PURE; - - STDMETHOD(DrawBitmap)( - _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)( - _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)( - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_POINT_2F *targetOffset - ) PURE; - - STDMETHOD(FillMesh)( - _In_ ID2D1Mesh *mesh, - _In_ ID2D1Brush *brush - ) PURE; - - STDMETHOD(FillOpacityMask)( - _In_ ID2D1Bitmap *opacityMask, - _In_ ID2D1Brush *brush, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle - ) PURE; - - STDMETHOD(FillGeometry)( - _In_ ID2D1Geometry *geometry, - _In_ ID2D1Brush *brush, - _In_opt_ ID2D1Brush *opacityBrush - ) PURE; - - STDMETHOD(FillRectangle)( - _In_ CONST D2D1_RECT_F *rect, - _In_ ID2D1Brush *brush - ) PURE; - - STDMETHOD(PushAxisAlignedClip)( - _In_ CONST D2D1_RECT_F *clipRect, - D2D1_ANTIALIAS_MODE antialiasMode - ) PURE; - - STDMETHOD(PushLayer)( - _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters1, - _In_opt_ ID2D1Layer *layer - ) PURE; - - STDMETHOD(PopAxisAlignedClip)( - ) PURE; - - STDMETHOD(PopLayer)( - ) PURE; -}; // interface ID2D1CommandSink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1CommandList -// -// Synopsis: -// 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. - // - STDMETHOD(Stream)( - _In_ ID2D1CommandSink *sink - ) PURE; - - - // - // Marks the command list as ready for use. - // - STDMETHOD(Close)( - ) PURE; -}; // interface ID2D1CommandList - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1PrintControl -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2c1d867d-c290-41c8-ae7e-34a98702e9a5") ID2D1PrintControl : public IUnknown -{ - - STDMETHOD(AddPage)( - _In_ ID2D1CommandList *commandList, - D2D_SIZE_F pageSize, - _In_opt_ IStream *pagePrintTicketStream, - _Out_opt_ D2D1_TAG *tag1 = NULL, - _Out_opt_ D2D1_TAG *tag2 = NULL - ) PURE; - - STDMETHOD(Close)( - ) PURE; -}; // 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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("fe9e984d-3f95-407c-b5db-cb94d4e8f87c") ID2D1ImageBrush : public ID2D1Brush -{ - - STDMETHOD_(void, SetImage)( - _In_opt_ ID2D1Image *image - ) PURE; - - STDMETHOD_(void, SetExtendModeX)( - D2D1_EXTEND_MODE extendModeX - ) PURE; - - STDMETHOD_(void, SetExtendModeY)( - D2D1_EXTEND_MODE extendModeY - ) PURE; - - STDMETHOD_(void, SetInterpolationMode)( - D2D1_INTERPOLATION_MODE interpolationMode - ) PURE; - - STDMETHOD_(void, SetSourceRectangle)( - _In_ CONST D2D1_RECT_F *sourceRectangle - ) PURE; - - STDMETHOD_(void, GetImage)( - _Outptr_ ID2D1Image **image - ) CONST PURE; - - STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)( - ) CONST PURE; - - STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)( - ) CONST PURE; - - STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode)( - ) CONST PURE; - - STDMETHOD_(void, GetSourceRectangle)( - _Out_ D2D1_RECT_F *sourceRectangle - ) CONST PURE; -}; // 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 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("41343a53-e41a-49a2-91cd-21793bbb62e5") ID2D1BitmapBrush1 : public ID2D1BitmapBrush -{ - - - // - // Sets the interpolation mode used when this brush is used. - // - STDMETHOD_(void, SetInterpolationMode1)( - D2D1_INTERPOLATION_MODE interpolationMode - ) PURE; - - STDMETHOD_(D2D1_INTERPOLATION_MODE, GetInterpolationMode1)( - ) CONST PURE; -}; // interface ID2D1BitmapBrush1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1StrokeStyle1 -// -// Synopsis: -// Extends a stroke style to allow nominal width strokes. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("10a72a66-e91c-43f4-993f-ddf4b82b0b4a") ID2D1StrokeStyle1 : public ID2D1StrokeStyle -{ - - STDMETHOD_(D2D1_STROKE_TRANSFORM_TYPE, GetStrokeTransformType)( - ) CONST PURE; -}; // interface ID2D1StrokeStyle1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1PathGeometry1 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("62baa2d2-ab54-41b7-b872-787e0106a421") ID2D1PathGeometry1 : public ID2D1PathGeometry -{ - - STDMETHOD(ComputePointAndSegmentAtLength)( - FLOAT length, - UINT32 startSegment, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_POINT_DESCRIPTION *pointDescription - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAndSegmentAtLength( - FLOAT length, - UINT32 startSegment, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _Out_ D2D1_POINT_DESCRIPTION *pointDescription - ) CONST - { - return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, flatteningTolerance, pointDescription); - } - - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAndSegmentAtLength( - FLOAT length, - UINT32 startSegment, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ D2D1_POINT_DESCRIPTION *pointDescription - ) CONST - { - return ComputePointAndSegmentAtLength(length, startSegment, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, pointDescription); - } - - COM_DECLSPEC_NOTHROW - HRESULT - ComputePointAndSegmentAtLength( - FLOAT length, - UINT32 startSegment, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _Out_ D2D1_POINT_DESCRIPTION *pointDescription - ) CONST - { - return ComputePointAndSegmentAtLength(length, startSegment, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, pointDescription); - } -}; // interface ID2D1PathGeometry1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Properties -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("483473d7-cd46-4f9d-9d3a-3112aa80159d") ID2D1Properties : public IUnknown -{ - - - // - // Returns the total number of custom properties in this interface. - // - STDMETHOD_(UINT32, GetPropertyCount)( - ) CONST PURE; - - - // - // 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. - // - STDMETHOD_(UINT32, GetPropertyNameLength)( - UINT32 index - ) CONST PURE; - - - // - // 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. - // - STDMETHOD_(UINT32, GetPropertyIndex)( - _In_ PCWSTR name - ) CONST PURE; - - - // - // Sets the value of the given property using its name. - // - STDMETHOD(SetValueByName)( - _In_ PCWSTR name, - D2D1_PROPERTY_TYPE type, - _In_reads_(dataSize) CONST BYTE *data, - UINT32 dataSize - ) PURE; - - - // - // Sets the given value using the property index. - // - STDMETHOD(SetValue)( - UINT32 index, - D2D1_PROPERTY_TYPE type, - _In_reads_(dataSize) CONST BYTE *data, - UINT32 dataSize - ) PURE; - - - // - // Retrieves the given property or sub-property by name. '.' is the delimiter for - // sub-properties. - // - STDMETHOD(GetValueByName)( - _In_ PCWSTR name, - D2D1_PROPERTY_TYPE type, - _Out_writes_(dataSize) BYTE *data, - UINT32 dataSize - ) CONST PURE; - - - // - // Retrieves the given value by index. - // - STDMETHOD(GetValue)( - UINT32 index, - D2D1_PROPERTY_TYPE type, - _Out_writes_(dataSize) BYTE *data, - UINT32 dataSize - ) CONST PURE; - - - // - // 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. - // - STDMETHOD(GetSubProperties)( - UINT32 index, - _Outptr_result_maybenull_ ID2D1Properties **subProperties - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - SetValueByName( - _In_ PCWSTR name, - _In_reads_(dataSize) CONST BYTE *data, - UINT32 dataSize - ) - { - return SetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); - } - - COM_DECLSPEC_NOTHROW - HRESULT - SetValue( - UINT32 index, - _In_reads_(dataSize) CONST BYTE *data, - UINT32 dataSize - ) - { - return SetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); - } - - COM_DECLSPEC_NOTHROW - HRESULT - GetValueByName( - _In_ PCWSTR name, - _Out_writes_(dataSize) BYTE *data, - UINT32 dataSize - ) CONST - { - return GetValueByName(name, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); - } - - COM_DECLSPEC_NOTHROW - HRESULT - GetValue( - UINT32 index, - _Out_writes_(dataSize) BYTE *data, - UINT32 dataSize - ) CONST - { - return GetValue(index, D2D1_PROPERTY_TYPE_UNKNOWN, data, dataSize); - } - - // - // Templatized helper functions: - // - template - HRESULT GetValueByName( - _In_ PCWSTR propertyName, - _Out_ T *value - ) const - { - return GetValueByName(propertyName, reinterpret_cast(value), sizeof(*value)); - } - - template - T GetValueByName( - _In_ PCWSTR propertyName - ) const - { - T value; - HRESULT ignoreHr = GetValueByName(propertyName, reinterpret_cast(&value), sizeof(value)); - UNREFERENCED_PARAMETER(ignoreHr); - - return value; - } - - - template - HRESULT SetValueByName( - _In_ PCWSTR propertyName, - _In_ const T &value - ) - { - return SetValueByName(propertyName, reinterpret_cast(&value), sizeof(value)); - } - - template - HRESULT GetValue( - U index, - _Out_writes_(dataSize) BYTE *data, - UINT32 dataSize - ) CONST - { - return GetValue(static_cast(index), data, dataSize); - } - - template - HRESULT GetValue( - U index, - _Out_ T *value - ) const - { - return GetValue(static_cast(index), reinterpret_cast(value), sizeof(*value)); - } - - template - T GetValue( - U index - ) const - { - T value; - HRESULT ignoreHr = GetValue(static_cast(index), reinterpret_cast(&value), sizeof(value)); - - // Unreferenced variable: - ignoreHr; - - return value; - } - - template - HRESULT SetValue( - U index, - _In_reads_(dataSize) CONST BYTE *data, - UINT32 dataSize - ) - { - return SetValue(static_cast(index), data, dataSize); - } - - template - HRESULT SetValue( - U index, - _In_ const T &value - ) - { - return SetValue(static_cast(index), reinterpret_cast(&value), sizeof(value)); - } - - template - HRESULT GetPropertyName( - U index, - _Out_writes_(nameCount) PWSTR name, - UINT32 nameCount - ) CONST - { - return GetPropertyName(static_cast(index), name, nameCount); - } - - template - UINT32 GetPropertyNameLength( - U index - ) CONST - { - return GetPropertyNameLength(static_cast(index)); - } - - template - D2D1_PROPERTY_TYPE GetType( - U index - ) CONST - { - return GetType(static_cast(index)); - } - - - template - UINT32 GetValueSize( - U index - ) CONST - { - return GetValueSize(static_cast(index)); - } - - template - HRESULT GetSubProperties( - U index, - _Outptr_result_maybenull_ ID2D1Properties **subProperties - ) CONST - { - return GetSubProperties(static_cast(index), subProperties); - } -}; // interface ID2D1Properties - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Effect -// -// Synopsis: -// 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. - // - 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. - // - STDMETHOD(SetInputCount)( - UINT32 inputCount - ) PURE; - - - // - // 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. - // - 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. - // - STDMETHOD_(void, GetOutput)( - _Outptr_ ID2D1Image **outputImage - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - void - SetInputEffect( - UINT32 index, - _In_opt_ ID2D1Effect *inputEffect, - BOOL invalidate = TRUE - ) - { - - ID2D1Image *output = NULL; - if (inputEffect != NULL) - { - inputEffect->GetOutput(&output); - } - SetInput(index, output, invalidate); - if (output != NULL) - { - output->Release(); - } - } -}; // interface ID2D1Effect - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Bitmap1 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("a898a84c-3873-4588-b08b-ebbf978df041") ID2D1Bitmap1 : public ID2D1Bitmap -{ - - - // - // 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. - // - 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. - // - STDMETHOD(GetSurface)( - _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. - // - STDMETHOD(Map)( - D2D1_MAP_OPTIONS options, - _Out_ D2D1_MAPPED_RECT *mappedRect - ) PURE; - - - // - // Unmaps the given bitmap from memory. - // - STDMETHOD(Unmap)( - ) PURE; -}; // interface ID2D1Bitmap1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1ColorContext -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("1c4820bb-5771-4518-a581-2fe4dd0ec657") ID2D1ColorContext : public ID2D1Resource -{ - - - // - // Retrieves the color space of the color context. - // - STDMETHOD_(D2D1_COLOR_SPACE, GetColorSpace)( - ) CONST PURE; - - - // - // Retrieves the size of the color profile, in bytes. - // - STDMETHOD_(UINT32, GetProfileSize)( - ) CONST PURE; - - - // - // Retrieves the color profile bytes. - // - STDMETHOD(GetProfile)( - _Out_writes_(profileSize) BYTE *profile, - UINT32 profileSize - ) CONST PURE; -}; // 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. -// -//------------------------------------------------------------------------------ -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. - // - 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. - // - 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. - // - 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. - // - STDMETHOD_(D2D1_BUFFER_PRECISION, GetBufferPrecision)( - ) CONST PURE; - - - // - // 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. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("689f1f85-c72e-4e33-8f19-85754efd5ace") ID2D1DrawingStateBlock1 : public ID2D1DrawingStateBlock -{ - - - // - // 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. - // - STDMETHOD_(void, SetDescription)( - _In_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *stateDescription - ) PURE; - - using ID2D1DrawingStateBlock::SetDescription; -}; // 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. -// -//------------------------------------------------------------------------------ -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. - // - STDMETHOD(CreateBitmap)( - D2D1_SIZE_U size, - _In_opt_ CONST void *sourceData, - UINT32 pitch, - _In_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties, - _Outptr_ ID2D1Bitmap1 **bitmap - ) PURE; - - using ID2D1RenderTarget::CreateBitmap; - - - // - // Create a D2D bitmap by copying a WIC bitmap. - // - STDMETHOD(CreateBitmapFromWicBitmap)( - _In_ IWICBitmapSource *wicBitmapSource, - _In_opt_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties, - _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. - // - STDMETHOD(CreateColorContext)( - D2D1_COLOR_SPACE space, - _In_reads_opt_(profileSize) CONST BYTE *profile, - UINT32 profileSize, - _Outptr_ ID2D1ColorContext **colorContext - ) PURE; - - STDMETHOD(CreateColorContextFromFilename)( - _In_ PCWSTR filename, - _Outptr_ ID2D1ColorContext **colorContext - ) PURE; - - STDMETHOD(CreateColorContextFromWicColorContext)( - _In_ IWICColorContext *wicColorContext, - _Outptr_ ID2D1ColorContext **colorContext - ) PURE; - - - // - // 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 - ) PURE; - - - // - // 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 - ) 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. - // - 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 - ) 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. - // - STDMETHOD(CreateImageBrush)( - _In_opt_ ID2D1Image *image, - _In_ CONST D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties, - _In_opt_ CONST D2D1_BRUSH_PROPERTIES *brushProperties, - _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 - ) PURE; - - using ID2D1RenderTarget::CreateBitmapBrush; - - - // - // Creates a new command list. - // - STDMETHOD(CreateCommandList)( - _Outptr_ ID2D1CommandList **commandList - ) PURE; - - - // - // 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. - // - 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. - // - 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. - // - 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. - // - STDMETHOD(GetGlyphRunWorldBounds)( - D2D1_POINT_2F baselineOrigin, - _In_ CONST DWRITE_GLYPH_RUN *glyphRun, - DWRITE_MEASURING_MODE measuringMode, - _Out_ D2D1_RECT_F *bounds - ) CONST PURE; - - - // - // 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. - // - STDMETHOD_(void, SetTarget)( - _In_opt_ ID2D1Image *image - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, SetRenderingControls)( - _In_ CONST D2D1_RENDERING_CONTROLS *renderingControls - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, SetPrimitiveBlend)( - D2D1_PRIMITIVE_BLEND primitiveBlend - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, SetUnitMode)( - D2D1_UNIT_MODE unitMode - ) PURE; - - - // - // 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. - // - STDMETHOD_(void, DrawGlyphRun)( - 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 = DWRITE_MEASURING_MODE_NATURAL - ) PURE; - - using ID2D1RenderTarget::DrawGlyphRun; - - - // - // 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, - _In_opt_ CONST D2D1_RECT_F *imageRectangle = NULL, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) PURE; - - - // - // Draw a metafile to the device context. - // - STDMETHOD_(void, DrawGdiMetafile)( - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL - ) PURE; - - STDMETHOD_(void, DrawBitmap)( - _In_ ID2D1Bitmap *bitmap, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - FLOAT opacity, - D2D1_INTERPOLATION_MODE interpolationMode, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL, - _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL - ) PURE; - - using ID2D1RenderTarget::DrawBitmap; - - - // - // Push a layer on the device context. - // - STDMETHOD_(void, PushLayer)( - _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters, - _In_opt_ ID2D1Layer *layer - ) PURE; - - using ID2D1RenderTarget::PushLayer; - - - // - // 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. - // - STDMETHOD(GetEffectInvalidRectangleCount)( - _In_ ID2D1Effect *effect, - _Out_ UINT32 *rectangleCount - ) PURE; - - - // - // 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 - // - STDMETHOD(GetEffectRequiredInputRectangles)( - _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; - - - // - // 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, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle = NULL, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) PURE; - - using ID2D1RenderTarget::FillOpacityMask; - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmap( - D2D1_SIZE_U size, - _In_opt_ CONST void *sourceData, - UINT32 pitch, - CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties, - _Outptr_ ID2D1Bitmap1 **bitmap - ) - { - return CreateBitmap(size, sourceData, pitch, &bitmapProperties, 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 - ) - { - return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap); - } - - - // - // Create a D2D bitmap by copying a WIC bitmap. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapFromWicBitmap( - _In_ IWICBitmapSource *wicBitmapSource, - _Outptr_ ID2D1Bitmap1 **bitmap - ) - { - return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapFromDxgiSurface( - _In_ IDXGISurface *surface, - CONST D2D1_BITMAP_PROPERTIES1 &bitmapProperties, - _Outptr_ ID2D1Bitmap1 **bitmap - ) - { - return CreateBitmapFromDxgiSurface(surface, &bitmapProperties, bitmap); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateImageBrush( - _In_opt_ ID2D1Image *image, - CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _Outptr_ ID2D1ImageBrush **imageBrush - ) - { - return CreateImageBrush(image, &imageBrushProperties, &brushProperties, imageBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateImageBrush( - _In_opt_ ID2D1Image *image, - CONST D2D1_IMAGE_BRUSH_PROPERTIES &imageBrushProperties, - _Outptr_ ID2D1ImageBrush **imageBrush - ) - { - return CreateImageBrush(image,&imageBrushProperties, NULL, imageBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - _Outptr_ ID2D1BitmapBrush1 **bitmapBrush - ) - { - return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties, - _Outptr_ ID2D1BitmapBrush1 **bitmapBrush - ) - { - return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBrush); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateBitmapBrush( - _In_opt_ ID2D1Bitmap *bitmap, - CONST D2D1_BITMAP_BRUSH_PROPERTIES1 &bitmapBrushProperties, - CONST D2D1_BRUSH_PROPERTIES &brushProperties, - _Outptr_ ID2D1BitmapBrush1 **bitmapBrush - ) - { - return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush); - } - - - // - // Draws the output of the effect as an image. - // - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Effect *effect, - _In_opt_ CONST D2D1_POINT_2F *targetOffset = NULL, - _In_opt_ CONST D2D1_RECT_F *imageRectangle = NULL, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - - ID2D1Image *output = NULL; - effect->GetOutput(&output); - DrawImage(output, targetOffset, imageRectangle, interpolationMode, compositeMode); - output->Release(); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Image *image, - D2D1_INTERPOLATION_MODE interpolationMode, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(image, NULL, NULL, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Effect *effect, - D2D1_INTERPOLATION_MODE interpolationMode, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(effect, NULL, NULL, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Image *image, - D2D1_POINT_2F targetOffset, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(image, &targetOffset, NULL, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Effect *effect, - D2D1_POINT_2F targetOffset, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(effect, &targetOffset, NULL, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Image *image, - D2D1_POINT_2F targetOffset, - CONST D2D1_RECT_F &imageRectangle, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(image, &targetOffset, &imageRectangle, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - DrawImage( - _In_ ID2D1Effect *effect, - D2D1_POINT_2F targetOffset, - CONST D2D1_RECT_F &imageRectangle, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_COMPOSITE_MODE compositeMode = D2D1_COMPOSITE_MODE_SOURCE_OVER - ) - { - DrawImage(effect, &targetOffset, &imageRectangle, interpolationMode, compositeMode); - } - - COM_DECLSPEC_NOTHROW - void - PushLayer( - CONST D2D1_LAYER_PARAMETERS1 &layerParameters, - _In_opt_ ID2D1Layer *layer - ) - { - PushLayer(&layerParameters, layer); - } - - COM_DECLSPEC_NOTHROW - void - DrawGdiMetafile( - _In_ ID2D1GdiMetafile *gdiMetafile, - D2D1_POINT_2F targetOffset - ) - { - DrawGdiMetafile(gdiMetafile, &targetOffset); - } - - COM_DECLSPEC_NOTHROW - void - DrawBitmap( - _In_ ID2D1Bitmap *bitmap, - CONST D2D1_RECT_F &destinationRectangle, - FLOAT opacity, - D2D1_INTERPOLATION_MODE interpolationMode, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL, - _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL - ) - { - DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform); - } - - COM_DECLSPEC_NOTHROW - void - DrawBitmap( - _In_ ID2D1Bitmap *bitmap, - CONST D2D1_RECT_F &destinationRectangle, - FLOAT opacity, - D2D1_INTERPOLATION_MODE interpolationMode, - CONST D2D1_RECT_F &sourceRectangle, - _In_opt_ CONST D2D1_MATRIX_4X4_F *perspectiveTransform = NULL - ) - { - DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, perspectiveTransform); - } - - COM_DECLSPEC_NOTHROW - void - DrawBitmap( - _In_ ID2D1Bitmap *bitmap, - CONST D2D1_RECT_F &destinationRectangle, - FLOAT opacity, - D2D1_INTERPOLATION_MODE interpolationMode, - CONST D2D1_RECT_F &sourceRectangle, - CONST D2D1_MATRIX_4X4_F &perspectiveTransform - ) - { - DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle, &perspectiveTransform); - } - - COM_DECLSPEC_NOTHROW - void - FillOpacityMask( - _In_ ID2D1Bitmap *opacityMask, - _In_ ID2D1Brush *brush, - CONST D2D1_RECT_F &destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) - { - FillOpacityMask(opacityMask, brush, &destinationRectangle, sourceRectangle); - } - - COM_DECLSPEC_NOTHROW - void - FillOpacityMask( - _In_ ID2D1Bitmap *opacityMask, - _In_ ID2D1Brush *brush, - CONST D2D1_RECT_F &destinationRectangle, - CONST D2D1_RECT_F &sourceRectangle - ) - { - FillOpacityMask(opacityMask, brush, &destinationRectangle, &sourceRectangle); - } - - - // - // Sets tuning parameters for internal rendering inside the device context. - // - COM_DECLSPEC_NOTHROW - void - SetRenderingControls( - CONST D2D1_RENDERING_CONTROLS &renderingControls - ) - { - return SetRenderingControls(&renderingControls); - } -}; // interface ID2D1DeviceContext - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Device -// -// Synopsis: -// 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. - // - STDMETHOD(CreateDeviceContext)( - D2D1_DEVICE_CONTEXT_OPTIONS options, - _Outptr_ ID2D1DeviceContext **deviceContext - ) PURE; - - - // - // Creates a D2D print control. - // - STDMETHOD(CreatePrintControl)( - _In_ IWICImagingFactory *wicFactory, - _In_ IPrintDocumentPackageTarget *documentTarget, - _In_opt_ CONST D2D1_PRINT_CONTROL_PROPERTIES *printControlProperties, - _Outptr_ ID2D1PrintControl **printControl - ) PURE; - - - // - // 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. - // - STDMETHOD_(UINT64, GetMaximumTextureMemory)( - ) CONST PURE; - - - // - // 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; - - COM_DECLSPEC_NOTHROW - HRESULT - CreatePrintControl( - _In_ IWICImagingFactory *wicFactory, - _In_ IPrintDocumentPackageTarget *documentTarget, - CONST D2D1_PRINT_CONTROL_PROPERTIES &printControlProperties, - _Outptr_ ID2D1PrintControl **printControl - ) - { - return CreatePrintControl(wicFactory, documentTarget, &printControlProperties, printControl); - } -}; // interface ID2D1Device - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Factory1 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("bb12d362-daee-4b9a-aa1d-14ba401cfa1f") ID2D1Factory1 : public ID2D1Factory -{ - - - // - // This creates a new Direct2D device from the given IDXGIDevice. - // - STDMETHOD(CreateDevice)( - _In_ IDXGIDevice *dxgiDevice, - _Outptr_ ID2D1Device **d2dDevice - ) PURE; - - - // - // 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 - ) PURE; - - using ID2D1Factory::CreateStrokeStyle; - - - // - // Creates a path geometry with new operational methods. - // - STDMETHOD(CreatePathGeometry)( - _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. - // - STDMETHOD(CreateDrawingStateBlock)( - _In_opt_ CONST D2D1_DRAWING_STATE_DESCRIPTION1 *drawingStateDescription, - _In_opt_ IDWriteRenderingParams *textRenderingParams, - _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock - ) PURE; - - using ID2D1Factory::CreateDrawingStateBlock; - - - // - // Creates a new GDI metafile. - // - STDMETHOD(CreateGdiMetafile)( - _In_ IStream *metafileStream, - _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. - // - STDMETHOD(RegisterEffectFromStream)( - _In_ REFCLSID classId, - _In_ IStream *propertyXml, - _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings, - UINT32 bindingsCount, - _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. - // - STDMETHOD(RegisterEffectFromString)( - _In_ REFCLSID classId, - _In_ PCWSTR propertyXml, - _In_reads_opt_(bindingsCount) CONST D2D1_PROPERTY_BINDING *bindings, - UINT32 bindingsCount, - _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. - // - STDMETHOD(UnregisterEffect)( - _In_ REFCLSID classId - ) PURE; - - - // - // This returns all of the registered effects in the process, including any - // built-in effects. - // - 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. - // - STDMETHOD(GetEffectProperties)( - _In_ REFCLSID effectId, - _Outptr_ ID2D1Properties **properties - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - CreateStrokeStyle( - CONST D2D1_STROKE_STYLE_PROPERTIES1 &strokeStyleProperties, - _In_reads_opt_(dashesCount) CONST FLOAT *dashes, - UINT32 dashesCount, - _Outptr_ ID2D1StrokeStyle1 **strokeStyle - ) - { - return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateDrawingStateBlock( - CONST D2D1_DRAWING_STATE_DESCRIPTION1 &drawingStateDescription, - _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock - ) - { - return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateDrawingStateBlock( - _Outptr_ ID2D1DrawingStateBlock1 **drawingStateBlock - ) - { - return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock); - } -}; // interface ID2D1Factory1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Multithread -// -//------------------------------------------------------------------------------ -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. - // - STDMETHOD_(BOOL, GetMultithreadProtected)( - ) CONST PURE; - - - // - // Enters the D2D API critical section, if it exists. - // - STDMETHOD_(void, Enter)( - ) PURE; - - - // - // Leaves the D2D API critical section, if it exists. - // - STDMETHOD_(void, Leave)( - ) PURE; -}; // interface ID2D1Multithread - - - -#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 - - -#ifdef __cplusplus -extern "C" -{ -#endif - - HRESULT WINAPI - D2D1CreateDevice( - _In_ IDXGIDevice *dxgiDevice, - _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties, - _Outptr_ ID2D1Device **d2dDevice - ); - - HRESULT WINAPI - D2D1CreateDeviceContext( - _In_ IDXGISurface *dxgiSurface, - _In_opt_ CONST D2D1_CREATION_PROPERTIES *creationProperties, - _Outptr_ ID2D1DeviceContext **d2dDeviceContext - ); - - D2D1_COLOR_F WINAPI - D2D1ConvertColorSpace( - D2D1_COLOR_SPACE sourceColorSpace, - D2D1_COLOR_SPACE destinationColorSpace, - _In_ CONST D2D1_COLOR_F* color - ); - - void WINAPI - D2D1SinCos( - _In_ FLOAT angle, - _Out_ FLOAT *s, - _Out_ FLOAT *c - ); - - FLOAT WINAPI - D2D1Tan( - _In_ FLOAT angle - ); - - FLOAT WINAPI - D2D1Vec3Length( - _In_ FLOAT x, - _In_ FLOAT y, - _In_ FLOAT z - ); - -#ifdef __cplusplus -} -#endif - -#include - - -#ifndef D2D_USE_C_DEFINITIONS - -inline HRESULT -D2D1CreateDevice( - _In_ IDXGIDevice *dxgiDevice, - _In_ CONST D2D1_CREATION_PROPERTIES &creationProperties, - _Outptr_ ID2D1Device **d2dDevice - ) -{ - - return - D2D1CreateDevice( - dxgiDevice, - &creationProperties, - d2dDevice); -} - -inline HRESULT -D2D1CreateDeviceContext( - _In_ IDXGISurface *dxgiSurface, - _In_ CONST D2D1_CREATION_PROPERTIES &creationProperties, - _Outptr_ ID2D1DeviceContext **d2dDeviceContext - ) -{ - return - D2D1CreateDeviceContext( - dxgiSurface, - &creationProperties, - d2dDeviceContext); -} - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -#endif // #ifndef _D2D1_1_H_ diff --git a/3rdparty/minidx12/Include/d2d1_1helper.h b/3rdparty/minidx12/Include/d2d1_1helper.h deleted file mode 100644 index 5d487555fe..0000000000 --- a/3rdparty/minidx12/Include/d2d1_1helper.h +++ /dev/null @@ -1,924 +0,0 @@ - -/*=========================================================================*\ - - Copyright (c) Microsoft Corporation. All rights reserved. - - File: D2D1_1Helper.h - - Module Name: D2D - - Description: Helper files over the D2D interfaces and APIs. - -\*=========================================================================*/ -#pragma once - -#ifndef _D2D1_1HELPER_H_ -#define _D2D1_1HELPER_H_ - -#ifndef _D2D1_1_H_ -#include -#endif // #ifndef _D2D1_H_ - -#ifndef D2D_USE_C_DEFINITIONS - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -namespace D2D1 -{ - template<> - struct TypeTraits - { - typedef D2D1_POINT_2L Point; - typedef D2D1_RECT_L Rect; - }; - - template<> - struct TypeTraits - { - typedef D2D1_POINT_2L Point; - typedef D2D1_RECT_L Rect; - }; - - class Matrix4x3F : public D2D1_MATRIX_4X3_F - { - public: - - COM_DECLSPEC_NOTHROW - inline - Matrix4x3F( - FLOAT m11, FLOAT m12, FLOAT m13, - FLOAT m21, FLOAT m22, FLOAT m23, - FLOAT m31, FLOAT m32, FLOAT m33, - FLOAT m41, FLOAT m42, FLOAT m43 - ) - { - _11 = m11; - _12 = m12; - _13 = m13; - - _21 = m21; - _22 = m22; - _23 = m23; - - _31 = m31; - _32 = m32; - _33 = m33; - - _41 = m41; - _42 = m42; - _43 = m43; - } - - COM_DECLSPEC_NOTHROW - inline - Matrix4x3F() - { - _11 = 1; - _12 = 0; - _13 = 0; - - _21 = 0; - _22 = 1; - _23 = 0; - - _31 = 0; - _32 = 0; - _33 = 1; - - _41 = 0; - _42 = 0; - _43 = 0; - } - }; - - class Matrix4x4F : public D2D1_MATRIX_4X4_F - { - public: - - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F( - FLOAT m11, FLOAT m12, FLOAT m13, FLOAT m14, - FLOAT m21, FLOAT m22, FLOAT m23, FLOAT m24, - FLOAT m31, FLOAT m32, FLOAT m33, FLOAT m34, - FLOAT m41, FLOAT m42, FLOAT m43, FLOAT m44 - ) - { - _11 = m11; - _12 = m12; - _13 = m13; - _14 = m14; - - _21 = m21; - _22 = m22; - _23 = m23; - _24 = m24; - - _31 = m31; - _32 = m32; - _33 = m33; - _34 = m34; - - _41 = m41; - _42 = m42; - _43 = m43; - _44 = m44; - } - - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F() - { - _11 = 1; - _12 = 0; - _13 = 0; - _14 = 0; - - _21 = 0; - _22 = 1; - _23 = 0; - _24 = 0; - - _31 = 0; - _32 = 0; - _33 = 1; - _34 = 0; - - _41 = 0; - _42 = 0; - _43 = 0; - _44 = 1; - } - - COM_DECLSPEC_NOTHROW - inline - bool - operator==( - const Matrix4x4F& r - ) const - { - return _11 == r._11 && _12 == r._12 && _13 == r._13 && _14 == r._14 && - _21 == r._21 && _22 == r._22 && _23 == r._23 && _24 == r._24 && - _31 == r._31 && _32 == r._32 && _33 == r._33 && _34 == r._34 && - _41 == r._41 && _42 == r._42 && _43 == r._43 && _44 == r._44; - } - - COM_DECLSPEC_NOTHROW - inline - bool - operator!=( - const Matrix4x4F& r - ) const - { - return !(*this == r); - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - Translation(FLOAT x, FLOAT y, FLOAT z) - { - Matrix4x4F translation; - - translation._11 = 1.0; translation._12 = 0.0; translation._13 = 0.0; translation._14 = 0.0; - translation._21 = 0.0; translation._22 = 1.0; translation._23 = 0.0; translation._24 = 0.0; - translation._31 = 0.0; translation._32 = 0.0; translation._33 = 1.0; translation._34 = 0.0; - translation._41 = x; translation._42 = y; translation._43 = z; translation._44 = 1.0; - - return translation; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - Scale(FLOAT x, FLOAT y, FLOAT z) - { - Matrix4x4F scale; - - scale._11 = x; scale._12 = 0.0; scale._13 = 0.0; scale._14 = 0.0; - scale._21 = 0.0; scale._22 = y; scale._23 = 0.0; scale._24 = 0.0; - scale._31 = 0.0; scale._32 = 0.0; scale._33 = z; scale._34 = 0.0; - scale._41 = 0.0; scale._42 = 0.0; scale._43 = 0.0; scale._44 = 1.0; - - return scale; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - RotationX(FLOAT degreeX) - { - FLOAT angleInRadian = degreeX * (3.141592654f / 180.0f); - - FLOAT sinAngle = 0.0; - FLOAT cosAngle = 0.0; - D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); - - Matrix4x4F rotationX( - 1, 0, 0, 0, - 0, cosAngle, sinAngle, 0, - 0, -sinAngle, cosAngle, 0, - 0, 0, 0, 1 - ); - - return rotationX; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - RotationY(FLOAT degreeY) - { - FLOAT angleInRadian = degreeY * (3.141592654f / 180.0f); - - FLOAT sinAngle = 0.0; - FLOAT cosAngle = 0.0; - D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); - - Matrix4x4F rotationY( - cosAngle, 0, -sinAngle, 0, - 0, 1, 0, 0, - sinAngle, 0, cosAngle, 0, - 0, 0, 0, 1 - ); - - return rotationY; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - RotationZ(FLOAT degreeZ) - { - FLOAT angleInRadian = degreeZ * (3.141592654f / 180.0f); - - FLOAT sinAngle = 0.0; - FLOAT cosAngle = 0.0; - D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); - - Matrix4x4F rotationZ( - cosAngle, sinAngle, 0, 0, - -sinAngle, cosAngle, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1 - ); - - return rotationZ; - } - - // - // 3D Rotation matrix for an arbitrary axis specified by x, y and z - // - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - RotationArbitraryAxis(FLOAT x, FLOAT y, FLOAT z, FLOAT degree) - { - // Normalize the vector represented by x, y, and z - FLOAT magnitude = D2D1Vec3Length(x, y, z); - x /= magnitude; - y /= magnitude; - z /= magnitude; - - FLOAT angleInRadian = degree * (3.141592654f / 180.0f); - - FLOAT sinAngle = 0.0; - FLOAT cosAngle = 0.0; - D2D1SinCos(angleInRadian, &sinAngle, &cosAngle); - - FLOAT oneMinusCosAngle = 1 - cosAngle; - - Matrix4x4F rotationArb( - 1 + oneMinusCosAngle * (x * x - 1), - z * sinAngle + oneMinusCosAngle * x * y, - -y * sinAngle + oneMinusCosAngle * x * z, - 0, - - -z * sinAngle + oneMinusCosAngle * y * x, - 1 + oneMinusCosAngle * (y * y - 1), - x * sinAngle + oneMinusCosAngle * y * z, - 0, - - y * sinAngle + oneMinusCosAngle * z * x, - -x * sinAngle + oneMinusCosAngle * z * y, - 1 + oneMinusCosAngle * (z * z - 1) , - 0, - - 0, 0, 0, 1 - ); - - return rotationArb; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - SkewX(FLOAT degreeX) - { - FLOAT angleInRadian = degreeX * (3.141592654f / 180.0f); - - FLOAT tanAngle = D2D1Tan(angleInRadian); - - Matrix4x4F skewX( - 1, 0, 0, 0, - tanAngle, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1 - ); - - return skewX; - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - SkewY(FLOAT degreeY) - { - FLOAT angleInRadian = degreeY * (3.141592654f / 180.0f); - - FLOAT tanAngle = D2D1Tan(angleInRadian); - - Matrix4x4F skewY( - 1, tanAngle, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1 - ); - - return skewY; - } - - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - PerspectiveProjection(FLOAT depth) - { - float proj = 0; - - if (depth > 0) - { - proj = -1/depth; - } - - Matrix4x4F projection( - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, proj, - 0, 0, 0, 1 - ); - - return projection; - } - - // - // Functions for convertion from the base D2D1_MATRIX_4X4_f to - // this type without making a copy - // - static - COM_DECLSPEC_NOTHROW - inline - const Matrix4x4F* - ReinterpretBaseType(const D2D1_MATRIX_4X4_F *pMatrix) - { - return static_cast(pMatrix); - } - - static - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F* - ReinterpretBaseType(D2D1_MATRIX_4X4_F *pMatrix) - { - return static_cast(pMatrix); - } - - COM_DECLSPEC_NOTHROW - inline - FLOAT - Determinant() const - { - FLOAT minor1 = _41 * (_12 * (_23 * _34 - _33 * _24) - _13 * (_22 * _34 - _24 * _32) + _14 * (_22 * _33 - _23 * _32)); - FLOAT minor2 = _42 * (_11 * (_21 * _34 - _31 * _24) - _13 * (_21 * _34 - _24 * _31) + _14 * (_21 * _33 - _23 * _31)); - FLOAT minor3 = _43 * (_11 * (_22 * _34 - _32 * _24) - _12 * (_21 * _34 - _24 * _31) + _14 * (_21 * _32 - _22 * _31)); - FLOAT minor4 = _44 * (_11 * (_22 * _33 - _32 * _23) - _12 * (_21 * _33 - _23 * _31) + _13 * (_21 * _32 - _22 * _31)); - - return minor1 - minor2 + minor3 - minor4; - } - - COM_DECLSPEC_NOTHROW - inline - bool - IsIdentity() const - { - return _11 == 1.f && _12 == 0.f && _13 == 0.f && _14 == 0.f - && _21 == 0.f && _22 == 1.f && _23 == 0.f && _24 == 0.f - && _31 == 0.f && _32 == 0.f && _33 == 1.f && _34 == 0.f - && _41 == 0.f && _42 == 0.f && _43 == 0.f && _44 == 1.f; - } - - COM_DECLSPEC_NOTHROW - inline - void - SetProduct(const Matrix4x4F &a, const Matrix4x4F &b) - { - _11 = a._11 * b._11 + a._12 * b._21 + a._13 * b._31 + a._14 * b._41; - _12 = a._11 * b._12 + a._12 * b._22 + a._13 * b._32 + a._14 * b._42; - _13 = a._11 * b._13 + a._12 * b._23 + a._13 * b._33 + a._14 * b._43; - _14 = a._11 * b._14 + a._12 * b._24 + a._13 * b._34 + a._14 * b._44; - - _21 = a._21 * b._11 + a._22 * b._21 + a._23 * b._31 + a._24 * b._41; - _22 = a._21 * b._12 + a._22 * b._22 + a._23 * b._32 + a._24 * b._42; - _23 = a._21 * b._13 + a._22 * b._23 + a._23 * b._33 + a._24 * b._43; - _24 = a._21 * b._14 + a._22 * b._24 + a._23 * b._34 + a._24 * b._44; - - _31 = a._31 * b._11 + a._32 * b._21 + a._33 * b._31 + a._34 * b._41; - _32 = a._31 * b._12 + a._32 * b._22 + a._33 * b._32 + a._34 * b._42; - _33 = a._31 * b._13 + a._32 * b._23 + a._33 * b._33 + a._34 * b._43; - _34 = a._31 * b._14 + a._32 * b._24 + a._33 * b._34 + a._34 * b._44; - - _41 = a._41 * b._11 + a._42 * b._21 + a._43 * b._31 + a._44 * b._41; - _42 = a._41 * b._12 + a._42 * b._22 + a._43 * b._32 + a._44 * b._42; - _43 = a._41 * b._13 + a._42 * b._23 + a._43 * b._33 + a._44 * b._43; - _44 = a._41 * b._14 + a._42 * b._24 + a._43 * b._34 + a._44 * b._44; - } - - COM_DECLSPEC_NOTHROW - inline - Matrix4x4F - operator*(const Matrix4x4F &matrix) const - { - Matrix4x4F result; - - result.SetProduct(*this, matrix); - - return result; - } - }; - - - class Matrix5x4F : public D2D1_MATRIX_5X4_F - { - public: - - COM_DECLSPEC_NOTHROW - inline - Matrix5x4F( - FLOAT m11, FLOAT m12, FLOAT m13, FLOAT m14, - FLOAT m21, FLOAT m22, FLOAT m23, FLOAT m24, - FLOAT m31, FLOAT m32, FLOAT m33, FLOAT m34, - FLOAT m41, FLOAT m42, FLOAT m43, FLOAT m44, - FLOAT m51, FLOAT m52, FLOAT m53, FLOAT m54 - ) - { - _11 = m11; - _12 = m12; - _13 = m13; - _14 = m14; - - _21 = m21; - _22 = m22; - _23 = m23; - _24 = m24; - - _31 = m31; - _32 = m32; - _33 = m33; - _34 = m34; - - _41 = m41; - _42 = m42; - _43 = m43; - _44 = m44; - - _51 = m51; - _52 = m52; - _53 = m53; - _54 = m54; - } - - COM_DECLSPEC_NOTHROW - inline - Matrix5x4F() - { - _11 = 1; - _12 = 0; - _13 = 0; - _14 = 0; - - _21 = 0; - _22 = 1; - _23 = 0; - _24 = 0; - - _31 = 0; - _32 = 0; - _33 = 1; - _34 = 0; - - _41 = 0; - _42 = 0; - _43 = 0; - _44 = 1; - - _51 = 0; - _52 = 0; - _53 = 0; - _54 = 0; - } - }; - - COM_DECLSPEC_NOTHROW - inline - D2D1_COLOR_F - ConvertColorSpace( - D2D1_COLOR_SPACE sourceColorSpace, - D2D1_COLOR_SPACE destinationColorSpace, - const D2D1_COLOR_F& color - ) - { - return D2D1ConvertColorSpace( - sourceColorSpace, - destinationColorSpace, - &color - ); - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_DRAWING_STATE_DESCRIPTION1 - DrawingStateDescription1( - D2D1_ANTIALIAS_MODE antialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, - D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode = D2D1_TEXT_ANTIALIAS_MODE_DEFAULT, - D2D1_TAG tag1 = 0, - D2D1_TAG tag2 = 0, - _In_ const D2D1_MATRIX_3X2_F &transform = D2D1::IdentityMatrix(), - D2D1_PRIMITIVE_BLEND primitiveBlend = D2D1_PRIMITIVE_BLEND_SOURCE_OVER, - D2D1_UNIT_MODE unitMode = D2D1_UNIT_MODE_DIPS - ) - { - D2D1_DRAWING_STATE_DESCRIPTION1 drawingStateDescription1; - - drawingStateDescription1.antialiasMode = antialiasMode; - drawingStateDescription1.textAntialiasMode = textAntialiasMode; - drawingStateDescription1.tag1 = tag1; - drawingStateDescription1.tag2 = tag2; - drawingStateDescription1.transform = transform; - drawingStateDescription1.primitiveBlend = primitiveBlend; - drawingStateDescription1.unitMode = unitMode; - - return drawingStateDescription1; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_DRAWING_STATE_DESCRIPTION1 - DrawingStateDescription1( - _In_ const D2D1_DRAWING_STATE_DESCRIPTION &desc, - D2D1_PRIMITIVE_BLEND primitiveBlend = D2D1_PRIMITIVE_BLEND_SOURCE_OVER, - D2D1_UNIT_MODE unitMode = D2D1_UNIT_MODE_DIPS - ) - { - D2D1_DRAWING_STATE_DESCRIPTION1 drawingStateDescription1; - - drawingStateDescription1.antialiasMode = desc.antialiasMode; - drawingStateDescription1.textAntialiasMode = desc.textAntialiasMode; - drawingStateDescription1.tag1 = desc.tag1; - drawingStateDescription1.tag2 = desc.tag2; - drawingStateDescription1.transform = desc.transform; - drawingStateDescription1.primitiveBlend = primitiveBlend; - drawingStateDescription1.unitMode = unitMode; - - return drawingStateDescription1; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_BITMAP_PROPERTIES1 - BitmapProperties1( - D2D1_BITMAP_OPTIONS bitmapOptions = D2D1_BITMAP_OPTIONS_NONE, - _In_ CONST D2D1_PIXEL_FORMAT pixelFormat = D2D1::PixelFormat(), - FLOAT dpiX = 96.0f, - FLOAT dpiY = 96.0f, - _In_opt_ ID2D1ColorContext *colorContext = NULL - ) - { - D2D1_BITMAP_PROPERTIES1 bitmapProperties = - { - pixelFormat, - dpiX, dpiY, - bitmapOptions, - colorContext - }; - - return bitmapProperties; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_LAYER_PARAMETERS1 - LayerParameters1( - _In_ CONST D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(), - _In_opt_ ID2D1Geometry *geometricMask = NULL, - D2D1_ANTIALIAS_MODE maskAntialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, - D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(), - FLOAT opacity = 1.0, - _In_opt_ ID2D1Brush *opacityBrush = NULL, - D2D1_LAYER_OPTIONS1 layerOptions = D2D1_LAYER_OPTIONS1_NONE - ) - { - D2D1_LAYER_PARAMETERS1 layerParameters = { 0 }; - - layerParameters.contentBounds = contentBounds; - layerParameters.geometricMask = geometricMask; - layerParameters.maskAntialiasMode = maskAntialiasMode; - layerParameters.maskTransform = maskTransform; - layerParameters.opacity = opacity; - layerParameters.opacityBrush = opacityBrush; - layerParameters.layerOptions = layerOptions; - - return layerParameters; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_STROKE_STYLE_PROPERTIES1 - StrokeStyleProperties1( - D2D1_CAP_STYLE startCap = D2D1_CAP_STYLE_FLAT, - D2D1_CAP_STYLE endCap = D2D1_CAP_STYLE_FLAT, - D2D1_CAP_STYLE dashCap = D2D1_CAP_STYLE_FLAT, - D2D1_LINE_JOIN lineJoin = D2D1_LINE_JOIN_MITER, - FLOAT miterLimit = 10.0f, - D2D1_DASH_STYLE dashStyle = D2D1_DASH_STYLE_SOLID, - FLOAT dashOffset = 0.0f, - D2D1_STROKE_TRANSFORM_TYPE transformType = D2D1_STROKE_TRANSFORM_TYPE_NORMAL - ) - { - D2D1_STROKE_STYLE_PROPERTIES1 strokeStyleProperties; - - strokeStyleProperties.startCap = startCap; - strokeStyleProperties.endCap = endCap; - strokeStyleProperties.dashCap = dashCap; - strokeStyleProperties.lineJoin = lineJoin; - strokeStyleProperties.miterLimit = miterLimit; - strokeStyleProperties.dashStyle = dashStyle; - strokeStyleProperties.dashOffset = dashOffset; - strokeStyleProperties.transformType = transformType; - - return strokeStyleProperties; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_IMAGE_BRUSH_PROPERTIES - ImageBrushProperties( - D2D1_RECT_F sourceRectangle, - D2D1_EXTEND_MODE extendModeX = D2D1_EXTEND_MODE_CLAMP, - D2D1_EXTEND_MODE extendModeY = D2D1_EXTEND_MODE_CLAMP, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR - ) - { - D2D1_IMAGE_BRUSH_PROPERTIES imageBrushProperties; - - imageBrushProperties.extendModeX = extendModeX; - imageBrushProperties.extendModeY = extendModeY; - imageBrushProperties.interpolationMode = interpolationMode; - imageBrushProperties.sourceRectangle = sourceRectangle; - - return imageBrushProperties; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_BITMAP_BRUSH_PROPERTIES1 - BitmapBrushProperties1( - D2D1_EXTEND_MODE extendModeX = D2D1_EXTEND_MODE_CLAMP, - D2D1_EXTEND_MODE extendModeY = D2D1_EXTEND_MODE_CLAMP, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR - ) - { - D2D1_BITMAP_BRUSH_PROPERTIES1 bitmapBrush1Properties; - - bitmapBrush1Properties.extendModeX = extendModeX; - bitmapBrush1Properties.extendModeY = extendModeY; - bitmapBrush1Properties.interpolationMode = interpolationMode; - - return bitmapBrush1Properties; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_PRINT_CONTROL_PROPERTIES - PrintControlProperties( - D2D1_PRINT_FONT_SUBSET_MODE fontSubsetMode = D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT, - FLOAT rasterDpi = 150.0f, - D2D1_COLOR_SPACE colorSpace = D2D1_COLOR_SPACE_SRGB - ) - { - D2D1_PRINT_CONTROL_PROPERTIES printControlProps; - - printControlProps.fontSubset = fontSubsetMode; - printControlProps.rasterDPI = rasterDpi; - printControlProps.colorSpace = colorSpace; - - return printControlProps; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_RENDERING_CONTROLS - RenderingControls( - D2D1_BUFFER_PRECISION bufferPrecision, - D2D1_SIZE_U tileSize - ) - { - D2D1_RENDERING_CONTROLS renderingControls; - - renderingControls.bufferPrecision = bufferPrecision; - renderingControls.tileSize = tileSize; - - return renderingControls; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_EFFECT_INPUT_DESCRIPTION - EffectInputDescription( - ID2D1Effect *effect, - UINT32 inputIndex, - D2D1_RECT_F inputRectangle - ) - { - D2D1_EFFECT_INPUT_DESCRIPTION description; - - description.effect = effect; - description.inputIndex = inputIndex; - description.inputRectangle = inputRectangle; - - return description; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_CREATION_PROPERTIES - CreationProperties( - D2D1_THREADING_MODE threadingMode, - D2D1_DEBUG_LEVEL debugLevel, - D2D1_DEVICE_CONTEXT_OPTIONS options - ) - { - D2D1_CREATION_PROPERTIES creationProperties; - - creationProperties.threadingMode = threadingMode; - creationProperties.debugLevel = debugLevel; - creationProperties.options = options; - - return creationProperties; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_VECTOR_2F - Vector2F( - FLOAT x = 0.0f, - FLOAT y = 0.0f - ) - { - D2D1_VECTOR_2F vec2 = {x, y}; - return vec2; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_VECTOR_3F - Vector3F( - FLOAT x = 0.0f, - FLOAT y = 0.0f, - FLOAT z = 0.0f - ) - { - D2D1_VECTOR_3F vec3 = {x, y, z}; - return vec3; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_VECTOR_4F - Vector4F( - FLOAT x = 0.0f, - FLOAT y = 0.0f, - FLOAT z = 0.0f, - FLOAT w = 0.0f - ) - { - D2D1_VECTOR_4F vec4 = {x, y, z, w}; - return vec4; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_POINT_2L - Point2L( - INT32 x = 0, - INT32 y = 0 - ) - { - return Point2(x, y); - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_RECT_L - RectL( - INT32 left = 0.f, - INT32 top = 0.f, - INT32 right = 0.f, - INT32 bottom = 0.f - ) - { - return Rect(left, top, right, bottom); - } - - // - // Sets a bitmap as an effect input, while inserting a DPI compensation effect - // to preserve visual appearance as the device context's DPI changes. - // - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - HRESULT - SetDpiCompensatedEffectInput( - _In_ ID2D1DeviceContext *deviceContext, - _In_ ID2D1Effect *effect, - UINT32 inputIndex, - _In_opt_ ID2D1Bitmap *inputBitmap, - D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_LINEAR, - D2D1_BORDER_MODE borderMode = D2D1_BORDER_MODE_HARD - ) - { - HRESULT hr = S_OK; - ID2D1Effect *dpiCompensationEffect = NULL; - - if (!inputBitmap) - { - effect->SetInput(inputIndex, NULL); - return hr; - } - - hr = deviceContext->CreateEffect(CLSID_D2D1DpiCompensation, &dpiCompensationEffect); - - if (SUCCEEDED(hr)) - { - if (SUCCEEDED(hr)) - { - dpiCompensationEffect->SetInput(0, inputBitmap); - - D2D1_POINT_2F bitmapDpi; - inputBitmap->GetDpi(&bitmapDpi.x, &bitmapDpi.y); - hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_INPUT_DPI, bitmapDpi); - } - - if (SUCCEEDED(hr)) - { - hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE, interpolationMode); - } - - if (SUCCEEDED(hr)) - { - hr = dpiCompensationEffect->SetValue(D2D1_DPICOMPENSATION_PROP_BORDER_MODE, borderMode); - } - - if (SUCCEEDED(hr)) - { - effect->SetInputEffect(inputIndex, dpiCompensationEffect); - } - - if (dpiCompensationEffect) - { - dpiCompensationEffect->Release(); - } - } - - return hr; - } - -} // namespace D2D1 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#endif // #ifndef _D2D1_HELPER_H_ - diff --git a/3rdparty/minidx12/Include/d2d1_2.h b/3rdparty/minidx12/Include/d2d1_2.h deleted file mode 100644 index dc21a5d2e3..0000000000 --- a/3rdparty/minidx12/Include/d2d1_2.h +++ /dev/null @@ -1,809 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1_2.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_2_H_ -#define _D2D1_2_H_ - -#ifndef _D2D1_1_H_ -#include -#endif // #ifndef _D2D1_1_H_ -#ifndef _D2D1_EFFECTS_1_ -#include -#endif // #ifndef _D2D1_EFFECTS_1_ - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -#ifndef D2D_USE_C_DEFINITIONS - -interface ID2D1Device1; -#else - -typedef interface ID2D1Device1 ID2D1Device1; - -#endif - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_RENDERING_PRIORITY -// -// Synopsis: -// 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; - - -#ifndef D2D_USE_C_DEFINITIONS - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GeometryRealization -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("a16907d7-bc02-4801-99e8-8cf7f485f774") ID2D1GeometryRealization : public ID2D1Resource -{ -}; // interface ID2D1GeometryRealization - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1DeviceContext1 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("d37f57e4-6908-459f-a199-e72f24f79987") ID2D1DeviceContext1 : public ID2D1DeviceContext -{ - - STDMETHOD(CreateFilledGeometryRealization)( - _In_ ID2D1Geometry *geometry, - FLOAT flatteningTolerance, - _Outptr_ ID2D1GeometryRealization **geometryRealization - ) PURE; - - STDMETHOD(CreateStrokedGeometryRealization)( - _In_ ID2D1Geometry *geometry, - FLOAT flatteningTolerance, - FLOAT strokeWidth, - _In_opt_ ID2D1StrokeStyle *strokeStyle, - _Outptr_ ID2D1GeometryRealization **geometryRealization - ) PURE; - - STDMETHOD_(void, DrawGeometryRealization)( - _In_ ID2D1GeometryRealization *geometryRealization, - _In_ ID2D1Brush *brush - ) PURE; -}; // interface ID2D1DeviceContext1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Device1 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("d21768e1-23a4-4823-a14b-7c3eba85d658") ID2D1Device1 : public ID2D1Device -{ - - - // - // Retrieves the rendering priority currently set on the device. - // - STDMETHOD_(D2D1_RENDERING_PRIORITY, GetRenderingPriority)( - ) PURE; - - - // - // 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. - // - STDMETHOD(CreateDeviceContext)( - D2D1_DEVICE_CONTEXT_OPTIONS options, - _Outptr_ ID2D1DeviceContext1 **deviceContext1 - ) PURE; - - using ID2D1Device::CreateDeviceContext; -}; // interface ID2D1Device1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Factory2 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("94f81a73-9212-4376-9c58-b16a3a0d3992") ID2D1Factory2 : public ID2D1Factory1 -{ - - - // - // This creates a new Direct2D device from the given IDXGIDevice. - // - STDMETHOD(CreateDevice)( - _In_ IDXGIDevice *dxgiDevice, - _Outptr_ ID2D1Device1 **d2dDevice1 - ) PURE; - - using ID2D1Factory1::CreateDevice; -}; // interface ID2D1Factory2 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1CommandSink1 -// -//------------------------------------------------------------------------------ -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). - // - STDMETHOD(SetPrimitiveBlend1)( - D2D1_PRIMITIVE_BLEND primitiveBlend - ) PURE; -}; // interface ID2D1CommandSink1 - - - -#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 - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if NTDDI_VERSION >= NTDDI_WINBLUE - FLOAT WINAPI - D2D1ComputeMaximumScaleFactor( - _In_ CONST D2D1_MATRIX_3X2_F *matrix - ); -#endif // #if NTDDI_VERSION >= NTDDI_WINBLUE - -#ifdef __cplusplus -} -#endif - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -#include -#endif // #ifndef _D2D1_2_H_ diff --git a/3rdparty/minidx12/Include/d2d1_2helper.h b/3rdparty/minidx12/Include/d2d1_2helper.h deleted file mode 100644 index 5cfc2b9b97..0000000000 --- a/3rdparty/minidx12/Include/d2d1_2helper.h +++ /dev/null @@ -1,65 +0,0 @@ - -/*=========================================================================*\ - - Copyright (c) Microsoft Corporation. All rights reserved. - - File: D2D1_2Helper.h - - Module Name: D2D - - Description: Helper files over the D2D interfaces and APIs. - -\*=========================================================================*/ - -#ifdef _MSC_VER -#pragma once -#endif // _MSC_VER - -#ifndef _D2D1_2HELPER_H_ -#define _D2D1_2HELPER_H_ - -#if NTDDI_VERSION >= NTDDI_WINBLUE - -#ifndef _D2D1_2_H_ -#include -#endif // #ifndef _D2D1_2_H_ - -#ifndef D2D_USE_C_DEFINITIONS - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -namespace D2D1 -{ - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - FLOAT - ComputeFlatteningTolerance( - _In_ CONST D2D1_MATRIX_3X2_F &matrix, - FLOAT dpiX = 96.0f, - FLOAT dpiY = 96.0f, - FLOAT maxZoomFactor = 1.0f - ) - { - D2D1_MATRIX_3X2_F dpiDependentTransform = - matrix * D2D1::Matrix3x2F::Scale(dpiX / 96.0f, dpiY / 96.0f); - - FLOAT absMaxZoomFactor = (maxZoomFactor > 0) ? maxZoomFactor : -maxZoomFactor; - - return D2D1_DEFAULT_FLATTENING_TOLERANCE / - (absMaxZoomFactor * D2D1ComputeMaximumScaleFactor(&dpiDependentTransform)); - } - -} // namespace D2D1 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#endif // #if NTDDI_VERSION >= NTDDI_WINBLUE - -#endif // #ifndef _D2D1_HELPER_H_ - diff --git a/3rdparty/minidx12/Include/d2d1_3.h b/3rdparty/minidx12/Include/d2d1_3.h deleted file mode 100644 index 516988125d..0000000000 --- a/3rdparty/minidx12/Include/d2d1_3.h +++ /dev/null @@ -1,2264 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1_3.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_3_H_ -#define _D2D1_3_H_ - -#ifndef _D2D1_2_H_ -#include -#endif // #ifndef _D2D1_2_H_ -#ifndef _D2D1_EFFECTS_2_ -#include -#endif // #ifndef _D2D1_EFFECTS_2_ - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -typedef interface IWICBitmapFrameDecode IWICBitmapFrameDecode; - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_INK_NIB_SHAPE -// -//------------------------------------------------------------------------------ -typedef enum D2D1_INK_NIB_SHAPE -{ - D2D1_INK_NIB_SHAPE_ROUND = 0, - D2D1_INK_NIB_SHAPE_SQUARE = 1, - D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff - -} D2D1_INK_NIB_SHAPE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_ORIENTATION -// -// Synopsis: -// Specifies the orientation of an image. -// -//------------------------------------------------------------------------------ -typedef enum D2D1_ORIENTATION -{ - D2D1_ORIENTATION_DEFAULT = 1, - D2D1_ORIENTATION_FLIP_HORIZONTAL = 2, - D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3, - D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4, - D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5, - D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6, - D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7, - D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8, - D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff - -} D2D1_ORIENTATION; - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_IMAGE_SOURCE_LOADING_OPTIONS -// -// Synopsis: -// Option flags controlling how images sources are loaded during -// CreateImageSourceFromWic. -// -//------------------------------------------------------------------------------ -typedef enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS -{ - D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff - -} D2D1_IMAGE_SOURCE_LOADING_OPTIONS; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_LOADING_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS -// -// Synopsis: -// Option flags controlling primary conversion performed by -// CreateImageSourceFromDxgi, if any. -// -//------------------------------------------------------------------------------ -typedef enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS -{ - D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0, - D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1, - D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff - -} D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Flag: -// D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS -// -// Synopsis: -// Option flags for transformed image sources. -// -//------------------------------------------------------------------------------ -typedef enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS -{ - D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0, - - // - // Prevents the image source from being automatically scaled (by a ratio of the - // context DPI divided by 96) while drawn. - // - D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1, - D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff - -} D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS; - -DEFINE_ENUM_FLAG_OPERATORS(D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS); - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES -// -// Synopsis: -// Properties of a transformed image source. -// -//------------------------------------------------------------------------------ -typedef struct D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES -{ - - // - // The orientation at which the image source is drawn. - // - D2D1_ORIENTATION orientation; - - // - // The horizontal scale factor at which the image source is drawn. - // - FLOAT scaleX; - - // - // The vertical scale factor at which the image source is drawn. - // - FLOAT scaleY; - - // - // The interpolation mode used when the image source is drawn. This is ignored if - // the image source is drawn using the DrawImage method, or using an image brush. - // - D2D1_INTERPOLATION_MODE interpolationMode; - - // - // Option flags. - // - D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS options; - -} D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_INK_POINT -// -//------------------------------------------------------------------------------ -typedef struct D2D1_INK_POINT -{ - FLOAT x; - FLOAT y; - FLOAT radius; - -} D2D1_INK_POINT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_INK_BEZIER_SEGMENT -// -//------------------------------------------------------------------------------ -typedef struct D2D1_INK_BEZIER_SEGMENT -{ - D2D1_INK_POINT point1; - D2D1_INK_POINT point2; - D2D1_INK_POINT point3; - -} D2D1_INK_BEZIER_SEGMENT; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_INK_STYLE_PROPERTIES -// -//------------------------------------------------------------------------------ -typedef struct D2D1_INK_STYLE_PROPERTIES -{ - - // - // The general shape of the nib used to draw a given ink object. - // - D2D1_INK_NIB_SHAPE nibShape; - - // - // The transform applied to shape of the nib. _31 and _32 are ignored. - // - D2D1_MATRIX_3X2_F nibTransform; - -} D2D1_INK_STYLE_PROPERTIES; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_PATCH_EDGE_MODE -// -//------------------------------------------------------------------------------ -typedef enum D2D1_PATCH_EDGE_MODE -{ - - // - // Render this edge aliased. - // - D2D1_PATCH_EDGE_MODE_ALIASED = 0, - - // - // Render this edge antialiased. - // - D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1, - - // - // Render this edge aliased and inflated out slightly. - // - D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2, - D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff - -} D2D1_PATCH_EDGE_MODE; - - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_GRADIENT_MESH_PATCH -// -//------------------------------------------------------------------------------ -typedef struct D2D1_GRADIENT_MESH_PATCH -{ - - // - // The gradient mesh patch control point at position 00. - // - D2D1_POINT_2F point00; - - // - // The gradient mesh patch control point at position 01. - // - D2D1_POINT_2F point01; - - // - // The gradient mesh patch control point at position 02. - // - D2D1_POINT_2F point02; - - // - // The gradient mesh patch control point at position 03. - // - D2D1_POINT_2F point03; - - // - // The gradient mesh patch control point at position 10. - // - D2D1_POINT_2F point10; - - // - // The gradient mesh patch control point at position 11. - // - D2D1_POINT_2F point11; - - // - // The gradient mesh patch control point at position 12. - // - D2D1_POINT_2F point12; - - // - // The gradient mesh patch control point at position 13. - // - D2D1_POINT_2F point13; - - // - // The gradient mesh patch control point at position 20. - // - D2D1_POINT_2F point20; - - // - // The gradient mesh patch control point at position 21. - // - D2D1_POINT_2F point21; - - // - // The gradient mesh patch control point at position 22. - // - D2D1_POINT_2F point22; - - // - // The gradient mesh patch control point at position 23. - // - D2D1_POINT_2F point23; - - // - // The gradient mesh patch control point at position 30. - // - D2D1_POINT_2F point30; - - // - // The gradient mesh patch control point at position 31. - // - D2D1_POINT_2F point31; - - // - // The gradient mesh patch control point at position 32. - // - D2D1_POINT_2F point32; - - // - // The gradient mesh patch control point at position 33. - // - D2D1_POINT_2F point33; - - // - // The color associated with control point at position 00. - // - D2D1_COLOR_F color00; - - // - // The color associated with control point at position 03. - // - D2D1_COLOR_F color03; - - // - // The color associated with control point at position 30. - // - D2D1_COLOR_F color30; - - // - // The color associated with control point at position 33. - // - D2D1_COLOR_F color33; - - // - // The edge mode for the top edge of the patch. - // - D2D1_PATCH_EDGE_MODE topEdgeMode; - - // - // The edge mode for the left edge of the patch. - // - D2D1_PATCH_EDGE_MODE leftEdgeMode; - - // - // The edge mode for the bottom edge of the patch. - // - D2D1_PATCH_EDGE_MODE bottomEdgeMode; - - // - // The edge mode for the right edge of the patch. - // - D2D1_PATCH_EDGE_MODE rightEdgeMode; - -} D2D1_GRADIENT_MESH_PATCH; - - -#ifndef D2D_USE_C_DEFINITIONS - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1InkStyle -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("bae8b344-23fc-4071-8cb5-d05d6f073848") ID2D1InkStyle : public ID2D1Resource -{ - - STDMETHOD_(void, SetNibTransform)( - _In_ CONST D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD_(void, GetNibTransform)( - _Out_ D2D1_MATRIX_3X2_F *transform - ) CONST PURE; - - STDMETHOD_(void, SetNibShape)( - D2D1_INK_NIB_SHAPE nibShape - ) PURE; - - STDMETHOD_(D2D1_INK_NIB_SHAPE, GetNibShape)( - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - void - SetNibTransform( - CONST D2D1_MATRIX_3X2_F &transform - ) - { - SetNibTransform(&transform); - } -}; // interface ID2D1InkStyle - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Ink -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("b499923b-7029-478f-a8b3-432c7c5f5312") ID2D1Ink : public ID2D1Resource -{ - - - // - // Resets the ink start point. - // - STDMETHOD_(void, SetStartPoint)( - _In_ CONST D2D1_INK_POINT *startPoint - ) PURE; - - - // - // Retrieve the start point with which the ink was initialized. - // - STDMETHOD_(D2D1_INK_POINT, GetStartPoint)( - ) CONST PURE; - - - // - // Add one or more segments to the end of the ink. - // - STDMETHOD(AddSegments)( - _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) PURE; - - - // - // Remove one or more segments from the end of the ink. - // - STDMETHOD(RemoveSegmentsAtEnd)( - UINT32 segmentsCount - ) PURE; - - - // - // Updates the specified segments with new control points. - // - STDMETHOD(SetSegments)( - UINT32 startSegment, - _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) PURE; - - - // - // Update the last segment with new control points. - // - STDMETHOD(SetSegmentAtEnd)( - _In_ CONST D2D1_INK_BEZIER_SEGMENT *segment - ) PURE; - - - // - // Returns the number of segments the ink is composed of. - // - STDMETHOD_(UINT32, GetSegmentCount)( - ) CONST PURE; - - - // - // Retrieve the segments stored in the ink. - // - STDMETHOD(GetSegments)( - UINT32 startSegment, - _Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) CONST PURE; - - - // - // Construct a geometric representation of the ink. - // - STDMETHOD(StreamAsGeometry)( - _In_opt_ ID2D1InkStyle *inkStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST PURE; - - - // - // Retrieve the bounds of the ink, with an optional applied transform. - // - STDMETHOD(GetBounds)( - _In_opt_ ID2D1InkStyle *inkStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ D2D1_RECT_F *bounds - ) CONST PURE; - - - // - // Resets the ink start point. - // - COM_DECLSPEC_NOTHROW - void - SetStartPoint( - CONST D2D1_INK_POINT &startPoint - ) - { - SetStartPoint(&startPoint); - } - - COM_DECLSPEC_NOTHROW - HRESULT - SetSegmentAtEnd( - CONST D2D1_INK_BEZIER_SEGMENT &segment - ) - { - return SetSegmentAtEnd(&segment); - } - - - // - // Construct a geometric representation of the ink. - // - COM_DECLSPEC_NOTHROW - HRESULT - StreamAsGeometry( - _In_opt_ ID2D1InkStyle *inkStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return StreamAsGeometry(inkStyle,&worldTransform, flatteningTolerance, geometrySink); - } - - - // - // Construct a geometric representation of the ink. - // - COM_DECLSPEC_NOTHROW - HRESULT - StreamAsGeometry( - _In_opt_ ID2D1InkStyle *inkStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return StreamAsGeometry(inkStyle,worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } - - - // - // Construct a geometric representation of the ink. - // - COM_DECLSPEC_NOTHROW - HRESULT - StreamAsGeometry( - _In_opt_ ID2D1InkStyle *inkStyle, - CONST D2D1_MATRIX_3X2_F &worldTransform, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) CONST - { - return StreamAsGeometry(inkStyle,&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink); - } -}; // interface ID2D1Ink - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GradientMesh -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("f292e401-c050-4cde-83d7-04962d3b23c2") ID2D1GradientMesh : public ID2D1Resource -{ - - - // - // Returns the number of patches of the gradient mesh. - // - STDMETHOD_(UINT32, GetPatchCount)( - ) CONST PURE; - - - // - // Retrieve the patch data stored in the gradient mesh. - // - STDMETHOD(GetPatches)( - UINT32 startIndex, - _Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches, - UINT32 patchesCount - ) CONST PURE; -}; // interface ID2D1GradientMesh - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1ImageSource -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("c9b664e5-74a1-4378-9ac2-eefc37a3f4d8") ID2D1ImageSource : public ID2D1Image -{ - - STDMETHOD(OfferResources)( - ) PURE; - - STDMETHOD(TryReclaimResources)( - _Out_ BOOL *resourcesDiscarded - ) PURE; -}; // interface ID2D1ImageSource - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1ImageSourceFromWic -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("77395441-1c8f-4555-8683-f50dab0fe792") ID2D1ImageSourceFromWic : public ID2D1ImageSource -{ - - STDMETHOD(EnsureCached)( - _In_opt_ CONST D2D1_RECT_U *rectangleToFill - ) PURE; - - STDMETHOD(TrimCache)( - _In_opt_ CONST D2D1_RECT_U *rectangleToPreserve - ) PURE; - - STDMETHOD_(void, GetSource)( - _Outptr_result_maybenull_ IWICBitmapSource **wicBitmapSource - ) CONST PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - EnsureCached( - CONST D2D1_RECT_U &rectangleToFill - ) - { - return EnsureCached(&rectangleToFill); - } - - COM_DECLSPEC_NOTHROW - HRESULT - TrimCache( - CONST D2D1_RECT_U &rectangleToPreserve - ) - { - return TrimCache(&rectangleToPreserve); - } -}; // interface ID2D1ImageSourceFromWic - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1TransformedImageSource -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("7f1f79e5-2796-416c-8f55-700f911445e5") ID2D1TransformedImageSource : public ID2D1Image -{ - - STDMETHOD_(void, GetSource)( - _Outptr_result_maybenull_ ID2D1ImageSource **imageSource - ) CONST PURE; - - STDMETHOD_(void, GetProperties)( - _Out_ D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties - ) CONST PURE; -}; // interface ID2D1TransformedImageSource - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1LookupTable3D -// -// Synopsis: -// A container for 3D lookup table data that can be passed to the LookupTable3D -// effect. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("53dd9855-a3b0-4d5b-82e1-26e25c5e5797") ID2D1LookupTable3D : public ID2D1Resource -{ -}; // interface ID2D1LookupTable3D - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1DeviceContext2 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("394ea6a3-0c34-4321-950b-6ca20f0be6c7") ID2D1DeviceContext2 : public ID2D1DeviceContext1 -{ - - STDMETHOD(CreateInk)( - _In_ CONST D2D1_INK_POINT *startPoint, - _Outptr_ ID2D1Ink **ink - ) PURE; - - - // - // Creates a new ink style. - // - STDMETHOD(CreateInkStyle)( - _In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties, - _Outptr_ ID2D1InkStyle **inkStyle - ) PURE; - - STDMETHOD(CreateGradientMesh)( - _In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches, - UINT32 patchesCount, - _Outptr_ ID2D1GradientMesh **gradientMesh - ) PURE; - - STDMETHOD(CreateImageSourceFromWic)( - _In_ IWICBitmapSource *wicBitmapSource, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions, - D2D1_ALPHA_MODE alphaMode, - _Outptr_ ID2D1ImageSourceFromWic **imageSource - ) PURE; - - - // - // Creates a 3D lookup table for mapping a 3-channel input to a 3-channel output. - // The table data must be provided in 4-channel format. - // - STDMETHOD(CreateLookupTable3D)( - D2D1_BUFFER_PRECISION precision, - _In_reads_(3) CONST UINT32 *extents, - _In_reads_(dataCount) CONST BYTE *data, - UINT32 dataCount, - _In_reads_(2) CONST UINT32 *strides, - _Outptr_ ID2D1LookupTable3D **lookupTable - ) PURE; - - STDMETHOD(CreateImageSourceFromDxgi)( - _In_reads_(surfaceCount) IDXGISurface **surfaces, - UINT32 surfaceCount, - DXGI_COLOR_SPACE_TYPE colorSpace, - D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options, - _Outptr_ ID2D1ImageSource **imageSource - ) PURE; - - - // - // Retrieves the world-space bounds in DIPs of the gradient mesh using the device - // context DPI. - // - STDMETHOD(GetGradientMeshWorldBounds)( - _In_ ID2D1GradientMesh *gradientMesh, - _Out_ D2D1_RECT_F *pBounds - ) CONST PURE; - - STDMETHOD_(void, DrawInk)( - _In_ ID2D1Ink *ink, - _In_ ID2D1Brush *brush, - _In_opt_ ID2D1InkStyle *inkStyle - ) PURE; - - STDMETHOD_(void, DrawGradientMesh)( - _In_ ID2D1GradientMesh *gradientMesh - ) PURE; - - - // - // Draw a metafile to the device context. - // - STDMETHOD_(void, DrawGdiMetafile)( - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) PURE; - - using ID2D1DeviceContext::DrawGdiMetafile; - - - // - // Creates an image source which shares resources with an original. - // - STDMETHOD(CreateTransformedImageSource)( - _In_ ID2D1ImageSource *imageSource, - _In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties, - _Outptr_ ID2D1TransformedImageSource **transformedImageSource - ) PURE; - - COM_DECLSPEC_NOTHROW - HRESULT - CreateInk( - CONST D2D1_INK_POINT &startPoint, - _Outptr_ ID2D1Ink **ink - ) - { - return CreateInk(&startPoint, ink); - } - - - // - // Creates a new ink style. - // - COM_DECLSPEC_NOTHROW - HRESULT - CreateInkStyle( - CONST D2D1_INK_STYLE_PROPERTIES &inkStyleProperties, - _Outptr_ ID2D1InkStyle **inkStyle - ) - { - return CreateInkStyle(&inkStyleProperties, inkStyle); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateImageSourceFromWic( - _In_ IWICBitmapSource *wicBitmapSource, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions, - _Outptr_ ID2D1ImageSourceFromWic **imageSource - ) - { - return CreateImageSourceFromWic(wicBitmapSource, loadingOptions, D2D1_ALPHA_MODE_UNKNOWN, imageSource); - } - - COM_DECLSPEC_NOTHROW - HRESULT - CreateImageSourceFromWic( - _In_ IWICBitmapSource *wicBitmapSource, - _Outptr_ ID2D1ImageSourceFromWic **imageSource - ) - { - return CreateImageSourceFromWic(wicBitmapSource, D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE, D2D1_ALPHA_MODE_UNKNOWN, imageSource); - } - - - // - // Draw a metafile to the device context. - // - COM_DECLSPEC_NOTHROW - void - DrawGdiMetafile( - _In_ ID2D1GdiMetafile *gdiMetafile, - CONST D2D1_RECT_F &destinationRectangle, - CONST D2D1_RECT_F &sourceRectangle - ) - { - return DrawGdiMetafile(gdiMetafile, &destinationRectangle, &sourceRectangle); - } - - - // - // Draw a metafile to the device context. - // - COM_DECLSPEC_NOTHROW - void - DrawGdiMetafile( - _In_ ID2D1GdiMetafile *gdiMetafile, - CONST D2D1_RECT_F &destinationRectangle, - _In_ CONST D2D1_RECT_F *sourceRectangle = NULL - ) - { - return DrawGdiMetafile(gdiMetafile, &destinationRectangle, sourceRectangle); - } -}; // interface ID2D1DeviceContext2 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Device2 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("a44472e1-8dfb-4e60-8492-6e2861c9ca8b") ID2D1Device2 : public ID2D1Device1 -{ - - - // - // Creates a new device context with no initially assigned target. - // - STDMETHOD(CreateDeviceContext)( - D2D1_DEVICE_CONTEXT_OPTIONS options, - _Outptr_ ID2D1DeviceContext2 **deviceContext2 - ) PURE; - - using ID2D1Device1::CreateDeviceContext; - - using ID2D1Device::CreateDeviceContext; - - - // - // Flush all device contexts that reference a given bitmap. - // - STDMETHOD_(void, FlushDeviceContexts)( - _In_ ID2D1Bitmap *bitmap - ) PURE; - - - // - // Returns the DXGI device associated with this D2D device. - // - STDMETHOD(GetDxgiDevice)( - _Outptr_ IDXGIDevice **dxgiDevice - ) PURE; -}; // interface ID2D1Device2 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1Factory3 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("0869759f-4f00-413f-b03e-2bda45404d0f") ID2D1Factory3 : public ID2D1Factory2 -{ - - - // - // This creates a new Direct2D device from the given IDXGIDevice. - // - STDMETHOD(CreateDevice)( - _In_ IDXGIDevice *dxgiDevice, - _Outptr_ ID2D1Device2 **d2dDevice2 - ) PURE; - - using ID2D1Factory2::CreateDevice; - - using ID2D1Factory1::CreateDevice; -}; // interface ID2D1Factory3 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1CommandSink2 -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("3bab440e-417e-47df-a2e2-bc0be6a00916") ID2D1CommandSink2 : public ID2D1CommandSink1 -{ - - STDMETHOD(DrawInk)( - _In_ ID2D1Ink *ink, - _In_ ID2D1Brush *brush, - _In_opt_ ID2D1InkStyle *inkStyle - ) PURE; - - STDMETHOD(DrawGradientMesh)( - _In_ ID2D1GradientMesh *gradientMesh - ) PURE; - - STDMETHOD(DrawGdiMetafile)( - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle - ) PURE; - - using ID2D1CommandSink::DrawGdiMetafile; -}; // interface ID2D1CommandSink2 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GdiMetafile1 -// -// Synopsis: -// Interface encapsulating a GDI/GDI+ metafile. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("2e69f9e8-dd3f-4bf9-95ba-c04f49d788df") ID2D1GdiMetafile1 : public ID2D1GdiMetafile -{ - - - // - // Returns the DPI reported by the metafile. - // - STDMETHOD(GetDpi)( - _Out_ FLOAT *dpiX, - _Out_ FLOAT *dpiY - ) PURE; - - - // - // Gets the bounds (in DIPs) of the metafile (as specified by the frame rect - // declared in the metafile). - // - STDMETHOD(GetSourceBounds)( - _Out_ D2D1_RECT_F *bounds - ) PURE; -}; // interface ID2D1GdiMetafile1 - - - -//+----------------------------------------------------------------------------- -// -// Interface: -// ID2D1GdiMetafileSink1 -// -// Synopsis: -// User-implementable interface for introspecting on a metafile. -// -//------------------------------------------------------------------------------ -interface DX_DECLARE_INTERFACE("fd0ecb6b-91e6-411e-8655-395e760f91b4") ID2D1GdiMetafileSink1 : public ID2D1GdiMetafileSink -{ - - - // - // Callback for examining a metafile record. - // - STDMETHOD(ProcessRecord)( - DWORD recordType, - _In_opt_ CONST void *recordData, - DWORD recordDataSize, - UINT32 flags - ) PURE; - - using ID2D1GdiMetafileSink::ProcessRecord; -}; // interface ID2D1GdiMetafileSink1 - - - -#endif - - -EXTERN_C CONST IID IID_ID2D1InkStyle; -EXTERN_C CONST IID IID_ID2D1Ink; -EXTERN_C CONST IID IID_ID2D1GradientMesh; -EXTERN_C CONST IID IID_ID2D1ImageSource; -EXTERN_C CONST IID IID_ID2D1ImageSourceFromWic; -EXTERN_C CONST IID IID_ID2D1TransformedImageSource; -EXTERN_C CONST IID IID_ID2D1LookupTable3D; -EXTERN_C CONST IID IID_ID2D1DeviceContext2; -EXTERN_C CONST IID IID_ID2D1Device2; -EXTERN_C CONST IID IID_ID2D1Factory3; -EXTERN_C CONST IID IID_ID2D1CommandSink2; -EXTERN_C CONST IID IID_ID2D1GdiMetafile1; -EXTERN_C CONST IID IID_ID2D1GdiMetafileSink1; - - -#ifdef D2D_USE_C_DEFINITIONS - - -typedef interface ID2D1InkStyle ID2D1InkStyle; - -typedef struct ID2D1InkStyleVtbl -{ - - ID2D1ResourceVtbl Base; - - - STDMETHOD_(void, SetNibTransform)( - ID2D1InkStyle *This, - _In_ CONST D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD_(void, GetNibTransform)( - ID2D1InkStyle *This, - _Out_ D2D1_MATRIX_3X2_F *transform - ) PURE; - - STDMETHOD_(void, SetNibShape)( - ID2D1InkStyle *This, - D2D1_INK_NIB_SHAPE nibShape - ) PURE; - - STDMETHOD_(D2D1_INK_NIB_SHAPE, GetNibShape)( - ID2D1InkStyle *This - ) PURE; -} ID2D1InkStyleVtbl; - -interface ID2D1InkStyle -{ - CONST struct ID2D1InkStyleVtbl *lpVtbl; -}; - - -#define ID2D1InkStyle_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1InkStyle_AddRef(This) \ - ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1InkStyle_Release(This) \ - ((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) - -#define ID2D1InkStyle_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1InkStyle_SetNibTransform(This, transform) \ - ((This)->lpVtbl->SetNibTransform(This, transform)) - -#define ID2D1InkStyle_GetNibTransform(This, transform) \ - ((This)->lpVtbl->GetNibTransform(This, transform)) - -#define ID2D1InkStyle_SetNibShape(This, nibShape) \ - ((This)->lpVtbl->SetNibShape(This, nibShape)) - -#define ID2D1InkStyle_GetNibShape(This) \ - ((This)->lpVtbl->GetNibShape(This)) - -typedef interface ID2D1Ink ID2D1Ink; - -typedef struct ID2D1InkVtbl -{ - - ID2D1ResourceVtbl Base; - - - STDMETHOD_(void, SetStartPoint)( - ID2D1Ink *This, - _In_ CONST D2D1_INK_POINT *startPoint - ) PURE; - - STDMETHOD_(D2D1_INK_POINT, GetStartPoint)( - ID2D1Ink *This - ) PURE; - - STDMETHOD(AddSegments)( - ID2D1Ink *This, - _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) PURE; - - STDMETHOD(RemoveSegmentsAtEnd)( - ID2D1Ink *This, - UINT32 segmentsCount - ) PURE; - - STDMETHOD(SetSegments)( - ID2D1Ink *This, - UINT32 startSegment, - _In_reads_(segmentsCount) CONST D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) PURE; - - STDMETHOD(SetSegmentAtEnd)( - ID2D1Ink *This, - _In_ CONST D2D1_INK_BEZIER_SEGMENT *segment - ) PURE; - - STDMETHOD_(UINT32, GetSegmentCount)( - ID2D1Ink *This - ) PURE; - - STDMETHOD(GetSegments)( - ID2D1Ink *This, - UINT32 startSegment, - _Out_writes_(segmentsCount) D2D1_INK_BEZIER_SEGMENT *segments, - UINT32 segmentsCount - ) PURE; - - STDMETHOD(StreamAsGeometry)( - ID2D1Ink *This, - _In_opt_ ID2D1InkStyle *inkStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - FLOAT flatteningTolerance, - _In_ ID2D1SimplifiedGeometrySink *geometrySink - ) PURE; - - STDMETHOD(GetBounds)( - ID2D1Ink *This, - _In_opt_ ID2D1InkStyle *inkStyle, - _In_opt_ CONST D2D1_MATRIX_3X2_F *worldTransform, - _Out_ D2D1_RECT_F *bounds - ) PURE; -} ID2D1InkVtbl; - -interface ID2D1Ink -{ - CONST struct ID2D1InkVtbl *lpVtbl; -}; - - -#define ID2D1Ink_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1Ink_AddRef(This) \ - ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1Ink_Release(This) \ - ((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) - -#define ID2D1Ink_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1Ink_SetStartPoint(This, startPoint) \ - ((This)->lpVtbl->SetStartPoint(This, startPoint)) - -#define ID2D1Ink_GetStartPoint(This) \ - ((This)->lpVtbl->GetStartPoint(This)) - -#define ID2D1Ink_AddSegments(This, segments, segmentsCount) \ - ((This)->lpVtbl->AddSegments(This, segments, segmentsCount)) - -#define ID2D1Ink_RemoveSegmentsAtEnd(This, segmentsCount) \ - ((This)->lpVtbl->RemoveSegmentsAtEnd(This, segmentsCount)) - -#define ID2D1Ink_SetSegments(This, startSegment, segments, segmentsCount) \ - ((This)->lpVtbl->SetSegments(This, startSegment, segments, segmentsCount)) - -#define ID2D1Ink_SetSegmentAtEnd(This, segment) \ - ((This)->lpVtbl->SetSegmentAtEnd(This, segment)) - -#define ID2D1Ink_GetSegmentCount(This) \ - ((This)->lpVtbl->GetSegmentCount(This)) - -#define ID2D1Ink_GetSegments(This, startSegment, segments, segmentsCount) \ - ((This)->lpVtbl->GetSegments(This, startSegment, segments, segmentsCount)) - -#define ID2D1Ink_StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink) \ - ((This)->lpVtbl->StreamAsGeometry(This, inkStyle, worldTransform, flatteningTolerance, geometrySink)) - -#define ID2D1Ink_GetBounds(This, inkStyle, worldTransform, bounds) \ - ((This)->lpVtbl->GetBounds(This, inkStyle, worldTransform, bounds)) - -typedef interface ID2D1GradientMesh ID2D1GradientMesh; - -typedef struct ID2D1GradientMeshVtbl -{ - - ID2D1ResourceVtbl Base; - - - STDMETHOD_(UINT32, GetPatchCount)( - ID2D1GradientMesh *This - ) PURE; - - STDMETHOD(GetPatches)( - ID2D1GradientMesh *This, - UINT32 startIndex, - _Out_writes_(patchesCount) D2D1_GRADIENT_MESH_PATCH *patches, - UINT32 patchesCount - ) PURE; -} ID2D1GradientMeshVtbl; - -interface ID2D1GradientMesh -{ - CONST struct ID2D1GradientMeshVtbl *lpVtbl; -}; - - -#define ID2D1GradientMesh_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1GradientMesh_AddRef(This) \ - ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1GradientMesh_Release(This) \ - ((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) - -#define ID2D1GradientMesh_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1GradientMesh_GetPatchCount(This) \ - ((This)->lpVtbl->GetPatchCount(This)) - -#define ID2D1GradientMesh_GetPatches(This, startIndex, patches, patchesCount) \ - ((This)->lpVtbl->GetPatches(This, startIndex, patches, patchesCount)) - -typedef interface ID2D1ImageSource ID2D1ImageSource; - -typedef struct ID2D1ImageSourceVtbl -{ - - ID2D1ImageVtbl Base; - - - STDMETHOD(OfferResources)( - ID2D1ImageSource *This - ) PURE; - - STDMETHOD(TryReclaimResources)( - ID2D1ImageSource *This, - _Out_ BOOL *resourcesDiscarded - ) PURE; -} ID2D1ImageSourceVtbl; - -interface ID2D1ImageSource -{ - CONST struct ID2D1ImageSourceVtbl *lpVtbl; -}; - - -#define ID2D1ImageSource_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1ImageSource_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1ImageSource_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1ImageSource_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1ImageSource_OfferResources(This) \ - ((This)->lpVtbl->OfferResources(This)) - -#define ID2D1ImageSource_TryReclaimResources(This, resourcesDiscarded) \ - ((This)->lpVtbl->TryReclaimResources(This, resourcesDiscarded)) - -typedef interface ID2D1ImageSourceFromWic ID2D1ImageSourceFromWic; - -typedef struct ID2D1ImageSourceFromWicVtbl -{ - - ID2D1ImageSourceVtbl Base; - - - STDMETHOD(EnsureCached)( - ID2D1ImageSourceFromWic *This, - _In_opt_ CONST D2D1_RECT_U *rectangleToFill - ) PURE; - - STDMETHOD(TrimCache)( - ID2D1ImageSourceFromWic *This, - _In_opt_ CONST D2D1_RECT_U *rectangleToPreserve - ) PURE; - - STDMETHOD_(void, GetSource)( - ID2D1ImageSourceFromWic *This, - _Outptr_result_maybenull_ IWICBitmapSource **wicBitmapSource - ) PURE; -} ID2D1ImageSourceFromWicVtbl; - -interface ID2D1ImageSourceFromWic -{ - CONST struct ID2D1ImageSourceFromWicVtbl *lpVtbl; -}; - - -#define ID2D1ImageSourceFromWic_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1ImageSourceFromWic_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1ImageSourceFromWic_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1ImageSourceFromWic_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1ImageSourceFromWic_OfferResources(This) \ - ((This)->lpVtbl->Base.OfferResources((ID2D1ImageSource *)This)) - -#define ID2D1ImageSourceFromWic_TryReclaimResources(This, resourcesDiscarded) \ - ((This)->lpVtbl->Base.TryReclaimResources((ID2D1ImageSource *)This, resourcesDiscarded)) - -#define ID2D1ImageSourceFromWic_EnsureCached(This, rectangleToFill) \ - ((This)->lpVtbl->EnsureCached(This, rectangleToFill)) - -#define ID2D1ImageSourceFromWic_TrimCache(This, rectangleToPreserve) \ - ((This)->lpVtbl->TrimCache(This, rectangleToPreserve)) - -#define ID2D1ImageSourceFromWic_GetSource(This, wicBitmapSource) \ - ((This)->lpVtbl->GetSource(This, wicBitmapSource)) - -typedef interface ID2D1TransformedImageSource ID2D1TransformedImageSource; - -typedef struct ID2D1TransformedImageSourceVtbl -{ - - ID2D1ImageVtbl Base; - - - STDMETHOD_(void, GetSource)( - ID2D1TransformedImageSource *This, - _Outptr_result_maybenull_ ID2D1ImageSource **imageSource - ) PURE; - - STDMETHOD_(void, GetProperties)( - ID2D1TransformedImageSource *This, - _Out_ D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties - ) PURE; -} ID2D1TransformedImageSourceVtbl; - -interface ID2D1TransformedImageSource -{ - CONST struct ID2D1TransformedImageSourceVtbl *lpVtbl; -}; - - -#define ID2D1TransformedImageSource_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1TransformedImageSource_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1TransformedImageSource_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1TransformedImageSource_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1TransformedImageSource_GetSource(This, imageSource) \ - ((This)->lpVtbl->GetSource(This, imageSource)) - -#define ID2D1TransformedImageSource_GetProperties(This, properties) \ - ((This)->lpVtbl->GetProperties(This, properties)) - -typedef interface ID2D1LookupTable3D ID2D1LookupTable3D; - -typedef struct ID2D1LookupTable3DVtbl -{ - - ID2D1ResourceVtbl Base; - -} ID2D1LookupTable3DVtbl; - -interface ID2D1LookupTable3D -{ - CONST struct ID2D1LookupTable3DVtbl *lpVtbl; -}; - - -#define ID2D1LookupTable3D_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1LookupTable3D_AddRef(This) \ - ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1LookupTable3D_Release(This) \ - ((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) - -#define ID2D1LookupTable3D_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.GetFactory((ID2D1Resource *)This, factory)) - -typedef interface ID2D1DeviceContext2 ID2D1DeviceContext2; - -typedef struct ID2D1DeviceContext2Vtbl -{ - - ID2D1DeviceContext1Vtbl Base; - - - STDMETHOD(CreateInk)( - ID2D1DeviceContext2 *This, - _In_ CONST D2D1_INK_POINT *startPoint, - _Outptr_ ID2D1Ink **ink - ) PURE; - - STDMETHOD(CreateInkStyle)( - ID2D1DeviceContext2 *This, - _In_opt_ CONST D2D1_INK_STYLE_PROPERTIES *inkStyleProperties, - _Outptr_ ID2D1InkStyle **inkStyle - ) PURE; - - STDMETHOD(CreateGradientMesh)( - ID2D1DeviceContext2 *This, - _In_reads_(patchesCount) CONST D2D1_GRADIENT_MESH_PATCH *patches, - UINT32 patchesCount, - _Outptr_ ID2D1GradientMesh **gradientMesh - ) PURE; - - STDMETHOD(CreateImageSourceFromWic)( - ID2D1DeviceContext2 *This, - _In_ IWICBitmapSource *wicBitmapSource, - D2D1_IMAGE_SOURCE_LOADING_OPTIONS loadingOptions, - D2D1_ALPHA_MODE alphaMode, - _Outptr_ ID2D1ImageSourceFromWic **imageSource - ) PURE; - - STDMETHOD(CreateLookupTable3D)( - ID2D1DeviceContext2 *This, - D2D1_BUFFER_PRECISION precision, - _In_reads_(3) CONST UINT32 *extents, - _In_reads_(dataCount) CONST BYTE *data, - UINT32 dataCount, - _In_reads_(2) CONST UINT32 *strides, - _Outptr_ ID2D1LookupTable3D **lookupTable - ) PURE; - - STDMETHOD(CreateImageSourceFromDxgi)( - ID2D1DeviceContext2 *This, - _In_reads_(surfaceCount) IDXGISurface **surfaces, - UINT32 surfaceCount, - DXGI_COLOR_SPACE_TYPE colorSpace, - D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options, - _Outptr_ ID2D1ImageSource **imageSource - ) PURE; - - STDMETHOD(GetGradientMeshWorldBounds)( - ID2D1DeviceContext2 *This, - _In_ ID2D1GradientMesh *gradientMesh, - _Out_ D2D1_RECT_F *pBounds - ) PURE; - - STDMETHOD_(void, DrawInk)( - ID2D1DeviceContext2 *This, - _In_ ID2D1Ink *ink, - _In_ ID2D1Brush *brush, - _In_opt_ ID2D1InkStyle *inkStyle - ) PURE; - - STDMETHOD_(void, DrawGradientMesh)( - ID2D1DeviceContext2 *This, - _In_ ID2D1GradientMesh *gradientMesh - ) PURE; - - STDMETHOD_(void, DrawGdiMetafile)( - ID2D1DeviceContext2 *This, - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle - ) PURE; - - STDMETHOD(CreateTransformedImageSource)( - ID2D1DeviceContext2 *This, - _In_ ID2D1ImageSource *imageSource, - _In_ CONST D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *properties, - _Outptr_ ID2D1TransformedImageSource **transformedImageSource - ) PURE; -} ID2D1DeviceContext2Vtbl; - -interface ID2D1DeviceContext2 -{ - CONST struct ID2D1DeviceContext2Vtbl *lpVtbl; -}; - - -#define ID2D1DeviceContext2_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1DeviceContext2_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1DeviceContext2_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1DeviceContext2_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1DeviceContext2_CreateSharedBitmap(This, riid, data, bitmapProperties, bitmap) \ - ((This)->lpVtbl->Base.Base.Base.CreateSharedBitmap((ID2D1RenderTarget *)This, riid, data, bitmapProperties, bitmap)) - -#define ID2D1DeviceContext2_CreateSolidColorBrush(This, color, brushProperties, solidColorBrush) \ - ((This)->lpVtbl->Base.Base.Base.CreateSolidColorBrush((ID2D1RenderTarget *)This, color, brushProperties, solidColorBrush)) - -#define ID2D1DeviceContext2_CreateLinearGradientBrush(This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush) \ - ((This)->lpVtbl->Base.Base.Base.CreateLinearGradientBrush((ID2D1RenderTarget *)This, linearGradientBrushProperties, brushProperties, gradientStopCollection, linearGradientBrush)) - -#define ID2D1DeviceContext2_CreateRadialGradientBrush(This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush) \ - ((This)->lpVtbl->Base.Base.Base.CreateRadialGradientBrush((ID2D1RenderTarget *)This, radialGradientBrushProperties, brushProperties, gradientStopCollection, radialGradientBrush)) - -#define ID2D1DeviceContext2_CreateCompatibleRenderTarget(This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget) \ - ((This)->lpVtbl->Base.Base.Base.CreateCompatibleRenderTarget((ID2D1RenderTarget *)This, desiredSize, desiredPixelSize, desiredFormat, options, bitmapRenderTarget)) - -#define ID2D1DeviceContext2_CreateLayer(This, size, layer) \ - ((This)->lpVtbl->Base.Base.Base.CreateLayer((ID2D1RenderTarget *)This, size, layer)) - -#define ID2D1DeviceContext2_CreateMesh(This, mesh) \ - ((This)->lpVtbl->Base.Base.Base.CreateMesh((ID2D1RenderTarget *)This, mesh)) - -#define ID2D1DeviceContext2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.Base.DrawLine((ID2D1RenderTarget *)This, point0, point1, brush, strokeWidth, strokeStyle)) - -#define ID2D1DeviceContext2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.Base.DrawRectangle((ID2D1RenderTarget *)This, rect, brush, strokeWidth, strokeStyle)) - -#define ID2D1DeviceContext2_FillRectangle(This, rect, brush) \ - ((This)->lpVtbl->Base.Base.Base.FillRectangle((ID2D1RenderTarget *)This, rect, brush)) - -#define ID2D1DeviceContext2_DrawRoundedRectangle(This, roundedRect, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.Base.DrawRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush, strokeWidth, strokeStyle)) - -#define ID2D1DeviceContext2_FillRoundedRectangle(This, roundedRect, brush) \ - ((This)->lpVtbl->Base.Base.Base.FillRoundedRectangle((ID2D1RenderTarget *)This, roundedRect, brush)) - -#define ID2D1DeviceContext2_DrawEllipse(This, ellipse, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.Base.DrawEllipse((ID2D1RenderTarget *)This, ellipse, brush, strokeWidth, strokeStyle)) - -#define ID2D1DeviceContext2_FillEllipse(This, ellipse, brush) \ - ((This)->lpVtbl->Base.Base.Base.FillEllipse((ID2D1RenderTarget *)This, ellipse, brush)) - -#define ID2D1DeviceContext2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.Base.DrawGeometry((ID2D1RenderTarget *)This, geometry, brush, strokeWidth, strokeStyle)) - -#define ID2D1DeviceContext2_FillGeometry(This, geometry, brush, opacityBrush) \ - ((This)->lpVtbl->Base.Base.Base.FillGeometry((ID2D1RenderTarget *)This, geometry, brush, opacityBrush)) - -#define ID2D1DeviceContext2_FillMesh(This, mesh, brush) \ - ((This)->lpVtbl->Base.Base.Base.FillMesh((ID2D1RenderTarget *)This, mesh, brush)) - -#define ID2D1DeviceContext2_DrawText(This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode) \ - ((This)->lpVtbl->Base.Base.Base.DrawText((ID2D1RenderTarget *)This, string, stringLength, textFormat, layoutRect, defaultForegroundBrush, options, measuringMode)) - -#define ID2D1DeviceContext2_DrawTextLayout(This, origin, textLayout, defaultForegroundBrush, options) \ - ((This)->lpVtbl->Base.Base.Base.DrawTextLayout((ID2D1RenderTarget *)This, origin, textLayout, defaultForegroundBrush, options)) - -#define ID2D1DeviceContext2_SetTransform(This, transform) \ - ((This)->lpVtbl->Base.Base.Base.SetTransform((ID2D1RenderTarget *)This, transform)) - -#define ID2D1DeviceContext2_GetTransform(This, transform) \ - ((This)->lpVtbl->Base.Base.Base.GetTransform((ID2D1RenderTarget *)This, transform)) - -#define ID2D1DeviceContext2_SetAntialiasMode(This, antialiasMode) \ - ((This)->lpVtbl->Base.Base.Base.SetAntialiasMode((ID2D1RenderTarget *)This, antialiasMode)) - -#define ID2D1DeviceContext2_GetAntialiasMode(This) \ - ((This)->lpVtbl->Base.Base.Base.GetAntialiasMode((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_SetTextAntialiasMode(This, textAntialiasMode) \ - ((This)->lpVtbl->Base.Base.Base.SetTextAntialiasMode((ID2D1RenderTarget *)This, textAntialiasMode)) - -#define ID2D1DeviceContext2_GetTextAntialiasMode(This) \ - ((This)->lpVtbl->Base.Base.Base.GetTextAntialiasMode((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_SetTextRenderingParams(This, textRenderingParams) \ - ((This)->lpVtbl->Base.Base.Base.SetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams)) - -#define ID2D1DeviceContext2_GetTextRenderingParams(This, textRenderingParams) \ - ((This)->lpVtbl->Base.Base.Base.GetTextRenderingParams((ID2D1RenderTarget *)This, textRenderingParams)) - -#define ID2D1DeviceContext2_SetTags(This, tag1, tag2) \ - ((This)->lpVtbl->Base.Base.Base.SetTags((ID2D1RenderTarget *)This, tag1, tag2)) - -#define ID2D1DeviceContext2_GetTags(This, tag1, tag2) \ - ((This)->lpVtbl->Base.Base.Base.GetTags((ID2D1RenderTarget *)This, tag1, tag2)) - -#define ID2D1DeviceContext2_PopLayer(This) \ - ((This)->lpVtbl->Base.Base.Base.PopLayer((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_Flush(This, tag1, tag2) \ - ((This)->lpVtbl->Base.Base.Base.Flush((ID2D1RenderTarget *)This, tag1, tag2)) - -#define ID2D1DeviceContext2_SaveDrawingState(This, drawingStateBlock) \ - ((This)->lpVtbl->Base.Base.Base.SaveDrawingState((ID2D1RenderTarget *)This, drawingStateBlock)) - -#define ID2D1DeviceContext2_RestoreDrawingState(This, drawingStateBlock) \ - ((This)->lpVtbl->Base.Base.Base.RestoreDrawingState((ID2D1RenderTarget *)This, drawingStateBlock)) - -#define ID2D1DeviceContext2_PushAxisAlignedClip(This, clipRect, antialiasMode) \ - ((This)->lpVtbl->Base.Base.Base.PushAxisAlignedClip((ID2D1RenderTarget *)This, clipRect, antialiasMode)) - -#define ID2D1DeviceContext2_PopAxisAlignedClip(This) \ - ((This)->lpVtbl->Base.Base.Base.PopAxisAlignedClip((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_Clear(This, clearColor) \ - ((This)->lpVtbl->Base.Base.Base.Clear((ID2D1RenderTarget *)This, clearColor)) - -#define ID2D1DeviceContext2_BeginDraw(This) \ - ((This)->lpVtbl->Base.Base.Base.BeginDraw((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_EndDraw(This, tag1, tag2) \ - ((This)->lpVtbl->Base.Base.Base.EndDraw((ID2D1RenderTarget *)This, tag1, tag2)) - -#define ID2D1DeviceContext2_GetPixelFormat(This) \ - ((This)->lpVtbl->Base.Base.Base.GetPixelFormat((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_SetDpi(This, dpiX, dpiY) \ - ((This)->lpVtbl->Base.Base.Base.SetDpi((ID2D1RenderTarget *)This, dpiX, dpiY)) - -#define ID2D1DeviceContext2_GetDpi(This, dpiX, dpiY) \ - ((This)->lpVtbl->Base.Base.Base.GetDpi((ID2D1RenderTarget *)This, dpiX, dpiY)) - -#define ID2D1DeviceContext2_GetSize(This) \ - ((This)->lpVtbl->Base.Base.Base.GetSize((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_GetPixelSize(This) \ - ((This)->lpVtbl->Base.Base.Base.GetPixelSize((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_GetMaximumBitmapSize(This) \ - ((This)->lpVtbl->Base.Base.Base.GetMaximumBitmapSize((ID2D1RenderTarget *)This)) - -#define ID2D1DeviceContext2_IsSupported(This, renderTargetProperties) \ - ((This)->lpVtbl->Base.Base.Base.IsSupported((ID2D1RenderTarget *)This, renderTargetProperties)) - -#define ID2D1DeviceContext2_CreateBitmap(This, size, sourceData, pitch, bitmapProperties, bitmap) \ - ((This)->lpVtbl->Base.Base.CreateBitmap((ID2D1DeviceContext *)This, size, sourceData, pitch, bitmapProperties, bitmap)) - -#define ID2D1DeviceContext2_CreateBitmapFromWicBitmap(This, wicBitmapSource, bitmapProperties, bitmap) \ - ((This)->lpVtbl->Base.Base.CreateBitmapFromWicBitmap((ID2D1DeviceContext *)This, wicBitmapSource, bitmapProperties, bitmap)) - -#define ID2D1DeviceContext2_CreateColorContext(This, space, profile, profileSize, colorContext) \ - ((This)->lpVtbl->Base.Base.CreateColorContext((ID2D1DeviceContext *)This, space, profile, profileSize, colorContext)) - -#define ID2D1DeviceContext2_CreateColorContextFromFilename(This, filename, colorContext) \ - ((This)->lpVtbl->Base.Base.CreateColorContextFromFilename((ID2D1DeviceContext *)This, filename, colorContext)) - -#define ID2D1DeviceContext2_CreateColorContextFromWicColorContext(This, wicColorContext, colorContext) \ - ((This)->lpVtbl->Base.Base.CreateColorContextFromWicColorContext((ID2D1DeviceContext *)This, wicColorContext, colorContext)) - -#define ID2D1DeviceContext2_CreateBitmapFromDxgiSurface(This, surface, bitmapProperties, bitmap) \ - ((This)->lpVtbl->Base.Base.CreateBitmapFromDxgiSurface((ID2D1DeviceContext *)This, surface, bitmapProperties, bitmap)) - -#define ID2D1DeviceContext2_CreateEffect(This, effectId, effect) \ - ((This)->lpVtbl->Base.Base.CreateEffect((ID2D1DeviceContext *)This, effectId, effect)) - -#define ID2D1DeviceContext2_CreateGradientStopCollection(This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1) \ - ((This)->lpVtbl->Base.Base.CreateGradientStopCollection((ID2D1DeviceContext *)This, straightAlphaGradientStops, straightAlphaGradientStopsCount, preInterpolationSpace, postInterpolationSpace, bufferPrecision, extendMode, colorInterpolationMode, gradientStopCollection1)) - -#define ID2D1DeviceContext2_CreateImageBrush(This, image, imageBrushProperties, brushProperties, imageBrush) \ - ((This)->lpVtbl->Base.Base.CreateImageBrush((ID2D1DeviceContext *)This, image, imageBrushProperties, brushProperties, imageBrush)) - -#define ID2D1DeviceContext2_CreateBitmapBrush(This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush) \ - ((This)->lpVtbl->Base.Base.CreateBitmapBrush((ID2D1DeviceContext *)This, bitmap, bitmapBrushProperties, brushProperties, bitmapBrush)) - -#define ID2D1DeviceContext2_CreateCommandList(This, commandList) \ - ((This)->lpVtbl->Base.Base.CreateCommandList((ID2D1DeviceContext *)This, commandList)) - -#define ID2D1DeviceContext2_IsDxgiFormatSupported(This, format) \ - ((This)->lpVtbl->Base.Base.IsDxgiFormatSupported((ID2D1DeviceContext *)This, format)) - -#define ID2D1DeviceContext2_IsBufferPrecisionSupported(This, bufferPrecision) \ - ((This)->lpVtbl->Base.Base.IsBufferPrecisionSupported((ID2D1DeviceContext *)This, bufferPrecision)) - -#define ID2D1DeviceContext2_GetImageLocalBounds(This, image, localBounds) \ - ((This)->lpVtbl->Base.Base.GetImageLocalBounds((ID2D1DeviceContext *)This, image, localBounds)) - -#define ID2D1DeviceContext2_GetImageWorldBounds(This, image, worldBounds) \ - ((This)->lpVtbl->Base.Base.GetImageWorldBounds((ID2D1DeviceContext *)This, image, worldBounds)) - -#define ID2D1DeviceContext2_GetGlyphRunWorldBounds(This, baselineOrigin, glyphRun, measuringMode, bounds) \ - ((This)->lpVtbl->Base.Base.GetGlyphRunWorldBounds((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, measuringMode, bounds)) - -#define ID2D1DeviceContext2_GetDevice(This, device) \ - ((This)->lpVtbl->Base.Base.GetDevice((ID2D1DeviceContext *)This, device)) - -#define ID2D1DeviceContext2_SetTarget(This, image) \ - ((This)->lpVtbl->Base.Base.SetTarget((ID2D1DeviceContext *)This, image)) - -#define ID2D1DeviceContext2_GetTarget(This, image) \ - ((This)->lpVtbl->Base.Base.GetTarget((ID2D1DeviceContext *)This, image)) - -#define ID2D1DeviceContext2_SetRenderingControls(This, renderingControls) \ - ((This)->lpVtbl->Base.Base.SetRenderingControls((ID2D1DeviceContext *)This, renderingControls)) - -#define ID2D1DeviceContext2_GetRenderingControls(This, renderingControls) \ - ((This)->lpVtbl->Base.Base.GetRenderingControls((ID2D1DeviceContext *)This, renderingControls)) - -#define ID2D1DeviceContext2_SetPrimitiveBlend(This, primitiveBlend) \ - ((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1DeviceContext *)This, primitiveBlend)) - -#define ID2D1DeviceContext2_GetPrimitiveBlend(This) \ - ((This)->lpVtbl->Base.Base.GetPrimitiveBlend((ID2D1DeviceContext *)This)) - -#define ID2D1DeviceContext2_SetUnitMode(This, unitMode) \ - ((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1DeviceContext *)This, unitMode)) - -#define ID2D1DeviceContext2_GetUnitMode(This) \ - ((This)->lpVtbl->Base.Base.GetUnitMode((ID2D1DeviceContext *)This)) - -#define ID2D1DeviceContext2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \ - ((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1DeviceContext *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode)) - -#define ID2D1DeviceContext2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \ - ((This)->lpVtbl->Base.Base.DrawImage((ID2D1DeviceContext *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode)) - -#define ID2D1DeviceContext2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \ - ((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1DeviceContext *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform)) - -#define ID2D1DeviceContext2_PushLayer(This, layerParameters, layer) \ - ((This)->lpVtbl->Base.Base.PushLayer((ID2D1DeviceContext *)This, layerParameters, layer)) - -#define ID2D1DeviceContext2_InvalidateEffectInputRectangle(This, effect, input, inputRectangle) \ - ((This)->lpVtbl->Base.Base.InvalidateEffectInputRectangle((ID2D1DeviceContext *)This, effect, input, inputRectangle)) - -#define ID2D1DeviceContext2_GetEffectInvalidRectangleCount(This, effect, rectangleCount) \ - ((This)->lpVtbl->Base.Base.GetEffectInvalidRectangleCount((ID2D1DeviceContext *)This, effect, rectangleCount)) - -#define ID2D1DeviceContext2_GetEffectInvalidRectangles(This, effect, rectangles, rectanglesCount) \ - ((This)->lpVtbl->Base.Base.GetEffectInvalidRectangles((ID2D1DeviceContext *)This, effect, rectangles, rectanglesCount)) - -#define ID2D1DeviceContext2_GetEffectRequiredInputRectangles(This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount) \ - ((This)->lpVtbl->Base.Base.GetEffectRequiredInputRectangles((ID2D1DeviceContext *)This, renderEffect, renderImageRectangle, inputDescriptions, requiredInputRects, inputCount)) - -#define ID2D1DeviceContext2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \ - ((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1DeviceContext *)This, opacityMask, brush, destinationRectangle, sourceRectangle)) - -#define ID2D1DeviceContext2_CreateFilledGeometryRealization(This, geometry, flatteningTolerance, geometryRealization) \ - ((This)->lpVtbl->Base.CreateFilledGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, geometryRealization)) - -#define ID2D1DeviceContext2_CreateStrokedGeometryRealization(This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization) \ - ((This)->lpVtbl->Base.CreateStrokedGeometryRealization((ID2D1DeviceContext1 *)This, geometry, flatteningTolerance, strokeWidth, strokeStyle, geometryRealization)) - -#define ID2D1DeviceContext2_DrawGeometryRealization(This, geometryRealization, brush) \ - ((This)->lpVtbl->Base.DrawGeometryRealization((ID2D1DeviceContext1 *)This, geometryRealization, brush)) - -#define ID2D1DeviceContext2_CreateInk(This, startPoint, ink) \ - ((This)->lpVtbl->CreateInk(This, startPoint, ink)) - -#define ID2D1DeviceContext2_CreateInkStyle(This, inkStyleProperties, inkStyle) \ - ((This)->lpVtbl->CreateInkStyle(This, inkStyleProperties, inkStyle)) - -#define ID2D1DeviceContext2_CreateGradientMesh(This, patches, patchesCount, gradientMesh) \ - ((This)->lpVtbl->CreateGradientMesh(This, patches, patchesCount, gradientMesh)) - -#define ID2D1DeviceContext2_CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource) \ - ((This)->lpVtbl->CreateImageSourceFromWic(This, wicBitmapSource, loadingOptions, alphaMode, imageSource)) - -#define ID2D1DeviceContext2_CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable) \ - ((This)->lpVtbl->CreateLookupTable3D(This, precision, extents, data, dataCount, strides, lookupTable)) - -#define ID2D1DeviceContext2_CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource) \ - ((This)->lpVtbl->CreateImageSourceFromDxgi(This, surfaces, surfaceCount, colorSpace, options, imageSource)) - -#define ID2D1DeviceContext2_GetGradientMeshWorldBounds(This, gradientMesh, pBounds) \ - ((This)->lpVtbl->GetGradientMeshWorldBounds(This, gradientMesh, pBounds)) - -#define ID2D1DeviceContext2_DrawInk(This, ink, brush, inkStyle) \ - ((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle)) - -#define ID2D1DeviceContext2_DrawGradientMesh(This, gradientMesh) \ - ((This)->lpVtbl->DrawGradientMesh(This, gradientMesh)) - -#define ID2D1DeviceContext2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \ - ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle)) - -#define ID2D1DeviceContext2_CreateTransformedImageSource(This, imageSource, properties, transformedImageSource) \ - ((This)->lpVtbl->CreateTransformedImageSource(This, imageSource, properties, transformedImageSource)) - -typedef interface ID2D1Device2 ID2D1Device2; - -typedef struct ID2D1Device2Vtbl -{ - - ID2D1Device1Vtbl Base; - - - STDMETHOD(CreateDeviceContext)( - ID2D1Device2 *This, - D2D1_DEVICE_CONTEXT_OPTIONS options, - _Outptr_ ID2D1DeviceContext2 **deviceContext2 - ) PURE; - - STDMETHOD_(void, FlushDeviceContexts)( - ID2D1Device2 *This, - _In_ ID2D1Bitmap *bitmap - ) PURE; - - STDMETHOD(GetDxgiDevice)( - ID2D1Device2 *This, - _Outptr_ IDXGIDevice **dxgiDevice - ) PURE; -} ID2D1Device2Vtbl; - -interface ID2D1Device2 -{ - CONST struct ID2D1Device2Vtbl *lpVtbl; -}; - - -#define ID2D1Device2_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1Device2_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1Device2_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1Device2_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1Device2_CreatePrintControl(This, wicFactory, documentTarget, printControlProperties, printControl) \ - ((This)->lpVtbl->Base.Base.CreatePrintControl((ID2D1Device *)This, wicFactory, documentTarget, printControlProperties, printControl)) - -#define ID2D1Device2_SetMaximumTextureMemory(This, maximumInBytes) \ - ((This)->lpVtbl->Base.Base.SetMaximumTextureMemory((ID2D1Device *)This, maximumInBytes)) - -#define ID2D1Device2_GetMaximumTextureMemory(This) \ - ((This)->lpVtbl->Base.Base.GetMaximumTextureMemory((ID2D1Device *)This)) - -#define ID2D1Device2_ClearResources(This, millisecondsSinceUse) \ - ((This)->lpVtbl->Base.Base.ClearResources((ID2D1Device *)This, millisecondsSinceUse)) - -#define ID2D1Device2_GetRenderingPriority(This) \ - ((This)->lpVtbl->Base.GetRenderingPriority((ID2D1Device1 *)This)) - -#define ID2D1Device2_SetRenderingPriority(This, renderingPriority) \ - ((This)->lpVtbl->Base.SetRenderingPriority((ID2D1Device1 *)This, renderingPriority)) - -#define ID2D1Device2_CreateDeviceContext(This, options, deviceContext2) \ - ((This)->lpVtbl->CreateDeviceContext(This, options, deviceContext2)) - -#define ID2D1Device2_FlushDeviceContexts(This, bitmap) \ - ((This)->lpVtbl->FlushDeviceContexts(This, bitmap)) - -#define ID2D1Device2_GetDxgiDevice(This, dxgiDevice) \ - ((This)->lpVtbl->GetDxgiDevice(This, dxgiDevice)) - -typedef interface ID2D1Factory3 ID2D1Factory3; - -typedef struct ID2D1Factory3Vtbl -{ - - ID2D1Factory2Vtbl Base; - - - STDMETHOD(CreateDevice)( - ID2D1Factory3 *This, - _In_ IDXGIDevice *dxgiDevice, - _Outptr_ ID2D1Device2 **d2dDevice2 - ) PURE; -} ID2D1Factory3Vtbl; - -interface ID2D1Factory3 -{ - CONST struct ID2D1Factory3Vtbl *lpVtbl; -}; - - -#define ID2D1Factory3_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1Factory3_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1Factory3_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1Factory3_ReloadSystemMetrics(This) \ - ((This)->lpVtbl->Base.Base.Base.ReloadSystemMetrics((ID2D1Factory *)This)) - -#define ID2D1Factory3_GetDesktopDpi(This, dpiX, dpiY) \ - ((This)->lpVtbl->Base.Base.Base.GetDesktopDpi((ID2D1Factory *)This, dpiX, dpiY)) - -#define ID2D1Factory3_CreateRectangleGeometry(This, rectangle, rectangleGeometry) \ - ((This)->lpVtbl->Base.Base.Base.CreateRectangleGeometry((ID2D1Factory *)This, rectangle, rectangleGeometry)) - -#define ID2D1Factory3_CreateRoundedRectangleGeometry(This, roundedRectangle, roundedRectangleGeometry) \ - ((This)->lpVtbl->Base.Base.Base.CreateRoundedRectangleGeometry((ID2D1Factory *)This, roundedRectangle, roundedRectangleGeometry)) - -#define ID2D1Factory3_CreateEllipseGeometry(This, ellipse, ellipseGeometry) \ - ((This)->lpVtbl->Base.Base.Base.CreateEllipseGeometry((ID2D1Factory *)This, ellipse, ellipseGeometry)) - -#define ID2D1Factory3_CreateGeometryGroup(This, fillMode, geometries, geometriesCount, geometryGroup) \ - ((This)->lpVtbl->Base.Base.Base.CreateGeometryGroup((ID2D1Factory *)This, fillMode, geometries, geometriesCount, geometryGroup)) - -#define ID2D1Factory3_CreateTransformedGeometry(This, sourceGeometry, transform, transformedGeometry) \ - ((This)->lpVtbl->Base.Base.Base.CreateTransformedGeometry((ID2D1Factory *)This, sourceGeometry, transform, transformedGeometry)) - -#define ID2D1Factory3_CreateWicBitmapRenderTarget(This, target, renderTargetProperties, renderTarget) \ - ((This)->lpVtbl->Base.Base.Base.CreateWicBitmapRenderTarget((ID2D1Factory *)This, target, renderTargetProperties, renderTarget)) - -#define ID2D1Factory3_CreateHwndRenderTarget(This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget) \ - ((This)->lpVtbl->Base.Base.Base.CreateHwndRenderTarget((ID2D1Factory *)This, renderTargetProperties, hwndRenderTargetProperties, hwndRenderTarget)) - -#define ID2D1Factory3_CreateDxgiSurfaceRenderTarget(This, dxgiSurface, renderTargetProperties, renderTarget) \ - ((This)->lpVtbl->Base.Base.Base.CreateDxgiSurfaceRenderTarget((ID2D1Factory *)This, dxgiSurface, renderTargetProperties, renderTarget)) - -#define ID2D1Factory3_CreateDCRenderTarget(This, renderTargetProperties, dcRenderTarget) \ - ((This)->lpVtbl->Base.Base.Base.CreateDCRenderTarget((ID2D1Factory *)This, renderTargetProperties, dcRenderTarget)) - -#define ID2D1Factory3_CreateStrokeStyle(This, strokeStyleProperties, dashes, dashesCount, strokeStyle) \ - ((This)->lpVtbl->Base.Base.CreateStrokeStyle((ID2D1Factory1 *)This, strokeStyleProperties, dashes, dashesCount, strokeStyle)) - -#define ID2D1Factory3_CreatePathGeometry(This, pathGeometry) \ - ((This)->lpVtbl->Base.Base.CreatePathGeometry((ID2D1Factory1 *)This, pathGeometry)) - -#define ID2D1Factory3_CreateDrawingStateBlock(This, drawingStateDescription, textRenderingParams, drawingStateBlock) \ - ((This)->lpVtbl->Base.Base.CreateDrawingStateBlock((ID2D1Factory1 *)This, drawingStateDescription, textRenderingParams, drawingStateBlock)) - -#define ID2D1Factory3_CreateGdiMetafile(This, metafileStream, metafile) \ - ((This)->lpVtbl->Base.Base.CreateGdiMetafile((ID2D1Factory1 *)This, metafileStream, metafile)) - -#define ID2D1Factory3_RegisterEffectFromStream(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \ - ((This)->lpVtbl->Base.Base.RegisterEffectFromStream((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory)) - -#define ID2D1Factory3_RegisterEffectFromString(This, classId, propertyXml, bindings, bindingsCount, effectFactory) \ - ((This)->lpVtbl->Base.Base.RegisterEffectFromString((ID2D1Factory1 *)This, classId, propertyXml, bindings, bindingsCount, effectFactory)) - -#define ID2D1Factory3_UnregisterEffect(This, classId) \ - ((This)->lpVtbl->Base.Base.UnregisterEffect((ID2D1Factory1 *)This, classId)) - -#define ID2D1Factory3_GetRegisteredEffects(This, effects, effectsCount, effectsReturned, effectsRegistered) \ - ((This)->lpVtbl->Base.Base.GetRegisteredEffects((ID2D1Factory1 *)This, effects, effectsCount, effectsReturned, effectsRegistered)) - -#define ID2D1Factory3_GetEffectProperties(This, effectId, properties) \ - ((This)->lpVtbl->Base.Base.GetEffectProperties((ID2D1Factory1 *)This, effectId, properties)) - -#define ID2D1Factory3_CreateDevice(This, dxgiDevice, d2dDevice2) \ - ((This)->lpVtbl->CreateDevice(This, dxgiDevice, d2dDevice2)) - -typedef interface ID2D1CommandSink2 ID2D1CommandSink2; - -typedef struct ID2D1CommandSink2Vtbl -{ - - ID2D1CommandSink1Vtbl Base; - - - STDMETHOD(DrawInk)( - ID2D1CommandSink2 *This, - _In_ ID2D1Ink *ink, - _In_ ID2D1Brush *brush, - _In_opt_ ID2D1InkStyle *inkStyle - ) PURE; - - STDMETHOD(DrawGradientMesh)( - ID2D1CommandSink2 *This, - _In_ ID2D1GradientMesh *gradientMesh - ) PURE; - - STDMETHOD(DrawGdiMetafile)( - ID2D1CommandSink2 *This, - _In_ ID2D1GdiMetafile *gdiMetafile, - _In_opt_ CONST D2D1_RECT_F *destinationRectangle, - _In_opt_ CONST D2D1_RECT_F *sourceRectangle - ) PURE; -} ID2D1CommandSink2Vtbl; - -interface ID2D1CommandSink2 -{ - CONST struct ID2D1CommandSink2Vtbl *lpVtbl; -}; - - -#define ID2D1CommandSink2_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1CommandSink2_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1CommandSink2_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1CommandSink2_BeginDraw(This) \ - ((This)->lpVtbl->Base.Base.BeginDraw((ID2D1CommandSink *)This)) - -#define ID2D1CommandSink2_EndDraw(This) \ - ((This)->lpVtbl->Base.Base.EndDraw((ID2D1CommandSink *)This)) - -#define ID2D1CommandSink2_SetAntialiasMode(This, antialiasMode) \ - ((This)->lpVtbl->Base.Base.SetAntialiasMode((ID2D1CommandSink *)This, antialiasMode)) - -#define ID2D1CommandSink2_SetTags(This, tag1, tag2) \ - ((This)->lpVtbl->Base.Base.SetTags((ID2D1CommandSink *)This, tag1, tag2)) - -#define ID2D1CommandSink2_SetTextAntialiasMode(This, textAntialiasMode) \ - ((This)->lpVtbl->Base.Base.SetTextAntialiasMode((ID2D1CommandSink *)This, textAntialiasMode)) - -#define ID2D1CommandSink2_SetTextRenderingParams(This, textRenderingParams) \ - ((This)->lpVtbl->Base.Base.SetTextRenderingParams((ID2D1CommandSink *)This, textRenderingParams)) - -#define ID2D1CommandSink2_SetTransform(This, transform) \ - ((This)->lpVtbl->Base.Base.SetTransform((ID2D1CommandSink *)This, transform)) - -#define ID2D1CommandSink2_SetPrimitiveBlend(This, primitiveBlend) \ - ((This)->lpVtbl->Base.Base.SetPrimitiveBlend((ID2D1CommandSink *)This, primitiveBlend)) - -#define ID2D1CommandSink2_SetUnitMode(This, unitMode) \ - ((This)->lpVtbl->Base.Base.SetUnitMode((ID2D1CommandSink *)This, unitMode)) - -#define ID2D1CommandSink2_Clear(This, color) \ - ((This)->lpVtbl->Base.Base.Clear((ID2D1CommandSink *)This, color)) - -#define ID2D1CommandSink2_DrawGlyphRun(This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode) \ - ((This)->lpVtbl->Base.Base.DrawGlyphRun((ID2D1CommandSink *)This, baselineOrigin, glyphRun, glyphRunDescription, foregroundBrush, measuringMode)) - -#define ID2D1CommandSink2_DrawLine(This, point0, point1, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.DrawLine((ID2D1CommandSink *)This, point0, point1, brush, strokeWidth, strokeStyle)) - -#define ID2D1CommandSink2_DrawGeometry(This, geometry, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.DrawGeometry((ID2D1CommandSink *)This, geometry, brush, strokeWidth, strokeStyle)) - -#define ID2D1CommandSink2_DrawRectangle(This, rect, brush, strokeWidth, strokeStyle) \ - ((This)->lpVtbl->Base.Base.DrawRectangle((ID2D1CommandSink *)This, rect, brush, strokeWidth, strokeStyle)) - -#define ID2D1CommandSink2_DrawBitmap(This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform) \ - ((This)->lpVtbl->Base.Base.DrawBitmap((ID2D1CommandSink *)This, bitmap, destinationRectangle, opacity, interpolationMode, sourceRectangle, perspectiveTransform)) - -#define ID2D1CommandSink2_DrawImage(This, image, targetOffset, imageRectangle, interpolationMode, compositeMode) \ - ((This)->lpVtbl->Base.Base.DrawImage((ID2D1CommandSink *)This, image, targetOffset, imageRectangle, interpolationMode, compositeMode)) - -#define ID2D1CommandSink2_FillMesh(This, mesh, brush) \ - ((This)->lpVtbl->Base.Base.FillMesh((ID2D1CommandSink *)This, mesh, brush)) - -#define ID2D1CommandSink2_FillOpacityMask(This, opacityMask, brush, destinationRectangle, sourceRectangle) \ - ((This)->lpVtbl->Base.Base.FillOpacityMask((ID2D1CommandSink *)This, opacityMask, brush, destinationRectangle, sourceRectangle)) - -#define ID2D1CommandSink2_FillGeometry(This, geometry, brush, opacityBrush) \ - ((This)->lpVtbl->Base.Base.FillGeometry((ID2D1CommandSink *)This, geometry, brush, opacityBrush)) - -#define ID2D1CommandSink2_FillRectangle(This, rect, brush) \ - ((This)->lpVtbl->Base.Base.FillRectangle((ID2D1CommandSink *)This, rect, brush)) - -#define ID2D1CommandSink2_PushAxisAlignedClip(This, clipRect, antialiasMode) \ - ((This)->lpVtbl->Base.Base.PushAxisAlignedClip((ID2D1CommandSink *)This, clipRect, antialiasMode)) - -#define ID2D1CommandSink2_PushLayer(This, layerParameters1, layer) \ - ((This)->lpVtbl->Base.Base.PushLayer((ID2D1CommandSink *)This, layerParameters1, layer)) - -#define ID2D1CommandSink2_PopAxisAlignedClip(This) \ - ((This)->lpVtbl->Base.Base.PopAxisAlignedClip((ID2D1CommandSink *)This)) - -#define ID2D1CommandSink2_PopLayer(This) \ - ((This)->lpVtbl->Base.Base.PopLayer((ID2D1CommandSink *)This)) - -#define ID2D1CommandSink2_SetPrimitiveBlend1(This, primitiveBlend) \ - ((This)->lpVtbl->Base.SetPrimitiveBlend1((ID2D1CommandSink1 *)This, primitiveBlend)) - -#define ID2D1CommandSink2_DrawInk(This, ink, brush, inkStyle) \ - ((This)->lpVtbl->DrawInk(This, ink, brush, inkStyle)) - -#define ID2D1CommandSink2_DrawGradientMesh(This, gradientMesh) \ - ((This)->lpVtbl->DrawGradientMesh(This, gradientMesh)) - -#define ID2D1CommandSink2_DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle) \ - ((This)->lpVtbl->DrawGdiMetafile(This, gdiMetafile, destinationRectangle, sourceRectangle)) - -typedef interface ID2D1GdiMetafile1 ID2D1GdiMetafile1; - -typedef struct ID2D1GdiMetafile1Vtbl -{ - - ID2D1GdiMetafileVtbl Base; - - - STDMETHOD(GetDpi)( - ID2D1GdiMetafile1 *This, - _Out_ FLOAT *dpiX, - _Out_ FLOAT *dpiY - ) PURE; - - STDMETHOD(GetSourceBounds)( - ID2D1GdiMetafile1 *This, - _Out_ D2D1_RECT_F *bounds - ) PURE; -} ID2D1GdiMetafile1Vtbl; - -interface ID2D1GdiMetafile1 -{ - CONST struct ID2D1GdiMetafile1Vtbl *lpVtbl; -}; - - -#define ID2D1GdiMetafile1_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1GdiMetafile1_AddRef(This) \ - ((This)->lpVtbl->Base.Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1GdiMetafile1_Release(This) \ - ((This)->lpVtbl->Base.Base.Base.Release((IUnknown *)This)) - -#define ID2D1GdiMetafile1_GetFactory(This, factory) \ - ((This)->lpVtbl->Base.Base.GetFactory((ID2D1Resource *)This, factory)) - -#define ID2D1GdiMetafile1_Stream(This, sink) \ - ((This)->lpVtbl->Base.Stream((ID2D1GdiMetafile *)This, sink)) - -#define ID2D1GdiMetafile1_GetBounds(This, bounds) \ - ((This)->lpVtbl->Base.GetBounds((ID2D1GdiMetafile *)This, bounds)) - -#define ID2D1GdiMetafile1_GetDpi(This, dpiX, dpiY) \ - ((This)->lpVtbl->GetDpi(This, dpiX, dpiY)) - -#define ID2D1GdiMetafile1_GetSourceBounds(This, bounds) \ - ((This)->lpVtbl->GetSourceBounds(This, bounds)) - -typedef interface ID2D1GdiMetafileSink1 ID2D1GdiMetafileSink1; - -typedef struct ID2D1GdiMetafileSink1Vtbl -{ - - ID2D1GdiMetafileSinkVtbl Base; - - - STDMETHOD(ProcessRecord)( - ID2D1GdiMetafileSink1 *This, - DWORD recordType, - _In_opt_ CONST void *recordData, - DWORD recordDataSize, - UINT32 flags - ) PURE; -} ID2D1GdiMetafileSink1Vtbl; - -interface ID2D1GdiMetafileSink1 -{ - CONST struct ID2D1GdiMetafileSink1Vtbl *lpVtbl; -}; - - -#define ID2D1GdiMetafileSink1_QueryInterface(This, riid, ppv) \ - ((This)->lpVtbl->Base.Base.QueryInterface((IUnknown *)This, riid, ppv)) - -#define ID2D1GdiMetafileSink1_AddRef(This) \ - ((This)->lpVtbl->Base.Base.AddRef((IUnknown *)This)) - -#define ID2D1GdiMetafileSink1_Release(This) \ - ((This)->lpVtbl->Base.Base.Release((IUnknown *)This)) - -#define ID2D1GdiMetafileSink1_ProcessRecord(This, recordType, recordData, recordDataSize, flags) \ - ((This)->lpVtbl->ProcessRecord(This, recordType, recordData, recordDataSize, flags)) - - -#endif - - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD - void WINAPI - D2D1GetGradientMeshInteriorPointsFromCoonsPatch( - _In_ CONST D2D1_POINT_2F *pPoint0, - _In_ CONST D2D1_POINT_2F *pPoint1, - _In_ CONST D2D1_POINT_2F *pPoint2, - _In_ CONST D2D1_POINT_2F *pPoint3, - _In_ CONST D2D1_POINT_2F *pPoint4, - _In_ CONST D2D1_POINT_2F *pPoint5, - _In_ CONST D2D1_POINT_2F *pPoint6, - _In_ CONST D2D1_POINT_2F *pPoint7, - _In_ CONST D2D1_POINT_2F *pPoint8, - _In_ CONST D2D1_POINT_2F *pPoint9, - _In_ CONST D2D1_POINT_2F *pPoint10, - _In_ CONST D2D1_POINT_2F *pPoint11, - _Out_ D2D1_POINT_2F *pTensorPoint11, - _Out_ D2D1_POINT_2F *pTensorPoint12, - _Out_ D2D1_POINT_2F *pTensorPoint21, - _Out_ D2D1_POINT_2F *pTensorPoint22 - ); -#endif // #if NTDDI_VERSION >= NTDDI_WINTHRESHOLD - -#ifdef __cplusplus -} -#endif - - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -#include -#endif // #ifndef _D2D1_3_H_ diff --git a/3rdparty/minidx12/Include/d2d1_3helper.h b/3rdparty/minidx12/Include/d2d1_3helper.h deleted file mode 100644 index cb7fdd8699..0000000000 --- a/3rdparty/minidx12/Include/d2d1_3helper.h +++ /dev/null @@ -1,228 +0,0 @@ - -/*=========================================================================*\ - - Copyright (c) Microsoft Corporation. All rights reserved. - - File: D2D1_3Helper.h - - Module Name: D2D - - Description: Helper files over the D2D interfaces and APIs. - -\*=========================================================================*/ - -#ifdef _MSC_VER -#pragma once -#endif // _MSC_VER - -#ifndef _D2D1_3HELPER_H_ -#define _D2D1_3HELPER_H_ - -#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD - -#ifndef _D2D1_3_H_ -#include -#endif // #ifndef _D2D1_3_H_ - -#ifndef D2D_USE_C_DEFINITIONS - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -namespace D2D1 -{ - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_GRADIENT_MESH_PATCH - GradientMeshPatch( - D2D1_POINT_2F point00, - D2D1_POINT_2F point01, - D2D1_POINT_2F point02, - D2D1_POINT_2F point03, - D2D1_POINT_2F point10, - D2D1_POINT_2F point11, - D2D1_POINT_2F point12, - D2D1_POINT_2F point13, - D2D1_POINT_2F point20, - D2D1_POINT_2F point21, - D2D1_POINT_2F point22, - D2D1_POINT_2F point23, - D2D1_POINT_2F point30, - D2D1_POINT_2F point31, - D2D1_POINT_2F point32, - D2D1_POINT_2F point33, - D2D1_COLOR_F color00, - D2D1_COLOR_F color03, - D2D1_COLOR_F color30, - D2D1_COLOR_F color33, - D2D1_PATCH_EDGE_MODE topEdgeMode, - D2D1_PATCH_EDGE_MODE leftEdgeMode, - D2D1_PATCH_EDGE_MODE bottomEdgeMode, - D2D1_PATCH_EDGE_MODE rightEdgeMode - ) - { - D2D1_GRADIENT_MESH_PATCH newPatch; - newPatch.point00 = point00; - newPatch.point01 = point01; - newPatch.point02 = point02; - newPatch.point03 = point03; - newPatch.point10 = point10; - newPatch.point11 = point11; - newPatch.point12 = point12; - newPatch.point13 = point13; - newPatch.point20 = point20; - newPatch.point21 = point21; - newPatch.point22 = point22; - newPatch.point23 = point23; - newPatch.point30 = point30; - newPatch.point31 = point31; - newPatch.point32 = point32; - newPatch.point33 = point33; - - newPatch.color00 = color00; - newPatch.color03 = color03; - newPatch.color30 = color30; - newPatch.color33 = color33; - - newPatch.topEdgeMode = topEdgeMode; - newPatch.leftEdgeMode = leftEdgeMode; - newPatch.bottomEdgeMode = bottomEdgeMode; - newPatch.rightEdgeMode = rightEdgeMode; - - return newPatch; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_GRADIENT_MESH_PATCH - GradientMeshPatchFromCoonsPatch( - D2D1_POINT_2F point0, - D2D1_POINT_2F point1, - D2D1_POINT_2F point2, - D2D1_POINT_2F point3, - D2D1_POINT_2F point4, - D2D1_POINT_2F point5, - D2D1_POINT_2F point6, - D2D1_POINT_2F point7, - D2D1_POINT_2F point8, - D2D1_POINT_2F point9, - D2D1_POINT_2F point10, - D2D1_POINT_2F point11, - D2D1_COLOR_F color0, - D2D1_COLOR_F color1, - D2D1_COLOR_F color2, - D2D1_COLOR_F color3, - D2D1_PATCH_EDGE_MODE topEdgeMode, - D2D1_PATCH_EDGE_MODE leftEdgeMode, - D2D1_PATCH_EDGE_MODE bottomEdgeMode, - D2D1_PATCH_EDGE_MODE rightEdgeMode - ) - { - D2D1_GRADIENT_MESH_PATCH newPatch; - newPatch.point00 = point0; - newPatch.point01 = point1; - newPatch.point02 = point2; - newPatch.point03 = point3; - newPatch.point13 = point4; - newPatch.point23 = point5; - newPatch.point33 = point6; - newPatch.point32 = point7; - newPatch.point31 = point8; - newPatch.point30 = point9; - newPatch.point20 = point10; - newPatch.point10 = point11; - - D2D1GetGradientMeshInteriorPointsFromCoonsPatch( - &point0, - &point1, - &point2, - &point3, - &point4, - &point5, - &point6, - &point7, - &point8, - &point9, - &point10, - &point11, - &newPatch.point11, - &newPatch.point12, - &newPatch.point21, - &newPatch.point22 - ); - - newPatch.color00 = color0; - newPatch.color03 = color1; - newPatch.color33 = color2; - newPatch.color30 = color3; - newPatch.topEdgeMode = topEdgeMode; - newPatch.leftEdgeMode = leftEdgeMode; - newPatch.bottomEdgeMode = bottomEdgeMode; - newPatch.rightEdgeMode = rightEdgeMode; - - return newPatch; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_INK_POINT - InkPoint( - const D2D1_POINT_2F &point, - FLOAT radius - ) - { - D2D1_INK_POINT inkPoint; - - inkPoint.x = point.x; - inkPoint.y = point.y; - inkPoint.radius = radius; - - return inkPoint; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_INK_BEZIER_SEGMENT - InkBezierSegment( - const D2D1_INK_POINT &point1, - const D2D1_INK_POINT &point2, - const D2D1_INK_POINT &point3 - ) - { - D2D1_INK_BEZIER_SEGMENT inkBezierSegment; - - inkBezierSegment.point1 = point1; - inkBezierSegment.point2 = point2; - inkBezierSegment.point3 = point3; - - return inkBezierSegment; - } - - COM_DECLSPEC_NOTHROW - D2D1FORCEINLINE - D2D1_INK_STYLE_PROPERTIES - InkStyleProperties( - D2D1_INK_NIB_SHAPE nibShape, - const D2D1_MATRIX_3X2_F &nibTransform - ) - { - D2D1_INK_STYLE_PROPERTIES inkStyleProperties; - - inkStyleProperties.nibShape = nibShape; - inkStyleProperties.nibTransform = nibTransform; - - return inkStyleProperties; - } -} // namespace D2D1 - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef D2D_USE_C_DEFINITIONS - -#endif // #if NTDDI_VERSION >= NTDDI_WINTHRESHOLD - -#endif // #ifndef _D2D1_HELPER_H_ - diff --git a/3rdparty/minidx12/Include/d2d1effects.h b/3rdparty/minidx12/Include/d2d1effects.h deleted file mode 100644 index fc3a0228b3..0000000000 --- a/3rdparty/minidx12/Include/d2d1effects.h +++ /dev/null @@ -1,2307 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1Effects.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_EFFECTS_ -#define _D2D1_EFFECTS_ - - - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -// Built in effect CLSIDs -DEFINE_GUID(CLSID_D2D12DAffineTransform, 0x6AA97485, 0x6354, 0x4cfc, 0x90, 0x8C, 0xE4, 0xA7, 0x4F, 0x62, 0xC9, 0x6C); -DEFINE_GUID(CLSID_D2D13DPerspectiveTransform, 0xC2844D0B, 0x3D86, 0x46e7, 0x85, 0xBA, 0x52, 0x6C, 0x92, 0x40, 0xF3, 0xFB); -DEFINE_GUID(CLSID_D2D13DTransform, 0xe8467b04, 0xec61, 0x4b8a, 0xb5, 0xde, 0xd4, 0xd7, 0x3d, 0xeb, 0xea, 0x5a); -DEFINE_GUID(CLSID_D2D1ArithmeticComposite, 0xfc151437, 0x049a, 0x4784, 0xa2, 0x4a, 0xf1, 0xc4, 0xda, 0xf2, 0x09, 0x87); -DEFINE_GUID(CLSID_D2D1Atlas, 0x913e2be4, 0xfdcf, 0x4fe2, 0xa5, 0xf0, 0x24, 0x54, 0xf1, 0x4f, 0xf4, 0x8); -DEFINE_GUID(CLSID_D2D1BitmapSource, 0x5fb6c24d, 0xc6dd, 0x4231, 0x94, 0x4, 0x50, 0xf4, 0xd5, 0xc3, 0x25, 0x2d); -DEFINE_GUID(CLSID_D2D1Blend, 0x81c5b77b, 0x13f8, 0x4cdd, 0xad, 0x20, 0xc8, 0x90, 0x54, 0x7a, 0xc6, 0x5d); -DEFINE_GUID(CLSID_D2D1Border, 0x2A2D49C0, 0x4ACF, 0x43c7, 0x8C, 0x6A, 0x7C, 0x4A, 0x27, 0x87, 0x4D, 0x27); -DEFINE_GUID(CLSID_D2D1Brightness, 0x8cea8d1e, 0x77b0, 0x4986, 0xb3, 0xb9, 0x2f, 0x0c, 0x0e, 0xae, 0x78, 0x87); -DEFINE_GUID(CLSID_D2D1ColorManagement, 0x1A28524C, 0xFDD6, 0x4AA4, 0xAE, 0x8F, 0x83, 0x7E, 0xB8, 0x26, 0x7B, 0x37); -DEFINE_GUID(CLSID_D2D1ColorMatrix, 0x921F03D6, 0x641C, 0x47DF, 0x85, 0x2D, 0xB4, 0xBB, 0x61, 0x53, 0xAE, 0x11); -DEFINE_GUID(CLSID_D2D1Composite, 0x48fc9f51, 0xf6ac, 0x48f1, 0x8b, 0x58, 0x3b, 0x28, 0xac, 0x46, 0xf7, 0x6d); -DEFINE_GUID(CLSID_D2D1ConvolveMatrix, 0x407f8c08, 0x5533, 0x4331, 0xa3, 0x41, 0x23, 0xcc, 0x38, 0x77, 0x84, 0x3e); -DEFINE_GUID(CLSID_D2D1Crop, 0xE23F7110, 0x0E9A, 0x4324, 0xAF, 0x47, 0x6A, 0x2C, 0x0C, 0x46, 0xF3, 0x5B); -DEFINE_GUID(CLSID_D2D1DirectionalBlur, 0x174319a6, 0x58e9, 0x49b2, 0xbb, 0x63, 0xca, 0xf2, 0xc8, 0x11, 0xa3, 0xdb); -DEFINE_GUID(CLSID_D2D1DiscreteTransfer, 0x90866fcd, 0x488e, 0x454b, 0xaf, 0x06, 0xe5, 0x04, 0x1b, 0x66, 0xc3, 0x6c); -DEFINE_GUID(CLSID_D2D1DisplacementMap, 0xedc48364, 0x417, 0x4111, 0x94, 0x50, 0x43, 0x84, 0x5f, 0xa9, 0xf8, 0x90); -DEFINE_GUID(CLSID_D2D1DistantDiffuse, 0x3e7efd62, 0xa32d, 0x46d4, 0xa8, 0x3c, 0x52, 0x78, 0x88, 0x9a, 0xc9, 0x54); -DEFINE_GUID(CLSID_D2D1DistantSpecular, 0x428c1ee5, 0x77b8, 0x4450, 0x8a, 0xb5, 0x72, 0x21, 0x9c, 0x21, 0xab, 0xda); -DEFINE_GUID(CLSID_D2D1DpiCompensation, 0x6c26c5c7, 0x34e0, 0x46fc, 0x9c, 0xfd, 0xe5, 0x82, 0x37, 0x6, 0xe2, 0x28); -DEFINE_GUID(CLSID_D2D1Flood, 0x61c23c20, 0xae69, 0x4d8e, 0x94, 0xcf, 0x50, 0x07, 0x8d, 0xf6, 0x38, 0xf2); -DEFINE_GUID(CLSID_D2D1GammaTransfer, 0x409444c4, 0xc419, 0x41a0, 0xb0, 0xc1, 0x8c, 0xd0, 0xc0, 0xa1, 0x8e, 0x42); -DEFINE_GUID(CLSID_D2D1GaussianBlur, 0x1feb6d69, 0x2fe6, 0x4ac9, 0x8c, 0x58, 0x1d, 0x7f, 0x93, 0xe7, 0xa6, 0xa5); -DEFINE_GUID(CLSID_D2D1Scale, 0x9daf9369, 0x3846, 0x4d0e, 0xa4, 0x4e, 0xc, 0x60, 0x79, 0x34, 0xa5, 0xd7); -DEFINE_GUID(CLSID_D2D1Histogram, 0x881db7d0, 0xf7ee, 0x4d4d, 0xa6, 0xd2, 0x46, 0x97, 0xac, 0xc6, 0x6e, 0xe8); -DEFINE_GUID(CLSID_D2D1HueRotation, 0x0f4458ec, 0x4b32, 0x491b, 0x9e, 0x85, 0xbd, 0x73, 0xf4, 0x4d, 0x3e, 0xb6); -DEFINE_GUID(CLSID_D2D1LinearTransfer, 0xad47c8fd, 0x63ef, 0x4acc, 0x9b, 0x51, 0x67, 0x97, 0x9c, 0x03, 0x6c, 0x06); -DEFINE_GUID(CLSID_D2D1LuminanceToAlpha, 0x41251ab7, 0x0beb, 0x46f8, 0x9d, 0xa7, 0x59, 0xe9, 0x3f, 0xcc, 0xe5, 0xde); -DEFINE_GUID(CLSID_D2D1Morphology, 0xeae6c40d, 0x626a, 0x4c2d, 0xbf, 0xcb, 0x39, 0x10, 0x01, 0xab, 0xe2, 0x02); -DEFINE_GUID(CLSID_D2D1OpacityMetadata, 0x6c53006a, 0x4450, 0x4199, 0xaa, 0x5b, 0xad, 0x16, 0x56, 0xfe, 0xce, 0x5e); -DEFINE_GUID(CLSID_D2D1PointDiffuse, 0xb9e303c3, 0xc08c, 0x4f91, 0x8b, 0x7b, 0x38, 0x65, 0x6b, 0xc4, 0x8c, 0x20); -DEFINE_GUID(CLSID_D2D1PointSpecular, 0x09c3ca26, 0x3ae2, 0x4f09, 0x9e, 0xbc, 0xed, 0x38, 0x65, 0xd5, 0x3f, 0x22); -DEFINE_GUID(CLSID_D2D1Premultiply, 0x06eab419, 0xdeed, 0x4018, 0x80, 0xd2, 0x3e, 0x1d, 0x47, 0x1a, 0xde, 0xb2); -DEFINE_GUID(CLSID_D2D1Saturation, 0x5cb2d9cf, 0x327d, 0x459f, 0xa0, 0xce, 0x40, 0xc0, 0xb2, 0x08, 0x6b, 0xf7); -DEFINE_GUID(CLSID_D2D1Shadow, 0xC67EA361, 0x1863, 0x4e69, 0x89, 0xDB, 0x69, 0x5D, 0x3E, 0x9A, 0x5B, 0x6B); -DEFINE_GUID(CLSID_D2D1SpotDiffuse, 0x818a1105, 0x7932, 0x44f4, 0xaa, 0x86, 0x08, 0xae, 0x7b, 0x2f, 0x2c, 0x93); -DEFINE_GUID(CLSID_D2D1SpotSpecular, 0xedae421e, 0x7654, 0x4a37, 0x9d, 0xb8, 0x71, 0xac, 0xc1, 0xbe, 0xb3, 0xc1); -DEFINE_GUID(CLSID_D2D1TableTransfer, 0x5bf818c3, 0x5e43, 0x48cb, 0xb6, 0x31, 0x86, 0x83, 0x96, 0xd6, 0xa1, 0xd4); -DEFINE_GUID(CLSID_D2D1Tile, 0xB0784138, 0x3B76, 0x4bc5, 0xB1, 0x3B, 0x0F, 0xA2, 0xAD, 0x02, 0x65, 0x9F); -DEFINE_GUID(CLSID_D2D1Turbulence, 0xCF2BB6AE, 0x889A, 0x4ad7, 0xBA, 0x29, 0xA2, 0xFD, 0x73, 0x2C, 0x9F, 0xC9); -DEFINE_GUID(CLSID_D2D1UnPremultiply, 0xfb9ac489, 0xad8d, 0x41ed, 0x99, 0x99, 0xbb, 0x63, 0x47, 0xd1, 0x10, 0xf7); - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BORDER_MODE -// -//------------------------------------------------------------------------------ -typedef enum D2D1_BORDER_MODE -{ - D2D1_BORDER_MODE_SOFT = 0, - D2D1_BORDER_MODE_HARD = 1, - D2D1_BORDER_MODE_FORCE_DWORD = 0xffffffff - -} D2D1_BORDER_MODE; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CHANNEL_SELECTOR -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BITMAPSOURCE_ORIENTATION -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_GAUSSIANBLUR_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DIRECTIONALBLUR_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SHADOW_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BLEND_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SATURATION_PROP -// -// Synopsis: -// 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 - -} D2D1_SATURATION_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_HUEROTATION_PROP -// -// Synopsis: -// 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 - -} D2D1_HUEROTATION_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COLORMATRIX_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BITMAPSOURCE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COMPOSITE_PROP -// -// Synopsis: -// 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 - -} D2D1_COMPOSITE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_3DTRANSFORM_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_3DPERSPECTIVETRANSFORM_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_2DAFFINETRANSFORM_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DPICOMPENSATION_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SCALE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_TURBULENCE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DISPLACEMENTMAP_PROP -// -// Synopsis: -// 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 - -} D2D1_DISPLACEMENTMAP_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COLORMANAGEMENT_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_COLORMANAGEMENT_RENDERING_INTENT -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_HISTOGRAM_PROP -// -// Synopsis: -// 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 - -} D2D1_HISTOGRAM_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_POINTSPECULAR_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SPOTSPECULAR_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DISTANTSPECULAR_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_POINTDIFFUSE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SPOTDIFFUSE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DISTANTDIFFUSE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_FLOOD_PROP -// -// Synopsis: -// 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 - -} D2D1_FLOOD_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_LINEARTRANSFER_PROP -// -// Synopsis: -// 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 - -} D2D1_LINEARTRANSFER_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_GAMMATRANSFER_PROP -// -// Synopsis: -// 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 - -} D2D1_GAMMATRANSFER_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_TABLETRANSFER_PROP -// -// Synopsis: -// 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 - -} D2D1_TABLETRANSFER_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_DISCRETETRANSFER_PROP -// -// Synopsis: -// 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 - -} D2D1_DISCRETETRANSFER_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CONVOLVEMATRIX_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BRIGHTNESS_PROP -// -// Synopsis: -// 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 - -} D2D1_BRIGHTNESS_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_ARITHMETICCOMPOSITE_PROP -// -// Synopsis: -// 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 - -} D2D1_ARITHMETICCOMPOSITE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CROP_PROP -// -// Synopsis: -// 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 - -} D2D1_CROP_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BORDER_PROP -// -// Synopsis: -// 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 - -} D2D1_BORDER_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_BORDER_EDGE_MODE -// -//------------------------------------------------------------------------------ -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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_MORPHOLOGY_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_TILE_PROP -// -// Synopsis: -// 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 - -} D2D1_TILE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_ATLAS_PROP -// -// Synopsis: -// 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 - -} D2D1_ATLAS_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_OPACITYMETADATA_PROP -// -// Synopsis: -// 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 - -} D2D1_OPACITYMETADATA_PROP; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef _D2D1_EFFECTS_ diff --git a/3rdparty/minidx12/Include/d2d1effects_1.h b/3rdparty/minidx12/Include/d2d1effects_1.h deleted file mode 100644 index d82d928dc0..0000000000 --- a/3rdparty/minidx12/Include/d2d1effects_1.h +++ /dev/null @@ -1,102 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1Effects_1.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_EFFECTS_1_ -#define _D2D1_EFFECTS_1_ - -#ifndef _D2D1_EFFECTS_ -#include -#endif // #ifndef _D2D1_EFFECTS_ - - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -// 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. -// -//------------------------------------------------------------------------------ -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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// 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; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef _D2D1_EFFECTS_1_ diff --git a/3rdparty/minidx12/Include/d2d1effects_2.h b/3rdparty/minidx12/Include/d2d1effects_2.h deleted file mode 100644 index 45f451d4ff..0000000000 --- a/3rdparty/minidx12/Include/d2d1effects_2.h +++ /dev/null @@ -1,594 +0,0 @@ -//--------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// This file is automatically generated. Please do not edit it directly. -// -// File name: D2D1Effects_2.h -//--------------------------------------------------------------------------- -#ifdef _MSC_VER -#pragma once -#endif // #ifdef _MSC_VER - -#ifndef _D2D1_EFFECTS_2_ -#define _D2D1_EFFECTS_2_ - -#ifndef _D2D1_EFFECTS_1_ -#include -#endif // #ifndef _D2D1_EFFECTS_1_ - - -#include - -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -// Built in effect CLSIDs -DEFINE_GUID(CLSID_D2D1Contrast, 0xb648a78a, 0x0ed5, 0x4f80, 0xa9, 0x4a, 0x8e, 0x82, 0x5a, 0xca, 0x6b, 0x77); -DEFINE_GUID(CLSID_D2D1RgbToHue, 0x23f3e5ec, 0x91e8, 0x4d3d, 0xad, 0x0a, 0xaf, 0xad, 0xc1, 0x00, 0x4a, 0xa1); -DEFINE_GUID(CLSID_D2D1HueToRgb, 0x7b78a6bd, 0x0141, 0x4def, 0x8a, 0x52, 0x63, 0x56, 0xee, 0x0c, 0xbd, 0xd5); -DEFINE_GUID(CLSID_D2D1ChromaKey, 0x74C01F5B, 0x2A0D, 0x408C, 0x88, 0xE2, 0xC7, 0xA3, 0xC7, 0x19, 0x77, 0x42); -DEFINE_GUID(CLSID_D2D1Emboss, 0xb1c5eb2b, 0x0348, 0x43f0, 0x81, 0x07, 0x49, 0x57, 0xca, 0xcb, 0xa2, 0xae); -DEFINE_GUID(CLSID_D2D1Exposure, 0xb56c8cfa, 0xf634, 0x41ee, 0xbe, 0xe0, 0xff, 0xa6, 0x17, 0x10, 0x60, 0x04); -DEFINE_GUID(CLSID_D2D1Grayscale, 0x36DDE0EB, 0x3725, 0x42E0, 0x83, 0x6D, 0x52, 0xFB, 0x20, 0xAE, 0xE6, 0x44); -DEFINE_GUID(CLSID_D2D1Invert, 0xe0c3784d, 0xcb39, 0x4e84, 0xb6, 0xfd, 0x6b, 0x72, 0xf0, 0x81, 0x02, 0x63); -DEFINE_GUID(CLSID_D2D1Posterize, 0x2188945e, 0x33a3, 0x4366, 0xb7, 0xbc, 0x08, 0x6b, 0xd0, 0x2d, 0x08, 0x84); -DEFINE_GUID(CLSID_D2D1Sepia, 0x3a1af410, 0x5f1d, 0x4dbe, 0x84, 0xdf, 0x91, 0x5d, 0xa7, 0x9b, 0x71, 0x53); -DEFINE_GUID(CLSID_D2D1Sharpen, 0xC9B887CB, 0xC5FF, 0x4DC5, 0x97, 0x79, 0x27, 0x3D, 0xCF, 0x41, 0x7C, 0x7D); -DEFINE_GUID(CLSID_D2D1Straighten, 0x4da47b12, 0x79a3, 0x4fb0, 0x82, 0x37, 0xbb, 0xc3, 0xb2, 0xa4, 0xde, 0x08); -DEFINE_GUID(CLSID_D2D1TemperatureTint, 0x89176087, 0x8AF9, 0x4A08, 0xAE, 0xB1, 0x89, 0x5F, 0x38, 0xDB, 0x17, 0x66); -DEFINE_GUID(CLSID_D2D1Vignette, 0xc00c40be, 0x5e67, 0x4ca3, 0x95, 0xb4, 0xf4, 0xb0, 0x2c, 0x11, 0x51, 0x35); -DEFINE_GUID(CLSID_D2D1EdgeDetection, 0xEFF583CA, 0xCB07, 0x4AA9, 0xAC, 0x5D, 0x2C, 0xC4, 0x4C, 0x76, 0x46, 0x0F); -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); - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CONTRAST_PROP -// -// Synopsis: -// 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 - -} D2D1_CONTRAST_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_RGBTOHUE_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_HUETORGB_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_CHROMAKEY_PROP -// -// Synopsis: -// 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 - -} D2D1_CHROMAKEY_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_EMBOSS_PROP -// -// Synopsis: -// 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 - -} D2D1_EMBOSS_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_EXPOSURE_PROP -// -// Synopsis: -// 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 - -} D2D1_EXPOSURE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_POSTERIZE_PROP -// -// Synopsis: -// 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 - -} D2D1_POSTERIZE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SEPIA_PROP -// -// Synopsis: -// 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 - -} D2D1_SEPIA_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_SHARPEN_PROP -// -// Synopsis: -// 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 - -} D2D1_SHARPEN_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_STRAIGHTEN_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_TEMPERATUREANDTINT_PROP -// -// Synopsis: -// 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 - -} D2D1_TEMPERATUREANDTINT_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_VIGNETTE_PROP -// -// Synopsis: -// 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 - -} D2D1_VIGNETTE_PROP; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_EDGEDETECTION_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_HIGHLIGHTSANDSHADOWS_PROP -// -// Synopsis: -// 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 - -} 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; - - -//+----------------------------------------------------------------------------- -// -// Enum: -// D2D1_LOOKUPTABLE3D_PROP -// -// Synopsis: -// 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 - -} D2D1_LOOKUPTABLE3D_PROP; - - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion - -#endif // #ifndef _D2D1_EFFECTS_2_ diff --git a/3rdparty/minidx12/Include/d3d10.h b/3rdparty/minidx12/Include/d3d10.h deleted file mode 100644 index 533ea057ac..0000000000 --- a/3rdparty/minidx12/Include/d3d10.h +++ /dev/null @@ -1,6819 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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 __d3d10_h__ -#define __d3d10_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D10DeviceChild_FWD_DEFINED__ -#define __ID3D10DeviceChild_FWD_DEFINED__ -typedef interface ID3D10DeviceChild ID3D10DeviceChild; - -#endif /* __ID3D10DeviceChild_FWD_DEFINED__ */ - - -#ifndef __ID3D10DepthStencilState_FWD_DEFINED__ -#define __ID3D10DepthStencilState_FWD_DEFINED__ -typedef interface ID3D10DepthStencilState ID3D10DepthStencilState; - -#endif /* __ID3D10DepthStencilState_FWD_DEFINED__ */ - - -#ifndef __ID3D10BlendState_FWD_DEFINED__ -#define __ID3D10BlendState_FWD_DEFINED__ -typedef interface ID3D10BlendState ID3D10BlendState; - -#endif /* __ID3D10BlendState_FWD_DEFINED__ */ - - -#ifndef __ID3D10RasterizerState_FWD_DEFINED__ -#define __ID3D10RasterizerState_FWD_DEFINED__ -typedef interface ID3D10RasterizerState ID3D10RasterizerState; - -#endif /* __ID3D10RasterizerState_FWD_DEFINED__ */ - - -#ifndef __ID3D10Resource_FWD_DEFINED__ -#define __ID3D10Resource_FWD_DEFINED__ -typedef interface ID3D10Resource ID3D10Resource; - -#endif /* __ID3D10Resource_FWD_DEFINED__ */ - - -#ifndef __ID3D10Buffer_FWD_DEFINED__ -#define __ID3D10Buffer_FWD_DEFINED__ -typedef interface ID3D10Buffer ID3D10Buffer; - -#endif /* __ID3D10Buffer_FWD_DEFINED__ */ - - -#ifndef __ID3D10Texture1D_FWD_DEFINED__ -#define __ID3D10Texture1D_FWD_DEFINED__ -typedef interface ID3D10Texture1D ID3D10Texture1D; - -#endif /* __ID3D10Texture1D_FWD_DEFINED__ */ - - -#ifndef __ID3D10Texture2D_FWD_DEFINED__ -#define __ID3D10Texture2D_FWD_DEFINED__ -typedef interface ID3D10Texture2D ID3D10Texture2D; - -#endif /* __ID3D10Texture2D_FWD_DEFINED__ */ - - -#ifndef __ID3D10Texture3D_FWD_DEFINED__ -#define __ID3D10Texture3D_FWD_DEFINED__ -typedef interface ID3D10Texture3D ID3D10Texture3D; - -#endif /* __ID3D10Texture3D_FWD_DEFINED__ */ - - -#ifndef __ID3D10View_FWD_DEFINED__ -#define __ID3D10View_FWD_DEFINED__ -typedef interface ID3D10View ID3D10View; - -#endif /* __ID3D10View_FWD_DEFINED__ */ - - -#ifndef __ID3D10ShaderResourceView_FWD_DEFINED__ -#define __ID3D10ShaderResourceView_FWD_DEFINED__ -typedef interface ID3D10ShaderResourceView ID3D10ShaderResourceView; - -#endif /* __ID3D10ShaderResourceView_FWD_DEFINED__ */ - - -#ifndef __ID3D10RenderTargetView_FWD_DEFINED__ -#define __ID3D10RenderTargetView_FWD_DEFINED__ -typedef interface ID3D10RenderTargetView ID3D10RenderTargetView; - -#endif /* __ID3D10RenderTargetView_FWD_DEFINED__ */ - - -#ifndef __ID3D10DepthStencilView_FWD_DEFINED__ -#define __ID3D10DepthStencilView_FWD_DEFINED__ -typedef interface ID3D10DepthStencilView ID3D10DepthStencilView; - -#endif /* __ID3D10DepthStencilView_FWD_DEFINED__ */ - - -#ifndef __ID3D10VertexShader_FWD_DEFINED__ -#define __ID3D10VertexShader_FWD_DEFINED__ -typedef interface ID3D10VertexShader ID3D10VertexShader; - -#endif /* __ID3D10VertexShader_FWD_DEFINED__ */ - - -#ifndef __ID3D10GeometryShader_FWD_DEFINED__ -#define __ID3D10GeometryShader_FWD_DEFINED__ -typedef interface ID3D10GeometryShader ID3D10GeometryShader; - -#endif /* __ID3D10GeometryShader_FWD_DEFINED__ */ - - -#ifndef __ID3D10PixelShader_FWD_DEFINED__ -#define __ID3D10PixelShader_FWD_DEFINED__ -typedef interface ID3D10PixelShader ID3D10PixelShader; - -#endif /* __ID3D10PixelShader_FWD_DEFINED__ */ - - -#ifndef __ID3D10InputLayout_FWD_DEFINED__ -#define __ID3D10InputLayout_FWD_DEFINED__ -typedef interface ID3D10InputLayout ID3D10InputLayout; - -#endif /* __ID3D10InputLayout_FWD_DEFINED__ */ - - -#ifndef __ID3D10SamplerState_FWD_DEFINED__ -#define __ID3D10SamplerState_FWD_DEFINED__ -typedef interface ID3D10SamplerState ID3D10SamplerState; - -#endif /* __ID3D10SamplerState_FWD_DEFINED__ */ - - -#ifndef __ID3D10Asynchronous_FWD_DEFINED__ -#define __ID3D10Asynchronous_FWD_DEFINED__ -typedef interface ID3D10Asynchronous ID3D10Asynchronous; - -#endif /* __ID3D10Asynchronous_FWD_DEFINED__ */ - - -#ifndef __ID3D10Query_FWD_DEFINED__ -#define __ID3D10Query_FWD_DEFINED__ -typedef interface ID3D10Query ID3D10Query; - -#endif /* __ID3D10Query_FWD_DEFINED__ */ - - -#ifndef __ID3D10Predicate_FWD_DEFINED__ -#define __ID3D10Predicate_FWD_DEFINED__ -typedef interface ID3D10Predicate ID3D10Predicate; - -#endif /* __ID3D10Predicate_FWD_DEFINED__ */ - - -#ifndef __ID3D10Counter_FWD_DEFINED__ -#define __ID3D10Counter_FWD_DEFINED__ -typedef interface ID3D10Counter ID3D10Counter; - -#endif /* __ID3D10Counter_FWD_DEFINED__ */ - - -#ifndef __ID3D10Device_FWD_DEFINED__ -#define __ID3D10Device_FWD_DEFINED__ -typedef interface ID3D10Device ID3D10Device; - -#endif /* __ID3D10Device_FWD_DEFINED__ */ - - -#ifndef __ID3D10Multithread_FWD_DEFINED__ -#define __ID3D10Multithread_FWD_DEFINED__ -typedef interface ID3D10Multithread ID3D10Multithread; - -#endif /* __ID3D10Multithread_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi.h" -#include "d3dcommon.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d10_0000_0000 */ -/* [local] */ - -#ifndef _D3D10_CONSTANTS -#define _D3D10_CONSTANTS -#define D3D10_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) - -#define D3D10_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) - -#define D3D10_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) - -#define D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) - -#define D3D10_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) - -#define D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) - -#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) - -#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) - -#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) - -#define D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) - -#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) - -#define D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) - -#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) - -#define D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) - -#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) - -#define D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) - -#define D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) - -#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) - -#define D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) - -#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) - -#define D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) - -#define D3D10_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) -#define D3D10_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) -#define D3D10_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) -#define D3D10_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) -#define D3D10_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D10_DEFAULT_DEPTH_BIAS ( 0 ) - -#define D3D10_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) -#define D3D10_DEFAULT_MAX_ANISOTROPY ( 16.0f ) -#define D3D10_DEFAULT_MIP_LOD_BIAS ( 0.0f ) -#define D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) - -#define D3D10_DEFAULT_SAMPLE_MASK ( 0xffffffff ) - -#define D3D10_DEFAULT_SCISSOR_ENDX ( 0 ) - -#define D3D10_DEFAULT_SCISSOR_ENDY ( 0 ) - -#define D3D10_DEFAULT_SCISSOR_STARTX ( 0 ) - -#define D3D10_DEFAULT_SCISSOR_STARTY ( 0 ) - -#define D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) -#define D3D10_DEFAULT_STENCIL_READ_MASK ( 0xff ) - -#define D3D10_DEFAULT_STENCIL_REFERENCE ( 0 ) - -#define D3D10_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) - -#define D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) - -#define D3D10_DEFAULT_VIEWPORT_HEIGHT ( 0 ) - -#define D3D10_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) -#define D3D10_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) -#define D3D10_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) - -#define D3D10_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) - -#define D3D10_DEFAULT_VIEWPORT_WIDTH ( 0 ) - -#define D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) -#define D3D10_FLOAT32_MAX ( 3.402823466e+38f ) -#define D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) -#define D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) -#define D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) -#define D3D10_FLOAT_TO_SRGB_OFFSET ( 0.055f ) -#define D3D10_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) -#define D3D10_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) -#define D3D10_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) -#define D3D10_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) -#define D3D10_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) -#define D3D10_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) -#define D3D10_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) -#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) - -#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) - -#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) - -#define D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_GS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_GS_INPUT_REGISTER_COUNT ( 16 ) - -#define D3D10_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D10_GS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_GS_INPUT_REGISTER_VERTICES ( 6 ) - -#define D3D10_GS_OUTPUT_ELEMENTS ( 32 ) - -#define D3D10_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_GS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) - -#define D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) - -#define D3D10_IA_INSTANCE_ID_BIT_COUNT ( 32 ) - -#define D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) - -#define D3D10_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) - -#define D3D10_IA_VERTEX_ID_BIT_COUNT ( 32 ) - -#define D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 16 ) - -#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 64 ) - -#define D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 16 ) - -#define D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) - -#define D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) - -#define D3D10_LINEAR_GAMMA ( 1.0f ) -#define D3D10_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) -#define D3D10_MAX_DEPTH ( 1.0f ) -#define D3D10_MAX_MAXANISOTROPY ( 16 ) - -#define D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) - -#define D3D10_MAX_POSITION_VALUE ( 3.402823466e+34f ) -#define D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) - -#define D3D10_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D10_MIN_DEPTH ( 0.0f ) -#define D3D10_MIN_MAXANISOTROPY ( 0 ) - -#define D3D10_MIP_LOD_BIAS_MAX ( 15.99f ) -#define D3D10_MIP_LOD_BIAS_MIN ( -16.0f ) -#define D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT ( 6 ) - -#define D3D10_MIP_LOD_RANGE_BIT_COUNT ( 8 ) - -#define D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) -#define D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) - -#define D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 13 ) - -#define D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) - -#define D3D10_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) - -#define D3D10_PS_FRONTFACING_FALSE_VALUE ( 0 ) - -#define D3D10_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) - -#define D3D10_PS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_PS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D10_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D10_PS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) -#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) - -#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) - -#define D3D10_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_PS_OUTPUT_REGISTER_COUNT ( 8 ) - -#define D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) -#define D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT ( 4096 ) - -#define D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) - -#define D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT ( 4096 ) - -#define D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 8192 ) - -#define D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) - -#define D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D10_REQ_MAXANISOTROPY ( 16 ) - -#define D3D10_REQ_MIP_LEVELS ( 14 ) - -#define D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) - -#define D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT ( 4096 ) - -#define D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 8192 ) - -#define D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES ( 128 ) - -#define D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP ( 20 ) - -#define D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT ( 4096 ) - -#define D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 512 ) - -#define D3D10_REQ_TEXTURE1D_U_DIMENSION ( 8192 ) - -#define D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 512 ) - -#define D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 8192 ) - -#define D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) - -#define D3D10_REQ_TEXTURECUBE_DIMENSION ( 8192 ) - -#define D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) - -#define D3D10_SHADER_MAJOR_VERSION ( 4 ) - -#define D3D10_SHADER_MINOR_VERSION ( 0 ) - -#define D3D10_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) - -#define D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) - -#define D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) - -#define D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) - -#define D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 256 ) - -#define D3D10_SO_BUFFER_SLOT_COUNT ( 4 ) - -#define D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) - -#define D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER ( 1 ) - -#define D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT ( 64 ) - -#define D3D10_SRGB_GAMMA ( 2.2f ) -#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) -#define D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) -#define D3D10_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) -#define D3D10_SRGB_TO_FLOAT_OFFSET ( 0.055f ) -#define D3D10_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) -#define D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) -#define D3D10_STANDARD_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) - -#define D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) - -#define D3D10_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) - -#define D3D10_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) - -#define D3D10_STANDARD_VECTOR_SIZE ( 4 ) - -#define D3D10_STANDARD_VERTEX_ELEMENT_COUNT ( 16 ) - -#define D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) - -#define D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 6 ) - -#define D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 18 ) - -#define D3D10_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) - -#define D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) - -#define D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) - -#define D3D10_VIEWPORT_BOUNDS_MAX ( 16383 ) - -#define D3D10_VIEWPORT_BOUNDS_MIN ( -16384 ) - -#define D3D10_VS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_VS_INPUT_REGISTER_COUNT ( 16 ) - -#define D3D10_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D10_VS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D10_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_VS_OUTPUT_REGISTER_COUNT ( 16 ) - -#define D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) - -#define D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D_MAJOR_VERSION ( 10 ) - -#define D3D_MINOR_VERSION ( 0 ) - -#define D3D_SPEC_DATE_DAY ( 8 ) - -#define D3D_SPEC_DATE_MONTH ( 8 ) - -#define D3D_SPEC_DATE_YEAR ( 2006 ) - -#define D3D_SPEC_VERSION ( 1.050005 ) -#endif -#include -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#if !defined( __d3d10_1_h__ ) && !(D3D10_HEADER_MINOR_VERSION >= 1) -#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT -#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT -#endif -#define _FACD3D10 ( 0x879 ) - -#define _FACD3D10DEBUG ( ( _FACD3D10 + 1 ) ) - -#define MAKE_D3D10_HRESULT( code ) MAKE_HRESULT( 1, _FACD3D10, code ) -#define MAKE_D3D10_STATUS( code ) MAKE_HRESULT( 0, _FACD3D10, code ) -/* Direct3D errors are now found in winerror.h */ -typedef -enum D3D10_INPUT_CLASSIFICATION - { - D3D10_INPUT_PER_VERTEX_DATA = 0, - D3D10_INPUT_PER_INSTANCE_DATA = 1 - } D3D10_INPUT_CLASSIFICATION; - -#define D3D10_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) - -typedef struct D3D10_INPUT_ELEMENT_DESC - { - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D10_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; - } D3D10_INPUT_ELEMENT_DESC; - -typedef -enum D3D10_FILL_MODE - { - D3D10_FILL_WIREFRAME = 2, - D3D10_FILL_SOLID = 3 - } D3D10_FILL_MODE; - -typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY; - -typedef D3D_PRIMITIVE D3D10_PRIMITIVE; - -typedef -enum D3D10_CULL_MODE - { - D3D10_CULL_NONE = 1, - D3D10_CULL_FRONT = 2, - D3D10_CULL_BACK = 3 - } D3D10_CULL_MODE; - -typedef struct D3D10_SO_DECLARATION_ENTRY - { - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; - } D3D10_SO_DECLARATION_ENTRY; - -typedef struct D3D10_VIEWPORT - { - INT TopLeftX; - INT TopLeftY; - UINT Width; - UINT Height; - FLOAT MinDepth; - FLOAT MaxDepth; - } D3D10_VIEWPORT; - -typedef -enum D3D10_RESOURCE_DIMENSION - { - D3D10_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D10_RESOURCE_DIMENSION_BUFFER = 1, - D3D10_RESOURCE_DIMENSION_TEXTURE1D = 2, - D3D10_RESOURCE_DIMENSION_TEXTURE2D = 3, - D3D10_RESOURCE_DIMENSION_TEXTURE3D = 4 - } D3D10_RESOURCE_DIMENSION; - -typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION; - -typedef -enum D3D10_DSV_DIMENSION - { - D3D10_DSV_DIMENSION_UNKNOWN = 0, - D3D10_DSV_DIMENSION_TEXTURE1D = 1, - D3D10_DSV_DIMENSION_TEXTURE1DARRAY = 2, - D3D10_DSV_DIMENSION_TEXTURE2D = 3, - D3D10_DSV_DIMENSION_TEXTURE2DARRAY = 4, - D3D10_DSV_DIMENSION_TEXTURE2DMS = 5, - D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 - } D3D10_DSV_DIMENSION; - -typedef -enum D3D10_RTV_DIMENSION - { - D3D10_RTV_DIMENSION_UNKNOWN = 0, - D3D10_RTV_DIMENSION_BUFFER = 1, - D3D10_RTV_DIMENSION_TEXTURE1D = 2, - D3D10_RTV_DIMENSION_TEXTURE1DARRAY = 3, - D3D10_RTV_DIMENSION_TEXTURE2D = 4, - D3D10_RTV_DIMENSION_TEXTURE2DARRAY = 5, - D3D10_RTV_DIMENSION_TEXTURE2DMS = 6, - D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D10_RTV_DIMENSION_TEXTURE3D = 8 - } D3D10_RTV_DIMENSION; - -typedef -enum D3D10_USAGE - { - D3D10_USAGE_DEFAULT = 0, - D3D10_USAGE_IMMUTABLE = 1, - D3D10_USAGE_DYNAMIC = 2, - D3D10_USAGE_STAGING = 3 - } D3D10_USAGE; - -typedef -enum D3D10_BIND_FLAG - { - D3D10_BIND_VERTEX_BUFFER = 0x1L, - D3D10_BIND_INDEX_BUFFER = 0x2L, - D3D10_BIND_CONSTANT_BUFFER = 0x4L, - D3D10_BIND_SHADER_RESOURCE = 0x8L, - D3D10_BIND_STREAM_OUTPUT = 0x10L, - D3D10_BIND_RENDER_TARGET = 0x20L, - D3D10_BIND_DEPTH_STENCIL = 0x40L - } D3D10_BIND_FLAG; - -typedef -enum D3D10_CPU_ACCESS_FLAG - { - D3D10_CPU_ACCESS_WRITE = 0x10000L, - D3D10_CPU_ACCESS_READ = 0x20000L - } D3D10_CPU_ACCESS_FLAG; - -typedef -enum D3D10_RESOURCE_MISC_FLAG - { - D3D10_RESOURCE_MISC_GENERATE_MIPS = 0x1L, - D3D10_RESOURCE_MISC_SHARED = 0x2L, - D3D10_RESOURCE_MISC_TEXTURECUBE = 0x4L, - D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x10L, - D3D10_RESOURCE_MISC_GDI_COMPATIBLE = 0x20L - } D3D10_RESOURCE_MISC_FLAG; - -typedef -enum D3D10_MAP - { - D3D10_MAP_READ = 1, - D3D10_MAP_WRITE = 2, - D3D10_MAP_READ_WRITE = 3, - D3D10_MAP_WRITE_DISCARD = 4, - D3D10_MAP_WRITE_NO_OVERWRITE = 5 - } D3D10_MAP; - -typedef -enum D3D10_MAP_FLAG - { - D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000L - } D3D10_MAP_FLAG; - -typedef -enum D3D10_RAISE_FLAG - { - D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L - } D3D10_RAISE_FLAG; - -typedef -enum D3D10_CLEAR_FLAG - { - D3D10_CLEAR_DEPTH = 0x1L, - D3D10_CLEAR_STENCIL = 0x2L - } D3D10_CLEAR_FLAG; - -typedef RECT D3D10_RECT; - -typedef struct D3D10_BOX - { - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; - } D3D10_BOX; - - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D10DeviceChild_INTERFACE_DEFINED__ -#define __ID3D10DeviceChild_INTERFACE_DEFINED__ - -/* interface ID3D10DeviceChild */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10DeviceChild; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C00-342C-4106-A19F-4F2704F689F0") - ID3D10DeviceChild : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE GetDevice( - /* [annotation] */ - _Out_ ID3D10Device **ppDevice) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10DeviceChildVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10DeviceChild * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10DeviceChild * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10DeviceChild * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10DeviceChild * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D10DeviceChildVtbl; - - interface ID3D10DeviceChild - { - CONST_VTBL struct ID3D10DeviceChildVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10DeviceChild_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10DeviceChild_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10DeviceChild_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10DeviceChild_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10DeviceChild_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10DeviceChild_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0001 */ -/* [local] */ - -typedef -enum D3D10_COMPARISON_FUNC - { - D3D10_COMPARISON_NEVER = 1, - D3D10_COMPARISON_LESS = 2, - D3D10_COMPARISON_EQUAL = 3, - D3D10_COMPARISON_LESS_EQUAL = 4, - D3D10_COMPARISON_GREATER = 5, - D3D10_COMPARISON_NOT_EQUAL = 6, - D3D10_COMPARISON_GREATER_EQUAL = 7, - D3D10_COMPARISON_ALWAYS = 8 - } D3D10_COMPARISON_FUNC; - -typedef -enum D3D10_DEPTH_WRITE_MASK - { - D3D10_DEPTH_WRITE_MASK_ZERO = 0, - D3D10_DEPTH_WRITE_MASK_ALL = 1 - } D3D10_DEPTH_WRITE_MASK; - -typedef -enum D3D10_STENCIL_OP - { - D3D10_STENCIL_OP_KEEP = 1, - D3D10_STENCIL_OP_ZERO = 2, - D3D10_STENCIL_OP_REPLACE = 3, - D3D10_STENCIL_OP_INCR_SAT = 4, - D3D10_STENCIL_OP_DECR_SAT = 5, - D3D10_STENCIL_OP_INVERT = 6, - D3D10_STENCIL_OP_INCR = 7, - D3D10_STENCIL_OP_DECR = 8 - } D3D10_STENCIL_OP; - -typedef struct D3D10_DEPTH_STENCILOP_DESC - { - D3D10_STENCIL_OP StencilFailOp; - D3D10_STENCIL_OP StencilDepthFailOp; - D3D10_STENCIL_OP StencilPassOp; - D3D10_COMPARISON_FUNC StencilFunc; - } D3D10_DEPTH_STENCILOP_DESC; - -typedef struct D3D10_DEPTH_STENCIL_DESC - { - BOOL DepthEnable; - D3D10_DEPTH_WRITE_MASK DepthWriteMask; - D3D10_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D10_DEPTH_STENCILOP_DESC FrontFace; - D3D10_DEPTH_STENCILOP_DESC BackFace; - } D3D10_DEPTH_STENCIL_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D10DepthStencilState_INTERFACE_DEFINED__ -#define __ID3D10DepthStencilState_INTERFACE_DEFINED__ - -/* interface ID3D10DepthStencilState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10DepthStencilState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2B4B1CC8-A4AD-41f8-8322-CA86FC3EC675") - ID3D10DepthStencilState : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_DEPTH_STENCIL_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10DepthStencilStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10DepthStencilState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10DepthStencilState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10DepthStencilState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10DepthStencilState * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10DepthStencilState * This, - /* [annotation] */ - _Out_ D3D10_DEPTH_STENCIL_DESC *pDesc); - - END_INTERFACE - } ID3D10DepthStencilStateVtbl; - - interface ID3D10DepthStencilState - { - CONST_VTBL struct ID3D10DepthStencilStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10DepthStencilState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10DepthStencilState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10DepthStencilState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10DepthStencilState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10DepthStencilState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10DepthStencilState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10DepthStencilState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10DepthStencilState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0002 */ -/* [local] */ - -typedef -enum D3D10_BLEND - { - D3D10_BLEND_ZERO = 1, - D3D10_BLEND_ONE = 2, - D3D10_BLEND_SRC_COLOR = 3, - D3D10_BLEND_INV_SRC_COLOR = 4, - D3D10_BLEND_SRC_ALPHA = 5, - D3D10_BLEND_INV_SRC_ALPHA = 6, - D3D10_BLEND_DEST_ALPHA = 7, - D3D10_BLEND_INV_DEST_ALPHA = 8, - D3D10_BLEND_DEST_COLOR = 9, - D3D10_BLEND_INV_DEST_COLOR = 10, - D3D10_BLEND_SRC_ALPHA_SAT = 11, - D3D10_BLEND_BLEND_FACTOR = 14, - D3D10_BLEND_INV_BLEND_FACTOR = 15, - D3D10_BLEND_SRC1_COLOR = 16, - D3D10_BLEND_INV_SRC1_COLOR = 17, - D3D10_BLEND_SRC1_ALPHA = 18, - D3D10_BLEND_INV_SRC1_ALPHA = 19 - } D3D10_BLEND; - -typedef -enum D3D10_BLEND_OP - { - D3D10_BLEND_OP_ADD = 1, - D3D10_BLEND_OP_SUBTRACT = 2, - D3D10_BLEND_OP_REV_SUBTRACT = 3, - D3D10_BLEND_OP_MIN = 4, - D3D10_BLEND_OP_MAX = 5 - } D3D10_BLEND_OP; - -typedef -enum D3D10_COLOR_WRITE_ENABLE - { - D3D10_COLOR_WRITE_ENABLE_RED = 1, - D3D10_COLOR_WRITE_ENABLE_GREEN = 2, - D3D10_COLOR_WRITE_ENABLE_BLUE = 4, - D3D10_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D10_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D10_COLOR_WRITE_ENABLE_RED | D3D10_COLOR_WRITE_ENABLE_GREEN ) | D3D10_COLOR_WRITE_ENABLE_BLUE ) | D3D10_COLOR_WRITE_ENABLE_ALPHA ) - } D3D10_COLOR_WRITE_ENABLE; - -typedef struct D3D10_BLEND_DESC - { - BOOL AlphaToCoverageEnable; - BOOL BlendEnable[ 8 ]; - D3D10_BLEND SrcBlend; - D3D10_BLEND DestBlend; - D3D10_BLEND_OP BlendOp; - D3D10_BLEND SrcBlendAlpha; - D3D10_BLEND DestBlendAlpha; - D3D10_BLEND_OP BlendOpAlpha; - UINT8 RenderTargetWriteMask[ 8 ]; - } D3D10_BLEND_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0002_v0_0_s_ifspec; - -#ifndef __ID3D10BlendState_INTERFACE_DEFINED__ -#define __ID3D10BlendState_INTERFACE_DEFINED__ - -/* interface ID3D10BlendState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10BlendState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("EDAD8D19-8A35-4d6d-8566-2EA276CDE161") - ID3D10BlendState : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_BLEND_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10BlendStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10BlendState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10BlendState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10BlendState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10BlendState * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10BlendState * This, - /* [annotation] */ - _Out_ D3D10_BLEND_DESC *pDesc); - - END_INTERFACE - } ID3D10BlendStateVtbl; - - interface ID3D10BlendState - { - CONST_VTBL struct ID3D10BlendStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10BlendState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10BlendState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10BlendState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10BlendState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10BlendState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10BlendState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10BlendState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10BlendState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10BlendState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0003 */ -/* [local] */ - -typedef struct D3D10_RASTERIZER_DESC - { - D3D10_FILL_MODE FillMode; - D3D10_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL ScissorEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - } D3D10_RASTERIZER_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0003_v0_0_s_ifspec; - -#ifndef __ID3D10RasterizerState_INTERFACE_DEFINED__ -#define __ID3D10RasterizerState_INTERFACE_DEFINED__ - -/* interface ID3D10RasterizerState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10RasterizerState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A2A07292-89AF-4345-BE2E-C53D9FBB6E9F") - ID3D10RasterizerState : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_RASTERIZER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10RasterizerStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10RasterizerState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10RasterizerState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10RasterizerState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10RasterizerState * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10RasterizerState * This, - /* [annotation] */ - _Out_ D3D10_RASTERIZER_DESC *pDesc); - - END_INTERFACE - } ID3D10RasterizerStateVtbl; - - interface ID3D10RasterizerState - { - CONST_VTBL struct ID3D10RasterizerStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10RasterizerState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10RasterizerState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10RasterizerState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10RasterizerState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10RasterizerState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10RasterizerState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10RasterizerState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10RasterizerState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10RasterizerState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0004 */ -/* [local] */ - -#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus ) -inline UINT D3D10CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels ) -{ return MipSlice + ArraySlice * MipLevels; } -#endif -typedef struct D3D10_SUBRESOURCE_DATA - { - const void *pSysMem; - UINT SysMemPitch; - UINT SysMemSlicePitch; - } D3D10_SUBRESOURCE_DATA; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0004_v0_0_s_ifspec; - -#ifndef __ID3D10Resource_INTERFACE_DEFINED__ -#define __ID3D10Resource_INTERFACE_DEFINED__ - -/* interface ID3D10Resource */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Resource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C01-342C-4106-A19F-4F2704F689F0") - ID3D10Resource : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetType( - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType) = 0; - - virtual void STDMETHODCALLTYPE SetEvictionPriority( - /* [annotation] */ - _In_ UINT EvictionPriority) = 0; - - virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10ResourceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Resource * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Resource * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Resource * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Resource * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D10Resource * This, - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D10Resource * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D10Resource * This); - - END_INTERFACE - } ID3D10ResourceVtbl; - - interface ID3D10Resource - { - CONST_VTBL struct ID3D10ResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Resource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Resource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Resource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Resource_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Resource_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Resource_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Resource_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Resource_GetType(This,rType) \ - ( (This)->lpVtbl -> GetType(This,rType) ) - -#define ID3D10Resource_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D10Resource_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Resource_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0005 */ -/* [local] */ - -typedef struct D3D10_BUFFER_DESC - { - UINT ByteWidth; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D10_BUFFER_DESC; - -#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus ) -struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC -{ - CD3D10_BUFFER_DESC() - {} - explicit CD3D10_BUFFER_DESC( const D3D10_BUFFER_DESC& o ) : - D3D10_BUFFER_DESC( o ) - {} - explicit CD3D10_BUFFER_DESC( - UINT byteWidth, - UINT bindFlags, - D3D10_USAGE usage = D3D10_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT miscFlags = 0 ) - { - ByteWidth = byteWidth; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags ; - MiscFlags = miscFlags; - } - ~CD3D10_BUFFER_DESC() {} - operator const D3D10_BUFFER_DESC&() const { return *this; } -}; -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0005_v0_0_s_ifspec; - -#ifndef __ID3D10Buffer_INTERFACE_DEFINED__ -#define __ID3D10Buffer_INTERFACE_DEFINED__ - -/* interface ID3D10Buffer */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Buffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C02-342C-4106-A19F-4F2704F689F0") - ID3D10Buffer : public ID3D10Resource - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ void **ppData) = 0; - - virtual void STDMETHODCALLTYPE Unmap( void) = 0; - - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_BUFFER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10BufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Buffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Buffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Buffer * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Buffer * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D10Buffer * This, - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D10Buffer * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D10Buffer * This); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D10Buffer * This, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ void **ppData); - - void ( STDMETHODCALLTYPE *Unmap )( - ID3D10Buffer * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Buffer * This, - /* [annotation] */ - _Out_ D3D10_BUFFER_DESC *pDesc); - - END_INTERFACE - } ID3D10BufferVtbl; - - interface ID3D10Buffer - { - CONST_VTBL struct ID3D10BufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Buffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Buffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Buffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Buffer_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Buffer_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Buffer_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Buffer_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Buffer_GetType(This,rType) \ - ( (This)->lpVtbl -> GetType(This,rType) ) - -#define ID3D10Buffer_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D10Buffer_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D10Buffer_Map(This,MapType,MapFlags,ppData) \ - ( (This)->lpVtbl -> Map(This,MapType,MapFlags,ppData) ) - -#define ID3D10Buffer_Unmap(This) \ - ( (This)->lpVtbl -> Unmap(This) ) - -#define ID3D10Buffer_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Buffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0006 */ -/* [local] */ - -typedef struct D3D10_TEXTURE1D_DESC - { - UINT Width; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D10_TEXTURE1D_DESC; - -#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus ) -struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC -{ - CD3D10_TEXTURE1D_DESC() - {} - explicit CD3D10_TEXTURE1D_DESC( const D3D10_TEXTURE1D_DESC& o ) : - D3D10_TEXTURE1D_DESC( o ) - {} - explicit CD3D10_TEXTURE1D_DESC( - DXGI_FORMAT format, - UINT width, - UINT arraySize = 1, - UINT mipLevels = 0, - UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, - D3D10_USAGE usage = D3D10_USAGE_DEFAULT, - UINT cpuaccessFlags= 0, - UINT miscFlags = 0 ) - { - Width = width; - MipLevels = mipLevels; - ArraySize = arraySize; - Format = format; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D10_TEXTURE1D_DESC() {} - operator const D3D10_TEXTURE1D_DESC&() const { return *this; } -}; -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0006_v0_0_s_ifspec; - -#ifndef __ID3D10Texture1D_INTERFACE_DEFINED__ -#define __ID3D10Texture1D_INTERFACE_DEFINED__ - -/* interface ID3D10Texture1D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Texture1D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C03-342C-4106-A19F-4F2704F689F0") - ID3D10Texture1D : public ID3D10Resource - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ void **ppData) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - /* [annotation] */ - _In_ UINT Subresource) = 0; - - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_TEXTURE1D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10Texture1DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Texture1D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Texture1D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Texture1D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Texture1D * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D10Texture1D * This, - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D10Texture1D * This); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ void **ppData); - - void ( STDMETHODCALLTYPE *Unmap )( - ID3D10Texture1D * This, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Texture1D * This, - /* [annotation] */ - _Out_ D3D10_TEXTURE1D_DESC *pDesc); - - END_INTERFACE - } ID3D10Texture1DVtbl; - - interface ID3D10Texture1D - { - CONST_VTBL struct ID3D10Texture1DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Texture1D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Texture1D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Texture1D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Texture1D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Texture1D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Texture1D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Texture1D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Texture1D_GetType(This,rType) \ - ( (This)->lpVtbl -> GetType(This,rType) ) - -#define ID3D10Texture1D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D10Texture1D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D10Texture1D_Map(This,Subresource,MapType,MapFlags,ppData) \ - ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,ppData) ) - -#define ID3D10Texture1D_Unmap(This,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,Subresource) ) - -#define ID3D10Texture1D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Texture1D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0007 */ -/* [local] */ - -typedef struct D3D10_TEXTURE2D_DESC - { - UINT Width; - UINT Height; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D10_TEXTURE2D_DESC; - -#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus ) -struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC -{ - CD3D10_TEXTURE2D_DESC() - {} - explicit CD3D10_TEXTURE2D_DESC( const D3D10_TEXTURE2D_DESC& o ) : - D3D10_TEXTURE2D_DESC( o ) - {} - explicit CD3D10_TEXTURE2D_DESC( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT arraySize = 1, - UINT mipLevels = 0, - UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, - D3D10_USAGE usage = D3D10_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - UINT miscFlags = 0 ) - { - Width = width; - Height = height; - MipLevels = mipLevels; - ArraySize = arraySize; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D10_TEXTURE2D_DESC() {} - operator const D3D10_TEXTURE2D_DESC&() const { return *this; } -}; -#endif -typedef struct D3D10_MAPPED_TEXTURE2D - { - void *pData; - UINT RowPitch; - } D3D10_MAPPED_TEXTURE2D; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0007_v0_0_s_ifspec; - -#ifndef __ID3D10Texture2D_INTERFACE_DEFINED__ -#define __ID3D10Texture2D_INTERFACE_DEFINED__ - -/* interface ID3D10Texture2D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Texture2D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C04-342C-4106-A19F-4F2704F689F0") - ID3D10Texture2D : public ID3D10Resource - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ D3D10_MAPPED_TEXTURE2D *pMappedTex2D) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - /* [annotation] */ - _In_ UINT Subresource) = 0; - - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_TEXTURE2D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10Texture2DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Texture2D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Texture2D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Texture2D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Texture2D * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D10Texture2D * This, - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D10Texture2D * This); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ D3D10_MAPPED_TEXTURE2D *pMappedTex2D); - - void ( STDMETHODCALLTYPE *Unmap )( - ID3D10Texture2D * This, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Texture2D * This, - /* [annotation] */ - _Out_ D3D10_TEXTURE2D_DESC *pDesc); - - END_INTERFACE - } ID3D10Texture2DVtbl; - - interface ID3D10Texture2D - { - CONST_VTBL struct ID3D10Texture2DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Texture2D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Texture2D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Texture2D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Texture2D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Texture2D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Texture2D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Texture2D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Texture2D_GetType(This,rType) \ - ( (This)->lpVtbl -> GetType(This,rType) ) - -#define ID3D10Texture2D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D10Texture2D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D10Texture2D_Map(This,Subresource,MapType,MapFlags,pMappedTex2D) \ - ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex2D) ) - -#define ID3D10Texture2D_Unmap(This,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,Subresource) ) - -#define ID3D10Texture2D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Texture2D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0008 */ -/* [local] */ - -typedef struct D3D10_TEXTURE3D_DESC - { - UINT Width; - UINT Height; - UINT Depth; - UINT MipLevels; - DXGI_FORMAT Format; - D3D10_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D10_TEXTURE3D_DESC; - -#if !defined( D3D10_NO_HELPERS ) && defined( __cplusplus ) -struct CD3D10_TEXTURE3D_DESC : public D3D10_TEXTURE3D_DESC -{ - CD3D10_TEXTURE3D_DESC() - {} - explicit CD3D10_TEXTURE3D_DESC( const D3D10_TEXTURE3D_DESC& o ) : - D3D10_TEXTURE3D_DESC( o ) - {} - explicit CD3D10_TEXTURE3D_DESC( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT mipLevels = 0, - UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, - D3D10_USAGE usage = D3D10_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT miscFlags = 0 ) - { - Width = width; - Height = height; - Depth = depth; - MipLevels = mipLevels; - Format = format; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D10_TEXTURE3D_DESC() {} - operator const D3D10_TEXTURE3D_DESC&() const { return *this; } -}; -#endif -typedef struct D3D10_MAPPED_TEXTURE3D - { - void *pData; - UINT RowPitch; - UINT DepthPitch; - } D3D10_MAPPED_TEXTURE3D; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0008_v0_0_s_ifspec; - -#ifndef __ID3D10Texture3D_INTERFACE_DEFINED__ -#define __ID3D10Texture3D_INTERFACE_DEFINED__ - -/* interface ID3D10Texture3D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Texture3D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C05-342C-4106-A19F-4F2704F689F0") - ID3D10Texture3D : public ID3D10Resource - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ D3D10_MAPPED_TEXTURE3D *pMappedTex3D) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - /* [annotation] */ - _In_ UINT Subresource) = 0; - - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_TEXTURE3D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10Texture3DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Texture3D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Texture3D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Texture3D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Texture3D * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D10Texture3D * This, - /* [annotation] */ - _Out_ D3D10_RESOURCE_DIMENSION *rType); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D10Texture3D * This); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D10_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_ D3D10_MAPPED_TEXTURE3D *pMappedTex3D); - - void ( STDMETHODCALLTYPE *Unmap )( - ID3D10Texture3D * This, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Texture3D * This, - /* [annotation] */ - _Out_ D3D10_TEXTURE3D_DESC *pDesc); - - END_INTERFACE - } ID3D10Texture3DVtbl; - - interface ID3D10Texture3D - { - CONST_VTBL struct ID3D10Texture3DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Texture3D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Texture3D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Texture3D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Texture3D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Texture3D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Texture3D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Texture3D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Texture3D_GetType(This,rType) \ - ( (This)->lpVtbl -> GetType(This,rType) ) - -#define ID3D10Texture3D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D10Texture3D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D10Texture3D_Map(This,Subresource,MapType,MapFlags,pMappedTex3D) \ - ( (This)->lpVtbl -> Map(This,Subresource,MapType,MapFlags,pMappedTex3D) ) - -#define ID3D10Texture3D_Unmap(This,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,Subresource) ) - -#define ID3D10Texture3D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Texture3D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0009 */ -/* [local] */ - -typedef -enum D3D10_TEXTURECUBE_FACE - { - D3D10_TEXTURECUBE_FACE_POSITIVE_X = 0, - D3D10_TEXTURECUBE_FACE_NEGATIVE_X = 1, - D3D10_TEXTURECUBE_FACE_POSITIVE_Y = 2, - D3D10_TEXTURECUBE_FACE_NEGATIVE_Y = 3, - D3D10_TEXTURECUBE_FACE_POSITIVE_Z = 4, - D3D10_TEXTURECUBE_FACE_NEGATIVE_Z = 5 - } D3D10_TEXTURECUBE_FACE; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0009_v0_0_s_ifspec; - -#ifndef __ID3D10View_INTERFACE_DEFINED__ -#define __ID3D10View_INTERFACE_DEFINED__ - -/* interface ID3D10View */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10View; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C902B03F-60A7-49BA-9936-2A3AB37A7E33") - ID3D10View : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetResource( - /* [annotation] */ - _Out_ ID3D10Resource **ppResource) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10ViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10View * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10View * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10View * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10View * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D10View * This, - /* [annotation] */ - _Out_ ID3D10Resource **ppResource); - - END_INTERFACE - } ID3D10ViewVtbl; - - interface ID3D10View - { - CONST_VTBL struct ID3D10ViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10View_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10View_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10View_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10View_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10View_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10View_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10View_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10View_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10View_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0010 */ -/* [local] */ - -typedef struct D3D10_BUFFER_SRV - { - union - { - UINT FirstElement; - UINT ElementOffset; - } ; - union - { - UINT NumElements; - UINT ElementWidth; - } ; - } D3D10_BUFFER_SRV; - -typedef struct D3D10_TEX1D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D10_TEX1D_SRV; - -typedef struct D3D10_TEX1D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX1D_ARRAY_SRV; - -typedef struct D3D10_TEX2D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D10_TEX2D_SRV; - -typedef struct D3D10_TEX2D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2D_ARRAY_SRV; - -typedef struct D3D10_TEX3D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D10_TEX3D_SRV; - -typedef struct D3D10_TEXCUBE_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D10_TEXCUBE_SRV; - -typedef struct D3D10_TEX2DMS_SRV - { - UINT UnusedField_NothingToDefine; - } D3D10_TEX2DMS_SRV; - -typedef struct D3D10_TEX2DMS_ARRAY_SRV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2DMS_ARRAY_SRV; - -typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC - { - DXGI_FORMAT Format; - D3D10_SRV_DIMENSION ViewDimension; - union - { - D3D10_BUFFER_SRV Buffer; - D3D10_TEX1D_SRV Texture1D; - D3D10_TEX1D_ARRAY_SRV Texture1DArray; - D3D10_TEX2D_SRV Texture2D; - D3D10_TEX2D_ARRAY_SRV Texture2DArray; - D3D10_TEX2DMS_SRV Texture2DMS; - D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D10_TEX3D_SRV Texture3D; - D3D10_TEXCUBE_SRV TextureCube; - } ; - } D3D10_SHADER_RESOURCE_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0010_v0_0_s_ifspec; - -#ifndef __ID3D10ShaderResourceView_INTERFACE_DEFINED__ -#define __ID3D10ShaderResourceView_INTERFACE_DEFINED__ - -/* interface ID3D10ShaderResourceView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10ShaderResourceView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C07-342C-4106-A19F-4F2704F689F0") - ID3D10ShaderResourceView : public ID3D10View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10ShaderResourceViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10ShaderResourceView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10ShaderResourceView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10ShaderResourceView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _Out_ ID3D10Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10ShaderResourceView * This, - /* [annotation] */ - _Out_ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D10ShaderResourceViewVtbl; - - interface ID3D10ShaderResourceView - { - CONST_VTBL struct ID3D10ShaderResourceViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10ShaderResourceView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10ShaderResourceView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10ShaderResourceView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10ShaderResourceView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10ShaderResourceView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10ShaderResourceView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D10ShaderResourceView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10ShaderResourceView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0011 */ -/* [local] */ - -typedef struct D3D10_BUFFER_RTV - { - union - { - UINT FirstElement; - UINT ElementOffset; - } ; - union - { - UINT NumElements; - UINT ElementWidth; - } ; - } D3D10_BUFFER_RTV; - -typedef struct D3D10_TEX1D_RTV - { - UINT MipSlice; - } D3D10_TEX1D_RTV; - -typedef struct D3D10_TEX1D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX1D_ARRAY_RTV; - -typedef struct D3D10_TEX2D_RTV - { - UINT MipSlice; - } D3D10_TEX2D_RTV; - -typedef struct D3D10_TEX2DMS_RTV - { - UINT UnusedField_NothingToDefine; - } D3D10_TEX2DMS_RTV; - -typedef struct D3D10_TEX2D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2D_ARRAY_RTV; - -typedef struct D3D10_TEX2DMS_ARRAY_RTV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2DMS_ARRAY_RTV; - -typedef struct D3D10_TEX3D_RTV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D10_TEX3D_RTV; - -typedef struct D3D10_RENDER_TARGET_VIEW_DESC - { - DXGI_FORMAT Format; - D3D10_RTV_DIMENSION ViewDimension; - union - { - D3D10_BUFFER_RTV Buffer; - D3D10_TEX1D_RTV Texture1D; - D3D10_TEX1D_ARRAY_RTV Texture1DArray; - D3D10_TEX2D_RTV Texture2D; - D3D10_TEX2D_ARRAY_RTV Texture2DArray; - D3D10_TEX2DMS_RTV Texture2DMS; - D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D10_TEX3D_RTV Texture3D; - } ; - } D3D10_RENDER_TARGET_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0011_v0_0_s_ifspec; - -#ifndef __ID3D10RenderTargetView_INTERFACE_DEFINED__ -#define __ID3D10RenderTargetView_INTERFACE_DEFINED__ - -/* interface ID3D10RenderTargetView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10RenderTargetView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C08-342C-4106-A19F-4F2704F689F0") - ID3D10RenderTargetView : public ID3D10View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_RENDER_TARGET_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10RenderTargetViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10RenderTargetView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10RenderTargetView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10RenderTargetView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _Out_ ID3D10Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10RenderTargetView * This, - /* [annotation] */ - _Out_ D3D10_RENDER_TARGET_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D10RenderTargetViewVtbl; - - interface ID3D10RenderTargetView - { - CONST_VTBL struct ID3D10RenderTargetViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10RenderTargetView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10RenderTargetView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10RenderTargetView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10RenderTargetView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10RenderTargetView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10RenderTargetView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10RenderTargetView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D10RenderTargetView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10RenderTargetView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0012 */ -/* [local] */ - -typedef struct D3D10_TEX1D_DSV - { - UINT MipSlice; - } D3D10_TEX1D_DSV; - -typedef struct D3D10_TEX1D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX1D_ARRAY_DSV; - -typedef struct D3D10_TEX2D_DSV - { - UINT MipSlice; - } D3D10_TEX2D_DSV; - -typedef struct D3D10_TEX2D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2D_ARRAY_DSV; - -typedef struct D3D10_TEX2DMS_DSV - { - UINT UnusedField_NothingToDefine; - } D3D10_TEX2DMS_DSV; - -typedef struct D3D10_TEX2DMS_ARRAY_DSV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D10_TEX2DMS_ARRAY_DSV; - -typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC - { - DXGI_FORMAT Format; - D3D10_DSV_DIMENSION ViewDimension; - union - { - D3D10_TEX1D_DSV Texture1D; - D3D10_TEX1D_ARRAY_DSV Texture1DArray; - D3D10_TEX2D_DSV Texture2D; - D3D10_TEX2D_ARRAY_DSV Texture2DArray; - D3D10_TEX2DMS_DSV Texture2DMS; - D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray; - } ; - } D3D10_DEPTH_STENCIL_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0012_v0_0_s_ifspec; - -#ifndef __ID3D10DepthStencilView_INTERFACE_DEFINED__ -#define __ID3D10DepthStencilView_INTERFACE_DEFINED__ - -/* interface ID3D10DepthStencilView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10DepthStencilView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C09-342C-4106-A19F-4F2704F689F0") - ID3D10DepthStencilView : public ID3D10View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10DepthStencilViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10DepthStencilView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10DepthStencilView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10DepthStencilView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _Out_ ID3D10Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10DepthStencilView * This, - /* [annotation] */ - _Out_ D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D10DepthStencilViewVtbl; - - interface ID3D10DepthStencilView - { - CONST_VTBL struct ID3D10DepthStencilViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10DepthStencilView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10DepthStencilView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10DepthStencilView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10DepthStencilView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10DepthStencilView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10DepthStencilView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10DepthStencilView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D10DepthStencilView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10DepthStencilView_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10VertexShader_INTERFACE_DEFINED__ -#define __ID3D10VertexShader_INTERFACE_DEFINED__ - -/* interface ID3D10VertexShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10VertexShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0A-342C-4106-A19F-4F2704F689F0") - ID3D10VertexShader : public ID3D10DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D10VertexShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10VertexShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10VertexShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10VertexShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10VertexShader * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D10VertexShaderVtbl; - - interface ID3D10VertexShader - { - CONST_VTBL struct ID3D10VertexShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10VertexShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10VertexShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10VertexShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10VertexShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10VertexShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10VertexShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10VertexShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10VertexShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10GeometryShader_INTERFACE_DEFINED__ -#define __ID3D10GeometryShader_INTERFACE_DEFINED__ - -/* interface ID3D10GeometryShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10GeometryShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6316BE88-54CD-4040-AB44-20461BC81F68") - ID3D10GeometryShader : public ID3D10DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D10GeometryShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10GeometryShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10GeometryShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10GeometryShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10GeometryShader * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D10GeometryShaderVtbl; - - interface ID3D10GeometryShader - { - CONST_VTBL struct ID3D10GeometryShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10GeometryShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10GeometryShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10GeometryShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10GeometryShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10GeometryShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10GeometryShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10GeometryShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10GeometryShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10PixelShader_INTERFACE_DEFINED__ -#define __ID3D10PixelShader_INTERFACE_DEFINED__ - -/* interface ID3D10PixelShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10PixelShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4968B601-9D00-4cde-8346-8E7F675819B6") - ID3D10PixelShader : public ID3D10DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D10PixelShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10PixelShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10PixelShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10PixelShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10PixelShader * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D10PixelShaderVtbl; - - interface ID3D10PixelShader - { - CONST_VTBL struct ID3D10PixelShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10PixelShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10PixelShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10PixelShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10PixelShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10PixelShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10PixelShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10PixelShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10PixelShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10InputLayout_INTERFACE_DEFINED__ -#define __ID3D10InputLayout_INTERFACE_DEFINED__ - -/* interface ID3D10InputLayout */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10InputLayout; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0B-342C-4106-A19F-4F2704F689F0") - ID3D10InputLayout : public ID3D10DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D10InputLayoutVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10InputLayout * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10InputLayout * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10InputLayout * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10InputLayout * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D10InputLayoutVtbl; - - interface ID3D10InputLayout - { - CONST_VTBL struct ID3D10InputLayoutVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10InputLayout_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10InputLayout_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10InputLayout_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10InputLayout_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10InputLayout_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10InputLayout_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10InputLayout_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10InputLayout_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0017 */ -/* [local] */ - -typedef -enum D3D10_FILTER - { - D3D10_FILTER_MIN_MAG_MIP_POINT = 0, - D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, - D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, - D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, - D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, - D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, - D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, - D3D10_FILTER_MIN_MAG_MIP_LINEAR = 0x15, - D3D10_FILTER_ANISOTROPIC = 0x55, - D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, - D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, - D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, - D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, - D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, - D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, - D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, - D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, - D3D10_FILTER_COMPARISON_ANISOTROPIC = 0xd5, - D3D10_FILTER_TEXT_1BIT = 0x80000000 - } D3D10_FILTER; - -typedef -enum D3D10_FILTER_TYPE - { - D3D10_FILTER_TYPE_POINT = 0, - D3D10_FILTER_TYPE_LINEAR = 1 - } D3D10_FILTER_TYPE; - -#define D3D10_FILTER_TYPE_MASK ( 0x3 ) - -#define D3D10_MIN_FILTER_SHIFT ( 4 ) - -#define D3D10_MAG_FILTER_SHIFT ( 2 ) - -#define D3D10_MIP_FILTER_SHIFT ( 0 ) - -#define D3D10_COMPARISON_FILTERING_BIT ( 0x80 ) - -#define D3D10_ANISOTROPIC_FILTERING_BIT ( 0x40 ) - -#define D3D10_TEXT_1BIT_BIT ( 0x80000000 ) - -#define D3D10_ENCODE_BASIC_FILTER( min, mag, mip, bComparison ) \ - ( ( D3D10_FILTER ) ( \ - ( ( bComparison ) ? D3D10_COMPARISON_FILTERING_BIT : 0 ) | \ - ( ( ( min ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIN_FILTER_SHIFT ) | \ - ( ( ( mag ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MAG_FILTER_SHIFT ) | \ - ( ( ( mip ) & D3D10_FILTER_TYPE_MASK ) << D3D10_MIP_FILTER_SHIFT ) ) ) -#define D3D10_ENCODE_ANISOTROPIC_FILTER( bComparison ) \ - ( ( D3D10_FILTER ) ( \ - D3D10_ANISOTROPIC_FILTERING_BIT | \ - D3D10_ENCODE_BASIC_FILTER( D3D10_FILTER_TYPE_LINEAR, \ - D3D10_FILTER_TYPE_LINEAR, \ - D3D10_FILTER_TYPE_LINEAR, \ - bComparison ) ) ) -#define D3D10_DECODE_MIN_FILTER( d3d10Filter ) \ - ( ( D3D10_FILTER_TYPE ) \ - ( ( ( d3d10Filter ) >> D3D10_MIN_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) ) -#define D3D10_DECODE_MAG_FILTER( d3d10Filter ) \ - ( ( D3D10_FILTER_TYPE ) \ - ( ( ( d3d10Filter ) >> D3D10_MAG_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) ) -#define D3D10_DECODE_MIP_FILTER( d3d10Filter ) \ - ( ( D3D10_FILTER_TYPE ) \ - ( ( ( d3d10Filter ) >> D3D10_MIP_FILTER_SHIFT ) & D3D10_FILTER_TYPE_MASK ) ) -#define D3D10_DECODE_IS_COMPARISON_FILTER( d3d10Filter ) \ - ( ( d3d10Filter ) & D3D10_COMPARISON_FILTERING_BIT ) -#define D3D10_DECODE_IS_ANISOTROPIC_FILTER( d3d10Filter ) \ - ( ( ( d3d10Filter ) & D3D10_ANISOTROPIC_FILTERING_BIT ) && \ - ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIN_FILTER( d3d10Filter ) ) && \ - ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MAG_FILTER( d3d10Filter ) ) && \ - ( D3D10_FILTER_TYPE_LINEAR == D3D10_DECODE_MIP_FILTER( d3d10Filter ) ) ) -#define D3D10_DECODE_IS_TEXT_1BIT_FILTER( d3d10Filter ) \ - ( ( d3d10Filter ) == D3D10_TEXT_1BIT_BIT ) -typedef -enum D3D10_TEXTURE_ADDRESS_MODE - { - D3D10_TEXTURE_ADDRESS_WRAP = 1, - D3D10_TEXTURE_ADDRESS_MIRROR = 2, - D3D10_TEXTURE_ADDRESS_CLAMP = 3, - D3D10_TEXTURE_ADDRESS_BORDER = 4, - D3D10_TEXTURE_ADDRESS_MIRROR_ONCE = 5 - } D3D10_TEXTURE_ADDRESS_MODE; - -typedef struct D3D10_SAMPLER_DESC - { - D3D10_FILTER Filter; - D3D10_TEXTURE_ADDRESS_MODE AddressU; - D3D10_TEXTURE_ADDRESS_MODE AddressV; - D3D10_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D10_COMPARISON_FUNC ComparisonFunc; - FLOAT BorderColor[ 4 ]; - FLOAT MinLOD; - FLOAT MaxLOD; - } D3D10_SAMPLER_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0017_v0_0_s_ifspec; - -#ifndef __ID3D10SamplerState_INTERFACE_DEFINED__ -#define __ID3D10SamplerState_INTERFACE_DEFINED__ - -/* interface ID3D10SamplerState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10SamplerState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0C-342C-4106-A19F-4F2704F689F0") - ID3D10SamplerState : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_SAMPLER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10SamplerStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10SamplerState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10SamplerState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10SamplerState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10SamplerState * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10SamplerState * This, - /* [annotation] */ - _Out_ D3D10_SAMPLER_DESC *pDesc); - - END_INTERFACE - } ID3D10SamplerStateVtbl; - - interface ID3D10SamplerState - { - CONST_VTBL struct ID3D10SamplerStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10SamplerState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10SamplerState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10SamplerState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10SamplerState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10SamplerState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10SamplerState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10SamplerState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10SamplerState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10SamplerState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0018 */ -/* [local] */ - -typedef -enum D3D10_FORMAT_SUPPORT - { - D3D10_FORMAT_SUPPORT_BUFFER = 0x1, - D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, - D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, - D3D10_FORMAT_SUPPORT_SO_BUFFER = 0x8, - D3D10_FORMAT_SUPPORT_TEXTURE1D = 0x10, - D3D10_FORMAT_SUPPORT_TEXTURE2D = 0x20, - D3D10_FORMAT_SUPPORT_TEXTURE3D = 0x40, - D3D10_FORMAT_SUPPORT_TEXTURECUBE = 0x80, - D3D10_FORMAT_SUPPORT_SHADER_LOAD = 0x100, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, - D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, - D3D10_FORMAT_SUPPORT_MIP = 0x1000, - D3D10_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, - D3D10_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, - D3D10_FORMAT_SUPPORT_BLENDABLE = 0x8000, - D3D10_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, - D3D10_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, - D3D10_FORMAT_SUPPORT_DISPLAY = 0x80000, - D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, - D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, - D3D10_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, - D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000 - } D3D10_FORMAT_SUPPORT; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0018_v0_0_s_ifspec; - -#ifndef __ID3D10Asynchronous_INTERFACE_DEFINED__ -#define __ID3D10Asynchronous_INTERFACE_DEFINED__ - -/* interface ID3D10Asynchronous */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Asynchronous; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0D-342C-4106-A19F-4F2704F689F0") - ID3D10Asynchronous : public ID3D10DeviceChild - { - public: - virtual void STDMETHODCALLTYPE Begin( void) = 0; - - virtual void STDMETHODCALLTYPE End( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetData( - /* [annotation] */ - _Out_writes_bytes_opt_(DataSize) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags) = 0; - - virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10AsynchronousVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Asynchronous * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Asynchronous * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Asynchronous * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Asynchronous * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *Begin )( - ID3D10Asynchronous * This); - - void ( STDMETHODCALLTYPE *End )( - ID3D10Asynchronous * This); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D10Asynchronous * This, - /* [annotation] */ - _Out_writes_bytes_opt_(DataSize) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D10Asynchronous * This); - - END_INTERFACE - } ID3D10AsynchronousVtbl; - - interface ID3D10Asynchronous - { - CONST_VTBL struct ID3D10AsynchronousVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Asynchronous_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Asynchronous_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Asynchronous_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Asynchronous_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Asynchronous_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Asynchronous_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Asynchronous_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Asynchronous_Begin(This) \ - ( (This)->lpVtbl -> Begin(This) ) - -#define ID3D10Asynchronous_End(This) \ - ( (This)->lpVtbl -> End(This) ) - -#define ID3D10Asynchronous_GetData(This,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) ) - -#define ID3D10Asynchronous_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Asynchronous_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0019 */ -/* [local] */ - -typedef -enum D3D10_ASYNC_GETDATA_FLAG - { - D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1 - } D3D10_ASYNC_GETDATA_FLAG; - -typedef -enum D3D10_QUERY - { - D3D10_QUERY_EVENT = 0, - D3D10_QUERY_OCCLUSION = ( D3D10_QUERY_EVENT + 1 ) , - D3D10_QUERY_TIMESTAMP = ( D3D10_QUERY_OCCLUSION + 1 ) , - D3D10_QUERY_TIMESTAMP_DISJOINT = ( D3D10_QUERY_TIMESTAMP + 1 ) , - D3D10_QUERY_PIPELINE_STATISTICS = ( D3D10_QUERY_TIMESTAMP_DISJOINT + 1 ) , - D3D10_QUERY_OCCLUSION_PREDICATE = ( D3D10_QUERY_PIPELINE_STATISTICS + 1 ) , - D3D10_QUERY_SO_STATISTICS = ( D3D10_QUERY_OCCLUSION_PREDICATE + 1 ) , - D3D10_QUERY_SO_OVERFLOW_PREDICATE = ( D3D10_QUERY_SO_STATISTICS + 1 ) - } D3D10_QUERY; - -typedef -enum D3D10_QUERY_MISC_FLAG - { - D3D10_QUERY_MISC_PREDICATEHINT = 0x1 - } D3D10_QUERY_MISC_FLAG; - -typedef struct D3D10_QUERY_DESC - { - D3D10_QUERY Query; - UINT MiscFlags; - } D3D10_QUERY_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0019_v0_0_s_ifspec; - -#ifndef __ID3D10Query_INTERFACE_DEFINED__ -#define __ID3D10Query_INTERFACE_DEFINED__ - -/* interface ID3D10Query */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Query; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0E-342C-4106-A19F-4F2704F689F0") - ID3D10Query : public ID3D10Asynchronous - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_QUERY_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10QueryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Query * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Query * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Query * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Query * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *Begin )( - ID3D10Query * This); - - void ( STDMETHODCALLTYPE *End )( - ID3D10Query * This); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D10Query * This, - /* [annotation] */ - _Out_writes_bytes_opt_(DataSize) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D10Query * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Query * This, - /* [annotation] */ - _Out_ D3D10_QUERY_DESC *pDesc); - - END_INTERFACE - } ID3D10QueryVtbl; - - interface ID3D10Query - { - CONST_VTBL struct ID3D10QueryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Query_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Query_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Query_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Query_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Query_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Query_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Query_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Query_Begin(This) \ - ( (This)->lpVtbl -> Begin(This) ) - -#define ID3D10Query_End(This) \ - ( (This)->lpVtbl -> End(This) ) - -#define ID3D10Query_GetData(This,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) ) - -#define ID3D10Query_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D10Query_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Query_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10Predicate_INTERFACE_DEFINED__ -#define __ID3D10Predicate_INTERFACE_DEFINED__ - -/* interface ID3D10Predicate */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Predicate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C10-342C-4106-A19F-4F2704F689F0") - ID3D10Predicate : public ID3D10Query - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D10PredicateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Predicate * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Predicate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Predicate * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Predicate * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *Begin )( - ID3D10Predicate * This); - - void ( STDMETHODCALLTYPE *End )( - ID3D10Predicate * This); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D10Predicate * This, - /* [annotation] */ - _Out_writes_bytes_opt_(DataSize) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D10Predicate * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Predicate * This, - /* [annotation] */ - _Out_ D3D10_QUERY_DESC *pDesc); - - END_INTERFACE - } ID3D10PredicateVtbl; - - interface ID3D10Predicate - { - CONST_VTBL struct ID3D10PredicateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Predicate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Predicate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Predicate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Predicate_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Predicate_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Predicate_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Predicate_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Predicate_Begin(This) \ - ( (This)->lpVtbl -> Begin(This) ) - -#define ID3D10Predicate_End(This) \ - ( (This)->lpVtbl -> End(This) ) - -#define ID3D10Predicate_GetData(This,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) ) - -#define ID3D10Predicate_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D10Predicate_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Predicate_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0021 */ -/* [local] */ - -typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT - { - UINT64 Frequency; - BOOL Disjoint; - } D3D10_QUERY_DATA_TIMESTAMP_DISJOINT; - -typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS - { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - } D3D10_QUERY_DATA_PIPELINE_STATISTICS; - -typedef struct D3D10_QUERY_DATA_SO_STATISTICS - { - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; - } D3D10_QUERY_DATA_SO_STATISTICS; - -typedef -enum D3D10_COUNTER - { - D3D10_COUNTER_GPU_IDLE = 0, - D3D10_COUNTER_VERTEX_PROCESSING = ( D3D10_COUNTER_GPU_IDLE + 1 ) , - D3D10_COUNTER_GEOMETRY_PROCESSING = ( D3D10_COUNTER_VERTEX_PROCESSING + 1 ) , - D3D10_COUNTER_PIXEL_PROCESSING = ( D3D10_COUNTER_GEOMETRY_PROCESSING + 1 ) , - D3D10_COUNTER_OTHER_GPU_PROCESSING = ( D3D10_COUNTER_PIXEL_PROCESSING + 1 ) , - D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION = ( D3D10_COUNTER_OTHER_GPU_PROCESSING + 1 ) , - D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = ( D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION + 1 ) , - D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION + 1 ) , - D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION + 1 ) , - D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION = ( D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION + 1 ) , - D3D10_COUNTER_VS_MEMORY_LIMITED = ( D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION + 1 ) , - D3D10_COUNTER_VS_COMPUTATION_LIMITED = ( D3D10_COUNTER_VS_MEMORY_LIMITED + 1 ) , - D3D10_COUNTER_GS_MEMORY_LIMITED = ( D3D10_COUNTER_VS_COMPUTATION_LIMITED + 1 ) , - D3D10_COUNTER_GS_COMPUTATION_LIMITED = ( D3D10_COUNTER_GS_MEMORY_LIMITED + 1 ) , - D3D10_COUNTER_PS_MEMORY_LIMITED = ( D3D10_COUNTER_GS_COMPUTATION_LIMITED + 1 ) , - D3D10_COUNTER_PS_COMPUTATION_LIMITED = ( D3D10_COUNTER_PS_MEMORY_LIMITED + 1 ) , - D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE = ( D3D10_COUNTER_PS_COMPUTATION_LIMITED + 1 ) , - D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE = ( D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE + 1 ) , - D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 - } D3D10_COUNTER; - -typedef -enum D3D10_COUNTER_TYPE - { - D3D10_COUNTER_TYPE_FLOAT32 = 0, - D3D10_COUNTER_TYPE_UINT16 = ( D3D10_COUNTER_TYPE_FLOAT32 + 1 ) , - D3D10_COUNTER_TYPE_UINT32 = ( D3D10_COUNTER_TYPE_UINT16 + 1 ) , - D3D10_COUNTER_TYPE_UINT64 = ( D3D10_COUNTER_TYPE_UINT32 + 1 ) - } D3D10_COUNTER_TYPE; - -typedef struct D3D10_COUNTER_DESC - { - D3D10_COUNTER Counter; - UINT MiscFlags; - } D3D10_COUNTER_DESC; - -typedef struct D3D10_COUNTER_INFO - { - D3D10_COUNTER LastDeviceDependentCounter; - UINT NumSimultaneousCounters; - UINT8 NumDetectableParallelUnits; - } D3D10_COUNTER_INFO; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0021_v0_0_s_ifspec; - -#ifndef __ID3D10Counter_INTERFACE_DEFINED__ -#define __ID3D10Counter_INTERFACE_DEFINED__ - -/* interface ID3D10Counter */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Counter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C11-342C-4106-A19F-4F2704F689F0") - ID3D10Counter : public ID3D10Asynchronous - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D10_COUNTER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10CounterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Counter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Counter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Counter * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10Counter * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *Begin )( - ID3D10Counter * This); - - void ( STDMETHODCALLTYPE *End )( - ID3D10Counter * This); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D10Counter * This, - /* [annotation] */ - _Out_writes_bytes_opt_(DataSize) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D10Counter * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10Counter * This, - /* [annotation] */ - _Out_ D3D10_COUNTER_DESC *pDesc); - - END_INTERFACE - } ID3D10CounterVtbl; - - interface ID3D10Counter - { - CONST_VTBL struct ID3D10CounterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Counter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Counter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Counter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Counter_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10Counter_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Counter_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Counter_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10Counter_Begin(This) \ - ( (This)->lpVtbl -> Begin(This) ) - -#define ID3D10Counter_End(This) \ - ( (This)->lpVtbl -> End(This) ) - -#define ID3D10Counter_GetData(This,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pData,DataSize,GetDataFlags) ) - -#define ID3D10Counter_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D10Counter_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Counter_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D10Device_INTERFACE_DEFINED__ -#define __ID3D10Device_INTERFACE_DEFINED__ - -/* interface ID3D10Device */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Device; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C0F-342C-4106-A19F-4F2704F689F0") - ID3D10Device : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE VSSetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE PSSetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE PSSetShader( - /* [annotation] */ - _In_opt_ ID3D10PixelShader *pPixelShader) = 0; - - virtual void STDMETHODCALLTYPE PSSetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE VSSetShader( - /* [annotation] */ - _In_opt_ ID3D10VertexShader *pVertexShader) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexed( - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation) = 0; - - virtual void STDMETHODCALLTYPE Draw( - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation) = 0; - - virtual void STDMETHODCALLTYPE PSSetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE IASetInputLayout( - /* [annotation] */ - _In_opt_ ID3D10InputLayout *pInputLayout) = 0; - - virtual void STDMETHODCALLTYPE IASetVertexBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppVertexBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pStrides, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets) = 0; - - virtual void STDMETHODCALLTYPE IASetIndexBuffer( - /* [annotation] */ - _In_opt_ ID3D10Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexedInstanced( - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE DrawInstanced( - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE GSSetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE GSSetShader( - /* [annotation] */ - _In_opt_ ID3D10GeometryShader *pShader) = 0; - - virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( - /* [annotation] */ - _In_ D3D10_PRIMITIVE_TOPOLOGY Topology) = 0; - - virtual void STDMETHODCALLTYPE VSSetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE VSSetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - /* [annotation] */ - _In_opt_ ID3D10Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue) = 0; - - virtual void STDMETHODCALLTYPE GSSetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE GSSetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE OMSetRenderTargets( - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10RenderTargetView *const *ppRenderTargetViews, - /* [annotation] */ - _In_opt_ ID3D10DepthStencilView *pDepthStencilView) = 0; - - virtual void STDMETHODCALLTYPE OMSetBlendState( - /* [annotation] */ - _In_opt_ ID3D10BlendState *pBlendState, - /* [annotation] */ - _In_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask) = 0; - - virtual void STDMETHODCALLTYPE OMSetDepthStencilState( - /* [annotation] */ - _In_opt_ ID3D10DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef) = 0; - - virtual void STDMETHODCALLTYPE SOSetTargets( - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppSOTargets, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets) = 0; - - virtual void STDMETHODCALLTYPE DrawAuto( void) = 0; - - virtual void STDMETHODCALLTYPE RSSetState( - /* [annotation] */ - _In_opt_ ID3D10RasterizerState *pRasterizerState) = 0; - - virtual void STDMETHODCALLTYPE RSSetViewports( - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - /* [annotation] */ - _In_reads_opt_(NumViewports) const D3D10_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSSetScissorRects( - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D10_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE CopySubresourceRegion( - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ UINT DstX, - /* [annotation] */ - _In_ UINT DstY, - /* [annotation] */ - _In_ UINT DstZ, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pSrcBox) = 0; - - virtual void STDMETHODCALLTYPE CopyResource( - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource) = 0; - - virtual void STDMETHODCALLTYPE UpdateSubresource( - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pDstBox, - /* [annotation] */ - _In_ const void *pSrcData, - /* [annotation] */ - _In_ UINT SrcRowPitch, - /* [annotation] */ - _In_ UINT SrcDepthPitch) = 0; - - virtual void STDMETHODCALLTYPE ClearRenderTargetView( - /* [annotation] */ - _In_ ID3D10RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE ClearDepthStencilView( - /* [annotation] */ - _In_ ID3D10DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil) = 0; - - virtual void STDMETHODCALLTYPE GenerateMips( - /* [annotation] */ - _In_ ID3D10ShaderResourceView *pShaderResourceView) = 0; - - virtual void STDMETHODCALLTYPE ResolveSubresource( - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_ DXGI_FORMAT Format) = 0; - - virtual void STDMETHODCALLTYPE VSGetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE PSGetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE PSGetShader( - /* [annotation] */ - _Out_ ID3D10PixelShader **ppPixelShader) = 0; - - virtual void STDMETHODCALLTYPE PSGetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE VSGetShader( - /* [annotation] */ - _Out_ ID3D10VertexShader **ppVertexShader) = 0; - - virtual void STDMETHODCALLTYPE PSGetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE IAGetInputLayout( - /* [annotation] */ - _Out_ ID3D10InputLayout **ppInputLayout) = 0; - - virtual void STDMETHODCALLTYPE IAGetVertexBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppVertexBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pStrides, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets) = 0; - - virtual void STDMETHODCALLTYPE IAGetIndexBuffer( - /* [annotation] */ - _Out_opt_ ID3D10Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset) = 0; - - virtual void STDMETHODCALLTYPE GSGetConstantBuffers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers) = 0; - - virtual void STDMETHODCALLTYPE GSGetShader( - /* [annotation] */ - _Out_ ID3D10GeometryShader **ppGeometryShader) = 0; - - virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology( - /* [annotation] */ - _Out_ D3D10_PRIMITIVE_TOPOLOGY *pTopology) = 0; - - virtual void STDMETHODCALLTYPE VSGetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE VSGetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE GetPredication( - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue) = 0; - - virtual void STDMETHODCALLTYPE GSGetShaderResources( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews) = 0; - - virtual void STDMETHODCALLTYPE GSGetSamplers( - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers) = 0; - - virtual void STDMETHODCALLTYPE OMGetRenderTargets( - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10RenderTargetView **ppRenderTargetViews, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView) = 0; - - virtual void STDMETHODCALLTYPE OMGetBlendState( - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask) = 0; - - virtual void STDMETHODCALLTYPE OMGetDepthStencilState( - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef) = 0; - - virtual void STDMETHODCALLTYPE SOGetTargets( - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppSOTargets, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets) = 0; - - virtual void STDMETHODCALLTYPE RSGetState( - /* [annotation] */ - _Out_ ID3D10RasterizerState **ppRasterizerState) = 0; - - virtual void STDMETHODCALLTYPE RSGetViewports( - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumViewports, - /* [annotation] */ - _Out_writes_opt_(*NumViewports) D3D10_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSGetScissorRects( - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumRects, - /* [annotation] */ - _Out_writes_opt_(*NumRects) D3D10_RECT *pRects) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetExceptionMode( - UINT RaiseFlags) = 0; - - virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData) = 0; - - virtual void STDMETHODCALLTYPE ClearState( void) = 0; - - virtual void STDMETHODCALLTYPE Flush( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBuffer( - /* [annotation] */ - _In_ const D3D10_BUFFER_DESC *pDesc, - /* [annotation] */ - _In_opt_ const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_opt_ ID3D10Buffer **ppBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture1D( - /* [annotation] */ - _In_ const D3D10_TEXTURE1D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture1D **ppTexture1D) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture2D( - /* [annotation] */ - _In_ const D3D10_TEXTURE2D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture2D **ppTexture2D) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture3D( - /* [annotation] */ - _In_ const D3D10_TEXTURE3D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture3D **ppTexture3D) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView( - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10ShaderResourceView **ppSRView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView( - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10RenderTargetView **ppRTView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView( - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateInputLayout( - /* [annotation] */ - _In_reads_(NumElements) const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ) UINT NumElements, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecodeWithInputSignature, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10InputLayout **ppInputLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVertexShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10VertexShader **ppVertexShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_reads_opt_(NumEntries) const D3D10_SO_DECLARATION_ENTRY *pSODeclaration, - /* [annotation] */ - _In_range_( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT ) UINT NumEntries, - /* [annotation] */ - _In_ UINT OutputStreamStride, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePixelShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10PixelShader **ppPixelShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBlendState( - /* [annotation] */ - _In_ const D3D10_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState( - /* [annotation] */ - _In_ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState( - /* [annotation] */ - _In_ const D3D10_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _Out_opt_ ID3D10RasterizerState **ppRasterizerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSamplerState( - /* [annotation] */ - _In_ const D3D10_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _Out_opt_ ID3D10SamplerState **ppSamplerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateQuery( - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _Out_opt_ ID3D10Query **ppQuery) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePredicate( - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCounter( - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _Out_opt_ ID3D10Counter **ppCounter) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels) = 0; - - virtual void STDMETHODCALLTYPE CheckCounterInfo( - /* [annotation] */ - _Out_ D3D10_COUNTER_INFO *pCounterInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckCounter( - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pDesc, - /* [annotation] */ - _Out_ D3D10_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) = 0; - - virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedResource( - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _Out_opt_ void **ppResource) = 0; - - virtual void STDMETHODCALLTYPE SetTextFilterSize( - /* [annotation] */ - _In_ UINT Width, - /* [annotation] */ - _In_ UINT Height) = 0; - - virtual void STDMETHODCALLTYPE GetTextFilterSize( - /* [annotation] */ - _Out_opt_ UINT *pWidth, - /* [annotation] */ - _Out_opt_ UINT *pHeight) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10DeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Device * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Device * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Device * This); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *PSSetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *PSSetShader )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10PixelShader *pPixelShader); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *VSSetShader )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10VertexShader *pVertexShader); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D10Device * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D10Device * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *IASetInputLayout )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppVertexBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pStrides, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets); - - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D10Device * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D10Device * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *GSSetShader )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10GeometryShader *pShader); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D10Device * This, - /* [annotation] */ - _In_ D3D10_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *VSSetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *GSSetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10RenderTargetView *const *ppRenderTargetViews, - /* [annotation] */ - _In_opt_ ID3D10DepthStencilView *pDepthStencilView); - - void ( STDMETHODCALLTYPE *OMSetBlendState )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10BlendState *pBlendState, - /* [annotation] */ - _In_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppSOTargets, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets); - - void ( STDMETHODCALLTYPE *DrawAuto )( - ID3D10Device * This); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D10Device * This, - /* [annotation] */ - _In_opt_ ID3D10RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D10Device * This, - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - /* [annotation] */ - _In_reads_opt_(NumViewports) const D3D10_VIEWPORT *pViewports); - - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D10Device * This, - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D10_RECT *pRects); - - void ( STDMETHODCALLTYPE *CopySubresourceRegion )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ UINT DstX, - /* [annotation] */ - _In_ UINT DstY, - /* [annotation] */ - _In_ UINT DstZ, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pSrcBox); - - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pDstBox, - /* [annotation] */ - _In_ const void *pSrcData, - /* [annotation] */ - _In_ UINT SrcRowPitch, - /* [annotation] */ - _In_ UINT SrcDepthPitch); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_ DXGI_FORMAT Format); - - void ( STDMETHODCALLTYPE *VSGetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *PSGetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *PSGetShader )( - ID3D10Device * This, - /* [annotation] */ - _Out_ ID3D10PixelShader **ppPixelShader); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *VSGetShader )( - ID3D10Device * This, - /* [annotation] */ - _Out_ ID3D10VertexShader **ppVertexShader); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *IAGetInputLayout )( - ID3D10Device * This, - /* [annotation] */ - _Out_ ID3D10InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppVertexBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pStrides, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets); - - void ( STDMETHODCALLTYPE *IAGetIndexBuffer )( - ID3D10Device * This, - /* [annotation] */ - _Out_opt_ ID3D10Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *GSGetShader )( - ID3D10Device * This, - /* [annotation] */ - _Out_ ID3D10GeometryShader **ppGeometryShader); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D10Device * This, - /* [annotation] */ - _Out_ D3D10_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *VSGetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *GetPredication )( - ID3D10Device * This, - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *GSGetSamplers )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *OMGetRenderTargets )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10RenderTargetView **ppRenderTargetViews, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView); - - void ( STDMETHODCALLTYPE *OMGetBlendState )( - ID3D10Device * This, - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D10Device * This, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D10Device * This, - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppSOTargets, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D10Device * This, - /* [annotation] */ - _Out_ ID3D10RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D10Device * This, - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumViewports, - /* [annotation] */ - _Out_writes_opt_(*NumViewports) D3D10_VIEWPORT *pViewports); - - void ( STDMETHODCALLTYPE *RSGetScissorRects )( - ID3D10Device * This, - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumRects, - /* [annotation] */ - _Out_writes_opt_(*NumRects) D3D10_RECT *pRects); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D10Device * This); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D10Device * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D10Device * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *ClearState )( - ID3D10Device * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D10Device * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_BUFFER_DESC *pDesc, - /* [annotation] */ - _In_opt_ const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_opt_ ID3D10Buffer **ppBuffer); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE1D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture1D **ppTexture1D); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE2D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture2D **ppTexture2D); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE3D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture3D **ppTexture3D); - - HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D10Device * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D10Device * This, - /* [annotation] */ - _In_reads_(NumElements) const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ) UINT NumElements, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecodeWithInputSignature, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10InputLayout **ppInputLayout); - - HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )( - ID3D10Device * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10VertexShader **ppVertexShader); - - HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )( - ID3D10Device * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader); - - HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )( - ID3D10Device * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_reads_opt_(NumEntries) const D3D10_SO_DECLARATION_ENTRY *pSODeclaration, - /* [annotation] */ - _In_range_( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT ) UINT NumEntries, - /* [annotation] */ - _In_ UINT OutputStreamStride, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader); - - HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )( - ID3D10Device * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10PixelShader **ppPixelShader); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _Out_opt_ ID3D10RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _Out_opt_ ID3D10SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _Out_opt_ ID3D10Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _Out_opt_ ID3D10Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D10Device * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D10Device * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D10Device * This, - /* [annotation] */ - _Out_ D3D10_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D10Device * This, - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pDesc, - /* [annotation] */ - _Out_ D3D10_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); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D10Device * This); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D10Device * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _Out_opt_ void **ppResource); - - void ( STDMETHODCALLTYPE *SetTextFilterSize )( - ID3D10Device * This, - /* [annotation] */ - _In_ UINT Width, - /* [annotation] */ - _In_ UINT Height); - - void ( STDMETHODCALLTYPE *GetTextFilterSize )( - ID3D10Device * This, - /* [annotation] */ - _Out_opt_ UINT *pWidth, - /* [annotation] */ - _Out_opt_ UINT *pHeight); - - END_INTERFACE - } ID3D10DeviceVtbl; - - interface ID3D10Device - { - CONST_VTBL struct ID3D10DeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Device_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Device_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Device_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Device_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_PSSetShader(This,pPixelShader) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) ) - -#define ID3D10Device_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_VSSetShader(This,pVertexShader) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) ) - -#define ID3D10Device_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D10Device_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D10Device_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D10Device_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D10Device_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D10Device_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D10Device_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D10Device_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_GSSetShader(This,pShader) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader) ) - -#define ID3D10Device_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D10Device_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D10Device_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D10Device_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D10Device_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D10Device_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D10Device_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D10Device_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D10Device_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D10Device_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D10Device_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D10Device_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D10Device_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D10Device_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D10Device_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D10Device_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D10Device_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D10Device_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_PSGetShader(This,ppPixelShader) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) ) - -#define ID3D10Device_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_VSGetShader(This,ppVertexShader) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) ) - -#define ID3D10Device_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D10Device_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D10Device_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D10Device_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device_GSGetShader(This,ppGeometryShader) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) ) - -#define ID3D10Device_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D10Device_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D10Device_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D10Device_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D10Device_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D10Device_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D10Device_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D10Device_RSGetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) ) - -#define ID3D10Device_RSGetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) ) - -#define ID3D10Device_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D10Device_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D10Device_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - -#define ID3D10Device_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Device_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Device_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D10Device_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D10Device_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D10Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D10Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D10Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D10Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D10Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D10Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D10Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D10Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D10Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) ) - -#define ID3D10Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) ) - -#define ID3D10Device_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) ) - -#define ID3D10Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) ) - -#define ID3D10Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D10Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D10Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D10Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D10Device_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D10Device_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D10Device_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D10Device_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D10Device_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 ID3D10Device_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D10Device_SetTextFilterSize(This,Width,Height) \ - ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) ) - -#define ID3D10Device_GetTextFilterSize(This,pWidth,pHeight) \ - ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Device_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0023 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region Application Family -#pragma region Application Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0023_v0_0_s_ifspec; - -#ifndef __ID3D10Multithread_INTERFACE_DEFINED__ -#define __ID3D10Multithread_INTERFACE_DEFINED__ - -/* interface ID3D10Multithread */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Multithread; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4E00-342C-4106-A19F-4F2704F689F0") - ID3D10Multithread : 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 ID3D10MultithreadVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Multithread * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Multithread * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Multithread * This); - - void ( STDMETHODCALLTYPE *Enter )( - ID3D10Multithread * This); - - void ( STDMETHODCALLTYPE *Leave )( - ID3D10Multithread * This); - - BOOL ( STDMETHODCALLTYPE *SetMultithreadProtected )( - ID3D10Multithread * This, - /* [annotation] */ - _In_ BOOL bMTProtect); - - BOOL ( STDMETHODCALLTYPE *GetMultithreadProtected )( - ID3D10Multithread * This); - - END_INTERFACE - } ID3D10MultithreadVtbl; - - interface ID3D10Multithread - { - CONST_VTBL struct ID3D10MultithreadVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Multithread_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Multithread_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Multithread_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Multithread_Enter(This) \ - ( (This)->lpVtbl -> Enter(This) ) - -#define ID3D10Multithread_Leave(This) \ - ( (This)->lpVtbl -> Leave(This) ) - -#define ID3D10Multithread_SetMultithreadProtected(This,bMTProtect) \ - ( (This)->lpVtbl -> SetMultithreadProtected(This,bMTProtect) ) - -#define ID3D10Multithread_GetMultithreadProtected(This) \ - ( (This)->lpVtbl -> GetMultithreadProtected(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Multithread_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_0000_0024 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -#pragma endregion -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -typedef -enum D3D10_CREATE_DEVICE_FLAG - { - D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1, - D3D10_CREATE_DEVICE_DEBUG = 0x2, - D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4, - D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, - D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP = 0x10, - D3D10_CREATE_DEVICE_BGRA_SUPPORT = 0x20, - D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80, - D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200, - D3D10_CREATE_DEVICE_DEBUGGABLE = 0x400 - } D3D10_CREATE_DEVICE_FLAG; - - -#define D3D10_SDK_VERSION ( 29 ) - -#if !defined( D3D10_IGNORE_SDK_LAYERS ) -#include "d3d10sdklayers.h" -#endif -#include "d3d10misc.h" -#include "d3d10shader.h" -#include "d3d10effect.h" -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -DEFINE_GUID(IID_ID3D10DeviceChild,0x9B7E4C00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10DepthStencilState,0x2B4B1CC8,0xA4AD,0x41f8,0x83,0x22,0xCA,0x86,0xFC,0x3E,0xC6,0x75); -DEFINE_GUID(IID_ID3D10BlendState,0xEDAD8D19,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61); -DEFINE_GUID(IID_ID3D10RasterizerState,0xA2A07292,0x89AF,0x4345,0xBE,0x2E,0xC5,0x3D,0x9F,0xBB,0x6E,0x9F); -DEFINE_GUID(IID_ID3D10Resource,0x9B7E4C01,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Buffer,0x9B7E4C02,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Texture1D,0x9B7E4C03,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Texture2D,0x9B7E4C04,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Texture3D,0x9B7E4C05,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10View,0xC902B03F,0x60A7,0x49BA,0x99,0x36,0x2A,0x3A,0xB3,0x7A,0x7E,0x33); -DEFINE_GUID(IID_ID3D10ShaderResourceView,0x9B7E4C07,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10RenderTargetView,0x9B7E4C08,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10DepthStencilView,0x9B7E4C09,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10VertexShader,0x9B7E4C0A,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10GeometryShader,0x6316BE88,0x54CD,0x4040,0xAB,0x44,0x20,0x46,0x1B,0xC8,0x1F,0x68); -DEFINE_GUID(IID_ID3D10PixelShader,0x4968B601,0x9D00,0x4cde,0x83,0x46,0x8E,0x7F,0x67,0x58,0x19,0xB6); -DEFINE_GUID(IID_ID3D10InputLayout,0x9B7E4C0B,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10SamplerState,0x9B7E4C0C,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Asynchronous,0x9B7E4C0D,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Query,0x9B7E4C0E,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Predicate,0x9B7E4C10,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Counter,0x9B7E4C11,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Device,0x9B7E4C0F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Multithread,0x9B7E4E00,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_0000_0024_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d10_1.h b/3rdparty/minidx12/Include/d3d10_1.h deleted file mode 100644 index 24d1573fe8..0000000000 --- a/3rdparty/minidx12/Include/d3d10_1.h +++ /dev/null @@ -1,1793 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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 __d3d10_1_h__ -#define __d3d10_1_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D10BlendState1_FWD_DEFINED__ -#define __ID3D10BlendState1_FWD_DEFINED__ -typedef interface ID3D10BlendState1 ID3D10BlendState1; - -#endif /* __ID3D10BlendState1_FWD_DEFINED__ */ - - -#ifndef __ID3D10ShaderResourceView1_FWD_DEFINED__ -#define __ID3D10ShaderResourceView1_FWD_DEFINED__ -typedef interface ID3D10ShaderResourceView1 ID3D10ShaderResourceView1; - -#endif /* __ID3D10ShaderResourceView1_FWD_DEFINED__ */ - - -#ifndef __ID3D10Device1_FWD_DEFINED__ -#define __ID3D10Device1_FWD_DEFINED__ -typedef interface ID3D10Device1 ID3D10Device1; - -#endif /* __ID3D10Device1_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d10_1_0000_0000 */ -/* [local] */ - -#if defined( __d3d10_h__ ) && !defined( D3D10_ARBITRARY_HEADER_ORDERING ) -#error d3d10.h is included before d3d10_1.h, and it will confuse tools that honor SAL annotations. \ -If possibly targeting d3d10.1, include d3d10_1.h instead of d3d10.h, or ensure d3d10_1.h is included before d3d10.h -#endif -#ifndef _D3D10_1_CONSTANTS -#define _D3D10_1_CONSTANTS -#define D3D10_1_DEFAULT_SAMPLE_MASK ( 0xffffffff ) - -#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) -#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) -#define D3D10_1_GS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) - -#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) - -#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) - -#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) - -#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) - -#define D3D10_1_SHADER_MAJOR_VERSION ( 4 ) - -#define D3D10_1_SHADER_MINOR_VERSION ( 1 ) - -#define D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) - -#define D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 256 ) - -#define D3D10_1_SO_BUFFER_SLOT_COUNT ( 4 ) - -#define D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER ( 1 ) - -#define D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT ( 64 ) - -#define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) - -#define D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D10_1_VS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D10_1_VS_OUTPUT_REGISTER_COUNT ( 32 ) - -#endif -#include -#include "d3d10.h" // -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - -typedef -enum D3D10_FEATURE_LEVEL1 - { - D3D10_FEATURE_LEVEL_10_0 = 0xa000, - D3D10_FEATURE_LEVEL_10_1 = 0xa100, - D3D10_FEATURE_LEVEL_9_1 = 0x9100, - D3D10_FEATURE_LEVEL_9_2 = 0x9200, - D3D10_FEATURE_LEVEL_9_3 = 0x9300 - } D3D10_FEATURE_LEVEL1; - -typedef struct D3D10_RENDER_TARGET_BLEND_DESC1 - { - BOOL BlendEnable; - D3D10_BLEND SrcBlend; - D3D10_BLEND DestBlend; - D3D10_BLEND_OP BlendOp; - D3D10_BLEND SrcBlendAlpha; - D3D10_BLEND DestBlendAlpha; - D3D10_BLEND_OP BlendOpAlpha; - UINT8 RenderTargetWriteMask; - } D3D10_RENDER_TARGET_BLEND_DESC1; - -typedef struct D3D10_BLEND_DESC1 - { - BOOL AlphaToCoverageEnable; - BOOL IndependentBlendEnable; - D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[ 8 ]; - } D3D10_BLEND_DESC1; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D10BlendState1_INTERFACE_DEFINED__ -#define __ID3D10BlendState1_INTERFACE_DEFINED__ - -/* interface ID3D10BlendState1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10BlendState1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("EDAD8D99-8A35-4d6d-8566-2EA276CDE161") - ID3D10BlendState1 : public ID3D10BlendState - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D10_BLEND_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10BlendState1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10BlendState1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10BlendState1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10BlendState1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10BlendState1 * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10BlendState1 * This, - /* [annotation] */ - _Out_ D3D10_BLEND_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D10BlendState1 * This, - /* [annotation] */ - _Out_ D3D10_BLEND_DESC1 *pDesc); - - END_INTERFACE - } ID3D10BlendState1Vtbl; - - interface ID3D10BlendState1 - { - CONST_VTBL struct ID3D10BlendState1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10BlendState1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10BlendState1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10BlendState1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10BlendState1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10BlendState1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10BlendState1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10BlendState1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10BlendState1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D10BlendState1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10BlendState1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_1_0000_0001 */ -/* [local] */ - -typedef struct D3D10_TEXCUBE_ARRAY_SRV1 - { - UINT MostDetailedMip; - UINT MipLevels; - UINT First2DArrayFace; - UINT NumCubes; - } D3D10_TEXCUBE_ARRAY_SRV1; - -typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; - -typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1 - { - DXGI_FORMAT Format; - D3D10_SRV_DIMENSION1 ViewDimension; - union - { - D3D10_BUFFER_SRV Buffer; - D3D10_TEX1D_SRV Texture1D; - D3D10_TEX1D_ARRAY_SRV Texture1DArray; - D3D10_TEX2D_SRV Texture2D; - D3D10_TEX2D_ARRAY_SRV Texture2DArray; - D3D10_TEX2DMS_SRV Texture2DMS; - D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D10_TEX3D_SRV Texture3D; - D3D10_TEXCUBE_SRV TextureCube; - D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; - } ; - } D3D10_SHADER_RESOURCE_VIEW_DESC1; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ -#define __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ - -/* interface ID3D10ShaderResourceView1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10ShaderResourceView1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C87-342C-4106-A19F-4F2704F689F0") - ID3D10ShaderResourceView1 : public ID3D10ShaderResourceView - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10ShaderResourceView1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10ShaderResourceView1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10ShaderResourceView1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10ShaderResourceView1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _Out_ ID3D10Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _Out_ ID3D10Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _Out_ D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D10ShaderResourceView1 * This, - /* [annotation] */ - _Out_ D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc); - - END_INTERFACE - } ID3D10ShaderResourceView1Vtbl; - - interface ID3D10ShaderResourceView1 - { - CONST_VTBL struct ID3D10ShaderResourceView1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10ShaderResourceView1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10ShaderResourceView1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10ShaderResourceView1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10ShaderResourceView1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D10ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10ShaderResourceView1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D10ShaderResourceView1_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D10ShaderResourceView1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D10ShaderResourceView1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10ShaderResourceView1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_1_0000_0002 */ -/* [local] */ - -typedef -enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS - { - D3D10_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, - D3D10_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe - } D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0002_v0_0_s_ifspec; - -#ifndef __ID3D10Device1_INTERFACE_DEFINED__ -#define __ID3D10Device1_INTERFACE_DEFINED__ - -/* interface ID3D10Device1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Device1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B7E4C8F-342C-4106-A19F-4F2704F689F0") - ID3D10Device1 : public ID3D10Device - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1( - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10ShaderResourceView1 **ppSRView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( - /* [annotation] */ - _In_ const D3D10_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _Out_opt_ ID3D10BlendState1 **ppBlendState) = 0; - - virtual D3D10_FEATURE_LEVEL1 STDMETHODCALLTYPE GetFeatureLevel( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10Device1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Device1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Device1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Device1 * This); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *PSSetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *PSSetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10PixelShader *pPixelShader); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *VSSetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10VertexShader *pVertexShader); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *IASetInputLayout )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppVertexBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pStrides, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets); - - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppConstantBuffers); - - void ( STDMETHODCALLTYPE *GSSetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10GeometryShader *pShader); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ D3D10_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *VSSetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10ShaderResourceView *const *ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *GSSetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _In_reads_opt_(NumSamplers) ID3D10SamplerState *const *ppSamplers); - - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D10RenderTargetView *const *ppRenderTargetViews, - /* [annotation] */ - _In_opt_ ID3D10DepthStencilView *pDepthStencilView); - - void ( STDMETHODCALLTYPE *OMSetBlendState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10BlendState *pBlendState, - /* [annotation] */ - _In_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT) UINT NumBuffers, - /* [annotation] */ - _In_reads_opt_(NumBuffers) ID3D10Buffer *const *ppSOTargets, - /* [annotation] */ - _In_reads_opt_(NumBuffers) const UINT *pOffsets); - - void ( STDMETHODCALLTYPE *DrawAuto )( - ID3D10Device1 * This); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_opt_ ID3D10RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - /* [annotation] */ - _In_reads_opt_(NumViewports) const D3D10_VIEWPORT *pViewports); - - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D10_RECT *pRects); - - void ( STDMETHODCALLTYPE *CopySubresourceRegion )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ UINT DstX, - /* [annotation] */ - _In_ UINT DstY, - /* [annotation] */ - _In_ UINT DstZ, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pSrcBox); - - void ( STDMETHODCALLTYPE *CopyResource )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_opt_ const D3D10_BOX *pDstBox, - /* [annotation] */ - _In_ const void *pSrcData, - /* [annotation] */ - _In_ UINT SrcRowPitch, - /* [annotation] */ - _In_ UINT SrcDepthPitch); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ ID3D10Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_ DXGI_FORMAT Format); - - void ( STDMETHODCALLTYPE *VSGetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *PSGetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *PSGetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ ID3D10PixelShader **ppPixelShader); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *VSGetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ ID3D10VertexShader **ppVertexShader); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *IAGetInputLayout )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ ID3D10InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppVertexBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pStrides, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets); - - void ( STDMETHODCALLTYPE *IAGetIndexBuffer )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_opt_ ID3D10Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppConstantBuffers); - - void ( STDMETHODCALLTYPE *GSGetShader )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ ID3D10GeometryShader **ppGeometryShader); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ D3D10_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *VSGetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *GetPredication )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT - StartSlot ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10ShaderResourceView **ppShaderResourceViews); - - void ( STDMETHODCALLTYPE *GSGetSamplers )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - 1 ) UINT StartSlot, - /* [annotation] */ - _In_range_( 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT - StartSlot ) UINT NumSamplers, - /* [annotation] */ - _Out_writes_opt_(NumSamplers) ID3D10SamplerState **ppSamplers); - - void ( STDMETHODCALLTYPE *OMGetRenderTargets )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _Out_writes_opt_(NumViews) ID3D10RenderTargetView **ppRenderTargetViews, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView); - - void ( STDMETHODCALLTYPE *OMGetBlendState )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D10Device1 * This, - /* [annotation] */ - _In_range_( 0, D3D10_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D10Buffer **ppSOTargets, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) UINT *pOffsets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ ID3D10RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D10Device1 * This, - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumViewports, - /* [annotation] */ - _Out_writes_opt_(*NumViewports) D3D10_VIEWPORT *pViewports); - - void ( STDMETHODCALLTYPE *RSGetScissorRects )( - ID3D10Device1 * This, - /* [annotation] */ - _Inout_ /*_range(0, D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *NumRects, - /* [annotation] */ - _Out_writes_opt_(*NumRects) D3D10_RECT *pRects); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D10Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D10Device1 * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D10Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *ClearState )( - ID3D10Device1 * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D10Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_BUFFER_DESC *pDesc, - /* [annotation] */ - _In_opt_ const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_opt_ ID3D10Buffer **ppBuffer); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture1D )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE1D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture1D **ppTexture1D); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture2D )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE2D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels * pDesc->ArraySize)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture2D **ppTexture2D); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture3D )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_TEXTURE3D_DESC *pDesc, - /* [annotation] */ - _In_reads_opt_(_Inexpressible_(pDesc->MipLevels)) const D3D10_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _Out_ ID3D10Texture3D **ppTexture3D); - - HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D10Device1 * This, - /* [annotation] */ - _In_reads_(NumElements) const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs, - /* [annotation] */ - _In_range_( 0, D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ) UINT NumElements, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecodeWithInputSignature, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10InputLayout **ppInputLayout); - - HRESULT ( STDMETHODCALLTYPE *CreateVertexShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10VertexShader **ppVertexShader); - - HRESULT ( STDMETHODCALLTYPE *CreateGeometryShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader); - - HRESULT ( STDMETHODCALLTYPE *CreateGeometryShaderWithStreamOutput )( - ID3D10Device1 * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_reads_opt_(NumEntries) const D3D10_SO_DECLARATION_ENTRY *pSODeclaration, - /* [annotation] */ - _In_range_( 0, D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT ) UINT NumEntries, - /* [annotation] */ - _In_ UINT OutputStreamStride, - /* [annotation] */ - _Out_opt_ ID3D10GeometryShader **ppGeometryShader); - - HRESULT ( STDMETHODCALLTYPE *CreatePixelShader )( - ID3D10Device1 * This, - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _Out_opt_ ID3D10PixelShader **ppPixelShader); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _Out_opt_ ID3D10BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _Out_opt_ ID3D10DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _Out_opt_ ID3D10RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _Out_opt_ ID3D10SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _Out_opt_ ID3D10Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _Out_opt_ ID3D10Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _Out_opt_ ID3D10Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_ D3D10_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_COUNTER_DESC *pDesc, - /* [annotation] */ - _Out_ D3D10_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); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D10Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _Out_opt_ void **ppResource); - - void ( STDMETHODCALLTYPE *SetTextFilterSize )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ UINT Width, - /* [annotation] */ - _In_ UINT Height); - - void ( STDMETHODCALLTYPE *GetTextFilterSize )( - ID3D10Device1 * This, - /* [annotation] */ - _Out_opt_ UINT *pWidth, - /* [annotation] */ - _Out_opt_ UINT *pHeight); - - HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ ID3D10Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D10_SHADER_RESOURCE_VIEW_DESC1 *pDesc, - /* [annotation] */ - _Out_opt_ ID3D10ShaderResourceView1 **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )( - ID3D10Device1 * This, - /* [annotation] */ - _In_ const D3D10_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _Out_opt_ ID3D10BlendState1 **ppBlendState); - - D3D10_FEATURE_LEVEL1 ( STDMETHODCALLTYPE *GetFeatureLevel )( - ID3D10Device1 * This); - - END_INTERFACE - } ID3D10Device1Vtbl; - - interface ID3D10Device1 - { - CONST_VTBL struct ID3D10Device1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Device1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Device1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Device1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Device1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_PSSetShader(This,pPixelShader) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader) ) - -#define ID3D10Device1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_VSSetShader(This,pVertexShader) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader) ) - -#define ID3D10Device1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D10Device1_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D10Device1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D10Device1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D10Device1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D10Device1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D10Device1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D10Device1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_GSSetShader(This,pShader) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader) ) - -#define ID3D10Device1_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D10Device1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D10Device1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D10Device1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D10Device1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D10Device1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D10Device1_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D10Device1_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D10Device1_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D10Device1_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D10Device1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D10Device1_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D10Device1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D10Device1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D10Device1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D10Device1_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D10Device1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D10Device1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_PSGetShader(This,ppPixelShader) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader) ) - -#define ID3D10Device1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_VSGetShader(This,ppVertexShader) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader) ) - -#define ID3D10Device1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D10Device1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D10Device1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D10Device1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D10Device1_GSGetShader(This,ppGeometryShader) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader) ) - -#define ID3D10Device1_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D10Device1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D10Device1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D10Device1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D10Device1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D10Device1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D10Device1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D10Device1_SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D10Device1_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D10Device1_RSGetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,NumViewports,pViewports) ) - -#define ID3D10Device1_RSGetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,NumRects,pRects) ) - -#define ID3D10Device1_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D10Device1_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D10Device1_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - -#define ID3D10Device1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D10Device1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D10Device1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D10Device1_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D10Device1_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D10Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D10Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D10Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D10Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D10Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D10Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D10Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D10Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D10Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,ppVertexShader) ) - -#define ID3D10Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,ppGeometryShader) ) - -#define ID3D10Device1_CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShaderWithStreamOutput(This,pShaderBytecode,BytecodeLength,pSODeclaration,NumEntries,OutputStreamStride,ppGeometryShader) ) - -#define ID3D10Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,ppPixelShader) ) - -#define ID3D10Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D10Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D10Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D10Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D10Device1_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D10Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D10Device1_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D10Device1_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D10Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D10Device1_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D10Device1_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 ID3D10Device1_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D10Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D10Device1_SetTextFilterSize(This,Width,Height) \ - ( (This)->lpVtbl -> SetTextFilterSize(This,Width,Height) ) - -#define ID3D10Device1_GetTextFilterSize(This,pWidth,pHeight) \ - ( (This)->lpVtbl -> GetTextFilterSize(This,pWidth,pHeight) ) - - -#define ID3D10Device1_CreateShaderResourceView1(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc,ppSRView) ) - -#define ID3D10Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D10Device1_GetFeatureLevel(This) \ - ( (This)->lpVtbl -> GetFeatureLevel(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Device1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d10_1_0000_0003 */ -/* [local] */ - -#define D3D10_1_SDK_VERSION ( ( 0 + 0x20 ) ) - -#include "d3d10_1shader.h" - -/////////////////////////////////////////////////////////////////////////// -// D3D10CreateDevice1 -// ------------------ -// -// pAdapter -// If NULL, D3D10CreateDevice1 will choose the primary adapter and -// create a new instance from a temporarily created IDXGIFactory. -// If non-NULL, D3D10CreateDevice1 will register the appropriate -// device, if necessary (via IDXGIAdapter::RegisterDrver), before -// creating the device. -// DriverType -// Specifies the driver type to be created: hardware, reference or -// null. -// Software -// HMODULE of a DLL implementing a software rasterizer. Must be NULL for -// non-Software driver types. -// Flags -// Any of those documented for D3D10CreateDeviceAndSwapChain1. -// HardwareLevel -// Any of those documented for D3D10CreateDeviceAndSwapChain1. -// SDKVersion -// SDK version. Use the D3D10_1_SDK_VERSION macro. -// ppDevice -// Pointer to returned interface. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory -// IDXGIFactory::EnumAdapters -// IDXGIAdapter::RegisterDriver -// D3D10CreateDevice1 -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE1)(IDXGIAdapter *, - D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device1**); - -HRESULT WINAPI D3D10CreateDevice1( - _In_opt_ IDXGIAdapter *pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - D3D10_FEATURE_LEVEL1 HardwareLevel, - UINT SDKVersion, - _Out_opt_ ID3D10Device1 **ppDevice); - -/////////////////////////////////////////////////////////////////////////// -// D3D10CreateDeviceAndSwapChain1 -// ------------------------------ -// -// ppAdapter -// If NULL, D3D10CreateDevice1 will choose the primary adapter and -// create a new instance from a temporarily created IDXGIFactory. -// If non-NULL, D3D10CreateDevice1 will register the appropriate -// device, if necessary (via IDXGIAdapter::RegisterDrver), before -// creating the device. -// DriverType -// Specifies the driver type to be created: hardware, reference or -// null. -// Software -// HMODULE of a DLL implementing a software rasterizer. Must be NULL for -// non-Software driver types. -// Flags -// Any of those documented for D3D10CreateDevice1. -// HardwareLevel -// Any of: -// D3D10_CREATE_LEVEL_10_0 -// D3D10_CREATE_LEVEL_10_1 -// SDKVersion -// SDK version. Use the D3D10_1_SDK_VERSION macro. -// pSwapChainDesc -// Swap chain description, may be NULL. -// ppSwapChain -// Pointer to returned interface. May be NULL. -// ppDevice -// Pointer to returned interface. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory -// IDXGIFactory::EnumAdapters -// IDXGIAdapter::RegisterDriver -// D3D10CreateDevice1 -// IDXGIFactory::CreateSwapChain -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)(IDXGIAdapter *, - D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device1 **); - -HRESULT WINAPI D3D10CreateDeviceAndSwapChain1( - _In_opt_ IDXGIAdapter *pAdapter, - D3D10_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - D3D10_FEATURE_LEVEL1 HardwareLevel, - UINT SDKVersion, - _In_opt_ DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, - _Out_opt_ IDXGISwapChain **ppSwapChain, - _Out_opt_ ID3D10Device1 **ppDevice); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -DEFINE_GUID(IID_ID3D10BlendState1,0xEDAD8D99,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61); -DEFINE_GUID(IID_ID3D10ShaderResourceView1,0x9B7E4C87,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); -DEFINE_GUID(IID_ID3D10Device1,0x9B7E4C8F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d10_1_0000_0003_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d10_1shader.h b/3rdparty/minidx12/Include/d3d10_1shader.h deleted file mode 100644 index 4d3724e01c..0000000000 --- a/3rdparty/minidx12/Include/d3d10_1shader.h +++ /dev/null @@ -1,306 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: D3D10_1Shader.h -// Content: D3D10.1 Shader Types and APIs -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3D10_1SHADER_H__ -#define __D3D10_1SHADER_H__ - -#include "d3d10shader.h" - -#include - - - -//---------------------------------------------------------------------------- -// Shader debugging structures -//---------------------------------------------------------------------------- - -typedef enum _D3D10_SHADER_DEBUG_REGTYPE -{ - D3D10_SHADER_DEBUG_REG_INPUT, - D3D10_SHADER_DEBUG_REG_OUTPUT, - D3D10_SHADER_DEBUG_REG_CBUFFER, - D3D10_SHADER_DEBUG_REG_TBUFFER, - D3D10_SHADER_DEBUG_REG_TEMP, - D3D10_SHADER_DEBUG_REG_TEMPARRAY, - D3D10_SHADER_DEBUG_REG_TEXTURE, - D3D10_SHADER_DEBUG_REG_SAMPLER, - D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER, - D3D10_SHADER_DEBUG_REG_LITERAL, - D3D10_SHADER_DEBUG_REG_UNUSED, - D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS, - D3D11_SHADER_DEBUG_REG_UAV, - D3D10_SHADER_DEBUG_REG_FORCE_DWORD = 0x7fffffff, -} D3D10_SHADER_DEBUG_REGTYPE; - -typedef enum _D3D10_SHADER_DEBUG_SCOPETYPE -{ - D3D10_SHADER_DEBUG_SCOPE_GLOBAL, - D3D10_SHADER_DEBUG_SCOPE_BLOCK, - D3D10_SHADER_DEBUG_SCOPE_FORLOOP, - D3D10_SHADER_DEBUG_SCOPE_STRUCT, - D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS, - D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK, - D3D10_SHADER_DEBUG_SCOPE_NAMESPACE, - D3D10_SHADER_DEBUG_SCOPE_ANNOTATION, - D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD = 0x7fffffff, -} D3D10_SHADER_DEBUG_SCOPETYPE; - -typedef enum _D3D10_SHADER_DEBUG_VARTYPE -{ - D3D10_SHADER_DEBUG_VAR_VARIABLE, - D3D10_SHADER_DEBUG_VAR_FUNCTION, - D3D10_SHADER_DEBUG_VAR_FORCE_DWORD = 0x7fffffff, -} D3D10_SHADER_DEBUG_VARTYPE; - -///////////////////////////////////////////////////////////////////// -// These are the serialized structures that get written to the file -///////////////////////////////////////////////////////////////////// - -typedef struct _D3D10_SHADER_DEBUG_TOKEN_INFO -{ - UINT File; // offset into file list - UINT Line; // line # - UINT Column; // column # - - UINT TokenLength; - UINT TokenId; // offset to LPCSTR of length TokenLength in string datastore -} D3D10_SHADER_DEBUG_TOKEN_INFO; - -// Variable list -typedef struct _D3D10_SHADER_DEBUG_VAR_INFO -{ - // Index into token list for declaring identifier - UINT TokenId; - D3D10_SHADER_VARIABLE_TYPE Type; - // register and component for this variable, only valid/necessary for arrays - UINT Register; - UINT Component; - // gives the original variable that declared this variable - UINT ScopeVar; - // this variable's offset in its ScopeVar - UINT ScopeVarOffset; -} D3D10_SHADER_DEBUG_VAR_INFO; - -typedef struct _D3D10_SHADER_DEBUG_INPUT_INFO -{ - // index into array of variables of variable to initialize - UINT Var; - // input, cbuffer, tbuffer - D3D10_SHADER_DEBUG_REGTYPE InitialRegisterSet; - // set to cbuffer or tbuffer slot, geometry shader input primitive #, - // identifying register for indexable temp, or -1 - UINT InitialBank; - // -1 if temp, otherwise gives register in register set - UINT InitialRegister; - // -1 if temp, otherwise gives component - UINT InitialComponent; - // initial value if literal - UINT InitialValue; -} D3D10_SHADER_DEBUG_INPUT_INFO; - -typedef struct _D3D10_SHADER_DEBUG_SCOPEVAR_INFO -{ - // Index into variable token - UINT TokenId; - - D3D10_SHADER_DEBUG_VARTYPE VarType; // variable or function (different namespaces) - D3D10_SHADER_VARIABLE_CLASS Class; - UINT Rows; // number of rows (matrices) - UINT Columns; // number of columns (vectors and matrices) - - // In an array of structures, one struct member scope is provided, and - // you'll have to add the array stride times the index to the variable - // index you find, then find that variable in this structure's list of - // variables. - - // gives a scope to look up struct members. -1 if not a struct - UINT StructMemberScope; - - // number of array indices - UINT uArrayIndices; // a[3][2][1] has 3 indices - // maximum array index for each index - // offset to UINT[uArrayIndices] in UINT datastore - UINT ArrayElements; // a[3][2][1] has {3, 2, 1} - // how many variables each array index moves - // offset to UINT[uArrayIndices] in UINT datastore - UINT ArrayStrides; // a[3][2][1] has {2, 1, 1} - - UINT uVariables; - // index of the first variable, later variables are offsets from this one - UINT uFirstVariable; -} D3D10_SHADER_DEBUG_SCOPEVAR_INFO; - -// scope data, this maps variable names to debug variables (useful for the watch window) -typedef struct _D3D10_SHADER_DEBUG_SCOPE_INFO -{ - D3D10_SHADER_DEBUG_SCOPETYPE ScopeType; - UINT Name; // offset to name of scope in strings list - UINT uNameLen; // length of name string - UINT uVariables; - UINT VariableData; // Offset to UINT[uVariables] indexing the Scope Variable list -} D3D10_SHADER_DEBUG_SCOPE_INFO; - -// instruction outputs -typedef struct _D3D10_SHADER_DEBUG_OUTPUTVAR -{ - // index variable being written to, if -1 it's not going to a variable - UINT Var; - // range data that the compiler expects to be true - UINT uValueMin, uValueMax; - INT iValueMin, iValueMax; - FLOAT fValueMin, fValueMax; - - BOOL bNaNPossible, bInfPossible; -} D3D10_SHADER_DEBUG_OUTPUTVAR; - -typedef struct _D3D10_SHADER_DEBUG_OUTPUTREG_INFO -{ - // Only temp, indexable temp, and output are valid here - D3D10_SHADER_DEBUG_REGTYPE OutputRegisterSet; - // -1 means no output - UINT OutputReg; - // if a temp array, identifier for which one - UINT TempArrayReg; - // -1 means masked out - UINT OutputComponents[4]; - D3D10_SHADER_DEBUG_OUTPUTVAR OutputVars[4]; - // when indexing the output, get the value of this register, then add - // that to uOutputReg. If uIndexReg is -1, then there is no index. - // find the variable whose register is the sum (by looking in the ScopeVar) - // and component matches, then set it. This should only happen for indexable - // temps and outputs. - UINT IndexReg; - UINT IndexComp; -} D3D10_SHADER_DEBUG_OUTPUTREG_INFO; - -// per instruction data -typedef struct _D3D10_SHADER_DEBUG_INST_INFO -{ - UINT Id; // Which instruction this is in the bytecode - UINT Opcode; // instruction type - - // 0, 1, or 2 - UINT uOutputs; - - // up to two outputs per instruction - D3D10_SHADER_DEBUG_OUTPUTREG_INFO pOutputs[2]; - - // index into the list of tokens for this instruction's token - UINT TokenId; - - // how many function calls deep this instruction is - UINT NestingLevel; - - // list of scopes from outer-most to inner-most - // Number of scopes - UINT Scopes; - UINT ScopeInfo; // Offset to UINT[uScopes] specifying indices of the ScopeInfo Array - - // list of variables accessed by this instruction - // Number of variables - UINT AccessedVars; - UINT AccessedVarsInfo; // Offset to UINT[AccessedVars] specifying indices of the ScopeVariableInfo Array -} D3D10_SHADER_DEBUG_INST_INFO; - -typedef struct _D3D10_SHADER_DEBUG_FILE_INFO -{ - UINT FileName; // Offset to LPCSTR for file name - UINT FileNameLen; // Length of file name - UINT FileData; // Offset to LPCSTR of length FileLen - UINT FileLen; // Length of file -} D3D10_SHADER_DEBUG_FILE_INFO; - -typedef struct _D3D10_SHADER_DEBUG_INFO -{ - UINT Size; // sizeof(D3D10_SHADER_DEBUG_INFO) - UINT Creator; // Offset to LPCSTR for compiler version - UINT EntrypointName; // Offset to LPCSTR for Entry point name - UINT ShaderTarget; // Offset to LPCSTR for shader target - UINT CompileFlags; // flags used to compile - UINT Files; // number of included files - UINT FileInfo; // Offset to D3D10_SHADER_DEBUG_FILE_INFO[Files] - UINT Instructions; // number of instructions - UINT InstructionInfo; // Offset to D3D10_SHADER_DEBUG_INST_INFO[Instructions] - UINT Variables; // number of variables - UINT VariableInfo; // Offset to D3D10_SHADER_DEBUG_VAR_INFO[Variables] - UINT InputVariables; // number of variables to initialize before running - UINT InputVariableInfo; // Offset to D3D10_SHADER_DEBUG_INPUT_INFO[InputVariables] - UINT Tokens; // number of tokens to initialize - UINT TokenInfo; // Offset to D3D10_SHADER_DEBUG_TOKEN_INFO[Tokens] - UINT Scopes; // number of scopes - UINT ScopeInfo; // Offset to D3D10_SHADER_DEBUG_SCOPE_INFO[Scopes] - UINT ScopeVariables; // number of variables declared - UINT ScopeVariableInfo; // Offset to D3D10_SHADER_DEBUG_SCOPEVAR_INFO[Scopes] - UINT UintOffset; // Offset to the UINT datastore, all UINT offsets are from this offset - UINT StringOffset; // Offset to the string datastore, all string offsets are from this offset -} D3D10_SHADER_DEBUG_INFO; - -//---------------------------------------------------------------------------- -// ID3D10ShaderReflection1: -//---------------------------------------------------------------------------- - -// -// Interface definitions -// - - -typedef interface ID3D10ShaderReflection1 ID3D10ShaderReflection1; -typedef interface ID3D10ShaderReflection1 *LPD3D10SHADERREFLECTION1; - -// {C3457783-A846-47CE-9520-CEA6F66E7447} -DEFINE_GUID(IID_ID3D10ShaderReflection1, -0xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47); - -#undef INTERFACE -#define INTERFACE ID3D10ShaderReflection1 - -DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ _Out_ D3D10_SHADER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ UINT Index) PURE; - STDMETHOD_(ID3D10ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ UINT ResourceIndex, _Out_ D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD(GetInputParameterDesc)(THIS_ UINT ParameterIndex, _Out_ D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetOutputParameterDesc)(THIS_ UINT ParameterIndex, _Out_ D3D10_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D10ShaderReflectionVariable*, GetVariableByName)(THIS_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR Name, _Out_ D3D10_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD(GetMovInstructionCount)(THIS_ _Out_ UINT* pCount) PURE; - STDMETHOD(GetMovcInstructionCount)(THIS_ _Out_ UINT* pCount) PURE; - STDMETHOD(GetConversionInstructionCount)(THIS_ _Out_ UINT* pCount) PURE; - STDMETHOD(GetBitwiseInstructionCount)(THIS_ _Out_ UINT* pCount) PURE; - - STDMETHOD(GetGSInputPrimitive)(THIS_ _Out_ D3D10_PRIMITIVE* pPrim) PURE; - STDMETHOD(IsLevel9Shader)(THIS_ _Out_ BOOL* pbLevel9Shader) PURE; - STDMETHOD(IsSampleFrequencyShader)(THIS_ _Out_ BOOL* pbSampleFrequency) PURE; -}; - -////////////////////////////////////////////////////////////////////////////// -// APIs ////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -extern "C" { -#endif //__cplusplus - -#ifdef __cplusplus -} -#endif //__cplusplus - -#endif //__D3D10_1SHADER_H__ - diff --git a/3rdparty/minidx12/Include/d3d11.h b/3rdparty/minidx12/Include/d3d11.h deleted file mode 100644 index 8d7838d4e5..0000000000 --- a/3rdparty/minidx12/Include/d3d11.h +++ /dev/null @@ -1,14586 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_h__ -#define __d3d11_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D11DeviceChild_FWD_DEFINED__ -#define __ID3D11DeviceChild_FWD_DEFINED__ -typedef interface ID3D11DeviceChild ID3D11DeviceChild; - -#endif /* __ID3D11DeviceChild_FWD_DEFINED__ */ - - -#ifndef __ID3D11DepthStencilState_FWD_DEFINED__ -#define __ID3D11DepthStencilState_FWD_DEFINED__ -typedef interface ID3D11DepthStencilState ID3D11DepthStencilState; - -#endif /* __ID3D11DepthStencilState_FWD_DEFINED__ */ - - -#ifndef __ID3D11BlendState_FWD_DEFINED__ -#define __ID3D11BlendState_FWD_DEFINED__ -typedef interface ID3D11BlendState ID3D11BlendState; - -#endif /* __ID3D11BlendState_FWD_DEFINED__ */ - - -#ifndef __ID3D11RasterizerState_FWD_DEFINED__ -#define __ID3D11RasterizerState_FWD_DEFINED__ -typedef interface ID3D11RasterizerState ID3D11RasterizerState; - -#endif /* __ID3D11RasterizerState_FWD_DEFINED__ */ - - -#ifndef __ID3D11Resource_FWD_DEFINED__ -#define __ID3D11Resource_FWD_DEFINED__ -typedef interface ID3D11Resource ID3D11Resource; - -#endif /* __ID3D11Resource_FWD_DEFINED__ */ - - -#ifndef __ID3D11Buffer_FWD_DEFINED__ -#define __ID3D11Buffer_FWD_DEFINED__ -typedef interface ID3D11Buffer ID3D11Buffer; - -#endif /* __ID3D11Buffer_FWD_DEFINED__ */ - - -#ifndef __ID3D11Texture1D_FWD_DEFINED__ -#define __ID3D11Texture1D_FWD_DEFINED__ -typedef interface ID3D11Texture1D ID3D11Texture1D; - -#endif /* __ID3D11Texture1D_FWD_DEFINED__ */ - - -#ifndef __ID3D11Texture2D_FWD_DEFINED__ -#define __ID3D11Texture2D_FWD_DEFINED__ -typedef interface ID3D11Texture2D ID3D11Texture2D; - -#endif /* __ID3D11Texture2D_FWD_DEFINED__ */ - - -#ifndef __ID3D11Texture3D_FWD_DEFINED__ -#define __ID3D11Texture3D_FWD_DEFINED__ -typedef interface ID3D11Texture3D ID3D11Texture3D; - -#endif /* __ID3D11Texture3D_FWD_DEFINED__ */ - - -#ifndef __ID3D11View_FWD_DEFINED__ -#define __ID3D11View_FWD_DEFINED__ -typedef interface ID3D11View ID3D11View; - -#endif /* __ID3D11View_FWD_DEFINED__ */ - - -#ifndef __ID3D11ShaderResourceView_FWD_DEFINED__ -#define __ID3D11ShaderResourceView_FWD_DEFINED__ -typedef interface ID3D11ShaderResourceView ID3D11ShaderResourceView; - -#endif /* __ID3D11ShaderResourceView_FWD_DEFINED__ */ - - -#ifndef __ID3D11RenderTargetView_FWD_DEFINED__ -#define __ID3D11RenderTargetView_FWD_DEFINED__ -typedef interface ID3D11RenderTargetView ID3D11RenderTargetView; - -#endif /* __ID3D11RenderTargetView_FWD_DEFINED__ */ - - -#ifndef __ID3D11DepthStencilView_FWD_DEFINED__ -#define __ID3D11DepthStencilView_FWD_DEFINED__ -typedef interface ID3D11DepthStencilView ID3D11DepthStencilView; - -#endif /* __ID3D11DepthStencilView_FWD_DEFINED__ */ - - -#ifndef __ID3D11UnorderedAccessView_FWD_DEFINED__ -#define __ID3D11UnorderedAccessView_FWD_DEFINED__ -typedef interface ID3D11UnorderedAccessView ID3D11UnorderedAccessView; - -#endif /* __ID3D11UnorderedAccessView_FWD_DEFINED__ */ - - -#ifndef __ID3D11VertexShader_FWD_DEFINED__ -#define __ID3D11VertexShader_FWD_DEFINED__ -typedef interface ID3D11VertexShader ID3D11VertexShader; - -#endif /* __ID3D11VertexShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11HullShader_FWD_DEFINED__ -#define __ID3D11HullShader_FWD_DEFINED__ -typedef interface ID3D11HullShader ID3D11HullShader; - -#endif /* __ID3D11HullShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11DomainShader_FWD_DEFINED__ -#define __ID3D11DomainShader_FWD_DEFINED__ -typedef interface ID3D11DomainShader ID3D11DomainShader; - -#endif /* __ID3D11DomainShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11GeometryShader_FWD_DEFINED__ -#define __ID3D11GeometryShader_FWD_DEFINED__ -typedef interface ID3D11GeometryShader ID3D11GeometryShader; - -#endif /* __ID3D11GeometryShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11PixelShader_FWD_DEFINED__ -#define __ID3D11PixelShader_FWD_DEFINED__ -typedef interface ID3D11PixelShader ID3D11PixelShader; - -#endif /* __ID3D11PixelShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11ComputeShader_FWD_DEFINED__ -#define __ID3D11ComputeShader_FWD_DEFINED__ -typedef interface ID3D11ComputeShader ID3D11ComputeShader; - -#endif /* __ID3D11ComputeShader_FWD_DEFINED__ */ - - -#ifndef __ID3D11InputLayout_FWD_DEFINED__ -#define __ID3D11InputLayout_FWD_DEFINED__ -typedef interface ID3D11InputLayout ID3D11InputLayout; - -#endif /* __ID3D11InputLayout_FWD_DEFINED__ */ - - -#ifndef __ID3D11SamplerState_FWD_DEFINED__ -#define __ID3D11SamplerState_FWD_DEFINED__ -typedef interface ID3D11SamplerState ID3D11SamplerState; - -#endif /* __ID3D11SamplerState_FWD_DEFINED__ */ - - -#ifndef __ID3D11Asynchronous_FWD_DEFINED__ -#define __ID3D11Asynchronous_FWD_DEFINED__ -typedef interface ID3D11Asynchronous ID3D11Asynchronous; - -#endif /* __ID3D11Asynchronous_FWD_DEFINED__ */ - - -#ifndef __ID3D11Query_FWD_DEFINED__ -#define __ID3D11Query_FWD_DEFINED__ -typedef interface ID3D11Query ID3D11Query; - -#endif /* __ID3D11Query_FWD_DEFINED__ */ - - -#ifndef __ID3D11Predicate_FWD_DEFINED__ -#define __ID3D11Predicate_FWD_DEFINED__ -typedef interface ID3D11Predicate ID3D11Predicate; - -#endif /* __ID3D11Predicate_FWD_DEFINED__ */ - - -#ifndef __ID3D11Counter_FWD_DEFINED__ -#define __ID3D11Counter_FWD_DEFINED__ -typedef interface ID3D11Counter ID3D11Counter; - -#endif /* __ID3D11Counter_FWD_DEFINED__ */ - - -#ifndef __ID3D11ClassInstance_FWD_DEFINED__ -#define __ID3D11ClassInstance_FWD_DEFINED__ -typedef interface ID3D11ClassInstance ID3D11ClassInstance; - -#endif /* __ID3D11ClassInstance_FWD_DEFINED__ */ - - -#ifndef __ID3D11ClassLinkage_FWD_DEFINED__ -#define __ID3D11ClassLinkage_FWD_DEFINED__ -typedef interface ID3D11ClassLinkage ID3D11ClassLinkage; - -#endif /* __ID3D11ClassLinkage_FWD_DEFINED__ */ - - -#ifndef __ID3D11CommandList_FWD_DEFINED__ -#define __ID3D11CommandList_FWD_DEFINED__ -typedef interface ID3D11CommandList ID3D11CommandList; - -#endif /* __ID3D11CommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D11DeviceContext_FWD_DEFINED__ -#define __ID3D11DeviceContext_FWD_DEFINED__ -typedef interface ID3D11DeviceContext ID3D11DeviceContext; - -#endif /* __ID3D11DeviceContext_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoDecoder_FWD_DEFINED__ -#define __ID3D11VideoDecoder_FWD_DEFINED__ -typedef interface ID3D11VideoDecoder ID3D11VideoDecoder; - -#endif /* __ID3D11VideoDecoder_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -#define __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ -typedef interface ID3D11VideoProcessorEnumerator ID3D11VideoProcessorEnumerator; - -#endif /* __ID3D11VideoProcessorEnumerator_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessor_FWD_DEFINED__ -#define __ID3D11VideoProcessor_FWD_DEFINED__ -typedef interface ID3D11VideoProcessor ID3D11VideoProcessor; - -#endif /* __ID3D11VideoProcessor_FWD_DEFINED__ */ - - -#ifndef __ID3D11AuthenticatedChannel_FWD_DEFINED__ -#define __ID3D11AuthenticatedChannel_FWD_DEFINED__ -typedef interface ID3D11AuthenticatedChannel ID3D11AuthenticatedChannel; - -#endif /* __ID3D11AuthenticatedChannel_FWD_DEFINED__ */ - - -#ifndef __ID3D11CryptoSession_FWD_DEFINED__ -#define __ID3D11CryptoSession_FWD_DEFINED__ -typedef interface ID3D11CryptoSession ID3D11CryptoSession; - -#endif /* __ID3D11CryptoSession_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__ -#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__ -typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView; - -#endif /* __ID3D11VideoDecoderOutputView_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessorInputView_FWD_DEFINED__ -#define __ID3D11VideoProcessorInputView_FWD_DEFINED__ -typedef interface ID3D11VideoProcessorInputView ID3D11VideoProcessorInputView; - -#endif /* __ID3D11VideoProcessorInputView_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -#define __ID3D11VideoProcessorOutputView_FWD_DEFINED__ -typedef interface ID3D11VideoProcessorOutputView ID3D11VideoProcessorOutputView; - -#endif /* __ID3D11VideoProcessorOutputView_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoContext_FWD_DEFINED__ -#define __ID3D11VideoContext_FWD_DEFINED__ -typedef interface ID3D11VideoContext ID3D11VideoContext; - -#endif /* __ID3D11VideoContext_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoDevice_FWD_DEFINED__ -#define __ID3D11VideoDevice_FWD_DEFINED__ -typedef interface ID3D11VideoDevice ID3D11VideoDevice; - -#endif /* __ID3D11VideoDevice_FWD_DEFINED__ */ - - -#ifndef __ID3D11Device_FWD_DEFINED__ -#define __ID3D11Device_FWD_DEFINED__ -typedef interface ID3D11Device ID3D11Device; - -#endif /* __ID3D11Device_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi.h" -#include "d3dcommon.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d11_0000_0000 */ -/* [local] */ - -#ifndef _D3D11_CONSTANTS -#define _D3D11_CONSTANTS -#define D3D11_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) - -#define D3D11_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) - -#define D3D11_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) - -#define D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) - -#define D3D11_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) - -#define D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) - -#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) - -#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) - -#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) - -#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) - -#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) - -#define D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) - -#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) - -#define D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) - -#define D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) - -#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) - -#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) - -#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) - -#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) - -#define D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) - -#define D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) - -#define D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) - -#define D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) - -#define D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) - -#define D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) - -#define D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) - -#define D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) - -#define D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) - -#define D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) - -#define D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) - -#define D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) - -#define D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) - -#define D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) - -#define D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) - -#define D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) - -#define D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) - -#define D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) - -#define D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) - -#define D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) - -#define D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) - -#define D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) - -#define D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) - -#define D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) - -#define D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) - -#define D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) - -#define D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) - -#define D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) - -#define D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) - -#define D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) - -#define D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) - -#define D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) - -#define D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) - -#define D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) - -#define D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) - -#define D3D11_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) - -#define D3D11_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) - -#define D3D11_CS_4_X_UAV_REGISTER_COUNT ( 1 ) - -#define D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) - -#define D3D11_CS_TGSM_REGISTER_COUNT ( 8192 ) - -#define D3D11_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) - -#define D3D11_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) - -#define D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) - -#define D3D11_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) - -#define D3D11_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) - -#define D3D11_CS_THREADID_REGISTER_COMPONENTS ( 3 ) - -#define D3D11_CS_THREADID_REGISTER_COUNT ( 1 ) - -#define D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) - -#define D3D11_CS_THREAD_GROUP_MAX_X ( 1024 ) - -#define D3D11_CS_THREAD_GROUP_MAX_Y ( 1024 ) - -#define D3D11_CS_THREAD_GROUP_MAX_Z ( 64 ) - -#define D3D11_CS_THREAD_GROUP_MIN_X ( 1 ) - -#define D3D11_CS_THREAD_GROUP_MIN_Y ( 1 ) - -#define D3D11_CS_THREAD_GROUP_MIN_Z ( 1 ) - -#define D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) - -#define D3D11_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) -#define D3D11_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) -#define D3D11_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) -#define D3D11_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) -#define D3D11_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D11_DEFAULT_DEPTH_BIAS ( 0 ) - -#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) -#define D3D11_DEFAULT_MAX_ANISOTROPY ( 16 ) - -#define D3D11_DEFAULT_MIP_LOD_BIAS ( 0.0f ) -#define D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) - -#define D3D11_DEFAULT_SAMPLE_MASK ( 0xffffffff ) - -#define D3D11_DEFAULT_SCISSOR_ENDX ( 0 ) - -#define D3D11_DEFAULT_SCISSOR_ENDY ( 0 ) - -#define D3D11_DEFAULT_SCISSOR_STARTX ( 0 ) - -#define D3D11_DEFAULT_SCISSOR_STARTY ( 0 ) - -#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) -#define D3D11_DEFAULT_STENCIL_READ_MASK ( 0xff ) - -#define D3D11_DEFAULT_STENCIL_REFERENCE ( 0 ) - -#define D3D11_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) - -#define D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) - -#define D3D11_DEFAULT_VIEWPORT_HEIGHT ( 0 ) - -#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) -#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) -#define D3D11_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) - -#define D3D11_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) - -#define D3D11_DEFAULT_VIEWPORT_WIDTH ( 0 ) - -#define D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) - -#define D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) - -#define D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) - -#define D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_DS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) -#define D3D11_FLOAT32_MAX ( 3.402823466e+38f ) -#define D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) -#define D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) -#define D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) -#define D3D11_FLOAT_TO_SRGB_OFFSET ( 0.055f ) -#define D3D11_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) -#define D3D11_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) -#define D3D11_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) -#define D3D11_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) -#define D3D11_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) -#define D3D11_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) -#define D3D11_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) -#define D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) - -#define D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) - -#define D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) - -#define D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_GS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_GS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_GS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_GS_INPUT_REGISTER_VERTICES ( 32 ) - -#define D3D11_GS_MAX_INSTANCE_COUNT ( 32 ) - -#define D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) - -#define D3D11_GS_OUTPUT_ELEMENTS ( 32 ) - -#define D3D11_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_GS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D11_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) -#define D3D11_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) -#define D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) - -#define D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) - -#define D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) - -#define D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) - -#define D3D11_IA_INSTANCE_ID_BIT_COUNT ( 32 ) - -#define D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) - -#define D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) - -#define D3D11_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) - -#define D3D11_IA_VERTEX_ID_BIT_COUNT ( 32 ) - -#define D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) - -#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) - -#define D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) - -#define D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) - -#define D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) - -#define D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) - -#define D3D11_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) - -#define D3D11_LINEAR_GAMMA ( 1.0f ) -#define D3D11_MAJOR_VERSION ( 11 ) - -#define D3D11_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) -#define D3D11_MAX_DEPTH ( 1.0f ) -#define D3D11_MAX_MAXANISOTROPY ( 16 ) - -#define D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) - -#define D3D11_MAX_POSITION_VALUE ( 3.402823466e+34f ) -#define D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) - -#define D3D11_MINOR_VERSION ( 0 ) - -#define D3D11_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D11_MIN_DEPTH ( 0.0f ) -#define D3D11_MIN_MAXANISOTROPY ( 0 ) - -#define D3D11_MIP_LOD_BIAS_MAX ( 15.99f ) -#define D3D11_MIP_LOD_BIAS_MIN ( -16.0f ) -#define D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D11_MIP_LOD_RANGE_BIT_COUNT ( 8 ) - -#define D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) -#define D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) - -#define D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) - -#define D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D11_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_PS_CS_UAV_REGISTER_COUNT ( 8 ) - -#define D3D11_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) - -#define D3D11_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) - -#define D3D11_PS_FRONTFACING_FALSE_VALUE ( 0 ) - -#define D3D11_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) - -#define D3D11_PS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_PS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_PS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) -#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) - -#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) - -#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) - -#define D3D11_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_PS_OUTPUT_REGISTER_COUNT ( 8 ) - -#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) -#define D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) - -#define D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) - -#define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) - -#define D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) - -#define D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D11_REQ_MAXANISOTROPY ( 16 ) - -#define D3D11_REQ_MIP_LEVELS ( 15 ) - -#define D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) - -#define D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) - -#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) - -#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) -#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) - -#define D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) - -#define D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D11_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) - -#define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) - -#define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) - -#define D3D11_REQ_TEXTURECUBE_DIMENSION ( 16384 ) - -#define D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) - -#define D3D11_SHADER_MAJOR_VERSION ( 5 ) - -#define D3D11_SHADER_MAX_INSTANCES ( 65535 ) - -#define D3D11_SHADER_MAX_INTERFACES ( 253 ) - -#define D3D11_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) - -#define D3D11_SHADER_MAX_TYPES ( 65535 ) - -#define D3D11_SHADER_MINOR_VERSION ( 0 ) - -#define D3D11_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) - -#define D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) - -#define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) - -#define D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) - -#define D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) - -#define D3D11_SO_BUFFER_SLOT_COUNT ( 4 ) - -#define D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) - -#define D3D11_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) - -#define D3D11_SO_OUTPUT_COMPONENT_COUNT ( 128 ) - -#define D3D11_SO_STREAM_COUNT ( 4 ) - -#define D3D11_SPEC_DATE_DAY ( 16 ) - -#define D3D11_SPEC_DATE_MONTH ( 05 ) - -#define D3D11_SPEC_DATE_YEAR ( 2011 ) - -#define D3D11_SPEC_VERSION ( 1.07 ) -#define D3D11_SRGB_GAMMA ( 2.2f ) -#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) -#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) -#define D3D11_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) -#define D3D11_SRGB_TO_FLOAT_OFFSET ( 0.055f ) -#define D3D11_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) -#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) -#define D3D11_STANDARD_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) - -#define D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) - -#define D3D11_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) - -#define D3D11_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) - -#define D3D11_STANDARD_VECTOR_SIZE ( 4 ) - -#define D3D11_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) - -#define D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) - -#define D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) - -#define D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) - -#define D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) - -#define D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) - -#define D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) - -#define D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) - -#define D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) - -#define D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D11_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) - -#define D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) - -#define D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) - -#define D3D11_VIEWPORT_BOUNDS_MAX ( 32767 ) - -#define D3D11_VIEWPORT_BOUNDS_MIN ( -32768 ) - -#define D3D11_VS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_VS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D11_VS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D11_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D11_VS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) - -#define D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) - -#endif -#ifndef _D3D11_1_CONSTANTS -#define _D3D11_1_CONSTANTS -#define D3D11_1_UAV_SLOT_COUNT ( 64 ) - -#endif -#ifndef _D3D11_2_CONSTANTS -#define _D3D11_2_CONSTANTS -#define D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) - -#endif -#define _FACD3D11 ( 0x87c ) - -#define _FACD3D11DEBUG ( ( _FACD3D11 + 1 ) ) - -/* Direct3D errors are now found in winerror.h */ -#define MAKE_D3D11_HRESULT( code ) MAKE_HRESULT( 1, _FACD3D11, code ) -#define MAKE_D3D11_STATUS( code ) MAKE_HRESULT( 0, _FACD3D11, code ) -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT; -extern "C"{ -#endif -typedef -enum D3D11_INPUT_CLASSIFICATION - { - D3D11_INPUT_PER_VERTEX_DATA = 0, - D3D11_INPUT_PER_INSTANCE_DATA = 1 - } D3D11_INPUT_CLASSIFICATION; - -#define D3D11_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) - -typedef struct D3D11_INPUT_ELEMENT_DESC - { - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D11_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; - } D3D11_INPUT_ELEMENT_DESC; - -typedef -enum D3D11_FILL_MODE - { - D3D11_FILL_WIREFRAME = 2, - D3D11_FILL_SOLID = 3 - } D3D11_FILL_MODE; - -typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY; - -typedef D3D_PRIMITIVE D3D11_PRIMITIVE; - -typedef -enum D3D11_CULL_MODE - { - D3D11_CULL_NONE = 1, - D3D11_CULL_FRONT = 2, - D3D11_CULL_BACK = 3 - } D3D11_CULL_MODE; - -typedef struct D3D11_SO_DECLARATION_ENTRY - { - UINT Stream; - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; - } D3D11_SO_DECLARATION_ENTRY; - -typedef struct D3D11_VIEWPORT - { - FLOAT TopLeftX; - FLOAT TopLeftY; - FLOAT Width; - FLOAT Height; - FLOAT MinDepth; - FLOAT MaxDepth; - } D3D11_VIEWPORT; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -inline bool operator==( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r ) -{ - return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && - l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; -} -inline bool operator!=( const D3D11_VIEWPORT& l, const D3D11_VIEWPORT& r ) -{ return !( l == r ); } -extern "C"{ -#endif -typedef struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS - { - UINT VertexCountPerInstance; - UINT InstanceCount; - UINT StartVertexLocation; - UINT StartInstanceLocation; - } D3D11_DRAW_INSTANCED_INDIRECT_ARGS; - -typedef struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS - { - UINT IndexCountPerInstance; - UINT InstanceCount; - UINT StartIndexLocation; - INT BaseVertexLocation; - UINT StartInstanceLocation; - } D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS; - -typedef -enum D3D11_RESOURCE_DIMENSION - { - D3D11_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D11_RESOURCE_DIMENSION_BUFFER = 1, - D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2, - D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3, - D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4 - } D3D11_RESOURCE_DIMENSION; - -typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION; - -typedef -enum D3D11_DSV_DIMENSION - { - D3D11_DSV_DIMENSION_UNKNOWN = 0, - D3D11_DSV_DIMENSION_TEXTURE1D = 1, - D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2, - D3D11_DSV_DIMENSION_TEXTURE2D = 3, - D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4, - D3D11_DSV_DIMENSION_TEXTURE2DMS = 5, - D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 - } D3D11_DSV_DIMENSION; - -typedef -enum D3D11_RTV_DIMENSION - { - D3D11_RTV_DIMENSION_UNKNOWN = 0, - D3D11_RTV_DIMENSION_BUFFER = 1, - D3D11_RTV_DIMENSION_TEXTURE1D = 2, - D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3, - D3D11_RTV_DIMENSION_TEXTURE2D = 4, - D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5, - D3D11_RTV_DIMENSION_TEXTURE2DMS = 6, - D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D11_RTV_DIMENSION_TEXTURE3D = 8 - } D3D11_RTV_DIMENSION; - -typedef -enum D3D11_UAV_DIMENSION - { - D3D11_UAV_DIMENSION_UNKNOWN = 0, - D3D11_UAV_DIMENSION_BUFFER = 1, - D3D11_UAV_DIMENSION_TEXTURE1D = 2, - D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3, - D3D11_UAV_DIMENSION_TEXTURE2D = 4, - D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5, - D3D11_UAV_DIMENSION_TEXTURE3D = 8 - } D3D11_UAV_DIMENSION; - -typedef -enum D3D11_USAGE - { - D3D11_USAGE_DEFAULT = 0, - D3D11_USAGE_IMMUTABLE = 1, - D3D11_USAGE_DYNAMIC = 2, - D3D11_USAGE_STAGING = 3 - } D3D11_USAGE; - -typedef -enum D3D11_BIND_FLAG - { - D3D11_BIND_VERTEX_BUFFER = 0x1L, - D3D11_BIND_INDEX_BUFFER = 0x2L, - D3D11_BIND_CONSTANT_BUFFER = 0x4L, - D3D11_BIND_SHADER_RESOURCE = 0x8L, - D3D11_BIND_STREAM_OUTPUT = 0x10L, - D3D11_BIND_RENDER_TARGET = 0x20L, - D3D11_BIND_DEPTH_STENCIL = 0x40L, - D3D11_BIND_UNORDERED_ACCESS = 0x80L, - D3D11_BIND_DECODER = 0x200L, - D3D11_BIND_VIDEO_ENCODER = 0x400L - } D3D11_BIND_FLAG; - -typedef -enum D3D11_CPU_ACCESS_FLAG - { - D3D11_CPU_ACCESS_WRITE = 0x10000L, - D3D11_CPU_ACCESS_READ = 0x20000L - } D3D11_CPU_ACCESS_FLAG; - -typedef -enum D3D11_RESOURCE_MISC_FLAG - { - D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L, - D3D11_RESOURCE_MISC_SHARED = 0x2L, - D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L, - D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, - D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, - D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, - D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L, - D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, - D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L, - D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L, - D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L, - D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L, - D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L, - D3D11_RESOURCE_MISC_GUARDED = 0x8000L, - D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L, - D3D11_RESOURCE_MISC_TILED = 0x40000L, - D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L - } D3D11_RESOURCE_MISC_FLAG; - -typedef -enum D3D11_MAP - { - D3D11_MAP_READ = 1, - D3D11_MAP_WRITE = 2, - D3D11_MAP_READ_WRITE = 3, - D3D11_MAP_WRITE_DISCARD = 4, - D3D11_MAP_WRITE_NO_OVERWRITE = 5 - } D3D11_MAP; - -typedef -enum D3D11_MAP_FLAG - { - D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000L - } D3D11_MAP_FLAG; - -typedef -enum D3D11_RAISE_FLAG - { - D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L - } D3D11_RAISE_FLAG; - -typedef -enum D3D11_CLEAR_FLAG - { - D3D11_CLEAR_DEPTH = 0x1L, - D3D11_CLEAR_STENCIL = 0x2L - } D3D11_CLEAR_FLAG; - -typedef RECT D3D11_RECT; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RECT : public D3D11_RECT -{ - CD3D11_RECT() - {} - explicit CD3D11_RECT( const D3D11_RECT& o ) : - D3D11_RECT( o ) - {} - explicit CD3D11_RECT( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom ) - { - left = Left; - top = Top; - right = Right; - bottom = Bottom; - } - ~CD3D11_RECT() {} - operator const D3D11_RECT&() const { return *this; } -}; -inline bool operator==( const D3D11_RECT& l, const D3D11_RECT& r ) -{ - return l.left == r.left && l.top == r.top && - l.right == r.right && l.bottom == r.bottom; -} -inline bool operator!=( const D3D11_RECT& l, const D3D11_RECT& r ) -{ return !( l == r ); } -extern "C"{ -#endif -typedef struct D3D11_BOX - { - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; - } D3D11_BOX; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_BOX : public D3D11_BOX -{ - CD3D11_BOX() - {} - explicit CD3D11_BOX( const D3D11_BOX& o ) : - D3D11_BOX( o ) - {} - explicit CD3D11_BOX( - LONG Left, - LONG Top, - LONG Front, - LONG Right, - LONG Bottom, - LONG Back ) - { - left = Left; - top = Top; - front = Front; - right = Right; - bottom = Bottom; - back = Back; - } - ~CD3D11_BOX() {} - operator const D3D11_BOX&() const { return *this; } -}; -inline bool operator==( const D3D11_BOX& l, const D3D11_BOX& r ) -{ - return l.left == r.left && l.top == r.top && l.front == r.front && - l.right == r.right && l.bottom == r.bottom && l.back == r.back; -} -inline bool operator!=( const D3D11_BOX& l, const D3D11_BOX& r ) -{ return !( l == r ); } -extern "C"{ -#endif - - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D11DeviceChild_INTERFACE_DEFINED__ -#define __ID3D11DeviceChild_INTERFACE_DEFINED__ - -/* interface ID3D11DeviceChild */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DeviceChild; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1841e5c8-16b0-489b-bcc8-44cfb0d5deae") - ID3D11DeviceChild : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE GetDevice( - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceChildVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DeviceChild * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DeviceChild * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DeviceChild * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DeviceChild * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DeviceChild * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11DeviceChildVtbl; - - interface ID3D11DeviceChild - { - CONST_VTBL struct ID3D11DeviceChildVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DeviceChild_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DeviceChild_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DeviceChild_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DeviceChild_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DeviceChild_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0001 */ -/* [local] */ - -typedef -enum D3D11_COMPARISON_FUNC - { - D3D11_COMPARISON_NEVER = 1, - D3D11_COMPARISON_LESS = 2, - D3D11_COMPARISON_EQUAL = 3, - D3D11_COMPARISON_LESS_EQUAL = 4, - D3D11_COMPARISON_GREATER = 5, - D3D11_COMPARISON_NOT_EQUAL = 6, - D3D11_COMPARISON_GREATER_EQUAL = 7, - D3D11_COMPARISON_ALWAYS = 8 - } D3D11_COMPARISON_FUNC; - -typedef -enum D3D11_DEPTH_WRITE_MASK - { - D3D11_DEPTH_WRITE_MASK_ZERO = 0, - D3D11_DEPTH_WRITE_MASK_ALL = 1 - } D3D11_DEPTH_WRITE_MASK; - -typedef -enum D3D11_STENCIL_OP - { - D3D11_STENCIL_OP_KEEP = 1, - D3D11_STENCIL_OP_ZERO = 2, - D3D11_STENCIL_OP_REPLACE = 3, - D3D11_STENCIL_OP_INCR_SAT = 4, - D3D11_STENCIL_OP_DECR_SAT = 5, - D3D11_STENCIL_OP_INVERT = 6, - D3D11_STENCIL_OP_INCR = 7, - D3D11_STENCIL_OP_DECR = 8 - } D3D11_STENCIL_OP; - -typedef struct D3D11_DEPTH_STENCILOP_DESC - { - D3D11_STENCIL_OP StencilFailOp; - D3D11_STENCIL_OP StencilDepthFailOp; - D3D11_STENCIL_OP StencilPassOp; - D3D11_COMPARISON_FUNC StencilFunc; - } D3D11_DEPTH_STENCILOP_DESC; - -typedef struct D3D11_DEPTH_STENCIL_DESC - { - BOOL DepthEnable; - D3D11_DEPTH_WRITE_MASK DepthWriteMask; - D3D11_COMPARISON_FUNC DepthFunc; - BOOL StencilEnable; - UINT8 StencilReadMask; - UINT8 StencilWriteMask; - D3D11_DEPTH_STENCILOP_DESC FrontFace; - D3D11_DEPTH_STENCILOP_DESC BackFace; - } D3D11_DEPTH_STENCIL_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC -{ - CD3D11_DEPTH_STENCIL_DESC() - {} - explicit CD3D11_DEPTH_STENCIL_DESC( const D3D11_DEPTH_STENCIL_DESC& o ) : - D3D11_DEPTH_STENCIL_DESC( o ) - {} - explicit CD3D11_DEPTH_STENCIL_DESC( CD3D11_DEFAULT ) - { - DepthEnable = TRUE; - DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D11_COMPARISON_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK; - const D3D11_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - } - explicit CD3D11_DEPTH_STENCIL_DESC( - BOOL depthEnable, - D3D11_DEPTH_WRITE_MASK depthWriteMask, - D3D11_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D11_STENCIL_OP frontStencilFailOp, - D3D11_STENCIL_OP frontStencilDepthFailOp, - D3D11_STENCIL_OP frontStencilPassOp, - D3D11_COMPARISON_FUNC frontStencilFunc, - D3D11_STENCIL_OP backStencilFailOp, - D3D11_STENCIL_OP backStencilDepthFailOp, - D3D11_STENCIL_OP backStencilPassOp, - D3D11_COMPARISON_FUNC backStencilFunc ) - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - } - ~CD3D11_DEPTH_STENCIL_DESC() {} - operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D11DepthStencilState_INTERFACE_DEFINED__ -#define __ID3D11DepthStencilState_INTERFACE_DEFINED__ - -/* interface ID3D11DepthStencilState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DepthStencilState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1") - ID3D11DepthStencilState : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_DEPTH_STENCIL_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DepthStencilStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DepthStencilState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DepthStencilState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DepthStencilState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DepthStencilState * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DepthStencilState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11DepthStencilState * This, - /* [annotation] */ - _Out_ D3D11_DEPTH_STENCIL_DESC *pDesc); - - END_INTERFACE - } ID3D11DepthStencilStateVtbl; - - interface ID3D11DepthStencilState - { - CONST_VTBL struct ID3D11DepthStencilStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DepthStencilState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DepthStencilState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DepthStencilState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DepthStencilState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DepthStencilState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DepthStencilState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DepthStencilState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DepthStencilState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0002 */ -/* [local] */ - -typedef -enum D3D11_BLEND - { - D3D11_BLEND_ZERO = 1, - D3D11_BLEND_ONE = 2, - D3D11_BLEND_SRC_COLOR = 3, - D3D11_BLEND_INV_SRC_COLOR = 4, - D3D11_BLEND_SRC_ALPHA = 5, - D3D11_BLEND_INV_SRC_ALPHA = 6, - D3D11_BLEND_DEST_ALPHA = 7, - D3D11_BLEND_INV_DEST_ALPHA = 8, - D3D11_BLEND_DEST_COLOR = 9, - D3D11_BLEND_INV_DEST_COLOR = 10, - D3D11_BLEND_SRC_ALPHA_SAT = 11, - D3D11_BLEND_BLEND_FACTOR = 14, - D3D11_BLEND_INV_BLEND_FACTOR = 15, - D3D11_BLEND_SRC1_COLOR = 16, - D3D11_BLEND_INV_SRC1_COLOR = 17, - D3D11_BLEND_SRC1_ALPHA = 18, - D3D11_BLEND_INV_SRC1_ALPHA = 19 - } D3D11_BLEND; - -typedef -enum D3D11_BLEND_OP - { - D3D11_BLEND_OP_ADD = 1, - D3D11_BLEND_OP_SUBTRACT = 2, - D3D11_BLEND_OP_REV_SUBTRACT = 3, - D3D11_BLEND_OP_MIN = 4, - D3D11_BLEND_OP_MAX = 5 - } D3D11_BLEND_OP; - -typedef -enum D3D11_COLOR_WRITE_ENABLE - { - D3D11_COLOR_WRITE_ENABLE_RED = 1, - D3D11_COLOR_WRITE_ENABLE_GREEN = 2, - D3D11_COLOR_WRITE_ENABLE_BLUE = 4, - D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D11_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN ) | D3D11_COLOR_WRITE_ENABLE_BLUE ) | D3D11_COLOR_WRITE_ENABLE_ALPHA ) - } D3D11_COLOR_WRITE_ENABLE; - -typedef struct D3D11_RENDER_TARGET_BLEND_DESC - { - BOOL BlendEnable; - D3D11_BLEND SrcBlend; - D3D11_BLEND DestBlend; - D3D11_BLEND_OP BlendOp; - D3D11_BLEND SrcBlendAlpha; - D3D11_BLEND DestBlendAlpha; - D3D11_BLEND_OP BlendOpAlpha; - UINT8 RenderTargetWriteMask; - } D3D11_RENDER_TARGET_BLEND_DESC; - -typedef struct D3D11_BLEND_DESC - { - BOOL AlphaToCoverageEnable; - BOOL IndependentBlendEnable; - D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; - } D3D11_BLEND_DESC; - -/* Note, the array size for RenderTarget[] above is D3D11_SIMULTANEOUS_RENDERTARGET_COUNT. - IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC -{ - CD3D11_BLEND_DESC() - {} - explicit CD3D11_BLEND_DESC( const D3D11_BLEND_DESC& o ) : - D3D11_BLEND_DESC( o ) - {} - explicit CD3D11_BLEND_DESC( CD3D11_DEFAULT ) - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = - { - FALSE, - D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, - D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, - D3D11_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[ i ] = defaultRenderTargetBlendDesc; - } - ~CD3D11_BLEND_DESC() {} - operator const D3D11_BLEND_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0002_v0_0_s_ifspec; - -#ifndef __ID3D11BlendState_INTERFACE_DEFINED__ -#define __ID3D11BlendState_INTERFACE_DEFINED__ - -/* interface ID3D11BlendState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11BlendState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("75b68faa-347d-4159-8f45-a0640f01cd9a") - ID3D11BlendState : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_BLEND_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11BlendStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11BlendState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11BlendState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11BlendState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11BlendState * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11BlendState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11BlendState * This, - /* [annotation] */ - _Out_ D3D11_BLEND_DESC *pDesc); - - END_INTERFACE - } ID3D11BlendStateVtbl; - - interface ID3D11BlendState - { - CONST_VTBL struct ID3D11BlendStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11BlendState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11BlendState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11BlendState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11BlendState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11BlendState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11BlendState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11BlendState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11BlendState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11BlendState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0003 */ -/* [local] */ - -typedef struct D3D11_RASTERIZER_DESC - { - D3D11_FILL_MODE FillMode; - D3D11_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL ScissorEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - } D3D11_RASTERIZER_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC -{ - CD3D11_RASTERIZER_DESC() - {} - explicit CD3D11_RASTERIZER_DESC( const D3D11_RASTERIZER_DESC& o ) : - D3D11_RASTERIZER_DESC( o ) - {} - explicit CD3D11_RASTERIZER_DESC( CD3D11_DEFAULT ) - { - FillMode = D3D11_FILL_SOLID; - CullMode = D3D11_CULL_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D11_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - ScissorEnable = FALSE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - } - explicit CD3D11_RASTERIZER_DESC( - D3D11_FILL_MODE fillMode, - D3D11_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL scissorEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable ) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - ScissorEnable = scissorEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - } - ~CD3D11_RASTERIZER_DESC() {} - operator const D3D11_RASTERIZER_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0003_v0_0_s_ifspec; - -#ifndef __ID3D11RasterizerState_INTERFACE_DEFINED__ -#define __ID3D11RasterizerState_INTERFACE_DEFINED__ - -/* interface ID3D11RasterizerState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11RasterizerState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7") - ID3D11RasterizerState : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11RasterizerStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11RasterizerState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11RasterizerState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11RasterizerState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11RasterizerState * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11RasterizerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11RasterizerState * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC *pDesc); - - END_INTERFACE - } ID3D11RasterizerStateVtbl; - - interface ID3D11RasterizerState - { - CONST_VTBL struct ID3D11RasterizerStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11RasterizerState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11RasterizerState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11RasterizerState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11RasterizerState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11RasterizerState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11RasterizerState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11RasterizerState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11RasterizerState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0004 */ -/* [local] */ - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -inline UINT D3D11CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT MipLevels ) -{ return MipSlice + ArraySlice * MipLevels; } -extern "C"{ -#endif -typedef struct D3D11_SUBRESOURCE_DATA - { - const void *pSysMem; - UINT SysMemPitch; - UINT SysMemSlicePitch; - } D3D11_SUBRESOURCE_DATA; - -typedef struct D3D11_MAPPED_SUBRESOURCE - { - void *pData; - UINT RowPitch; - UINT DepthPitch; - } D3D11_MAPPED_SUBRESOURCE; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0004_v0_0_s_ifspec; - -#ifndef __ID3D11Resource_INTERFACE_DEFINED__ -#define __ID3D11Resource_INTERFACE_DEFINED__ - -/* interface ID3D11Resource */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Resource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("dc8e63f3-d12b-4952-b47b-5e45026a862d") - ID3D11Resource : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetType( - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension) = 0; - - virtual void STDMETHODCALLTYPE SetEvictionPriority( - /* [annotation] */ - _In_ UINT EvictionPriority) = 0; - - virtual UINT STDMETHODCALLTYPE GetEvictionPriority( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ResourceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Resource * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Resource * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Resource * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Resource * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Resource * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Resource * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Resource * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Resource * This); - - END_INTERFACE - } ID3D11ResourceVtbl; - - interface ID3D11Resource - { - CONST_VTBL struct ID3D11ResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Resource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Resource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Resource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Resource_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Resource_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Resource_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Resource_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Resource_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Resource_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Resource_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Resource_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0005 */ -/* [local] */ - -typedef struct D3D11_BUFFER_DESC - { - UINT ByteWidth; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - UINT StructureByteStride; - } D3D11_BUFFER_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC -{ - CD3D11_BUFFER_DESC() - {} - explicit CD3D11_BUFFER_DESC( const D3D11_BUFFER_DESC& o ) : - D3D11_BUFFER_DESC( o ) - {} - explicit CD3D11_BUFFER_DESC( - UINT byteWidth, - UINT bindFlags, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT miscFlags = 0, - UINT structureByteStride = 0 ) - { - ByteWidth = byteWidth; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags ; - MiscFlags = miscFlags; - StructureByteStride = structureByteStride; - } - ~CD3D11_BUFFER_DESC() {} - operator const D3D11_BUFFER_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0005_v0_0_s_ifspec; - -#ifndef __ID3D11Buffer_INTERFACE_DEFINED__ -#define __ID3D11Buffer_INTERFACE_DEFINED__ - -/* interface ID3D11Buffer */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Buffer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("48570b85-d1ee-4fcd-a250-eb350722b037") - ID3D11Buffer : public ID3D11Resource - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_BUFFER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11BufferVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Buffer * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Buffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Buffer * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Buffer * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Buffer * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Buffer * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Buffer * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Buffer * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Buffer * This, - /* [annotation] */ - _Out_ D3D11_BUFFER_DESC *pDesc); - - END_INTERFACE - } ID3D11BufferVtbl; - - interface ID3D11Buffer - { - CONST_VTBL struct ID3D11BufferVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Buffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Buffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Buffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Buffer_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Buffer_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Buffer_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Buffer_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Buffer_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Buffer_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Buffer_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Buffer_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Buffer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0006 */ -/* [local] */ - -typedef struct D3D11_TEXTURE1D_DESC - { - UINT Width; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D11_TEXTURE1D_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_TEXTURE1D_DESC : public D3D11_TEXTURE1D_DESC -{ - CD3D11_TEXTURE1D_DESC() - {} - explicit CD3D11_TEXTURE1D_DESC( const D3D11_TEXTURE1D_DESC& o ) : - D3D11_TEXTURE1D_DESC( o ) - {} - explicit CD3D11_TEXTURE1D_DESC( - DXGI_FORMAT format, - UINT width, - UINT arraySize = 1, - UINT mipLevels = 0, - UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags= 0, - UINT miscFlags = 0 ) - { - Width = width; - MipLevels = mipLevels; - ArraySize = arraySize; - Format = format; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D11_TEXTURE1D_DESC() {} - operator const D3D11_TEXTURE1D_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0006_v0_0_s_ifspec; - -#ifndef __ID3D11Texture1D_INTERFACE_DEFINED__ -#define __ID3D11Texture1D_INTERFACE_DEFINED__ - -/* interface ID3D11Texture1D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Texture1D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f8fb5c27-c6b3-4f75-a4c8-439af2ef564c") - ID3D11Texture1D : public ID3D11Resource - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_TEXTURE1D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Texture1DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Texture1D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Texture1D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Texture1D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Texture1D * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Texture1D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Texture1D * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Texture1D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Texture1D * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Texture1D * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE1D_DESC *pDesc); - - END_INTERFACE - } ID3D11Texture1DVtbl; - - interface ID3D11Texture1D - { - CONST_VTBL struct ID3D11Texture1DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Texture1D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Texture1D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Texture1D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Texture1D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Texture1D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Texture1D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Texture1D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Texture1D_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Texture1D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Texture1D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Texture1D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Texture1D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0007 */ -/* [local] */ - -typedef struct D3D11_TEXTURE2D_DESC - { - UINT Width; - UINT Height; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D11_TEXTURE2D_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC -{ - CD3D11_TEXTURE2D_DESC() - {} - explicit CD3D11_TEXTURE2D_DESC( const D3D11_TEXTURE2D_DESC& o ) : - D3D11_TEXTURE2D_DESC( o ) - {} - explicit CD3D11_TEXTURE2D_DESC( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT arraySize = 1, - UINT mipLevels = 0, - UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - UINT miscFlags = 0 ) - { - Width = width; - Height = height; - MipLevels = mipLevels; - ArraySize = arraySize; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D11_TEXTURE2D_DESC() {} - operator const D3D11_TEXTURE2D_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0007_v0_0_s_ifspec; - -#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__ -#define __ID3D11Texture2D_INTERFACE_DEFINED__ - -/* interface ID3D11Texture2D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Texture2D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6f15aaf2-d208-4e89-9ab4-489535d34f9c") - ID3D11Texture2D : public ID3D11Resource - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_TEXTURE2D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Texture2DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Texture2D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Texture2D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Texture2D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Texture2D * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Texture2D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Texture2D * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Texture2D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Texture2D * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Texture2D * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE2D_DESC *pDesc); - - END_INTERFACE - } ID3D11Texture2DVtbl; - - interface ID3D11Texture2D - { - CONST_VTBL struct ID3D11Texture2DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Texture2D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Texture2D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Texture2D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Texture2D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Texture2D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Texture2D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Texture2D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Texture2D_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Texture2D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Texture2D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Texture2D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Texture2D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0008 */ -/* [local] */ - -typedef struct D3D11_TEXTURE3D_DESC - { - UINT Width; - UINT Height; - UINT Depth; - UINT MipLevels; - DXGI_FORMAT Format; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - } D3D11_TEXTURE3D_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_TEXTURE3D_DESC : public D3D11_TEXTURE3D_DESC -{ - CD3D11_TEXTURE3D_DESC() - {} - explicit CD3D11_TEXTURE3D_DESC( const D3D11_TEXTURE3D_DESC& o ) : - D3D11_TEXTURE3D_DESC( o ) - {} - explicit CD3D11_TEXTURE3D_DESC( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT mipLevels = 0, - UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT miscFlags = 0 ) - { - Width = width; - Height = height; - Depth = depth; - MipLevels = mipLevels; - Format = format; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - } - ~CD3D11_TEXTURE3D_DESC() {} - operator const D3D11_TEXTURE3D_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0008_v0_0_s_ifspec; - -#ifndef __ID3D11Texture3D_INTERFACE_DEFINED__ -#define __ID3D11Texture3D_INTERFACE_DEFINED__ - -/* interface ID3D11Texture3D */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Texture3D; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("037e866e-f56d-4357-a8af-9dabbe6e250e") - ID3D11Texture3D : public ID3D11Resource - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_TEXTURE3D_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Texture3DVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Texture3D * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Texture3D * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Texture3D * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Texture3D * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Texture3D * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Texture3D * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Texture3D * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Texture3D * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Texture3D * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE3D_DESC *pDesc); - - END_INTERFACE - } ID3D11Texture3DVtbl; - - interface ID3D11Texture3D - { - CONST_VTBL struct ID3D11Texture3DVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Texture3D_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Texture3D_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Texture3D_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Texture3D_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Texture3D_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Texture3D_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Texture3D_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Texture3D_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Texture3D_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Texture3D_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Texture3D_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Texture3D_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0009 */ -/* [local] */ - -typedef -enum D3D11_TEXTURECUBE_FACE - { - D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0, - D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1, - D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2, - D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3, - D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4, - D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5 - } D3D11_TEXTURECUBE_FACE; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0009_v0_0_s_ifspec; - -#ifndef __ID3D11View_INTERFACE_DEFINED__ -#define __ID3D11View_INTERFACE_DEFINED__ - -/* interface ID3D11View */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11View; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("839d1216-bb2e-412b-b7f4-a9dbebe08ed1") - ID3D11View : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetResource( - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11View * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11View * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11View * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11View * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11View * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11View * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - END_INTERFACE - } ID3D11ViewVtbl; - - interface ID3D11View - { - CONST_VTBL struct ID3D11ViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11View_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11View_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11View_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11View_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11View_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11View_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11View_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11View_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11View_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0010 */ -/* [local] */ - -typedef struct D3D11_BUFFER_SRV - { - union - { - UINT FirstElement; - UINT ElementOffset; - } ; - union - { - UINT NumElements; - UINT ElementWidth; - } ; - } D3D11_BUFFER_SRV; - -typedef -enum D3D11_BUFFEREX_SRV_FLAG - { - D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1 - } D3D11_BUFFEREX_SRV_FLAG; - -typedef struct D3D11_BUFFEREX_SRV - { - UINT FirstElement; - UINT NumElements; - UINT Flags; - } D3D11_BUFFEREX_SRV; - -typedef struct D3D11_TEX1D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D11_TEX1D_SRV; - -typedef struct D3D11_TEX1D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX1D_ARRAY_SRV; - -typedef struct D3D11_TEX2D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D11_TEX2D_SRV; - -typedef struct D3D11_TEX2D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2D_ARRAY_SRV; - -typedef struct D3D11_TEX3D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D11_TEX3D_SRV; - -typedef struct D3D11_TEXCUBE_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - } D3D11_TEXCUBE_SRV; - -typedef struct D3D11_TEXCUBE_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT First2DArrayFace; - UINT NumCubes; - } D3D11_TEXCUBE_ARRAY_SRV; - -typedef struct D3D11_TEX2DMS_SRV - { - UINT UnusedField_NothingToDefine; - } D3D11_TEX2DMS_SRV; - -typedef struct D3D11_TEX2DMS_ARRAY_SRV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2DMS_ARRAY_SRV; - -typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC - { - DXGI_FORMAT Format; - D3D11_SRV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_SRV Buffer; - D3D11_TEX1D_SRV Texture1D; - D3D11_TEX1D_ARRAY_SRV Texture1DArray; - D3D11_TEX2D_SRV Texture2D; - D3D11_TEX2D_ARRAY_SRV Texture2DArray; - D3D11_TEX2DMS_SRV Texture2DMS; - D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D11_TEX3D_SRV Texture3D; - D3D11_TEXCUBE_SRV TextureCube; - D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; - D3D11_BUFFEREX_SRV BufferEx; - } ; - } D3D11_SHADER_RESOURCE_VIEW_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC -{ - CD3D11_SHADER_RESOURCE_VIEW_DESC() - {} - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( const D3D11_SHADER_RESOURCE_VIEW_DESC& o ) : - D3D11_SHADER_RESOURCE_VIEW_DESC( o ) - {} - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, // FirstElement for BUFFER - UINT mipLevels = -1, // NumElements for BUFFER - UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY - UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY - UINT flags = 0 ) // BUFFEREX only - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_BUFFER: - Buffer.FirstElement = mostDetailedMip; - Buffer.NumElements = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1D: - Texture1D.MostDetailedMip = mostDetailedMip; - Texture1D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MostDetailedMip = mostDetailedMip; - Texture1DArray.MipLevels = mipLevels; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE2D: - Texture2D.MostDetailedMip = mostDetailedMip; - Texture2D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MostDetailedMip = mostDetailedMip; - Texture2DArray.MipLevels = mipLevels; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE3D: - Texture3D.MostDetailedMip = mostDetailedMip; - Texture3D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBE: - TextureCube.MostDetailedMip = mostDetailedMip; - TextureCube.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: - TextureCubeArray.MostDetailedMip = mostDetailedMip; - TextureCubeArray.MipLevels = mipLevels; - TextureCubeArray.First2DArrayFace = firstArraySlice; - TextureCubeArray.NumCubes = arraySize; - break; - case D3D11_SRV_DIMENSION_BUFFEREX: - BufferEx.FirstElement = mostDetailedMip; - BufferEx.NumElements = mipLevels; - BufferEx.Flags = flags; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements, - UINT flags = 0 ) - { - Format = format; - ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX; - BufferEx.FirstElement = firstElement; - BufferEx.NumElements = numElements; - BufferEx.Flags = flags; - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( - _In_ ID3D11Texture1D* pTex1D, - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels || - (-1 == arraySize && D3D11_SRV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_TEXTURE1D: - Texture1D.MostDetailedMip = mostDetailedMip; - Texture1D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MostDetailedMip = mostDetailedMip; - Texture1DArray.MipLevels = mipLevels; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( - _In_ ID3D11Texture2D* pTex2D, - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1, - UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY - UINT arraySize = -1 ) // NumCubes for TEXTURECUBEARRAY - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == mipLevels && - D3D11_SRV_DIMENSION_TEXTURE2DMS != viewDimension && - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY != viewDimension) || - (-1 == arraySize && - (D3D11_SRV_DIMENSION_TEXTURE2DARRAY == viewDimension || - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY == viewDimension || - D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension))) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - if (-1 == arraySize) - { - arraySize = TexDesc.ArraySize - firstArraySlice; - if (D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension) arraySize /= 6; - } - } - Format = format; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_TEXTURE2D: - Texture2D.MostDetailedMip = mostDetailedMip; - Texture2D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MostDetailedMip = mostDetailedMip; - Texture2DArray.MipLevels = mipLevels; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBE: - TextureCube.MostDetailedMip = mostDetailedMip; - TextureCube.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: - TextureCubeArray.MostDetailedMip = mostDetailedMip; - TextureCubeArray.MipLevels = mipLevels; - TextureCubeArray.First2DArrayFace = firstArraySlice; - TextureCubeArray.NumCubes = arraySize; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1 ) - { - ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - } - Format = format; - Texture3D.MostDetailedMip = mostDetailedMip; - Texture3D.MipLevels = mipLevels; - } - ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {} - operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0010_v0_0_s_ifspec; - -#ifndef __ID3D11ShaderResourceView_INTERFACE_DEFINED__ -#define __ID3D11ShaderResourceView_INTERFACE_DEFINED__ - -/* interface ID3D11ShaderResourceView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11ShaderResourceView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("b0e06fe0-8192-4e1a-b1ca-36d7414710b2") - ID3D11ShaderResourceView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ShaderResourceViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11ShaderResourceView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11ShaderResourceView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11ShaderResourceView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11ShaderResourceView * This, - /* [annotation] */ - _Out_ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11ShaderResourceViewVtbl; - - interface ID3D11ShaderResourceView - { - CONST_VTBL struct ID3D11ShaderResourceViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11ShaderResourceView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11ShaderResourceView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11ShaderResourceView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11ShaderResourceView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11ShaderResourceView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11ShaderResourceView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11ShaderResourceView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11ShaderResourceView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11ShaderResourceView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0011 */ -/* [local] */ - -typedef struct D3D11_BUFFER_RTV - { - union - { - UINT FirstElement; - UINT ElementOffset; - } ; - union - { - UINT NumElements; - UINT ElementWidth; - } ; - } D3D11_BUFFER_RTV; - -typedef struct D3D11_TEX1D_RTV - { - UINT MipSlice; - } D3D11_TEX1D_RTV; - -typedef struct D3D11_TEX1D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX1D_ARRAY_RTV; - -typedef struct D3D11_TEX2D_RTV - { - UINT MipSlice; - } D3D11_TEX2D_RTV; - -typedef struct D3D11_TEX2DMS_RTV - { - UINT UnusedField_NothingToDefine; - } D3D11_TEX2DMS_RTV; - -typedef struct D3D11_TEX2D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2D_ARRAY_RTV; - -typedef struct D3D11_TEX2DMS_ARRAY_RTV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2DMS_ARRAY_RTV; - -typedef struct D3D11_TEX3D_RTV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D11_TEX3D_RTV; - -typedef struct D3D11_RENDER_TARGET_VIEW_DESC - { - DXGI_FORMAT Format; - D3D11_RTV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_RTV Buffer; - D3D11_TEX1D_RTV Texture1D; - D3D11_TEX1D_ARRAY_RTV Texture1DArray; - D3D11_TEX2D_RTV Texture2D; - D3D11_TEX2D_ARRAY_RTV Texture2DArray; - D3D11_TEX2DMS_RTV Texture2DMS; - D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D11_TEX3D_RTV Texture3D; - } ; - } D3D11_RENDER_TARGET_VIEW_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC -{ - CD3D11_RENDER_TARGET_VIEW_DESC() - {} - explicit CD3D11_RENDER_TARGET_VIEW_DESC( const D3D11_RENDER_TARGET_VIEW_DESC& o ) : - D3D11_RENDER_TARGET_VIEW_DESC( o ) - {} - explicit CD3D11_RENDER_TARGET_VIEW_DESC( - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, // FirstElement for BUFFER - UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D - UINT arraySize = -1 ) // WSize for TEXTURE3D - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_BUFFER: - Buffer.FirstElement = mipSlice; - Buffer.NumElements = firstArraySlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE3D: - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstArraySlice; - Texture3D.WSize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements ) - { - Format = format; - ViewDimension = D3D11_RTV_DIMENSION_BUFFER; - Buffer.FirstElement = firstElement; - Buffer.NumElements = numElements; - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC( - _In_ ID3D11Texture1D* pTex1D, - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_RTV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC( - _In_ ID3D11Texture2D* pTex2D, - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && - (D3D11_RTV_DIMENSION_TEXTURE2DARRAY == viewDimension || - D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY == viewDimension))) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstWSlice = 0, - UINT wSize = -1 ) - { - ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; - } - Format = format; - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstWSlice; - Texture3D.WSize = wSize; - } - ~CD3D11_RENDER_TARGET_VIEW_DESC() {} - operator const D3D11_RENDER_TARGET_VIEW_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0011_v0_0_s_ifspec; - -#ifndef __ID3D11RenderTargetView_INTERFACE_DEFINED__ -#define __ID3D11RenderTargetView_INTERFACE_DEFINED__ - -/* interface ID3D11RenderTargetView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11RenderTargetView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("dfdba067-0b8d-4865-875b-d7b4516cc164") - ID3D11RenderTargetView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_RENDER_TARGET_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11RenderTargetViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11RenderTargetView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11RenderTargetView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11RenderTargetView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11RenderTargetView * This, - /* [annotation] */ - _Out_ D3D11_RENDER_TARGET_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11RenderTargetViewVtbl; - - interface ID3D11RenderTargetView - { - CONST_VTBL struct ID3D11RenderTargetViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11RenderTargetView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11RenderTargetView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11RenderTargetView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11RenderTargetView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11RenderTargetView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11RenderTargetView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11RenderTargetView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11RenderTargetView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11RenderTargetView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0012 */ -/* [local] */ - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_VIEWPORT : public D3D11_VIEWPORT -{ - CD3D11_VIEWPORT() - {} - explicit CD3D11_VIEWPORT( const D3D11_VIEWPORT& o ) : - D3D11_VIEWPORT( o ) - {} - explicit CD3D11_VIEWPORT( - FLOAT topLeftX, - FLOAT topLeftY, - FLOAT width, - FLOAT height, - FLOAT minDepth = D3D11_MIN_DEPTH, - FLOAT maxDepth = D3D11_MAX_DEPTH ) - { - TopLeftX = topLeftX; - TopLeftY = topLeftY; - Width = width; - Height = height; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - explicit CD3D11_VIEWPORT( - _In_ ID3D11Buffer*, - _In_ ID3D11RenderTargetView* pRTView, - FLOAT topLeftX = 0.0f, - FLOAT minDepth = D3D11_MIN_DEPTH, - FLOAT maxDepth = D3D11_MAX_DEPTH ) - { - D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; - pRTView->GetDesc( &RTVDesc ); - UINT NumElements = 0; - switch (RTVDesc.ViewDimension) - { - case D3D11_RTV_DIMENSION_BUFFER: - NumElements = RTVDesc.Buffer.NumElements; - break; - default: break; - } - TopLeftX = topLeftX; - TopLeftY = 0.0f; - Width = NumElements - topLeftX; - Height = 1.0f; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - explicit CD3D11_VIEWPORT( - _In_ ID3D11Texture1D* pTex1D, - _In_ ID3D11RenderTargetView* pRTView, - FLOAT topLeftX = 0.0f, - FLOAT minDepth = D3D11_MIN_DEPTH, - FLOAT maxDepth = D3D11_MAX_DEPTH ) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; - pRTView->GetDesc( &RTVDesc ); - UINT MipSlice = 0; - switch (RTVDesc.ViewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE1D: - MipSlice = RTVDesc.Texture1D.MipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: - MipSlice = RTVDesc.Texture1DArray.MipSlice; - break; - default: break; - } - const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); - TopLeftX = topLeftX; - TopLeftY = 0.0f; - Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; - Height = 1.0f; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - explicit CD3D11_VIEWPORT( - _In_ ID3D11Texture2D* pTex2D, - _In_ ID3D11RenderTargetView* pRTView, - FLOAT topLeftX = 0.0f, - FLOAT topLeftY = 0.0f, - FLOAT minDepth = D3D11_MIN_DEPTH, - FLOAT maxDepth = D3D11_MAX_DEPTH ) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; - pRTView->GetDesc( &RTVDesc ); - UINT MipSlice = 0; - switch (RTVDesc.ViewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE2D: - MipSlice = RTVDesc.Texture2D.MipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: - MipSlice = RTVDesc.Texture2DArray.MipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMS: - case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: - break; - default: break; - } - const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); - const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice); - TopLeftX = topLeftX; - TopLeftY = topLeftY; - Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; - Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - explicit CD3D11_VIEWPORT( - _In_ ID3D11Texture3D* pTex3D, - _In_ ID3D11RenderTargetView* pRTView, - FLOAT topLeftX = 0.0f, - FLOAT topLeftY = 0.0f, - FLOAT minDepth = D3D11_MIN_DEPTH, - FLOAT maxDepth = D3D11_MAX_DEPTH ) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - D3D11_RENDER_TARGET_VIEW_DESC RTVDesc; - pRTView->GetDesc( &RTVDesc ); - UINT MipSlice = 0; - switch (RTVDesc.ViewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE3D: - MipSlice = RTVDesc.Texture3D.MipSlice; - break; - default: break; - } - const UINT SubResourceWidth = TexDesc.Width / (UINT( 1 ) << MipSlice); - const UINT SubResourceHeight = TexDesc.Height / (UINT( 1 ) << MipSlice); - TopLeftX = topLeftX; - TopLeftY = topLeftY; - Width = (SubResourceWidth ? SubResourceWidth : 1) - topLeftX; - Height = (SubResourceHeight ? SubResourceHeight : 1) - topLeftY; - MinDepth = minDepth; - MaxDepth = maxDepth; - } - ~CD3D11_VIEWPORT() {} - operator const D3D11_VIEWPORT&() const { return *this; } -}; -extern "C"{ -#endif -typedef struct D3D11_TEX1D_DSV - { - UINT MipSlice; - } D3D11_TEX1D_DSV; - -typedef struct D3D11_TEX1D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX1D_ARRAY_DSV; - -typedef struct D3D11_TEX2D_DSV - { - UINT MipSlice; - } D3D11_TEX2D_DSV; - -typedef struct D3D11_TEX2D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2D_ARRAY_DSV; - -typedef struct D3D11_TEX2DMS_DSV - { - UINT UnusedField_NothingToDefine; - } D3D11_TEX2DMS_DSV; - -typedef struct D3D11_TEX2DMS_ARRAY_DSV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2DMS_ARRAY_DSV; - -typedef -enum D3D11_DSV_FLAG - { - D3D11_DSV_READ_ONLY_DEPTH = 0x1L, - D3D11_DSV_READ_ONLY_STENCIL = 0x2L - } D3D11_DSV_FLAG; - -typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC - { - DXGI_FORMAT Format; - D3D11_DSV_DIMENSION ViewDimension; - UINT Flags; - union - { - D3D11_TEX1D_DSV Texture1D; - D3D11_TEX1D_ARRAY_DSV Texture1DArray; - D3D11_TEX2D_DSV Texture2D; - D3D11_TEX2D_ARRAY_DSV Texture2DArray; - D3D11_TEX2DMS_DSV Texture2DMS; - D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; - } ; - } D3D11_DEPTH_STENCIL_VIEW_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_DEPTH_STENCIL_VIEW_DESC : public D3D11_DEPTH_STENCIL_VIEW_DESC -{ - CD3D11_DEPTH_STENCIL_VIEW_DESC() - {} - explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( const D3D11_DEPTH_STENCIL_VIEW_DESC& o ) : - D3D11_DEPTH_STENCIL_VIEW_DESC( o ) - {} - explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( - D3D11_DSV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1, - UINT flags = 0 ) - { - Format = format; - ViewDimension = viewDimension; - Flags = flags; - switch (viewDimension) - { - case D3D11_DSV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_DSV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_DSV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( - _In_ ID3D11Texture1D* pTex1D, - D3D11_DSV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1, - UINT flags = 0 ) - { - ViewDimension = viewDimension; - Flags = flags; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_DSV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_DSV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_DEPTH_STENCIL_VIEW_DESC( - _In_ ID3D11Texture2D* pTex2D, - D3D11_DSV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1, - UINT flags = 0 ) - { - ViewDimension = viewDimension; - Flags = flags; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && - (D3D11_DSV_DIMENSION_TEXTURE2DARRAY == viewDimension || - D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY == viewDimension))) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_DSV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_DSV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - default: break; - } - } - ~CD3D11_DEPTH_STENCIL_VIEW_DESC() {} - operator const D3D11_DEPTH_STENCIL_VIEW_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0012_v0_0_s_ifspec; - -#ifndef __ID3D11DepthStencilView_INTERFACE_DEFINED__ -#define __ID3D11DepthStencilView_INTERFACE_DEFINED__ - -/* interface ID3D11DepthStencilView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DepthStencilView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9fdac92a-1876-48c3-afad-25b94f84a9b6") - ID3D11DepthStencilView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DepthStencilViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DepthStencilView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DepthStencilView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DepthStencilView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11DepthStencilView * This, - /* [annotation] */ - _Out_ D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11DepthStencilViewVtbl; - - interface ID3D11DepthStencilView - { - CONST_VTBL struct ID3D11DepthStencilViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DepthStencilView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DepthStencilView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DepthStencilView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DepthStencilView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DepthStencilView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DepthStencilView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DepthStencilView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DepthStencilView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11DepthStencilView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0013 */ -/* [local] */ - -typedef -enum D3D11_BUFFER_UAV_FLAG - { - D3D11_BUFFER_UAV_FLAG_RAW = 0x1, - D3D11_BUFFER_UAV_FLAG_APPEND = 0x2, - D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4 - } D3D11_BUFFER_UAV_FLAG; - -typedef struct D3D11_BUFFER_UAV - { - UINT FirstElement; - UINT NumElements; - UINT Flags; - } D3D11_BUFFER_UAV; - -typedef struct D3D11_TEX1D_UAV - { - UINT MipSlice; - } D3D11_TEX1D_UAV; - -typedef struct D3D11_TEX1D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX1D_ARRAY_UAV; - -typedef struct D3D11_TEX2D_UAV - { - UINT MipSlice; - } D3D11_TEX2D_UAV; - -typedef struct D3D11_TEX2D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2D_ARRAY_UAV; - -typedef struct D3D11_TEX3D_UAV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D11_TEX3D_UAV; - -typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC - { - DXGI_FORMAT Format; - D3D11_UAV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_UAV Buffer; - D3D11_TEX1D_UAV Texture1D; - D3D11_TEX1D_ARRAY_UAV Texture1DArray; - D3D11_TEX2D_UAV Texture2D; - D3D11_TEX2D_ARRAY_UAV Texture2DArray; - D3D11_TEX3D_UAV Texture3D; - } ; - } D3D11_UNORDERED_ACCESS_VIEW_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_UNORDERED_ACCESS_VIEW_DESC : public D3D11_UNORDERED_ACCESS_VIEW_DESC -{ - CD3D11_UNORDERED_ACCESS_VIEW_DESC() - {} - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( const D3D11_UNORDERED_ACCESS_VIEW_DESC& o ) : - D3D11_UNORDERED_ACCESS_VIEW_DESC( o ) - {} - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, // FirstElement for BUFFER - UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D - UINT arraySize = -1, // WSize for TEXTURE3D - UINT flags = 0 ) // BUFFER only - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_BUFFER: - Buffer.FirstElement = mipSlice; - Buffer.NumElements = firstArraySlice; - Buffer.Flags = flags; - break; - case D3D11_UAV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_UAV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - case D3D11_UAV_DIMENSION_TEXTURE3D: - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstArraySlice; - Texture3D.WSize = arraySize; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements, - UINT flags = 0 ) - { - Format = format; - ViewDimension = D3D11_UAV_DIMENSION_BUFFER; - Buffer.FirstElement = firstElement; - Buffer.NumElements = numElements; - Buffer.Flags = flags; - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( - _In_ ID3D11Texture1D* pTex1D, - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( - _In_ ID3D11Texture2D* pTex2D, - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE2DARRAY == viewDimension)) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstWSlice = 0, - UINT wSize = -1 ) - { - ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; - } - Format = format; - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstWSlice; - Texture3D.WSize = wSize; - } - ~CD3D11_UNORDERED_ACCESS_VIEW_DESC() {} - operator const D3D11_UNORDERED_ACCESS_VIEW_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0013_v0_0_s_ifspec; - -#ifndef __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ -#define __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ - -/* interface ID3D11UnorderedAccessView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11UnorderedAccessView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("28acf509-7f5c-48f6-8611-f316010a6380") - ID3D11UnorderedAccessView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11UnorderedAccessViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11UnorderedAccessView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11UnorderedAccessView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11UnorderedAccessView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11UnorderedAccessView * This, - /* [annotation] */ - _Out_ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11UnorderedAccessViewVtbl; - - interface ID3D11UnorderedAccessView - { - CONST_VTBL struct ID3D11UnorderedAccessViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11UnorderedAccessView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11UnorderedAccessView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11UnorderedAccessView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11UnorderedAccessView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11UnorderedAccessView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11UnorderedAccessView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11UnorderedAccessView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11UnorderedAccessView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11UnorderedAccessView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11VertexShader_INTERFACE_DEFINED__ -#define __ID3D11VertexShader_INTERFACE_DEFINED__ - -/* interface ID3D11VertexShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VertexShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3b301d64-d678-4289-8897-22f8928b72f3") - ID3D11VertexShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11VertexShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VertexShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VertexShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VertexShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VertexShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VertexShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11VertexShaderVtbl; - - interface ID3D11VertexShader - { - CONST_VTBL struct ID3D11VertexShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VertexShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VertexShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VertexShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VertexShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VertexShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VertexShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VertexShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VertexShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11HullShader_INTERFACE_DEFINED__ -#define __ID3D11HullShader_INTERFACE_DEFINED__ - -/* interface ID3D11HullShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11HullShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8e5c6061-628a-4c8e-8264-bbe45cb3d5dd") - ID3D11HullShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11HullShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11HullShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11HullShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11HullShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11HullShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11HullShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11HullShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11HullShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11HullShaderVtbl; - - interface ID3D11HullShader - { - CONST_VTBL struct ID3D11HullShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11HullShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11HullShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11HullShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11HullShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11HullShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11HullShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11HullShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11HullShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11DomainShader_INTERFACE_DEFINED__ -#define __ID3D11DomainShader_INTERFACE_DEFINED__ - -/* interface ID3D11DomainShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DomainShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("f582c508-0f36-490c-9977-31eece268cfa") - ID3D11DomainShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11DomainShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DomainShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DomainShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DomainShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DomainShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DomainShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DomainShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DomainShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11DomainShaderVtbl; - - interface ID3D11DomainShader - { - CONST_VTBL struct ID3D11DomainShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DomainShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DomainShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DomainShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DomainShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DomainShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DomainShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DomainShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DomainShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11GeometryShader_INTERFACE_DEFINED__ -#define __ID3D11GeometryShader_INTERFACE_DEFINED__ - -/* interface ID3D11GeometryShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11GeometryShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("38325b96-effb-4022-ba02-2e795b70275c") - ID3D11GeometryShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11GeometryShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11GeometryShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11GeometryShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11GeometryShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11GeometryShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11GeometryShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11GeometryShaderVtbl; - - interface ID3D11GeometryShader - { - CONST_VTBL struct ID3D11GeometryShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11GeometryShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11GeometryShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11GeometryShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11GeometryShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11GeometryShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11GeometryShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11GeometryShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11PixelShader_INTERFACE_DEFINED__ -#define __ID3D11PixelShader_INTERFACE_DEFINED__ - -/* interface ID3D11PixelShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11PixelShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ea82e40d-51dc-4f33-93d4-db7c9125ae8c") - ID3D11PixelShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11PixelShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11PixelShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11PixelShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11PixelShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11PixelShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11PixelShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11PixelShaderVtbl; - - interface ID3D11PixelShader - { - CONST_VTBL struct ID3D11PixelShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11PixelShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11PixelShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11PixelShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11PixelShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11PixelShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11PixelShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11PixelShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11PixelShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11ComputeShader_INTERFACE_DEFINED__ -#define __ID3D11ComputeShader_INTERFACE_DEFINED__ - -/* interface ID3D11ComputeShader */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11ComputeShader; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4f5b196e-c2bd-495e-bd01-1fded38e4969") - ID3D11ComputeShader : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11ComputeShaderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11ComputeShader * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11ComputeShader * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11ComputeShader * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11ComputeShader * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11ComputeShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11ComputeShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11ComputeShader * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11ComputeShaderVtbl; - - interface ID3D11ComputeShader - { - CONST_VTBL struct ID3D11ComputeShaderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11ComputeShader_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11ComputeShader_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11ComputeShader_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11ComputeShader_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11ComputeShader_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11ComputeShader_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11ComputeShader_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11InputLayout_INTERFACE_DEFINED__ -#define __ID3D11InputLayout_INTERFACE_DEFINED__ - -/* interface ID3D11InputLayout */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11InputLayout; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("e4819ddc-4cf0-4025-bd26-5de82a3e07b7") - ID3D11InputLayout : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11InputLayoutVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11InputLayout * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11InputLayout * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11InputLayout * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11InputLayout * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11InputLayout * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11InputLayoutVtbl; - - interface ID3D11InputLayout - { - CONST_VTBL struct ID3D11InputLayoutVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11InputLayout_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11InputLayout_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11InputLayout_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11InputLayout_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11InputLayout_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11InputLayout_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11InputLayout_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11InputLayout_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0021 */ -/* [local] */ - -typedef -enum D3D11_FILTER - { - D3D11_FILTER_MIN_MAG_MIP_POINT = 0, - D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, - D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, - D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, - D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, - D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, - D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, - D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, - D3D11_FILTER_ANISOTROPIC = 0x55, - D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, - D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, - D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, - D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, - D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, - D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, - D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, - D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, - D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5, - D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, - D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, - D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, - D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, - D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, - D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, - D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, - D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, - D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155, - D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, - D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, - D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, - D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, - D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, - D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, - D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, - D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, - D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 - } D3D11_FILTER; - -typedef -enum D3D11_FILTER_TYPE - { - D3D11_FILTER_TYPE_POINT = 0, - D3D11_FILTER_TYPE_LINEAR = 1 - } D3D11_FILTER_TYPE; - -typedef -enum D3D11_FILTER_REDUCTION_TYPE - { - D3D11_FILTER_REDUCTION_TYPE_STANDARD = 0, - D3D11_FILTER_REDUCTION_TYPE_COMPARISON = 1, - D3D11_FILTER_REDUCTION_TYPE_MINIMUM = 2, - D3D11_FILTER_REDUCTION_TYPE_MAXIMUM = 3 - } D3D11_FILTER_REDUCTION_TYPE; - -#define D3D11_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) - -#define D3D11_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) - -#define D3D11_FILTER_TYPE_MASK ( 0x3 ) - -#define D3D11_MIN_FILTER_SHIFT ( 4 ) - -#define D3D11_MAG_FILTER_SHIFT ( 2 ) - -#define D3D11_MIP_FILTER_SHIFT ( 0 ) - -// D3D11_COMPARISON_FILTERING_BIT is no longer used / meaningless. The D3D11_FILTER_REDUCTION_TYPE enum replaced it. -// Old code that uses D3D11_COMPARISON_FILTERING_BIT and would never use D3D11_FILTER_MINIMUM_* or D3D11_FILTER_MAXIMUM_* -// will still work fine though, so the define is left to avoid breaks. -#define D3D11_COMPARISON_FILTERING_BIT ( 0x80 ) - -#define D3D11_ANISOTROPIC_FILTERING_BIT ( 0x40 ) - -#define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ - ( ( D3D11_FILTER ) ( \ - ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) | \ - ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) | \ - ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) | \ - ( ( ( reduction ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) << D3D11_FILTER_REDUCTION_TYPE_SHIFT ) ) ) -#define D3D11_ENCODE_ANISOTROPIC_FILTER( reduction ) \ - ( ( D3D11_FILTER ) ( \ - D3D11_ANISOTROPIC_FILTERING_BIT | \ - D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR, \ - D3D11_FILTER_TYPE_LINEAR, \ - D3D11_FILTER_TYPE_LINEAR, \ - reduction ) ) ) -#define D3D11_DECODE_MIN_FILTER( d3d11Filter ) \ - ( ( D3D11_FILTER_TYPE ) \ - ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) -#define D3D11_DECODE_MAG_FILTER( d3d11Filter ) \ - ( ( D3D11_FILTER_TYPE ) \ - ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) -#define D3D11_DECODE_MIP_FILTER( d3d11Filter ) \ - ( ( D3D11_FILTER_TYPE ) \ - ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) -#define D3D11_DECODE_FILTER_REDUCTION( d3d11Filter ) \ - ( ( D3D11_FILTER_REDUCTION_TYPE ) \ - ( ( ( d3d11Filter ) >> D3D11_FILTER_REDUCTION_TYPE_SHIFT ) & D3D11_FILTER_REDUCTION_TYPE_MASK ) ) -#define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter ) \ - ( D3D11_DECODE_FILTER_REDUCTION( d3d11Filter ) == D3D11_FILTER_REDUCTION_TYPE_COMPARISON ) -#define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter ) \ - ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) && \ - ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) && \ - ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) && \ - ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) ) -typedef -enum D3D11_TEXTURE_ADDRESS_MODE - { - D3D11_TEXTURE_ADDRESS_WRAP = 1, - D3D11_TEXTURE_ADDRESS_MIRROR = 2, - D3D11_TEXTURE_ADDRESS_CLAMP = 3, - D3D11_TEXTURE_ADDRESS_BORDER = 4, - D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5 - } D3D11_TEXTURE_ADDRESS_MODE; - -typedef struct D3D11_SAMPLER_DESC - { - D3D11_FILTER Filter; - D3D11_TEXTURE_ADDRESS_MODE AddressU; - D3D11_TEXTURE_ADDRESS_MODE AddressV; - D3D11_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D11_COMPARISON_FUNC ComparisonFunc; - FLOAT BorderColor[ 4 ]; - FLOAT MinLOD; - FLOAT MaxLOD; - } D3D11_SAMPLER_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC -{ - CD3D11_SAMPLER_DESC() - {} - explicit CD3D11_SAMPLER_DESC( const D3D11_SAMPLER_DESC& o ) : - D3D11_SAMPLER_DESC( o ) - {} - explicit CD3D11_SAMPLER_DESC( CD3D11_DEFAULT ) - { - Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; - AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; - AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; - AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; - MipLODBias = 0; - MaxAnisotropy = 1; - ComparisonFunc = D3D11_COMPARISON_NEVER; - BorderColor[ 0 ] = 1.0f; - BorderColor[ 1 ] = 1.0f; - BorderColor[ 2 ] = 1.0f; - BorderColor[ 3 ] = 1.0f; - MinLOD = -3.402823466e+38F; // -FLT_MAX - MaxLOD = 3.402823466e+38F; // FLT_MAX - } - explicit CD3D11_SAMPLER_DESC( - D3D11_FILTER filter, - D3D11_TEXTURE_ADDRESS_MODE addressU, - D3D11_TEXTURE_ADDRESS_MODE addressV, - D3D11_TEXTURE_ADDRESS_MODE addressW, - FLOAT mipLODBias, - UINT maxAnisotropy, - D3D11_COMPARISON_FUNC comparisonFunc, - _In_reads_opt_( 4 ) const FLOAT* borderColor, // RGBA - FLOAT minLOD, - FLOAT maxLOD ) - { - Filter = filter; - AddressU = addressU; - AddressV = addressV; - AddressW = addressW; - MipLODBias = mipLODBias; - MaxAnisotropy = maxAnisotropy; - ComparisonFunc = comparisonFunc; - const float defaultColor[ 4 ] = { 1.0f, 1.0f, 1.0f, 1.0f }; - if (!borderColor) borderColor = defaultColor; - BorderColor[ 0 ] = borderColor[ 0 ]; - BorderColor[ 1 ] = borderColor[ 1 ]; - BorderColor[ 2 ] = borderColor[ 2 ]; - BorderColor[ 3 ] = borderColor[ 3 ]; - MinLOD = minLOD; - MaxLOD = maxLOD; - } - ~CD3D11_SAMPLER_DESC() {} - operator const D3D11_SAMPLER_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0021_v0_0_s_ifspec; - -#ifndef __ID3D11SamplerState_INTERFACE_DEFINED__ -#define __ID3D11SamplerState_INTERFACE_DEFINED__ - -/* interface ID3D11SamplerState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11SamplerState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("da6fea51-564c-4487-9810-f0d0f9b4e3a5") - ID3D11SamplerState : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_SAMPLER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11SamplerStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11SamplerState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11SamplerState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11SamplerState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11SamplerState * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11SamplerState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11SamplerState * This, - /* [annotation] */ - _Out_ D3D11_SAMPLER_DESC *pDesc); - - END_INTERFACE - } ID3D11SamplerStateVtbl; - - interface ID3D11SamplerState - { - CONST_VTBL struct ID3D11SamplerStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11SamplerState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11SamplerState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11SamplerState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11SamplerState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11SamplerState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11SamplerState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11SamplerState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11SamplerState_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11SamplerState_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0022 */ -/* [local] */ - -typedef -enum D3D11_FORMAT_SUPPORT - { - D3D11_FORMAT_SUPPORT_BUFFER = 0x1, - D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, - D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, - D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8, - D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10, - D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20, - D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40, - D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80, - D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100, - D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, - D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, - D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, - D3D11_FORMAT_SUPPORT_MIP = 0x1000, - D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, - D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, - D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000, - D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, - D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, - D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, - D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000, - D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, - D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, - D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, - D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, - D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000, - D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, - D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000, - D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x8000000, - D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000, - D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000, - D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000 - } D3D11_FORMAT_SUPPORT; - -typedef -enum D3D11_FORMAT_SUPPORT2 - { - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, - D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, - D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, - D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, - D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, - D3D11_FORMAT_SUPPORT2_TILED = 0x200, - D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400, - D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000 - } D3D11_FORMAT_SUPPORT2; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0022_v0_0_s_ifspec; - -#ifndef __ID3D11Asynchronous_INTERFACE_DEFINED__ -#define __ID3D11Asynchronous_INTERFACE_DEFINED__ - -/* interface ID3D11Asynchronous */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Asynchronous; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4b35d0cd-1e15-4258-9c98-1b1333f6dd3b") - ID3D11Asynchronous : public ID3D11DeviceChild - { - public: - virtual UINT STDMETHODCALLTYPE GetDataSize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11AsynchronousVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Asynchronous * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Asynchronous * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Asynchronous * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Asynchronous * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Asynchronous * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D11Asynchronous * This); - - END_INTERFACE - } ID3D11AsynchronousVtbl; - - interface ID3D11Asynchronous - { - CONST_VTBL struct ID3D11AsynchronousVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Asynchronous_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Asynchronous_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Asynchronous_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Asynchronous_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Asynchronous_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Asynchronous_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Asynchronous_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Asynchronous_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0023 */ -/* [local] */ - -typedef -enum D3D11_ASYNC_GETDATA_FLAG - { - D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1 - } D3D11_ASYNC_GETDATA_FLAG; - -typedef -enum D3D11_QUERY - { - D3D11_QUERY_EVENT = 0, - D3D11_QUERY_OCCLUSION = ( D3D11_QUERY_EVENT + 1 ) , - D3D11_QUERY_TIMESTAMP = ( D3D11_QUERY_OCCLUSION + 1 ) , - D3D11_QUERY_TIMESTAMP_DISJOINT = ( D3D11_QUERY_TIMESTAMP + 1 ) , - D3D11_QUERY_PIPELINE_STATISTICS = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) , - D3D11_QUERY_OCCLUSION_PREDICATE = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) , - D3D11_QUERY_SO_STATISTICS = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) , - D3D11_QUERY_SO_OVERFLOW_PREDICATE = ( D3D11_QUERY_SO_STATISTICS + 1 ) , - D3D11_QUERY_SO_STATISTICS_STREAM0 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) , - D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) , - D3D11_QUERY_SO_STATISTICS_STREAM1 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) , - D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) , - D3D11_QUERY_SO_STATISTICS_STREAM2 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) , - D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) , - D3D11_QUERY_SO_STATISTICS_STREAM3 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) , - D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 ) - } D3D11_QUERY; - -typedef -enum D3D11_QUERY_MISC_FLAG - { - D3D11_QUERY_MISC_PREDICATEHINT = 0x1 - } D3D11_QUERY_MISC_FLAG; - -typedef struct D3D11_QUERY_DESC - { - D3D11_QUERY Query; - UINT MiscFlags; - } D3D11_QUERY_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC -{ - CD3D11_QUERY_DESC() - {} - explicit CD3D11_QUERY_DESC( const D3D11_QUERY_DESC& o ) : - D3D11_QUERY_DESC( o ) - {} - explicit CD3D11_QUERY_DESC( - D3D11_QUERY query, - UINT miscFlags = 0 ) - { - Query = query; - MiscFlags = miscFlags; - } - ~CD3D11_QUERY_DESC() {} - operator const D3D11_QUERY_DESC&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0023_v0_0_s_ifspec; - -#ifndef __ID3D11Query_INTERFACE_DEFINED__ -#define __ID3D11Query_INTERFACE_DEFINED__ - -/* interface ID3D11Query */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Query; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("d6c00747-87b7-425e-b84d-44d108560afd") - ID3D11Query : public ID3D11Asynchronous - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_QUERY_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11QueryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Query * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Query * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Query * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Query * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Query * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D11Query * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Query * This, - /* [annotation] */ - _Out_ D3D11_QUERY_DESC *pDesc); - - END_INTERFACE - } ID3D11QueryVtbl; - - interface ID3D11Query - { - CONST_VTBL struct ID3D11QueryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Query_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Query_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Query_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Query_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Query_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Query_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Query_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Query_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D11Query_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Query_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11Predicate_INTERFACE_DEFINED__ -#define __ID3D11Predicate_INTERFACE_DEFINED__ - -/* interface ID3D11Predicate */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Predicate; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9eb576dd-9f77-4d86-81aa-8bab5fe490e2") - ID3D11Predicate : public ID3D11Query - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D11PredicateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Predicate * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Predicate * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Predicate * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Predicate * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Predicate * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D11Predicate * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Predicate * This, - /* [annotation] */ - _Out_ D3D11_QUERY_DESC *pDesc); - - END_INTERFACE - } ID3D11PredicateVtbl; - - interface ID3D11Predicate - { - CONST_VTBL struct ID3D11PredicateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Predicate_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Predicate_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Predicate_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Predicate_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Predicate_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Predicate_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Predicate_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Predicate_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D11Predicate_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Predicate_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0025 */ -/* [local] */ - -typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT - { - UINT64 Frequency; - BOOL Disjoint; - } D3D11_QUERY_DATA_TIMESTAMP_DISJOINT; - -typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS - { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; - } D3D11_QUERY_DATA_PIPELINE_STATISTICS; - -typedef struct D3D11_QUERY_DATA_SO_STATISTICS - { - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; - } D3D11_QUERY_DATA_SO_STATISTICS; - -typedef -enum D3D11_COUNTER - { - D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 - } D3D11_COUNTER; - -typedef -enum D3D11_COUNTER_TYPE - { - D3D11_COUNTER_TYPE_FLOAT32 = 0, - D3D11_COUNTER_TYPE_UINT16 = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) , - D3D11_COUNTER_TYPE_UINT32 = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) , - D3D11_COUNTER_TYPE_UINT64 = ( D3D11_COUNTER_TYPE_UINT32 + 1 ) - } D3D11_COUNTER_TYPE; - -typedef struct D3D11_COUNTER_DESC - { - D3D11_COUNTER Counter; - UINT MiscFlags; - } D3D11_COUNTER_DESC; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_COUNTER_DESC : public D3D11_COUNTER_DESC -{ - CD3D11_COUNTER_DESC() - {} - explicit CD3D11_COUNTER_DESC( const D3D11_COUNTER_DESC& o ) : - D3D11_COUNTER_DESC( o ) - {} - explicit CD3D11_COUNTER_DESC( - D3D11_COUNTER counter, - UINT miscFlags = 0 ) - { - Counter = counter; - MiscFlags = miscFlags; - } - ~CD3D11_COUNTER_DESC() {} - operator const D3D11_COUNTER_DESC&() const { return *this; } -}; -extern "C"{ -#endif -typedef struct D3D11_COUNTER_INFO - { - D3D11_COUNTER LastDeviceDependentCounter; - UINT NumSimultaneousCounters; - UINT8 NumDetectableParallelUnits; - } D3D11_COUNTER_INFO; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0025_v0_0_s_ifspec; - -#ifndef __ID3D11Counter_INTERFACE_DEFINED__ -#define __ID3D11Counter_INTERFACE_DEFINED__ - -/* interface ID3D11Counter */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Counter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6e8c49fb-a371-4770-b440-29086022b741") - ID3D11Counter : public ID3D11Asynchronous - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_COUNTER_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11CounterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Counter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Counter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Counter * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Counter * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Counter * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D11Counter * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Counter * This, - /* [annotation] */ - _Out_ D3D11_COUNTER_DESC *pDesc); - - END_INTERFACE - } ID3D11CounterVtbl; - - interface ID3D11Counter - { - CONST_VTBL struct ID3D11CounterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Counter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Counter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Counter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Counter_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Counter_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Counter_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Counter_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Counter_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D11Counter_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Counter_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0026 */ -/* [local] */ - -typedef -enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS - { - D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, - D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe - } D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS; - -typedef -enum D3D11_DEVICE_CONTEXT_TYPE - { - D3D11_DEVICE_CONTEXT_IMMEDIATE = 0, - D3D11_DEVICE_CONTEXT_DEFERRED = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 ) - } D3D11_DEVICE_CONTEXT_TYPE; - -typedef struct D3D11_CLASS_INSTANCE_DESC - { - UINT InstanceId; - UINT InstanceIndex; - UINT TypeId; - UINT ConstantBuffer; - UINT BaseConstantBufferOffset; - UINT BaseTexture; - UINT BaseSampler; - BOOL Created; - } D3D11_CLASS_INSTANCE_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0026_v0_0_s_ifspec; - -#ifndef __ID3D11ClassInstance_INTERFACE_DEFINED__ -#define __ID3D11ClassInstance_INTERFACE_DEFINED__ - -/* interface ID3D11ClassInstance */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11ClassInstance; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a6cd7faa-b0b7-4a2f-9436-8662a65797cb") - ID3D11ClassInstance : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetClassLinkage( - /* [annotation] */ - _Outptr_ ID3D11ClassLinkage **ppLinkage) = 0; - - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_CLASS_INSTANCE_DESC *pDesc) = 0; - - virtual void STDMETHODCALLTYPE GetInstanceName( - /* [annotation] */ - _Out_writes_opt_(*pBufferLength) LPSTR pInstanceName, - /* [annotation] */ - _Inout_ SIZE_T *pBufferLength) = 0; - - virtual void STDMETHODCALLTYPE GetTypeName( - /* [annotation] */ - _Out_writes_opt_(*pBufferLength) LPSTR pTypeName, - /* [annotation] */ - _Inout_ SIZE_T *pBufferLength) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ClassInstanceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11ClassInstance * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11ClassInstance * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11ClassInstance * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11ClassInstance * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11ClassInstance * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11ClassInstance * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11ClassInstance * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetClassLinkage )( - ID3D11ClassInstance * This, - /* [annotation] */ - _Outptr_ ID3D11ClassLinkage **ppLinkage); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11ClassInstance * This, - /* [annotation] */ - _Out_ D3D11_CLASS_INSTANCE_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetInstanceName )( - ID3D11ClassInstance * This, - /* [annotation] */ - _Out_writes_opt_(*pBufferLength) LPSTR pInstanceName, - /* [annotation] */ - _Inout_ SIZE_T *pBufferLength); - - void ( STDMETHODCALLTYPE *GetTypeName )( - ID3D11ClassInstance * This, - /* [annotation] */ - _Out_writes_opt_(*pBufferLength) LPSTR pTypeName, - /* [annotation] */ - _Inout_ SIZE_T *pBufferLength); - - END_INTERFACE - } ID3D11ClassInstanceVtbl; - - interface ID3D11ClassInstance - { - CONST_VTBL struct ID3D11ClassInstanceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11ClassInstance_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11ClassInstance_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11ClassInstance_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11ClassInstance_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11ClassInstance_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11ClassInstance_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11ClassInstance_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11ClassInstance_GetClassLinkage(This,ppLinkage) \ - ( (This)->lpVtbl -> GetClassLinkage(This,ppLinkage) ) - -#define ID3D11ClassInstance_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define ID3D11ClassInstance_GetInstanceName(This,pInstanceName,pBufferLength) \ - ( (This)->lpVtbl -> GetInstanceName(This,pInstanceName,pBufferLength) ) - -#define ID3D11ClassInstance_GetTypeName(This,pTypeName,pBufferLength) \ - ( (This)->lpVtbl -> GetTypeName(This,pTypeName,pBufferLength) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11ClassLinkage_INTERFACE_DEFINED__ -#define __ID3D11ClassLinkage_INTERFACE_DEFINED__ - -/* interface ID3D11ClassLinkage */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11ClassLinkage; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ddf57cba-9543-46e4-a12b-f207a0fe7fed") - ID3D11ClassLinkage : public ID3D11DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetClassInstance( - /* [annotation] */ - _In_ LPCSTR pClassInstanceName, - /* [annotation] */ - _In_ UINT InstanceIndex, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassInstance **ppInstance) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateClassInstance( - /* [annotation] */ - _In_ LPCSTR pClassTypeName, - /* [annotation] */ - _In_ UINT ConstantBufferOffset, - /* [annotation] */ - _In_ UINT ConstantVectorOffset, - /* [annotation] */ - _In_ UINT TextureOffset, - /* [annotation] */ - _In_ UINT SamplerOffset, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassInstance **ppInstance) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ClassLinkageVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11ClassLinkage * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11ClassLinkage * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11ClassLinkage * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetClassInstance )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _In_ LPCSTR pClassInstanceName, - /* [annotation] */ - _In_ UINT InstanceIndex, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassInstance **ppInstance); - - HRESULT ( STDMETHODCALLTYPE *CreateClassInstance )( - ID3D11ClassLinkage * This, - /* [annotation] */ - _In_ LPCSTR pClassTypeName, - /* [annotation] */ - _In_ UINT ConstantBufferOffset, - /* [annotation] */ - _In_ UINT ConstantVectorOffset, - /* [annotation] */ - _In_ UINT TextureOffset, - /* [annotation] */ - _In_ UINT SamplerOffset, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassInstance **ppInstance); - - END_INTERFACE - } ID3D11ClassLinkageVtbl; - - interface ID3D11ClassLinkage - { - CONST_VTBL struct ID3D11ClassLinkageVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11ClassLinkage_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11ClassLinkage_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11ClassLinkage_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11ClassLinkage_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11ClassLinkage_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11ClassLinkage_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11ClassLinkage_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11ClassLinkage_GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) \ - ( (This)->lpVtbl -> GetClassInstance(This,pClassInstanceName,InstanceIndex,ppInstance) ) - -#define ID3D11ClassLinkage_CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) \ - ( (This)->lpVtbl -> CreateClassInstance(This,pClassTypeName,ConstantBufferOffset,ConstantVectorOffset,TextureOffset,SamplerOffset,ppInstance) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11CommandList_INTERFACE_DEFINED__ -#define __ID3D11CommandList_INTERFACE_DEFINED__ - -/* interface ID3D11CommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11CommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a24bc4d1-769e-43f7-8013-98ff566c18e2") - ID3D11CommandList : public ID3D11DeviceChild - { - public: - virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11CommandListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11CommandList * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11CommandList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11CommandList * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11CommandList * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11CommandList * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11CommandList * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11CommandList * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetContextFlags )( - ID3D11CommandList * This); - - END_INTERFACE - } ID3D11CommandListVtbl; - - interface ID3D11CommandList - { - CONST_VTBL struct ID3D11CommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11CommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11CommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11CommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11CommandList_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11CommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11CommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11CommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11CommandList_GetContextFlags(This) \ - ( (This)->lpVtbl -> GetContextFlags(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11CommandList_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0029 */ -/* [local] */ - -typedef -enum D3D11_FEATURE - { - D3D11_FEATURE_THREADING = 0, - D3D11_FEATURE_DOUBLES = ( D3D11_FEATURE_THREADING + 1 ) , - D3D11_FEATURE_FORMAT_SUPPORT = ( D3D11_FEATURE_DOUBLES + 1 ) , - D3D11_FEATURE_FORMAT_SUPPORT2 = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) , - D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 ) , - D3D11_FEATURE_D3D11_OPTIONS = ( D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS + 1 ) , - D3D11_FEATURE_ARCHITECTURE_INFO = ( D3D11_FEATURE_D3D11_OPTIONS + 1 ) , - D3D11_FEATURE_D3D9_OPTIONS = ( D3D11_FEATURE_ARCHITECTURE_INFO + 1 ) , - D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = ( D3D11_FEATURE_D3D9_OPTIONS + 1 ) , - D3D11_FEATURE_D3D9_SHADOW_SUPPORT = ( D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT + 1 ) , - D3D11_FEATURE_D3D11_OPTIONS1 = ( D3D11_FEATURE_D3D9_SHADOW_SUPPORT + 1 ) , - D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = ( D3D11_FEATURE_D3D11_OPTIONS1 + 1 ) , - D3D11_FEATURE_MARKER_SUPPORT = ( D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT + 1 ) , - 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; - -typedef struct D3D11_FEATURE_DATA_THREADING - { - BOOL DriverConcurrentCreates; - BOOL DriverCommandLists; - } D3D11_FEATURE_DATA_THREADING; - -typedef struct D3D11_FEATURE_DATA_DOUBLES - { - BOOL DoublePrecisionFloatShaderOps; - } D3D11_FEATURE_DATA_DOUBLES; - -typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT - { - DXGI_FORMAT InFormat; - UINT OutFormatSupport; - } D3D11_FEATURE_DATA_FORMAT_SUPPORT; - -typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 - { - DXGI_FORMAT InFormat; - UINT OutFormatSupport2; - } D3D11_FEATURE_DATA_FORMAT_SUPPORT2; - -typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS - { - BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x; - } D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS; - -// ============================================================================= -// In the D3D11_FEATURE_DATA_D3D11_OPTIONS struct below, -// the following groupings of capabilities will always be set identically. -// That is, all the BOOLs in a grouping will be TRUE or FALSE together. -// -// Group: DiscardAPIsSeenByDriver, FlagsForUpdateAndCopySeenByDriver -// -// Group: ClearView, CopyWithOverlap, ConstantBufferPartialUpdate -// ConstantBufferOffsetting, MapNoOverwriteOnDynamicConstantBuffer -// -// Group: MapNoOverwriteOnDynamicBufferSRV, -// MultisampleRTVWithForcedSampleCountOne -// -typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS - { - BOOL OutputMergerLogicOp; - BOOL UAVOnlyRenderingForcedSampleCount; - BOOL DiscardAPIsSeenByDriver; - BOOL FlagsForUpdateAndCopySeenByDriver; - BOOL ClearView; - BOOL CopyWithOverlap; - BOOL ConstantBufferPartialUpdate; - BOOL ConstantBufferOffsetting; - BOOL MapNoOverwriteOnDynamicConstantBuffer; - BOOL MapNoOverwriteOnDynamicBufferSRV; - BOOL MultisampleRTVWithForcedSampleCountOne; - BOOL SAD4ShaderInstructions; - BOOL ExtendedDoublesShaderInstructions; - BOOL ExtendedResourceSharing; - } D3D11_FEATURE_DATA_D3D11_OPTIONS; - -typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO - { - BOOL TileBasedDeferredRenderer; - } D3D11_FEATURE_DATA_ARCHITECTURE_INFO; - -typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS - { - BOOL FullNonPow2TextureSupport; - } D3D11_FEATURE_DATA_D3D9_OPTIONS; - -typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT - { - BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter; - } D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT; - -typedef -enum D3D11_SHADER_MIN_PRECISION_SUPPORT - { - D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1, - D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2 - } D3D11_SHADER_MIN_PRECISION_SUPPORT; - -typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT - { - UINT PixelShaderMinPrecision; - UINT AllOtherShaderStagesMinPrecision; - } D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT; - -typedef -enum D3D11_TILED_RESOURCES_TIER - { - D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0, - D3D11_TILED_RESOURCES_TIER_1 = 1, - D3D11_TILED_RESOURCES_TIER_2 = 2, - D3D11_TILED_RESOURCES_TIER_3 = 3 - } D3D11_TILED_RESOURCES_TIER; - -typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 - { - D3D11_TILED_RESOURCES_TIER TiledResourcesTier; - BOOL MinMaxFiltering; - BOOL ClearViewAlsoSupportsDepthOnlyFormats; - BOOL MapOnDefaultBuffers; - } D3D11_FEATURE_DATA_D3D11_OPTIONS1; - -typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT - { - BOOL SimpleInstancingSupported; - } D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT; - -typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT - { - BOOL Profile; - } D3D11_FEATURE_DATA_MARKER_SUPPORT; - -typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 - { - BOOL FullNonPow2TextureSupported; - BOOL DepthAsTextureWithLessEqualComparisonFilterSupported; - BOOL SimpleInstancingSupported; - BOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported; - } D3D11_FEATURE_DATA_D3D9_OPTIONS1; - -typedef -enum D3D11_CONSERVATIVE_RASTERIZATION_TIER - { - D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0, - D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, - D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, - D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 - } D3D11_CONSERVATIVE_RASTERIZATION_TIER; - -typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 - { - BOOL PSSpecifiedStencilRefSupported; - BOOL TypedUAVLoadAdditionalFormats; - BOOL ROVsSupported; - D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; - D3D11_TILED_RESOURCES_TIER TiledResourcesTier; - BOOL MapOnDefaultTextures; - BOOL StandardSwizzle; - BOOL UnifiedMemoryArchitecture; - } D3D11_FEATURE_DATA_D3D11_OPTIONS2; - -typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 - { - BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer; - } D3D11_FEATURE_DATA_D3D11_OPTIONS3; - -typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT - { - UINT MaxGPUVirtualAddressBitsPerResource; - UINT MaxGPUVirtualAddressBitsPerProcess; - } D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0029_v0_0_s_ifspec; - -#ifndef __ID3D11DeviceContext_INTERFACE_DEFINED__ -#define __ID3D11DeviceContext_INTERFACE_DEFINED__ - -/* interface ID3D11DeviceContext */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DeviceContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c0bfa96c-e089-44fb-8eaf-26f8796190da") - ID3D11DeviceContext : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE VSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSSetShader( - /* [annotation] */ - _In_opt_ ID3D11PixelShader *pPixelShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE PSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSSetShader( - /* [annotation] */ - _In_opt_ ID3D11VertexShader *pVertexShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexed( - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation) = 0; - - virtual void STDMETHODCALLTYPE Draw( - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation) = 0; - - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource, - /* [annotation] */ - _In_ D3D11_MAP MapType, - /* [annotation] */ - _In_ UINT MapFlags, - /* [annotation] */ - _Out_opt_ D3D11_MAPPED_SUBRESOURCE *pMappedResource) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource) = 0; - - virtual void STDMETHODCALLTYPE PSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE IASetInputLayout( - /* [annotation] */ - _In_opt_ ID3D11InputLayout *pInputLayout) = 0; - - virtual void STDMETHODCALLTYPE IASetVertexBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE IASetIndexBuffer( - /* [annotation] */ - _In_opt_ ID3D11Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexedInstanced( - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE DrawInstanced( - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE GSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSSetShader( - /* [annotation] */ - _In_opt_ ID3D11GeometryShader *pShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( - /* [annotation] */ - _In_ D3D11_PRIMITIVE_TOPOLOGY Topology) = 0; - - virtual void STDMETHODCALLTYPE VSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE Begin( - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync) = 0; - - virtual void STDMETHODCALLTYPE End( - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetData( - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync, - /* [annotation] */ - _Out_writes_bytes_opt_( DataSize ) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - /* [annotation] */ - _In_opt_ ID3D11Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue) = 0; - - virtual void STDMETHODCALLTYPE GSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE OMSetRenderTargets( - /* [annotation] */ - _In_range_( 0, D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT ) UINT NumViews, - /* [annotation] */ - _In_reads_opt_(NumViews) ID3D11RenderTargetView *const *ppRenderTargetViews, - /* [annotation] */ - _In_opt_ ID3D11DepthStencilView *pDepthStencilView) = 0; - - virtual void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE OMSetBlendState( - /* [annotation] */ - _In_opt_ ID3D11BlendState *pBlendState, - /* [annotation] */ - _In_opt_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask) = 0; - - virtual void STDMETHODCALLTYPE OMSetDepthStencilState( - /* [annotation] */ - _In_opt_ ID3D11DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef) = 0; - - virtual void STDMETHODCALLTYPE SOSetTargets( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DrawAuto( void) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexedInstancedIndirect( - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs) = 0; - - virtual void STDMETHODCALLTYPE DrawInstancedIndirect( - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs) = 0; - - virtual void STDMETHODCALLTYPE Dispatch( - /* [annotation] */ - _In_ UINT ThreadGroupCountX, - /* [annotation] */ - _In_ UINT ThreadGroupCountY, - /* [annotation] */ - _In_ UINT ThreadGroupCountZ) = 0; - - virtual void STDMETHODCALLTYPE DispatchIndirect( - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs) = 0; - - virtual void STDMETHODCALLTYPE RSSetState( - /* [annotation] */ - _In_opt_ ID3D11RasterizerState *pRasterizerState) = 0; - - virtual void STDMETHODCALLTYPE RSSetViewports( - /* [annotation] */ - _In_range_(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - /* [annotation] */ - _In_reads_opt_(NumViewports) const D3D11_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSSetScissorRects( - /* [annotation] */ - _In_range_(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE CopySubresourceRegion( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CopyResource( - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource) = 0; - - virtual void STDMETHODCALLTYPE UpdateSubresource( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CopyStructureCount( - /* [annotation] */ - _In_ ID3D11Buffer *pDstBuffer, - /* [annotation] */ - _In_ UINT DstAlignedByteOffset, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pSrcView) = 0; - - virtual void STDMETHODCALLTYPE ClearRenderTargetView( - /* [annotation] */ - _In_ ID3D11RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const UINT Values[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const FLOAT Values[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE ClearDepthStencilView( - /* [annotation] */ - _In_ ID3D11DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil) = 0; - - virtual void STDMETHODCALLTYPE GenerateMips( - /* [annotation] */ - _In_ ID3D11ShaderResourceView *pShaderResourceView) = 0; - - virtual void STDMETHODCALLTYPE SetResourceMinLOD( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - FLOAT MinLOD) = 0; - - virtual FLOAT STDMETHODCALLTYPE GetResourceMinLOD( - /* [annotation] */ - _In_ ID3D11Resource *pResource) = 0; - - virtual void STDMETHODCALLTYPE ResolveSubresource( - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ UINT DstSubresource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource, - /* [annotation] */ - _In_ UINT SrcSubresource, - /* [annotation] */ - _In_ DXGI_FORMAT Format) = 0; - - virtual void STDMETHODCALLTYPE ExecuteCommandList( - /* [annotation] */ - _In_ ID3D11CommandList *pCommandList, - BOOL RestoreContextState) = 0; - - virtual void STDMETHODCALLTYPE HSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSSetShader( - /* [annotation] */ - _In_opt_ ID3D11HullShader *pHullShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE HSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSSetShader( - /* [annotation] */ - _In_opt_ ID3D11DomainShader *pDomainShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE DSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSSetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSSetUnorderedAccessViews( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSSetShader( - /* [annotation] */ - _In_opt_ ID3D11ComputeShader *pComputeShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE CSSetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSSetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE PSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE PSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE IAGetInputLayout( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout) = 0; - - virtual void STDMETHODCALLTYPE IAGetVertexBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE IAGetIndexBuffer( - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset) = 0; - - virtual void STDMETHODCALLTYPE GSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE IAGetPrimitiveTopology( - /* [annotation] */ - _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology) = 0; - - virtual void STDMETHODCALLTYPE VSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GetPredication( - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue) = 0; - - virtual void STDMETHODCALLTYPE GSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE OMGetRenderTargets( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE OMGetRenderTargetsAndUnorderedAccessViews( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE OMGetBlendState( - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask) = 0; - - virtual void STDMETHODCALLTYPE OMGetDepthStencilState( - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef) = 0; - - virtual void STDMETHODCALLTYPE SOGetTargets( - /* [annotation] */ - _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets) = 0; - - virtual void STDMETHODCALLTYPE RSGetState( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState) = 0; - - virtual void STDMETHODCALLTYPE RSGetViewports( - /* [annotation] */ - _Inout_ /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *pNumViewports, - /* [annotation] */ - _Out_writes_opt_(*pNumViewports) D3D11_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSGetScissorRects( - /* [annotation] */ - _Inout_ /*_range(0, D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE )*/ UINT *pNumRects, - /* [annotation] */ - _Out_writes_opt_(*pNumRects) D3D11_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE HSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE HSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE DSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSGetShaderResources( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSGetUnorderedAccessViews( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSGetShader( - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances) = 0; - - virtual void STDMETHODCALLTYPE CSGetSamplers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSGetConstantBuffers( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE ClearState( void) = 0; - - virtual void STDMETHODCALLTYPE Flush( void) = 0; - - virtual D3D11_DEVICE_CONTEXT_TYPE STDMETHODCALLTYPE GetType( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetContextFlags( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE FinishCommandList( - BOOL RestoreDeferredContextState, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11CommandList **ppCommandList) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DeviceContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DeviceContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DeviceContext * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11PixelShader *pPixelShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11VertexShader *pVertexShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11GeometryShader *pShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ D3D11_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - void ( STDMETHODCALLTYPE *End )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync, - /* [annotation] */ - _Out_writes_bytes_opt_( DataSize ) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11BlendState *pBlendState, - /* [annotation] */ - _In_opt_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This); - - void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *DrawInstancedIndirect )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ UINT ThreadGroupCountX, - /* [annotation] */ - _In_ UINT ThreadGroupCountY, - /* [annotation] */ - _In_ UINT ThreadGroupCountZ); - - void ( STDMETHODCALLTYPE *DispatchIndirect )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Buffer *pDstBuffer, - /* [annotation] */ - _In_ UINT DstAlignedByteOffset, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pSrcView); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const UINT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const FLOAT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *SetResourceMinLOD )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - FLOAT MinLOD); - - FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_ ID3D11CommandList *pCommandList, - BOOL RestoreContextState); - - void ( STDMETHODCALLTYPE *HSSetShaderResources )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11HullShader *pHullShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *HSSetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11DomainShader *pDomainShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DSSetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_opt_ ID3D11ComputeShader *pComputeShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *CSSetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D11DeviceContext * This, - /* [annotation] */ - _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *HSGetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *DSGetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *CSGetSamplers )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * 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 )( - ID3D11DeviceContext * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D11DeviceContext * This); - - D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D11DeviceContext * This); - - UINT ( STDMETHODCALLTYPE *GetContextFlags )( - ID3D11DeviceContext * This); - - HRESULT ( STDMETHODCALLTYPE *FinishCommandList )( - ID3D11DeviceContext * This, - BOOL RestoreDeferredContextState, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11CommandList **ppCommandList); - - END_INTERFACE - } ID3D11DeviceContextVtbl; - - interface ID3D11DeviceContext - { - CONST_VTBL struct ID3D11DeviceContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DeviceContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DeviceContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DeviceContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DeviceContext_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DeviceContext_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DeviceContext_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DeviceContext_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DeviceContext_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D11DeviceContext_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D11DeviceContext_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) \ - ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) ) - -#define ID3D11DeviceContext_Unmap(This,pResource,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) ) - -#define ID3D11DeviceContext_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D11DeviceContext_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D11DeviceContext_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_Begin(This,pAsync) \ - ( (This)->lpVtbl -> Begin(This,pAsync) ) - -#define ID3D11DeviceContext_End(This,pAsync) \ - ( (This)->lpVtbl -> End(This,pAsync) ) - -#define ID3D11DeviceContext_GetData(This,pAsync,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) ) - -#define ID3D11DeviceContext_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D11DeviceContext_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D11DeviceContext_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D11DeviceContext_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D11DeviceContext_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D11DeviceContext_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D11DeviceContext_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D11DeviceContext_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D11DeviceContext_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D11DeviceContext_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D11DeviceContext_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D11DeviceContext_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D11DeviceContext_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D11DeviceContext_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) \ - ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) ) - -#define ID3D11DeviceContext_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D11DeviceContext_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D11DeviceContext_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D11DeviceContext_SetResourceMinLOD(This,pResource,MinLOD) \ - ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) ) - -#define ID3D11DeviceContext_GetResourceMinLOD(This,pResource) \ - ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) ) - -#define ID3D11DeviceContext_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D11DeviceContext_ExecuteCommandList(This,pCommandList,RestoreContextState) \ - ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) ) - -#define ID3D11DeviceContext_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D11DeviceContext_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D11DeviceContext_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D11DeviceContext_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D11DeviceContext_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D11DeviceContext_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D11DeviceContext_SOGetTargets(This,NumBuffers,ppSOTargets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) ) - -#define ID3D11DeviceContext_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D11DeviceContext_RSGetViewports(This,pNumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) ) - -#define ID3D11DeviceContext_RSGetScissorRects(This,pNumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) ) - -#define ID3D11DeviceContext_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D11DeviceContext_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D11DeviceContext_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#define ID3D11DeviceContext_GetContextFlags(This) \ - ( (This)->lpVtbl -> GetContextFlags(This) ) - -#define ID3D11DeviceContext_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) \ - ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0030 */ -/* [local] */ - -#if !defined( D3D11_VIDEO_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_VIDEO_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3D11_VIDEO_DEFAULT D3D11_VIDEO_DEFAULT; -extern "C"{ -#endif - - -#if !defined(APP_DEPRECATED_HRESULT) && !defined(APP_DEPRECATED_HRESULT_TYPEDEF) -#define APP_DEPRECATED_HRESULT_TYPEDEF -typedef HRESULT APP_DEPRECATED_HRESULT; - -#endif -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_MOCOMP, 0xe6a9f44b, 0x61b0, 0x4563,0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_IDCT, 0xbf22ad00, 0x03ea, 0x4690,0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_VLD, 0xee27417f, 0x5e28, 0x4e65,0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG1_VLD, 0x6f3ec719, 0x3735, 0x42cc,0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2and1_VLD, 0x86695f12, 0x340e, 0x4f04,0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT, 0x1b81be64, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT, 0x1b81be65, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT, 0x1b81be66, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT, 0x1b81be67, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT, 0x1b81be68, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT, 0x1b81be69, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT, 0xd5f04ff9, 0x3418,0x45d8,0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT, 0xd79be8da, 0x0cf1,0x4c81,0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT, 0xf9aaccbb, 0xc2b6,0x4cfc,0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52); -DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT, 0x705b9d82, 0x76cf,0x49d6,0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c); -DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC, 0x1b81be80, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP, 0x1b81be81, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC, 0x1b81be90, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP, 0x1b81be91, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT, 0x1b81be94, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC, 0x1b81beA0, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP, 0x1b81beA1, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT, 0x1b81beA2, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD, 0x1b81beA3, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7,0x11d3,0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19); -DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d,0x4eda,0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e); -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); -typedef struct D3D11_VIDEO_DECODER_DESC - { - GUID Guid; - UINT SampleWidth; - UINT SampleHeight; - DXGI_FORMAT OutputFormat; - } D3D11_VIDEO_DECODER_DESC; - -typedef struct D3D11_VIDEO_DECODER_CONFIG - { - GUID guidConfigBitstreamEncryption; - GUID guidConfigMBcontrolEncryption; - GUID guidConfigResidDiffEncryption; - UINT ConfigBitstreamRaw; - UINT ConfigMBcontrolRasterOrder; - UINT ConfigResidDiffHost; - UINT ConfigSpatialResid8; - UINT ConfigResid8Subtraction; - UINT ConfigSpatialHost8or9Clipping; - UINT ConfigSpatialResidInterleaved; - UINT ConfigIntraResidUnsigned; - UINT ConfigResidDiffAccelerator; - UINT ConfigHostInverseScan; - UINT ConfigSpecificIDCT; - UINT Config4GroupedCoefs; - USHORT ConfigMinRenderTargetBuffCount; - USHORT ConfigDecoderSpecific; - } D3D11_VIDEO_DECODER_CONFIG; - -typedef -enum D3D11_VIDEO_DECODER_BUFFER_TYPE - { - D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, - D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, - D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, - D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, - D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, - D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, - D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, - D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, - D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 - } D3D11_VIDEO_DECODER_BUFFER_TYPE; - -typedef struct _D3D11_AES_CTR_IV - { - UINT64 IV; - UINT64 Count; - } D3D11_AES_CTR_IV; - -typedef struct D3D11_ENCRYPTED_BLOCK_INFO - { - UINT NumEncryptedBytesAtBeginning; - UINT NumBytesInSkipPattern; - UINT NumBytesInEncryptPattern; - } D3D11_ENCRYPTED_BLOCK_INFO; - -typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC - { - D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; - UINT BufferIndex; - UINT DataOffset; - UINT DataSize; - UINT FirstMBaddress; - UINT NumMBsInBuffer; - UINT Width; - UINT Height; - UINT Stride; - UINT ReservedBits; - /* [annotation] */ - _Field_size_opt_(IVSize) void *pIV; - UINT IVSize; - BOOL PartialEncryption; - D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; - } D3D11_VIDEO_DECODER_BUFFER_DESC; - -typedef struct D3D11_VIDEO_DECODER_EXTENSION - { - UINT Function; - /* [annotation] */ - _Field_size_(PrivateInputDataSize) void *pPrivateInputData; - UINT PrivateInputDataSize; - /* [annotation] */ - _Field_size_(PrivateOutputDataSize) void *pPrivateOutputData; - UINT PrivateOutputDataSize; - UINT ResourceCount; - /* [annotation] */ - _Field_size_opt_(ResourceCount) ID3D11Resource **ppResourceList; - } D3D11_VIDEO_DECODER_EXTENSION; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0030_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0030_v0_0_s_ifspec; - -#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ -#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ - -/* interface ID3D11VideoDecoder */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoDecoder; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3C9C5B51-995D-48d1-9B8D-FA5CAEDED65C") - ID3D11VideoDecoder : public ID3D11DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCreationParameters( - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_DESC *pVideoDesc, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDriverHandle( - /* [annotation] */ - _Out_ HANDLE *pDriverHandle) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoDecoderVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoDecoder * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoDecoder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoDecoder * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetCreationParameters )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_DESC *pVideoDesc, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig); - - HRESULT ( STDMETHODCALLTYPE *GetDriverHandle )( - ID3D11VideoDecoder * This, - /* [annotation] */ - _Out_ HANDLE *pDriverHandle); - - END_INTERFACE - } ID3D11VideoDecoderVtbl; - - interface ID3D11VideoDecoder - { - CONST_VTBL struct ID3D11VideoDecoderVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoDecoder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoDecoder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoDecoder_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoDecoder_GetCreationParameters(This,pVideoDesc,pConfig) \ - ( (This)->lpVtbl -> GetCreationParameters(This,pVideoDesc,pConfig) ) - -#define ID3D11VideoDecoder_GetDriverHandle(This,pDriverHandle) \ - ( (This)->lpVtbl -> GetDriverHandle(This,pDriverHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0031 */ -/* [local] */ - -typedef -enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT - { - D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x1, - D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x2 - } D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT; - -typedef -enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS - { - D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1, - D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2, - D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4, - D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8, - D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10 - } D3D11_VIDEO_PROCESSOR_DEVICE_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS - { - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20, - D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40, - 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; - -typedef -enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS - { - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40, - D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80 - } D3D11_VIDEO_PROCESSOR_FILTER_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS - { - D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1, - D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2, - D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4, - D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8 - } D3D11_VIDEO_PROCESSOR_FORMAT_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS - { - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40, - D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80 - } D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS - { - D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1, - D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2, - D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4, - D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8, - D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10 - } D3D11_VIDEO_PROCESSOR_STEREO_CAPS; - -typedef struct D3D11_VIDEO_PROCESSOR_CAPS - { - UINT DeviceCaps; - UINT FeatureCaps; - UINT FilterCaps; - UINT InputFormatCaps; - UINT AutoStreamCaps; - UINT StereoCaps; - UINT RateConversionCapsCount; - UINT MaxInputStreams; - UINT MaxStreamStates; - } D3D11_VIDEO_PROCESSOR_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS - { - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1, - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2, - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4, - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8, - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10, - D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20 - } D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS - { - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32 = 0x1, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22 = 0x2, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224 = 0x4, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332 = 0x8, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322 = 0x10, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55 = 0x20, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64 = 0x40, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87 = 0x80, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223 = 0x100, - D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER = 0x80000000 - } D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS; - -typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS - { - UINT PastFrames; - UINT FutureFrames; - UINT ProcessorCaps; - UINT ITelecineCaps; - UINT CustomRateCount; - } D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS; - -typedef -enum D3D11_CONTENT_PROTECTION_CAPS - { - D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE = 0x1, - D3D11_CONTENT_PROTECTION_CAPS_HARDWARE = 0x2, - D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON = 0x4, - D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION = 0x8, - D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY = 0x10, - D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY = 0x20, - D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK = 0x40, - D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY = 0x80, - D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV = 0x100, - D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY = 0x200, - D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT = 0x400, - D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED = 0x800, - D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE = 0x1000, - D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN = 0x2000, - D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION = 0x4000 - } D3D11_CONTENT_PROTECTION_CAPS; - -DEFINE_GUID(D3D11_CRYPTO_TYPE_AES128_CTR, 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0xb, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f ); -DEFINE_GUID(D3D11_DECODER_ENCRYPTION_HW_CENC, 0x89d6ac4f, 0x9f2, 0x4229, 0xb2, 0xcd, 0x37, 0x74, 0xa, 0x6d, 0xfd, 0x81); -DEFINE_GUID(D3D11_KEY_EXCHANGE_HW_PROTECTION, 0xb1170d8a, 0x628d, 0x4da3, 0xad, 0x3b, 0x82, 0xdd, 0xb0, 0x8b, 0x49, 0x70); -typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS - { - UINT Caps; - UINT KeyExchangeTypeCount; - UINT BlockAlignmentSize; - ULONGLONG ProtectedMemorySize; - } D3D11_VIDEO_CONTENT_PROTECTION_CAPS; - -typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE - { - DXGI_RATIONAL CustomRate; - UINT OutputFrames; - BOOL InputInterlaced; - UINT InputFramesOrFields; - } D3D11_VIDEO_PROCESSOR_CUSTOM_RATE; - -typedef -enum D3D11_VIDEO_PROCESSOR_FILTER - { - D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0, - D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1, - D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2, - D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3, - D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4, - D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5, - D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6, - D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7 - } D3D11_VIDEO_PROCESSOR_FILTER; - -typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE - { - int Minimum; - int Maximum; - int Default; - float Multiplier; - } D3D11_VIDEO_PROCESSOR_FILTER_RANGE; - -typedef -enum D3D11_VIDEO_FRAME_FORMAT - { - D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, - D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, - D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2 - } D3D11_VIDEO_FRAME_FORMAT; - -typedef -enum D3D11_VIDEO_USAGE - { - D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0, - D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1, - D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2 - } D3D11_VIDEO_USAGE; - -typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC - { - D3D11_VIDEO_FRAME_FORMAT InputFrameFormat; - DXGI_RATIONAL InputFrameRate; - UINT InputWidth; - UINT InputHeight; - DXGI_RATIONAL OutputFrameRate; - UINT OutputWidth; - UINT OutputHeight; - D3D11_VIDEO_USAGE Usage; - } D3D11_VIDEO_PROCESSOR_CONTENT_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0031_v0_0_s_ifspec; - -#ifndef __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__ -#define __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__ - -/* interface ID3D11VideoProcessorEnumerator */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoProcessorEnumerator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("31627037-53AB-4200-9061-05FAA9AB45F9") - ID3D11VideoProcessorEnumerator : public ID3D11DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorContentDesc( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormat( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CAPS *pCaps) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRateConversionCaps( - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRate( - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _In_ UINT CustomRateIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange( - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoProcessorEnumeratorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoProcessorEnumerator * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoProcessorEnumerator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoProcessorEnumerator * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorContentDesc )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoProcessorFormat )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFlags); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCaps )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorRateConversionCaps )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCustomRate )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _In_ UINT CustomRateIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorFilterRange )( - ID3D11VideoProcessorEnumerator * This, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange); - - END_INTERFACE - } ID3D11VideoProcessorEnumeratorVtbl; - - interface ID3D11VideoProcessorEnumerator - { - CONST_VTBL struct ID3D11VideoProcessorEnumeratorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoProcessorEnumerator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoProcessorEnumerator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoProcessorEnumerator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoProcessorEnumerator_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoProcessorEnumerator_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoProcessorEnumerator_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoProcessorEnumerator_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoProcessorEnumerator_GetVideoProcessorContentDesc(This,pContentDesc) \ - ( (This)->lpVtbl -> GetVideoProcessorContentDesc(This,pContentDesc) ) - -#define ID3D11VideoProcessorEnumerator_CheckVideoProcessorFormat(This,Format,pFlags) \ - ( (This)->lpVtbl -> CheckVideoProcessorFormat(This,Format,pFlags) ) - -#define ID3D11VideoProcessorEnumerator_GetVideoProcessorCaps(This,pCaps) \ - ( (This)->lpVtbl -> GetVideoProcessorCaps(This,pCaps) ) - -#define ID3D11VideoProcessorEnumerator_GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) \ - ( (This)->lpVtbl -> GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) ) - -#define ID3D11VideoProcessorEnumerator_GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) \ - ( (This)->lpVtbl -> GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) ) - -#define ID3D11VideoProcessorEnumerator_GetVideoProcessorFilterRange(This,Filter,pRange) \ - ( (This)->lpVtbl -> GetVideoProcessorFilterRange(This,Filter,pRange) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoProcessorEnumerator_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0032 */ -/* [local] */ - -typedef struct D3D11_VIDEO_COLOR_RGBA - { - float R; - float G; - float B; - float A; - } D3D11_VIDEO_COLOR_RGBA; - -typedef struct D3D11_VIDEO_COLOR_YCbCrA - { - float Y; - float Cb; - float Cr; - float A; - } D3D11_VIDEO_COLOR_YCbCrA; - -typedef struct D3D11_VIDEO_COLOR - { - union - { - D3D11_VIDEO_COLOR_YCbCrA YCbCr; - D3D11_VIDEO_COLOR_RGBA RGBA; - } ; - } D3D11_VIDEO_COLOR; - -typedef -enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE - { - D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED = 0, - D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235 = 1, - D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255 = 2 - } D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE; - -typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE - { - UINT Usage : 1; - UINT RGB_Range : 1; - UINT YCbCr_Matrix : 1; - UINT YCbCr_xvYCC : 1; - UINT Nominal_Range : 2; - UINT Reserved : 26; - } D3D11_VIDEO_PROCESSOR_COLOR_SPACE; - -typedef -enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE - { - D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0, - D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1, - D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2, - D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3 - } D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE; - -typedef -enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE - { - D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0, - D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1, - D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2 - } D3D11_VIDEO_PROCESSOR_OUTPUT_RATE; - -typedef -enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT - { - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6, - D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7 - } D3D11_VIDEO_PROCESSOR_STEREO_FORMAT; - -typedef -enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE - { - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0, - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1, - D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2 - } D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE; - -typedef -enum D3D11_VIDEO_PROCESSOR_ROTATION - { - D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0, - D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1, - D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2, - D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3 - } D3D11_VIDEO_PROCESSOR_ROTATION; - -typedef struct D3D11_VIDEO_PROCESSOR_STREAM - { - BOOL Enable; - UINT OutputIndex; - UINT InputFrameOrField; - UINT PastFrames; - UINT FutureFrames; - /* [annotation] */ - _Field_size_(PastFrames) ID3D11VideoProcessorInputView **ppPastSurfaces; - ID3D11VideoProcessorInputView *pInputSurface; - /* [annotation] */ - _Field_size_(FutureFrames) ID3D11VideoProcessorInputView **ppFutureSurfaces; - /* [annotation] */ - _Field_size_opt_(PastFrames) ID3D11VideoProcessorInputView **ppPastSurfacesRight; - ID3D11VideoProcessorInputView *pInputSurfaceRight; - /* [annotation] */ - _Field_size_(FutureFrames) ID3D11VideoProcessorInputView **ppFutureSurfacesRight; - } D3D11_VIDEO_PROCESSOR_STREAM; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0032_v0_0_s_ifspec; - -#ifndef __ID3D11VideoProcessor_INTERFACE_DEFINED__ -#define __ID3D11VideoProcessor_INTERFACE_DEFINED__ - -/* interface ID3D11VideoProcessor */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoProcessor; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1D7B0652-185F-41c6-85CE-0C5BE3D4AE6C") - ID3D11VideoProcessor : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetContentDesc( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc) = 0; - - virtual void STDMETHODCALLTYPE GetRateConversionCaps( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoProcessorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoProcessor * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoProcessor * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoProcessor * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetContentDesc )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetRateConversionCaps )( - ID3D11VideoProcessor * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps); - - END_INTERFACE - } ID3D11VideoProcessorVtbl; - - interface ID3D11VideoProcessor - { - CONST_VTBL struct ID3D11VideoProcessorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoProcessor_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoProcessor_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoProcessor_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoProcessor_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoProcessor_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoProcessor_GetContentDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetContentDesc(This,pDesc) ) - -#define ID3D11VideoProcessor_GetRateConversionCaps(This,pCaps) \ - ( (This)->lpVtbl -> GetRateConversionCaps(This,pCaps) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoProcessor_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0033 */ -/* [local] */ - -typedef struct D3D11_OMAC - { - BYTE Omac[ 16 ]; - } D3D11_OMAC; - -typedef -enum D3D11_AUTHENTICATED_CHANNEL_TYPE - { - D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, - D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, - D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 - } D3D11_AUTHENTICATED_CHANNEL_TYPE; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0033_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0033_v0_0_s_ifspec; - -#ifndef __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__ -#define __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__ - -/* interface ID3D11AuthenticatedChannel */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11AuthenticatedChannel; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3015A308-DCBD-47aa-A747-192486D14D4A") - ID3D11AuthenticatedChannel : public ID3D11DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCertificateSize( - /* [annotation] */ - _Out_ UINT *pCertificateSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCertificate( - /* [annotation] */ - _In_ UINT CertificateSize, - /* [annotation] */ - _Out_writes_bytes_(CertificateSize) BYTE *pCertificate) = 0; - - virtual void STDMETHODCALLTYPE GetChannelHandle( - /* [annotation] */ - _Out_ HANDLE *pChannelHandle) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11AuthenticatedChannelVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11AuthenticatedChannel * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11AuthenticatedChannel * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11AuthenticatedChannel * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetCertificateSize )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _Out_ UINT *pCertificateSize); - - HRESULT ( STDMETHODCALLTYPE *GetCertificate )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _In_ UINT CertificateSize, - /* [annotation] */ - _Out_writes_bytes_(CertificateSize) BYTE *pCertificate); - - void ( STDMETHODCALLTYPE *GetChannelHandle )( - ID3D11AuthenticatedChannel * This, - /* [annotation] */ - _Out_ HANDLE *pChannelHandle); - - END_INTERFACE - } ID3D11AuthenticatedChannelVtbl; - - interface ID3D11AuthenticatedChannel - { - CONST_VTBL struct ID3D11AuthenticatedChannelVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11AuthenticatedChannel_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11AuthenticatedChannel_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11AuthenticatedChannel_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11AuthenticatedChannel_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11AuthenticatedChannel_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11AuthenticatedChannel_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11AuthenticatedChannel_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11AuthenticatedChannel_GetCertificateSize(This,pCertificateSize) \ - ( (This)->lpVtbl -> GetCertificateSize(This,pCertificateSize) ) - -#define ID3D11AuthenticatedChannel_GetCertificate(This,CertificateSize,pCertificate) \ - ( (This)->lpVtbl -> GetCertificate(This,CertificateSize,pCertificate) ) - -#define ID3D11AuthenticatedChannel_GetChannelHandle(This,pChannelHandle) \ - ( (This)->lpVtbl -> GetChannelHandle(This,pChannelHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11AuthenticatedChannel_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0034 */ -/* [local] */ - -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_PROTECTION, 0xa84eb584, 0xc495, 0x48aa, 0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x5 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE, 0xbc1b18a5, 0xb1fb, 0x42ab, 0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE, 0xec1c539d, 0x8cff, 0x4e2a, 0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION, 0x2634499e, 0xd018, 0x4d74, 0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT, 0xdb207b3, 0x9450, 0x46a6, 0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS, 0x649bbadb, 0xf0f4, 0x4639, 0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT, 0x12f0bd6, 0xe662, 0x4474, 0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT, 0x2c042b5e, 0x8c07, 0x46d5, 0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_OUTPUT_ID, 0x839ddca3, 0x9b4e, 0x41e4, 0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ATTRIBUTES, 0x6214d9d2, 0x432c, 0x4abb, 0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID_COUNT, 0xb30f7066, 0x203c, 0x4b07, 0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_ENCRYPTION_WHEN_ACCESSIBLE_GUID, 0xf83a5958, 0xe986, 0x4bda, 0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x1, 0xb7 ); -DEFINE_GUID( D3D11_AUTHENTICATED_QUERY_CURRENT_ENCRYPTION_WHEN_ACCESSIBLE, 0xec1791c7, 0xdad3, 0x4f15, 0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0 ); -DEFINE_GUID( D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE, 0x6114bdb, 0x3523, 0x470a, 0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0 ); -DEFINE_GUID( D3D11_AUTHENTICATED_CONFIGURE_PROTECTION, 0x50455658, 0x3f47, 0x4362, 0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29 ); -DEFINE_GUID( D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION, 0x6346cc54, 0x2cfc, 0x4ad4, 0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x0 ); -DEFINE_GUID( D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE, 0x772d047, 0x1b40, 0x48e8, 0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x1 ); -DEFINE_GUID( D3D11_AUTHENTICATED_CONFIGURE_ENCRYPTION_WHEN_ACCESSIBLE, 0x41fff286, 0x6ae0, 0x4d43, 0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a ); -typedef struct D3D11_AUTHENTICATED_QUERY_INPUT - { - GUID QueryType; - HANDLE hChannel; - UINT SequenceNumber; - } D3D11_AUTHENTICATED_QUERY_INPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT - { - D3D11_OMAC omac; - GUID QueryType; - HANDLE hChannel; - UINT SequenceNumber; - HRESULT ReturnCode; - } D3D11_AUTHENTICATED_QUERY_OUTPUT; - -typedef union D3D11_AUTHENTICATED_PROTECTION_FLAGS - { - struct __MIDL___MIDL_itf_d3d11_0000_0034_0001 - { - UINT ProtectionEnabled : 1; - UINT OverlayOrFullscreenRequired : 1; - UINT Reserved : 30; - } Flags; - UINT Value; - } D3D11_AUTHENTICATED_PROTECTION_FLAGS; - -typedef struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags; - } D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType; - } D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - HANDLE DeviceHandle; - } D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT - { - D3D11_AUTHENTICATED_QUERY_INPUT Input; - HANDLE DecoderHandle; - } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - HANDLE DecoderHandle; - HANDLE CryptoSessionHandle; - HANDLE DeviceHandle; - } D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - UINT RestrictedSharedResourceProcessCount; - } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT - { - D3D11_AUTHENTICATED_QUERY_INPUT Input; - UINT ProcessIndex; - } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT; - -typedef -enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE - { - D3D11_PROCESSIDTYPE_UNKNOWN = 0, - D3D11_PROCESSIDTYPE_DWM = 1, - D3D11_PROCESSIDTYPE_HANDLE = 2 - } D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE; - -typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - UINT ProcessIndex; - D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier; - HANDLE ProcessHandle; - } D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - UINT UnrestrictedProtectedSharedResourceCount; - } D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT - { - D3D11_AUTHENTICATED_QUERY_INPUT Input; - HANDLE DeviceHandle; - HANDLE CryptoSessionHandle; - } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - HANDLE DeviceHandle; - HANDLE CryptoSessionHandle; - UINT OutputIDCount; - } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT - { - D3D11_AUTHENTICATED_QUERY_INPUT Input; - HANDLE DeviceHandle; - HANDLE CryptoSessionHandle; - UINT OutputIDIndex; - } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - HANDLE DeviceHandle; - HANDLE CryptoSessionHandle; - UINT OutputIDIndex; - UINT64 OutputID; - } D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT; - -typedef -enum D3D11_BUS_TYPE - { - D3D11_BUS_TYPE_OTHER = 0, - D3D11_BUS_TYPE_PCI = 0x1, - D3D11_BUS_TYPE_PCIX = 0x2, - D3D11_BUS_TYPE_PCIEXPRESS = 0x3, - D3D11_BUS_TYPE_AGP = 0x4, - D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x10000, - D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x20000, - D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x30000, - D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x40000, - D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x50000, - D3D11_BUS_IMPL_MODIFIER_NON_STANDARD = 0x80000000 - } D3D11_BUS_TYPE; - -typedef struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - D3D11_BUS_TYPE BusType; - BOOL AccessibleInContiguousBlocks; - BOOL AccessibleInNonContiguousBlocks; - } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - UINT EncryptionGuidCount; - } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT - { - D3D11_AUTHENTICATED_QUERY_INPUT Input; - UINT EncryptionGuidIndex; - } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - UINT EncryptionGuidIndex; - GUID EncryptionGuid; - } D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT - { - D3D11_AUTHENTICATED_QUERY_OUTPUT Output; - GUID EncryptionGuid; - } D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_INPUT - { - D3D11_OMAC omac; - GUID ConfigureType; - HANDLE hChannel; - UINT SequenceNumber; - } D3D11_AUTHENTICATED_CONFIGURE_INPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT - { - D3D11_OMAC omac; - GUID ConfigureType; - HANDLE hChannel; - UINT SequenceNumber; - HRESULT ReturnCode; - } D3D11_AUTHENTICATED_CONFIGURE_OUTPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT - { - D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; - UINT StartSequenceQuery; - UINT StartSequenceConfigure; - } D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT - { - D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; - D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections; - } D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT - { - D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; - HANDLE DecoderHandle; - HANDLE CryptoSessionHandle; - HANDLE DeviceHandle; - } D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT - { - D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; - D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType; - HANDLE ProcessHandle; - BOOL AllowAccess; - } D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT; - -typedef struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT - { - D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters; - GUID EncryptionGuid; - } D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT; - -DEFINE_GUID(D3D11_KEY_EXCHANGE_RSAES_OAEP, 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0034_v0_0_s_ifspec; - -#ifndef __ID3D11CryptoSession_INTERFACE_DEFINED__ -#define __ID3D11CryptoSession_INTERFACE_DEFINED__ - -/* interface ID3D11CryptoSession */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11CryptoSession; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9B32F9AD-BDCC-40a6-A39D-D5C865845720") - ID3D11CryptoSession : public ID3D11DeviceChild - { - public: - virtual void STDMETHODCALLTYPE GetCryptoType( - /* [annotation] */ - _Out_ GUID *pCryptoType) = 0; - - virtual void STDMETHODCALLTYPE GetDecoderProfile( - /* [annotation] */ - _Out_ GUID *pDecoderProfile) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCertificateSize( - /* [annotation] */ - _Out_ UINT *pCertificateSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCertificate( - /* [annotation] */ - _In_ UINT CertificateSize, - /* [annotation] */ - _Out_writes_bytes_(CertificateSize) BYTE *pCertificate) = 0; - - virtual void STDMETHODCALLTYPE GetCryptoSessionHandle( - /* [annotation] */ - _Out_ HANDLE *pCryptoSessionHandle) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11CryptoSessionVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11CryptoSession * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11CryptoSession * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11CryptoSession * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11CryptoSession * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11CryptoSession * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11CryptoSession * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11CryptoSession * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetCryptoType )( - ID3D11CryptoSession * This, - /* [annotation] */ - _Out_ GUID *pCryptoType); - - void ( STDMETHODCALLTYPE *GetDecoderProfile )( - ID3D11CryptoSession * This, - /* [annotation] */ - _Out_ GUID *pDecoderProfile); - - HRESULT ( STDMETHODCALLTYPE *GetCertificateSize )( - ID3D11CryptoSession * This, - /* [annotation] */ - _Out_ UINT *pCertificateSize); - - HRESULT ( STDMETHODCALLTYPE *GetCertificate )( - ID3D11CryptoSession * This, - /* [annotation] */ - _In_ UINT CertificateSize, - /* [annotation] */ - _Out_writes_bytes_(CertificateSize) BYTE *pCertificate); - - void ( STDMETHODCALLTYPE *GetCryptoSessionHandle )( - ID3D11CryptoSession * This, - /* [annotation] */ - _Out_ HANDLE *pCryptoSessionHandle); - - END_INTERFACE - } ID3D11CryptoSessionVtbl; - - interface ID3D11CryptoSession - { - CONST_VTBL struct ID3D11CryptoSessionVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11CryptoSession_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11CryptoSession_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11CryptoSession_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11CryptoSession_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11CryptoSession_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11CryptoSession_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11CryptoSession_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11CryptoSession_GetCryptoType(This,pCryptoType) \ - ( (This)->lpVtbl -> GetCryptoType(This,pCryptoType) ) - -#define ID3D11CryptoSession_GetDecoderProfile(This,pDecoderProfile) \ - ( (This)->lpVtbl -> GetDecoderProfile(This,pDecoderProfile) ) - -#define ID3D11CryptoSession_GetCertificateSize(This,pCertificateSize) \ - ( (This)->lpVtbl -> GetCertificateSize(This,pCertificateSize) ) - -#define ID3D11CryptoSession_GetCertificate(This,CertificateSize,pCertificate) \ - ( (This)->lpVtbl -> GetCertificate(This,CertificateSize,pCertificate) ) - -#define ID3D11CryptoSession_GetCryptoSessionHandle(This,pCryptoSessionHandle) \ - ( (This)->lpVtbl -> GetCryptoSessionHandle(This,pCryptoSessionHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11CryptoSession_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0035 */ -/* [local] */ - -typedef -enum D3D11_VDOV_DIMENSION - { - D3D11_VDOV_DIMENSION_UNKNOWN = 0, - D3D11_VDOV_DIMENSION_TEXTURE2D = 1 - } D3D11_VDOV_DIMENSION; - -typedef struct D3D11_TEX2D_VDOV - { - UINT ArraySlice; - } D3D11_TEX2D_VDOV; - -typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC - { - GUID DecodeProfile; - D3D11_VDOV_DIMENSION ViewDimension; - union - { - D3D11_TEX2D_VDOV Texture2D; - } ; - } D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0035_v0_0_s_ifspec; - -#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ -#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ - -/* interface ID3D11VideoDecoderOutputView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoDecoderOutputView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C2931AEA-2A85-4f20-860F-FBA1FD256E18") - ID3D11VideoDecoderOutputView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoDecoderOutputViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoDecoderOutputView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoDecoderOutputView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoDecoderOutputView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11VideoDecoderOutputView * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11VideoDecoderOutputViewVtbl; - - interface ID3D11VideoDecoderOutputView - { - CONST_VTBL struct ID3D11VideoDecoderOutputViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoDecoderOutputView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoDecoderOutputView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0036 */ -/* [local] */ - -typedef -enum D3D11_VPIV_DIMENSION - { - D3D11_VPIV_DIMENSION_UNKNOWN = 0, - D3D11_VPIV_DIMENSION_TEXTURE2D = 1 - } D3D11_VPIV_DIMENSION; - -typedef struct D3D11_TEX2D_VPIV - { - UINT MipSlice; - UINT ArraySlice; - } D3D11_TEX2D_VPIV; - -typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC - { - UINT FourCC; - D3D11_VPIV_DIMENSION ViewDimension; - union - { - D3D11_TEX2D_VPIV Texture2D; - } ; - } D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0036_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0036_v0_0_s_ifspec; - -#ifndef __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__ -#define __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__ - -/* interface ID3D11VideoProcessorInputView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoProcessorInputView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("11EC5A5F-51DC-4945-AB34-6E8C21300EA5") - ID3D11VideoProcessorInputView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoProcessorInputViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoProcessorInputView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoProcessorInputView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoProcessorInputView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11VideoProcessorInputView * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11VideoProcessorInputViewVtbl; - - interface ID3D11VideoProcessorInputView - { - CONST_VTBL struct ID3D11VideoProcessorInputViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoProcessorInputView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoProcessorInputView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoProcessorInputView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoProcessorInputView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoProcessorInputView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoProcessorInputView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoProcessorInputView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoProcessorInputView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11VideoProcessorInputView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoProcessorInputView_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0037 */ -/* [local] */ - -typedef -enum D3D11_VPOV_DIMENSION - { - D3D11_VPOV_DIMENSION_UNKNOWN = 0, - D3D11_VPOV_DIMENSION_TEXTURE2D = 1, - D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2 - } D3D11_VPOV_DIMENSION; - -typedef struct D3D11_TEX2D_VPOV - { - UINT MipSlice; - } D3D11_TEX2D_VPOV; - -typedef struct D3D11_TEX2D_ARRAY_VPOV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D11_TEX2D_ARRAY_VPOV; - -typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC - { - D3D11_VPOV_DIMENSION ViewDimension; - union - { - D3D11_TEX2D_VPOV Texture2D; - D3D11_TEX2D_ARRAY_VPOV Texture2DArray; - } ; - } D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0037_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0037_v0_0_s_ifspec; - -#ifndef __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__ -#define __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__ - -/* interface ID3D11VideoProcessorOutputView */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoProcessorOutputView; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A048285E-25A9-4527-BD93-D68B68C44254") - ID3D11VideoProcessorOutputView : public ID3D11View - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoProcessorOutputViewVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoProcessorOutputView * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoProcessorOutputView * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoProcessorOutputView * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11VideoProcessorOutputView * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc); - - END_INTERFACE - } ID3D11VideoProcessorOutputViewVtbl; - - interface ID3D11VideoProcessorOutputView - { - CONST_VTBL struct ID3D11VideoProcessorOutputViewVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoProcessorOutputView_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoProcessorOutputView_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoProcessorOutputView_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoProcessorOutputView_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoProcessorOutputView_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoProcessorOutputView_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoProcessorOutputView_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoProcessorOutputView_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11VideoProcessorOutputView_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoProcessorOutputView_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ -#define __ID3D11VideoContext_INTERFACE_DEFINED__ - -/* interface ID3D11VideoContext */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoContext; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("61F21C45-3C0E-4a74-9CEA-67100D9AD5E4") - ID3D11VideoContext : public ID3D11DeviceChild - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - D3D11_VIDEO_DECODER_BUFFER_TYPE Type, - /* [annotation] */ - _Out_ UINT *pBufferSize, - /* [annotation] */ - _Outptr_result_bytebuffer_(*pBufferSize) void **ppBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ D3D11_VIDEO_DECODER_BUFFER_TYPE Type) = 0; - - virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ ID3D11VideoDecoderOutputView *pView, - UINT ContentKeySize, - /* [annotation] */ - _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey) = 0; - - virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder) = 0; - - virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ UINT NumBuffers, - /* [annotation] */ - _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; - - virtual APP_DEPRECATED_HRESULT STDMETHODCALLTYPE DecoderExtension( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputTargetRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputBackgroundColor( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL YCbCr, - /* [annotation] */ - _In_ const D3D11_VIDEO_COLOR *pColor) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputColorSpace( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputAlphaFillMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, - /* [annotation] */ - _In_ UINT StreamIndex) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputConstriction( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ SIZE Size) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputStereoMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable) = 0; - - virtual APP_DEPRECATED_HRESULT STDMETHODCALLTYPE VideoProcessorSetOutputExtension( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ void *pData) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputTargetRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *Enabled, - /* [annotation] */ - _Out_ RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputBackgroundColor( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pYCbCr, - /* [annotation] */ - _Out_ D3D11_VIDEO_COLOR *pColor) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputColorSpace( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputAlphaFillMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, - /* [annotation] */ - _Out_ UINT *pStreamIndex) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputConstriction( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ SIZE *pSize) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputStereoMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled) = 0; - - virtual APP_DEPRECATED_HRESULT STDMETHODCALLTYPE VideoProcessorGetOutputExtension( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Out_writes_bytes_(DataSize) void *pData) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFrameFormat( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ D3D11_VIDEO_FRAME_FORMAT FrameFormat) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamColorSpace( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamOutputRate( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamSourceRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamDestRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAlpha( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Alpha) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPalette( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _In_reads_opt_(Count) const UINT *pEntries) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamPixelAspectRatio( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamLumaKey( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Lower, - /* [annotation] */ - _In_ FLOAT Upper) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamStereoFormat( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamAutoProcessingMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamFilter( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ int Level) = 0; - - virtual APP_DEPRECATED_HRESULT STDMETHODCALLTYPE VideoProcessorSetStreamExtension( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ void *pData) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFrameFormat( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_FRAME_FORMAT *pFrameFormat) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamColorSpace( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamOutputRate( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamSourceRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamDestRect( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAlpha( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pAlpha) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPalette( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _Out_writes_(Count) UINT *pEntries) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamPixelAspectRatio( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ DXGI_RATIONAL *pSourceAspectRatio, - /* [annotation] */ - _Out_ DXGI_RATIONAL *pDestinationAspectRatio) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamLumaKey( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pLower, - /* [annotation] */ - _Out_ FLOAT *pUpper) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamStereoFormat( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamAutoProcessingMode( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamFilter( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ int *pLevel) = 0; - - virtual APP_DEPRECATED_HRESULT STDMETHODCALLTYPE VideoProcessorGetStreamExtension( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Out_writes_bytes_(DataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE VideoProcessorBlt( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE NegotiateCryptoSessionKeyExchange( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData) = 0; - - virtual void STDMETHODCALLTYPE EncryptionBlt( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ ID3D11Texture2D *pSrcSurface, - /* [annotation] */ - _In_ ID3D11Texture2D *pDstSurface, - /* [annotation] */ - _In_ UINT IVSize, - /* [annotation] */ - _Inout_opt_bytecount_(IVSize) void *pIV) = 0; - - virtual void STDMETHODCALLTYPE DecryptionBlt( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE StartSessionKeyRefresh( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT RandomNumberSize, - /* [annotation] */ - _Out_writes_bytes_(RandomNumberSize) void *pRandomNumber) = 0; - - virtual void STDMETHODCALLTYPE FinishSessionKeyRefresh( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEncryptionBltKey( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT KeySize, - /* [annotation] */ - _Out_writes_bytes_(KeySize) void *pReadbackKey) = 0; - - virtual HRESULT STDMETHODCALLTYPE NegotiateAuthenticatedChannelKeyExchange( - /* [annotation] */ - _In_ ID3D11AuthenticatedChannel *pChannel, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryAuthenticatedChannel( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE ConfigureAuthenticatedChannel( - /* [annotation] */ - _In_ ID3D11AuthenticatedChannel *pChannel, - /* [annotation] */ - _In_ UINT InputSize, - /* [annotation] */ - _In_reads_bytes_(InputSize) const void *pInput, - /* [annotation] */ - _Out_ D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamRotation( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ROTATION Rotation) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamRotation( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnable, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ROTATION *pRotation) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoContextVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoContext * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoContext * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoContext * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetDecoderBuffer )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ D3D11_VIDEO_DECODER_BUFFER_TYPE Type); - - HRESULT ( STDMETHODCALLTYPE *DecoderBeginFrame )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ ID3D11VideoDecoderOutputView *pView, - UINT ContentKeySize, - /* [annotation] */ - _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey); - - HRESULT ( STDMETHODCALLTYPE *DecoderEndFrame )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder); - - HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL YCbCr, - /* [annotation] */ - _In_ const D3D11_VIDEO_COLOR *pColor); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, - /* [annotation] */ - _In_ UINT StreamIndex); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ SIZE Size); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable); - - APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetOutputExtension )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ void *pData); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *Enabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pYCbCr, - /* [annotation] */ - _Out_ D3D11_VIDEO_COLOR *pColor); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, - /* [annotation] */ - _Out_ UINT *pStreamIndex); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ SIZE *pSize); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled); - - APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetOutputExtension )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Out_writes_bytes_(DataSize) void *pData); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ D3D11_VIDEO_FRAME_FORMAT FrameFormat); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Alpha); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPalette )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _In_reads_opt_(Count) const UINT *pEntries); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Lower, - /* [annotation] */ - _In_ FLOAT Upper); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFilter )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_FRAME_FORMAT *pFrameFormat); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pAlpha); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPalette )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _Out_writes_(Count) UINT *pEntries); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pLower, - /* [annotation] */ - _Out_ FLOAT *pUpper); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFilter )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData); - - void ( STDMETHODCALLTYPE *EncryptionBlt )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT RandomNumberSize, - /* [annotation] */ - _Out_writes_bytes_(RandomNumberSize) void *pRandomNumber); - - void ( STDMETHODCALLTYPE *FinishSessionKeyRefresh )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession); - - HRESULT ( STDMETHODCALLTYPE *GetEncryptionBltKey )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT KeySize, - /* [annotation] */ - _Out_writes_bytes_(KeySize) void *pReadbackKey); - - HRESULT ( STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11AuthenticatedChannel *pChannel, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *QueryAuthenticatedChannel )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * 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 )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ROTATION Rotation); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamRotation )( - ID3D11VideoContext * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnable, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ROTATION *pRotation); - - END_INTERFACE - } ID3D11VideoContextVtbl; - - interface ID3D11VideoContext - { - CONST_VTBL struct ID3D11VideoContextVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoContext_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) \ - ( (This)->lpVtbl -> GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) ) - -#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,Type) \ - ( (This)->lpVtbl -> ReleaseDecoderBuffer(This,pDecoder,Type) ) - -#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) \ - ( (This)->lpVtbl -> DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) ) - -#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) \ - ( (This)->lpVtbl -> DecoderEndFrame(This,pDecoder) ) - -#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) \ - ( (This)->lpVtbl -> SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ) - -#define ID3D11VideoContext_DecoderExtension(This,pDecoder,pExtensionData) \ - ( (This)->lpVtbl -> DecoderExtension(This,pDecoder,pExtensionData) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) ) - -#define ID3D11VideoContext_VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) ) - -#define ID3D11VideoContext_VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext_VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) \ - ( (This)->lpVtbl -> VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) ) - -#define ID3D11VideoContext_NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) \ - ( (This)->lpVtbl -> NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) ) - -#define ID3D11VideoContext_EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) \ - ( (This)->lpVtbl -> EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) ) - -#define ID3D11VideoContext_DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) \ - ( (This)->lpVtbl -> DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) ) - -#define ID3D11VideoContext_StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) \ - ( (This)->lpVtbl -> StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) ) - -#define ID3D11VideoContext_FinishSessionKeyRefresh(This,pCryptoSession) \ - ( (This)->lpVtbl -> FinishSessionKeyRefresh(This,pCryptoSession) ) - -#define ID3D11VideoContext_GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) \ - ( (This)->lpVtbl -> GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) ) - -#define ID3D11VideoContext_NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) \ - ( (This)->lpVtbl -> NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) ) - -#define ID3D11VideoContext_QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) \ - ( (This)->lpVtbl -> QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) ) - -#define ID3D11VideoContext_ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) \ - ( (This)->lpVtbl -> ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) ) - -#define ID3D11VideoContext_VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) ) - -#define ID3D11VideoContext_VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ -#define __ID3D11VideoDevice_INTERFACE_DEFINED__ - -/* interface ID3D11VideoDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("10EC4D5B-975A-4689-B9E4-D0AAC30FE333") - ID3D11VideoDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pConfig, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoDecoder **ppDecoder) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ UINT RateConversionIndex, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessor **ppVideoProcessor) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( - /* [annotation] */ - _In_ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, - /* [annotation] */ - _COM_Outptr_ ID3D11AuthenticatedChannel **ppAuthenticatedChannel) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ const GUID *pKeyExchangeType, - /* [annotation] */ - _COM_Outptr_ ID3D11CryptoSession **ppCryptoSession) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoDecoderOutputView **ppVDOVView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorInputView **ppVPIView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorOutputView **ppVPOView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessorEnumerator **ppEnum) = 0; - - virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pDecoderProfile) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( - /* [annotation] */ - _In_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ BOOL *pSupported) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _Out_ UINT *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContentProtectionCaps( - /* [annotation] */ - _In_opt_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _Out_ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckCryptoKeyExchange( - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pKeyExchangeType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoDeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoDevice * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoDevice * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoDevice * This); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pConfig, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoDecoder **ppDecoder); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ UINT RateConversionIndex, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessor **ppVideoProcessor); - - HRESULT ( STDMETHODCALLTYPE *CreateAuthenticatedChannel )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, - /* [annotation] */ - _COM_Outptr_ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); - - HRESULT ( STDMETHODCALLTYPE *CreateCryptoSession )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ const GUID *pKeyExchangeType, - /* [annotation] */ - _COM_Outptr_ ID3D11CryptoSession **ppCryptoSession); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderOutputView )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoDecoderOutputView **ppVDOVView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorInputView )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorInputView **ppVPIView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorOutputView )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorOutputView **ppVPOView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorEnumerator )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessorEnumerator **ppEnum); - - UINT ( STDMETHODCALLTYPE *GetVideoDecoderProfileCount )( - ID3D11VideoDevice * This); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderProfile )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pDecoderProfile); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoDecoderFormat )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ BOOL *pSupported); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfigCount )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _Out_ UINT *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfig )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig); - - HRESULT ( STDMETHODCALLTYPE *GetContentProtectionCaps )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_opt_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _Out_ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *CheckCryptoKeyExchange )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pKeyExchangeType); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoDevice * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3D11VideoDeviceVtbl; - - interface ID3D11VideoDevice - { - CONST_VTBL struct ID3D11VideoDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) ) - -#define ID3D11VideoDevice_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) ) - -#define ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) \ - ( (This)->lpVtbl -> CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) ) - -#define ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) \ - ( (This)->lpVtbl -> CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) ) - -#define ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) \ - ( (This)->lpVtbl -> CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) ) - -#define ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) \ - ( (This)->lpVtbl -> CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) ) - -#define ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) \ - ( (This)->lpVtbl -> CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) ) - -#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) \ - ( (This)->lpVtbl -> CreateVideoProcessorEnumerator(This,pDesc,ppEnum) ) - -#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) \ - ( (This)->lpVtbl -> GetVideoDecoderProfileCount(This) ) - -#define ID3D11VideoDevice_GetVideoDecoderProfile(This,Index,pDecoderProfile) \ - ( (This)->lpVtbl -> GetVideoDecoderProfile(This,Index,pDecoderProfile) ) - -#define ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) \ - ( (This)->lpVtbl -> CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) ) - -#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) \ - ( (This)->lpVtbl -> GetVideoDecoderConfigCount(This,pDesc,pCount) ) - -#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,Index,pConfig) \ - ( (This)->lpVtbl -> GetVideoDecoderConfig(This,pDesc,Index,pConfig) ) - -#define ID3D11VideoDevice_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) \ - ( (This)->lpVtbl -> GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) ) - -#define ID3D11VideoDevice_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) \ - ( (This)->lpVtbl -> CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) ) - -#define ID3D11VideoDevice_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoDevice_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0040 */ -/* [local] */ - -#include - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0040_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0040_v0_0_s_ifspec; - -#ifndef __ID3D11Device_INTERFACE_DEFINED__ -#define __ID3D11Device_INTERFACE_DEFINED__ - -/* interface ID3D11Device */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Device; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("db6f6ddb-ac77-4e88-8253-819df9bbf140") - ID3D11Device : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateBuffer( - /* [annotation] */ - _In_ const D3D11_BUFFER_DESC *pDesc, - /* [annotation] */ - _In_opt_ const D3D11_SUBRESOURCE_DATA *pInitialData, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Buffer **ppBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture1D( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture2D( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture3D( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilView( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateInputLayout( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVertexShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VertexShader **ppVertexShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGeometryShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11GeometryShader **ppGeometryShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGeometryShaderWithStreamOutput( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePixelShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11PixelShader **ppPixelShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateHullShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11HullShader **ppHullShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDomainShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DomainShader **ppDomainShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateComputeShader( - /* [annotation] */ - _In_reads_(BytecodeLength) const void *pShaderBytecode, - /* [annotation] */ - _In_ SIZE_T BytecodeLength, - /* [annotation] */ - _In_opt_ ID3D11ClassLinkage *pClassLinkage, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ComputeShader **ppComputeShader) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateClassLinkage( - /* [annotation] */ - _COM_Outptr_ ID3D11ClassLinkage **ppLinkage) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBlendState( - /* [annotation] */ - _In_ const D3D11_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState **ppBlendState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDepthStencilState( - /* [annotation] */ - _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState( - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSamplerState( - /* [annotation] */ - _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateQuery( - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query **ppQuery) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePredicate( - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Predicate **ppPredicate) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCounter( - /* [annotation] */ - _In_ const D3D11_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Counter **ppCounter) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext( - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedResource( - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _COM_Outptr_opt_ void **ppResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckFormatSupport( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels) = 0; - - virtual void STDMETHODCALLTYPE CheckCounterInfo( - /* [annotation] */ - _Out_ D3D11_COUNTER_INFO *pCounterInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckCounter( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( - D3D11_FEATURE Feature, - /* [annotation] */ - _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData) = 0; - - virtual D3D_FEATURE_LEVEL STDMETHODCALLTYPE GetFeatureLevel( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; - - virtual void STDMETHODCALLTYPE GetImmediateContext( - /* [annotation] */ - _Outptr_ ID3D11DeviceContext **ppImmediateContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetExceptionMode( - UINT RaiseFlags) = 0; - - virtual UINT STDMETHODCALLTYPE GetExceptionMode( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Device * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Device * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Device * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D11Device * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D11Device * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D11Device * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * 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 )( - ID3D11Device * This, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassLinkage **ppLinkage); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D11Device * This, - /* [annotation] */ - _In_ const D3D11_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )( - ID3D11Device * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D11Device * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _COM_Outptr_opt_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D11Device * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D11Device * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D11Device * This, - /* [annotation] */ - _Out_ D3D11_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D11Device * 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 )( - ID3D11Device * This, - D3D11_FEATURE Feature, - /* [annotation] */ - _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Device * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )( - ID3D11Device * This); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D11Device * This); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D11Device * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext )( - ID3D11Device * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D11Device * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D11Device * This); - - END_INTERFACE - } ID3D11DeviceVtbl; - - interface ID3D11Device - { - CONST_VTBL struct ID3D11DeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Device_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Device_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Device_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Device_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D11Device_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D11Device_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D11Device_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D11Device_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D11Device_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ) - -#define ID3D11Device_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D11Device_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D11Device_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D11Device_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ) - -#define ID3D11Device_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ) - -#define ID3D11Device_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 ID3D11Device_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ) - -#define ID3D11Device_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \ - ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ) - -#define ID3D11Device_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \ - ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ) - -#define ID3D11Device_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \ - ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ) - -#define ID3D11Device_CreateClassLinkage(This,ppLinkage) \ - ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) ) - -#define ID3D11Device_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D11Device_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D11Device_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D11Device_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D11Device_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D11Device_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D11Device_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D11Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D11Device_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D11Device_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 ID3D11Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D11Device_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Device_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Device_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D11Device_GetFeatureLevel(This) \ - ( (This)->lpVtbl -> GetFeatureLevel(This) ) - -#define ID3D11Device_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D11Device_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D11Device_GetImmediateContext(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) ) - -#define ID3D11Device_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D11Device_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Device_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_0000_0041 */ -/* [local] */ - -typedef -enum D3D11_CREATE_DEVICE_FLAG - { - D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, - D3D11_CREATE_DEVICE_DEBUG = 0x2, - D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4, - D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, - D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20, - D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40, - D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80, - D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100, - D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800 - } D3D11_CREATE_DEVICE_FLAG; - -#define D3D11_SDK_VERSION ( 7 ) - -#if !defined( D3D11_IGNORE_SDK_LAYERS ) -#include "d3d11sdklayers.h" -#endif -#include "d3d10_1.h" -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#include "d3d10shader.h" -#include "d3d10_1shader.h" -#include "d3d10misc.h" -#include "d3d10effect.h" -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion - -/////////////////////////////////////////////////////////////////////////// -// D3D11CreateDevice -// ------------------ -// -// pAdapter -// If NULL, D3D11CreateDevice will choose the primary adapter and -// create a new instance from a temporarily created IDXGIFactory. -// If non-NULL, D3D11CreateDevice will register the appropriate -// device, if necessary (via IDXGIAdapter::RegisterDrver), before -// creating the device. -// DriverType -// Specifies the driver type to be created: hardware, reference or -// null. -// Software -// HMODULE of a DLL implementing a software rasterizer. Must be NULL for -// non-Software driver types. -// Flags -// Any of those documented for D3D11CreateDeviceAndSwapChain. -// pFeatureLevels -// Any of those documented for D3D11CreateDeviceAndSwapChain. -// FeatureLevels -// Size of feature levels array. -// SDKVersion -// SDK version. Use the D3D11_SDK_VERSION macro. -// ppDevice -// Pointer to returned interface. May be NULL. -// pFeatureLevel -// Pointer to returned feature level. May be NULL. -// ppImmediateContext -// Pointer to returned interface. May be NULL. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory1 -// IDXGIFactory::EnumAdapters -// IDXGIAdapter::RegisterDriver -// D3D11CreateDevice -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)( _In_opt_ IDXGIAdapter*, - D3D_DRIVER_TYPE, HMODULE, UINT, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL*, - UINT FeatureLevels, UINT, _COM_Outptr_opt_ ID3D11Device**, - _Out_opt_ D3D_FEATURE_LEVEL*, _COM_Outptr_opt_ ID3D11DeviceContext** ); - -HRESULT WINAPI D3D11CreateDevice( - _In_opt_ IDXGIAdapter* pAdapter, - D3D_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels, - UINT FeatureLevels, - UINT SDKVersion, - _COM_Outptr_opt_ ID3D11Device** ppDevice, - _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel, - _COM_Outptr_opt_ ID3D11DeviceContext** ppImmediateContext ); - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -/////////////////////////////////////////////////////////////////////////// -// D3D11CreateDeviceAndSwapChain -// ------------------------------ -// -// ppAdapter -// If NULL, D3D11CreateDevice will choose the primary adapter and -// create a new instance from a temporarily created IDXGIFactory. -// If non-NULL, D3D11CreateDevice will register the appropriate -// device, if necessary (via IDXGIAdapter::RegisterDrver), before -// creating the device. -// DriverType -// Specifies the driver type to be created: hardware, reference or -// null. -// Software -// HMODULE of a DLL implementing a software rasterizer. Must be NULL for -// non-Software driver types. -// Flags -// Any of those documented for D3D11CreateDevice. -// pFeatureLevels -// Array of any of the following: -// D3D_FEATURE_LEVEL_11_0 -// D3D_FEATURE_LEVEL_10_1 -// D3D_FEATURE_LEVEL_10_0 -// D3D_FEATURE_LEVEL_9_3 -// D3D_FEATURE_LEVEL_9_2 -// D3D_FEATURE_LEVEL_9_1 -// Order indicates sequence in which instantiation will be attempted. If -// NULL, then the implied order is the same as previously listed (i.e. -// prefer most features available). -// FeatureLevels -// Size of feature levels array. -// SDKVersion -// SDK version. Use the D3D11_SDK_VERSION macro. -// pSwapChainDesc -// Swap chain description, may be NULL. -// ppSwapChain -// Pointer to returned interface. May be NULL. -// ppDevice -// Pointer to returned interface. May be NULL. -// pFeatureLevel -// Pointer to returned feature level. May be NULL. -// ppImmediateContext -// Pointer to returned interface. May be NULL. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory1 -// IDXGIFactory::EnumAdapters -// IDXGIAdapter::RegisterDriver -// D3D11CreateDevice -// IDXGIFactory::CreateSwapChain -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)( _In_opt_ IDXGIAdapter*, - D3D_DRIVER_TYPE, HMODULE, UINT, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL*, - UINT FeatureLevels, UINT, _In_opt_ CONST DXGI_SWAP_CHAIN_DESC*, - _COM_Outptr_opt_ IDXGISwapChain**, _COM_Outptr_opt_ ID3D11Device**, - _Out_opt_ D3D_FEATURE_LEVEL*, _COM_Outptr_opt_ ID3D11DeviceContext** ); - -HRESULT WINAPI D3D11CreateDeviceAndSwapChain( - _In_opt_ IDXGIAdapter* pAdapter, - D3D_DRIVER_TYPE DriverType, - HMODULE Software, - UINT Flags, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels, - UINT FeatureLevels, - UINT SDKVersion, - _In_opt_ CONST DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, - _COM_Outptr_opt_ IDXGISwapChain** ppSwapChain, - _COM_Outptr_opt_ ID3D11Device** ppDevice, - _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel, - _COM_Outptr_opt_ ID3D11DeviceContext** ppImmediateContext ); - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -DEFINE_GUID(IID_ID3D11DeviceChild,0x1841e5c8,0x16b0,0x489b,0xbc,0xc8,0x44,0xcf,0xb0,0xd5,0xde,0xae); -DEFINE_GUID(IID_ID3D11DepthStencilState,0x03823efb,0x8d8f,0x4e1c,0x9a,0xa2,0xf6,0x4b,0xb2,0xcb,0xfd,0xf1); -DEFINE_GUID(IID_ID3D11BlendState,0x75b68faa,0x347d,0x4159,0x8f,0x45,0xa0,0x64,0x0f,0x01,0xcd,0x9a); -DEFINE_GUID(IID_ID3D11RasterizerState,0x9bb4ab81,0xab1a,0x4d8f,0xb5,0x06,0xfc,0x04,0x20,0x0b,0x6e,0xe7); -DEFINE_GUID(IID_ID3D11Resource,0xdc8e63f3,0xd12b,0x4952,0xb4,0x7b,0x5e,0x45,0x02,0x6a,0x86,0x2d); -DEFINE_GUID(IID_ID3D11Buffer,0x48570b85,0xd1ee,0x4fcd,0xa2,0x50,0xeb,0x35,0x07,0x22,0xb0,0x37); -DEFINE_GUID(IID_ID3D11Texture1D,0xf8fb5c27,0xc6b3,0x4f75,0xa4,0xc8,0x43,0x9a,0xf2,0xef,0x56,0x4c); -DEFINE_GUID(IID_ID3D11Texture2D,0x6f15aaf2,0xd208,0x4e89,0x9a,0xb4,0x48,0x95,0x35,0xd3,0x4f,0x9c); -DEFINE_GUID(IID_ID3D11Texture3D,0x037e866e,0xf56d,0x4357,0xa8,0xaf,0x9d,0xab,0xbe,0x6e,0x25,0x0e); -DEFINE_GUID(IID_ID3D11View,0x839d1216,0xbb2e,0x412b,0xb7,0xf4,0xa9,0xdb,0xeb,0xe0,0x8e,0xd1); -DEFINE_GUID(IID_ID3D11ShaderResourceView,0xb0e06fe0,0x8192,0x4e1a,0xb1,0xca,0x36,0xd7,0x41,0x47,0x10,0xb2); -DEFINE_GUID(IID_ID3D11RenderTargetView,0xdfdba067,0x0b8d,0x4865,0x87,0x5b,0xd7,0xb4,0x51,0x6c,0xc1,0x64); -DEFINE_GUID(IID_ID3D11DepthStencilView,0x9fdac92a,0x1876,0x48c3,0xaf,0xad,0x25,0xb9,0x4f,0x84,0xa9,0xb6); -DEFINE_GUID(IID_ID3D11UnorderedAccessView,0x28acf509,0x7f5c,0x48f6,0x86,0x11,0xf3,0x16,0x01,0x0a,0x63,0x80); -DEFINE_GUID(IID_ID3D11VertexShader,0x3b301d64,0xd678,0x4289,0x88,0x97,0x22,0xf8,0x92,0x8b,0x72,0xf3); -DEFINE_GUID(IID_ID3D11HullShader,0x8e5c6061,0x628a,0x4c8e,0x82,0x64,0xbb,0xe4,0x5c,0xb3,0xd5,0xdd); -DEFINE_GUID(IID_ID3D11DomainShader,0xf582c508,0x0f36,0x490c,0x99,0x77,0x31,0xee,0xce,0x26,0x8c,0xfa); -DEFINE_GUID(IID_ID3D11GeometryShader,0x38325b96,0xeffb,0x4022,0xba,0x02,0x2e,0x79,0x5b,0x70,0x27,0x5c); -DEFINE_GUID(IID_ID3D11PixelShader,0xea82e40d,0x51dc,0x4f33,0x93,0xd4,0xdb,0x7c,0x91,0x25,0xae,0x8c); -DEFINE_GUID(IID_ID3D11ComputeShader,0x4f5b196e,0xc2bd,0x495e,0xbd,0x01,0x1f,0xde,0xd3,0x8e,0x49,0x69); -DEFINE_GUID(IID_ID3D11InputLayout,0xe4819ddc,0x4cf0,0x4025,0xbd,0x26,0x5d,0xe8,0x2a,0x3e,0x07,0xb7); -DEFINE_GUID(IID_ID3D11SamplerState,0xda6fea51,0x564c,0x4487,0x98,0x10,0xf0,0xd0,0xf9,0xb4,0xe3,0xa5); -DEFINE_GUID(IID_ID3D11Asynchronous,0x4b35d0cd,0x1e15,0x4258,0x9c,0x98,0x1b,0x13,0x33,0xf6,0xdd,0x3b); -DEFINE_GUID(IID_ID3D11Query,0xd6c00747,0x87b7,0x425e,0xb8,0x4d,0x44,0xd1,0x08,0x56,0x0a,0xfd); -DEFINE_GUID(IID_ID3D11Predicate,0x9eb576dd,0x9f77,0x4d86,0x81,0xaa,0x8b,0xab,0x5f,0xe4,0x90,0xe2); -DEFINE_GUID(IID_ID3D11Counter,0x6e8c49fb,0xa371,0x4770,0xb4,0x40,0x29,0x08,0x60,0x22,0xb7,0x41); -DEFINE_GUID(IID_ID3D11ClassInstance,0xa6cd7faa,0xb0b7,0x4a2f,0x94,0x36,0x86,0x62,0xa6,0x57,0x97,0xcb); -DEFINE_GUID(IID_ID3D11ClassLinkage,0xddf57cba,0x9543,0x46e4,0xa1,0x2b,0xf2,0x07,0xa0,0xfe,0x7f,0xed); -DEFINE_GUID(IID_ID3D11CommandList,0xa24bc4d1,0x769e,0x43f7,0x80,0x13,0x98,0xff,0x56,0x6c,0x18,0xe2); -DEFINE_GUID(IID_ID3D11DeviceContext,0xc0bfa96c,0xe089,0x44fb,0x8e,0xaf,0x26,0xf8,0x79,0x61,0x90,0xda); -DEFINE_GUID(IID_ID3D11VideoDecoder,0x3C9C5B51,0x995D,0x48d1,0x9B,0x8D,0xFA,0x5C,0xAE,0xDE,0xD6,0x5C); -DEFINE_GUID(IID_ID3D11VideoProcessorEnumerator,0x31627037,0x53AB,0x4200,0x90,0x61,0x05,0xFA,0xA9,0xAB,0x45,0xF9); -DEFINE_GUID(IID_ID3D11VideoProcessor,0x1D7B0652,0x185F,0x41c6,0x85,0xCE,0x0C,0x5B,0xE3,0xD4,0xAE,0x6C); -DEFINE_GUID(IID_ID3D11AuthenticatedChannel,0x3015A308,0xDCBD,0x47aa,0xA7,0x47,0x19,0x24,0x86,0xD1,0x4D,0x4A); -DEFINE_GUID(IID_ID3D11CryptoSession,0x9B32F9AD,0xBDCC,0x40a6,0xA3,0x9D,0xD5,0xC8,0x65,0x84,0x57,0x20); -DEFINE_GUID(IID_ID3D11VideoDecoderOutputView,0xC2931AEA,0x2A85,0x4f20,0x86,0x0F,0xFB,0xA1,0xFD,0x25,0x6E,0x18); -DEFINE_GUID(IID_ID3D11VideoProcessorInputView,0x11EC5A5F,0x51DC,0x4945,0xAB,0x34,0x6E,0x8C,0x21,0x30,0x0E,0xA5); -DEFINE_GUID(IID_ID3D11VideoProcessorOutputView,0xA048285E,0x25A9,0x4527,0xBD,0x93,0xD6,0x8B,0x68,0xC4,0x42,0x54); -DEFINE_GUID(IID_ID3D11VideoContext,0x61F21C45,0x3C0E,0x4a74,0x9C,0xEA,0x67,0x10,0x0D,0x9A,0xD5,0xE4); -DEFINE_GUID(IID_ID3D11VideoDevice,0x10EC4D5B,0x975A,0x4689,0xB9,0xE4,0xD0,0xAA,0xC3,0x0F,0xE3,0x33); -DEFINE_GUID(IID_ID3D11Device,0xdb6f6ddb,0xac77,0x4e88,0x82,0x53,0x81,0x9d,0xf9,0xbb,0xf1,0x40); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0041_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_0000_0041_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d11_1.h b/3rdparty/minidx12/Include/d3d11_1.h deleted file mode 100644 index 5ad94f83b8..0000000000 --- a/3rdparty/minidx12/Include/d3d11_1.h +++ /dev/null @@ -1,5222 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_1_h__ -#define __d3d11_1_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D11BlendState1_FWD_DEFINED__ -#define __ID3D11BlendState1_FWD_DEFINED__ -typedef interface ID3D11BlendState1 ID3D11BlendState1; - -#endif /* __ID3D11BlendState1_FWD_DEFINED__ */ - - -#ifndef __ID3D11RasterizerState1_FWD_DEFINED__ -#define __ID3D11RasterizerState1_FWD_DEFINED__ -typedef interface ID3D11RasterizerState1 ID3D11RasterizerState1; - -#endif /* __ID3D11RasterizerState1_FWD_DEFINED__ */ - - -#ifndef __ID3DDeviceContextState_FWD_DEFINED__ -#define __ID3DDeviceContextState_FWD_DEFINED__ -typedef interface ID3DDeviceContextState ID3DDeviceContextState; - -#endif /* __ID3DDeviceContextState_FWD_DEFINED__ */ - - -#ifndef __ID3D11DeviceContext1_FWD_DEFINED__ -#define __ID3D11DeviceContext1_FWD_DEFINED__ -typedef interface ID3D11DeviceContext1 ID3D11DeviceContext1; - -#endif /* __ID3D11DeviceContext1_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoContext1_FWD_DEFINED__ -#define __ID3D11VideoContext1_FWD_DEFINED__ -typedef interface ID3D11VideoContext1 ID3D11VideoContext1; - -#endif /* __ID3D11VideoContext1_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoDevice1_FWD_DEFINED__ -#define __ID3D11VideoDevice1_FWD_DEFINED__ -typedef interface ID3D11VideoDevice1 ID3D11VideoDevice1; - -#endif /* __ID3D11VideoDevice1_FWD_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessorEnumerator1_FWD_DEFINED__ -#define __ID3D11VideoProcessorEnumerator1_FWD_DEFINED__ -typedef interface ID3D11VideoProcessorEnumerator1 ID3D11VideoProcessorEnumerator1; - -#endif /* __ID3D11VideoProcessorEnumerator1_FWD_DEFINED__ */ - - -#ifndef __ID3D11Device1_FWD_DEFINED__ -#define __ID3D11Device1_FWD_DEFINED__ -typedef interface ID3D11Device1 ID3D11Device1; - -#endif /* __ID3D11Device1_FWD_DEFINED__ */ - - -#ifndef __ID3DUserDefinedAnnotation_FWD_DEFINED__ -#define __ID3DUserDefinedAnnotation_FWD_DEFINED__ -typedef interface ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; - -#endif /* __ID3DUserDefinedAnnotation_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi1_2.h" -#include "d3dcommon.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d11_1_0000_0000 */ -/* [local] */ - -#ifdef __cplusplus -} -#endif -#include "d3d11.h" // -#ifdef __cplusplus -extern "C"{ -#endif -typedef -enum D3D11_COPY_FLAGS - { - D3D11_COPY_NO_OVERWRITE = 0x1, - D3D11_COPY_DISCARD = 0x2 - } D3D11_COPY_FLAGS; - -typedef -enum D3D11_LOGIC_OP - { - D3D11_LOGIC_OP_CLEAR = 0, - D3D11_LOGIC_OP_SET = ( D3D11_LOGIC_OP_CLEAR + 1 ) , - D3D11_LOGIC_OP_COPY = ( D3D11_LOGIC_OP_SET + 1 ) , - D3D11_LOGIC_OP_COPY_INVERTED = ( D3D11_LOGIC_OP_COPY + 1 ) , - D3D11_LOGIC_OP_NOOP = ( D3D11_LOGIC_OP_COPY_INVERTED + 1 ) , - D3D11_LOGIC_OP_INVERT = ( D3D11_LOGIC_OP_NOOP + 1 ) , - D3D11_LOGIC_OP_AND = ( D3D11_LOGIC_OP_INVERT + 1 ) , - D3D11_LOGIC_OP_NAND = ( D3D11_LOGIC_OP_AND + 1 ) , - D3D11_LOGIC_OP_OR = ( D3D11_LOGIC_OP_NAND + 1 ) , - D3D11_LOGIC_OP_NOR = ( D3D11_LOGIC_OP_OR + 1 ) , - D3D11_LOGIC_OP_XOR = ( D3D11_LOGIC_OP_NOR + 1 ) , - D3D11_LOGIC_OP_EQUIV = ( D3D11_LOGIC_OP_XOR + 1 ) , - D3D11_LOGIC_OP_AND_REVERSE = ( D3D11_LOGIC_OP_EQUIV + 1 ) , - D3D11_LOGIC_OP_AND_INVERTED = ( D3D11_LOGIC_OP_AND_REVERSE + 1 ) , - D3D11_LOGIC_OP_OR_REVERSE = ( D3D11_LOGIC_OP_AND_INVERTED + 1 ) , - D3D11_LOGIC_OP_OR_INVERTED = ( D3D11_LOGIC_OP_OR_REVERSE + 1 ) - } D3D11_LOGIC_OP; - -typedef struct D3D11_RENDER_TARGET_BLEND_DESC1 - { - BOOL BlendEnable; - BOOL LogicOpEnable; - D3D11_BLEND SrcBlend; - D3D11_BLEND DestBlend; - D3D11_BLEND_OP BlendOp; - D3D11_BLEND SrcBlendAlpha; - D3D11_BLEND DestBlendAlpha; - D3D11_BLEND_OP BlendOpAlpha; - D3D11_LOGIC_OP LogicOp; - UINT8 RenderTargetWriteMask; - } D3D11_RENDER_TARGET_BLEND_DESC1; - -typedef struct D3D11_BLEND_DESC1 - { - BOOL AlphaToCoverageEnable; - BOOL IndependentBlendEnable; - D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[ 8 ]; - } D3D11_BLEND_DESC1; - -/* Note, the array size for RenderTarget[] above is D3D11_SIMULTANEOUS_RENDERTARGET_COUNT. - IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_BLEND_DESC1 : public D3D11_BLEND_DESC1 -{ - CD3D11_BLEND_DESC1() - {} - explicit CD3D11_BLEND_DESC1( const D3D11_BLEND_DESC1& o ) : - D3D11_BLEND_DESC1( o ) - {} - explicit CD3D11_BLEND_DESC1( CD3D11_DEFAULT ) - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D11_RENDER_TARGET_BLEND_DESC1 defaultRenderTargetBlendDesc = - { - FALSE,FALSE, - D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, - D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, - D3D11_LOGIC_OP_NOOP, - D3D11_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[ i ] = defaultRenderTargetBlendDesc; - } - ~CD3D11_BLEND_DESC1() {} - operator const D3D11_BLEND_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D11BlendState1_INTERFACE_DEFINED__ -#define __ID3D11BlendState1_INTERFACE_DEFINED__ - -/* interface ID3D11BlendState1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11BlendState1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("cc86fabe-da55-401d-85e7-e3c9de2877e9") - ID3D11BlendState1 : public ID3D11BlendState - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_BLEND_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11BlendState1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11BlendState1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11BlendState1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11BlendState1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11BlendState1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11BlendState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11BlendState1 * This, - /* [annotation] */ - _Out_ D3D11_BLEND_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11BlendState1 * This, - /* [annotation] */ - _Out_ D3D11_BLEND_DESC1 *pDesc); - - END_INTERFACE - } ID3D11BlendState1Vtbl; - - interface ID3D11BlendState1 - { - CONST_VTBL struct ID3D11BlendState1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11BlendState1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11BlendState1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11BlendState1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11BlendState1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11BlendState1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11BlendState1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11BlendState1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11BlendState1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11BlendState1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11BlendState1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_1_0000_0001 */ -/* [local] */ - -typedef struct D3D11_RASTERIZER_DESC1 - { - D3D11_FILL_MODE FillMode; - D3D11_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL ScissorEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - } D3D11_RASTERIZER_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RASTERIZER_DESC1 : public D3D11_RASTERIZER_DESC1 -{ - CD3D11_RASTERIZER_DESC1() - {} - explicit CD3D11_RASTERIZER_DESC1( const D3D11_RASTERIZER_DESC1& o ) : - D3D11_RASTERIZER_DESC1( o ) - {} - explicit CD3D11_RASTERIZER_DESC1( CD3D11_DEFAULT ) - { - FillMode = D3D11_FILL_SOLID; - CullMode = D3D11_CULL_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D11_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - ScissorEnable = FALSE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - } - explicit CD3D11_RASTERIZER_DESC1( - D3D11_FILL_MODE fillMode, - D3D11_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL scissorEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount ) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - ScissorEnable = scissorEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - } - ~CD3D11_RASTERIZER_DESC1() {} - operator const D3D11_RASTERIZER_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D11RasterizerState1_INTERFACE_DEFINED__ -#define __ID3D11RasterizerState1_INTERFACE_DEFINED__ - -/* interface ID3D11RasterizerState1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11RasterizerState1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1217d7a6-5039-418c-b042-9cbe256afd6e") - ID3D11RasterizerState1 : public ID3D11RasterizerState - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11RasterizerState1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11RasterizerState1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11RasterizerState1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11RasterizerState1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11RasterizerState1 * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC1 *pDesc); - - END_INTERFACE - } ID3D11RasterizerState1Vtbl; - - interface ID3D11RasterizerState1 - { - CONST_VTBL struct ID3D11RasterizerState1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11RasterizerState1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11RasterizerState1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11RasterizerState1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11RasterizerState1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11RasterizerState1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11RasterizerState1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11RasterizerState1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11RasterizerState1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11RasterizerState1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11RasterizerState1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_1_0000_0002 */ -/* [local] */ - -typedef -enum D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG - { - D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED = 0x1 - } D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0002_v0_0_s_ifspec; - -#ifndef __ID3DDeviceContextState_INTERFACE_DEFINED__ -#define __ID3DDeviceContextState_INTERFACE_DEFINED__ - -/* interface ID3DDeviceContextState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3DDeviceContextState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5c1e0d8a-7c23-48f9-8c59-a92958ceff11") - ID3DDeviceContextState : public ID3D11DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3DDeviceContextStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3DDeviceContextState * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3DDeviceContextState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3DDeviceContextState * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3DDeviceContextState * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3DDeviceContextState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3DDeviceContextState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3DDeviceContextState * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - END_INTERFACE - } ID3DDeviceContextStateVtbl; - - interface ID3DDeviceContextState - { - CONST_VTBL struct ID3DDeviceContextStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3DDeviceContextState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3DDeviceContextState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3DDeviceContextState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3DDeviceContextState_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3DDeviceContextState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3DDeviceContextState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3DDeviceContextState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3DDeviceContextState_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__ -#define __ID3D11DeviceContext1_INTERFACE_DEFINED__ - -/* interface ID3D11DeviceContext1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DeviceContext1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1") - ID3D11DeviceContext1 : public ID3D11DeviceContext - { - public: - virtual void STDMETHODCALLTYPE CopySubresourceRegion1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE UpdateSubresource1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - /* [annotation] */ - _In_ ID3D11Resource *pResource) = 0; - - virtual void STDMETHODCALLTYPE DiscardView( - /* [annotation] */ - _In_ ID3D11View *pResourceView) = 0; - - virtual void STDMETHODCALLTYPE VSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSSetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE VSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE HSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE DSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE GSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE PSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CSGetConstantBuffers1( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE SwapDeviceContextState( - /* [annotation] */ - _In_ ID3DDeviceContextState *pState, - /* [annotation] */ - _Outptr_opt_ ID3DDeviceContextState **ppPreviousState) = 0; - - virtual void STDMETHODCALLTYPE ClearView( - /* [annotation] */ - _In_ ID3D11View *pView, - /* [annotation] */ - _In_ const FLOAT Color[ 4 ], - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRect, - UINT NumRects) = 0; - - virtual void STDMETHODCALLTYPE DiscardView1( - /* [annotation] */ - _In_ ID3D11View *pResourceView, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRects, - UINT NumRects) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceContext1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DeviceContext1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DeviceContext1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DeviceContext1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11PixelShader *pPixelShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11VertexShader *pVertexShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11GeometryShader *pShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ D3D11_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - void ( STDMETHODCALLTYPE *End )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync, - /* [annotation] */ - _Out_writes_bytes_opt_( DataSize ) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11BlendState *pBlendState, - /* [annotation] */ - _In_opt_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This); - - void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *DrawInstancedIndirect )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ UINT ThreadGroupCountX, - /* [annotation] */ - _In_ UINT ThreadGroupCountY, - /* [annotation] */ - _In_ UINT ThreadGroupCountZ); - - void ( STDMETHODCALLTYPE *DispatchIndirect )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pDstBuffer, - /* [annotation] */ - _In_ UINT DstAlignedByteOffset, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pSrcView); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const UINT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const FLOAT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *SetResourceMinLOD )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - FLOAT MinLOD); - - FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11CommandList *pCommandList, - BOOL RestoreContextState); - - void ( STDMETHODCALLTYPE *HSSetShaderResources )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11HullShader *pHullShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *HSSetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11DomainShader *pDomainShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DSSetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_opt_ ID3D11ComputeShader *pComputeShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *CSSetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *HSGetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *DSGetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *CSGetSamplers )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D11DeviceContext1 * This); - - D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D11DeviceContext1 * This); - - UINT ( STDMETHODCALLTYPE *GetContextFlags )( - ID3D11DeviceContext1 * This); - - HRESULT ( STDMETHODCALLTYPE *FinishCommandList )( - ID3D11DeviceContext1 * This, - BOOL RestoreDeferredContextState, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11CommandList **ppCommandList); - - void ( STDMETHODCALLTYPE *CopySubresourceRegion1 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *DiscardView )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers1 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3DDeviceContextState *pState, - /* [annotation] */ - _Outptr_opt_ ID3DDeviceContextState **ppPreviousState); - - void ( STDMETHODCALLTYPE *ClearView )( - ID3D11DeviceContext1 * 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 )( - ID3D11DeviceContext1 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRects, - UINT NumRects); - - END_INTERFACE - } ID3D11DeviceContext1Vtbl; - - interface ID3D11DeviceContext1 - { - CONST_VTBL struct ID3D11DeviceContext1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DeviceContext1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DeviceContext1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DeviceContext1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DeviceContext1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DeviceContext1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DeviceContext1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DeviceContext1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DeviceContext1_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D11DeviceContext1_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D11DeviceContext1_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) \ - ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) ) - -#define ID3D11DeviceContext1_Unmap(This,pResource,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) ) - -#define ID3D11DeviceContext1_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D11DeviceContext1_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext1_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext1_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D11DeviceContext1_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_Begin(This,pAsync) \ - ( (This)->lpVtbl -> Begin(This,pAsync) ) - -#define ID3D11DeviceContext1_End(This,pAsync) \ - ( (This)->lpVtbl -> End(This,pAsync) ) - -#define ID3D11DeviceContext1_GetData(This,pAsync,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) ) - -#define ID3D11DeviceContext1_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D11DeviceContext1_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D11DeviceContext1_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext1_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D11DeviceContext1_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D11DeviceContext1_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D11DeviceContext1_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D11DeviceContext1_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext1_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D11DeviceContext1_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext1_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D11DeviceContext1_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D11DeviceContext1_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D11DeviceContext1_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D11DeviceContext1_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D11DeviceContext1_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D11DeviceContext1_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) \ - ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) ) - -#define ID3D11DeviceContext1_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D11DeviceContext1_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext1_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext1_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D11DeviceContext1_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D11DeviceContext1_SetResourceMinLOD(This,pResource,MinLOD) \ - ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) ) - -#define ID3D11DeviceContext1_GetResourceMinLOD(This,pResource) \ - ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) ) - -#define ID3D11DeviceContext1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D11DeviceContext1_ExecuteCommandList(This,pCommandList,RestoreContextState) \ - ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) ) - -#define ID3D11DeviceContext1_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext1_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext1_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D11DeviceContext1_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext1_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext1_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D11DeviceContext1_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D11DeviceContext1_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D11DeviceContext1_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext1_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D11DeviceContext1_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D11DeviceContext1_SOGetTargets(This,NumBuffers,ppSOTargets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) ) - -#define ID3D11DeviceContext1_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D11DeviceContext1_RSGetViewports(This,pNumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) ) - -#define ID3D11DeviceContext1_RSGetScissorRects(This,pNumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) ) - -#define ID3D11DeviceContext1_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext1_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext1_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext1_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext1_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext1_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D11DeviceContext1_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D11DeviceContext1_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#define ID3D11DeviceContext1_GetContextFlags(This) \ - ( (This)->lpVtbl -> GetContextFlags(This) ) - -#define ID3D11DeviceContext1_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) \ - ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) ) - - -#define ID3D11DeviceContext1_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 ID3D11DeviceContext1_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) \ - ( (This)->lpVtbl -> UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) ) - -#define ID3D11DeviceContext1_DiscardResource(This,pResource) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource) ) - -#define ID3D11DeviceContext1_DiscardView(This,pResourceView) \ - ( (This)->lpVtbl -> DiscardView(This,pResourceView) ) - -#define ID3D11DeviceContext1_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext1_SwapDeviceContextState(This,pState,ppPreviousState) \ - ( (This)->lpVtbl -> SwapDeviceContextState(This,pState,ppPreviousState) ) - -#define ID3D11DeviceContext1_ClearView(This,pView,Color,pRect,NumRects) \ - ( (This)->lpVtbl -> ClearView(This,pView,Color,pRect,NumRects) ) - -#define ID3D11DeviceContext1_DiscardView1(This,pResourceView,pRects,NumRects) \ - ( (This)->lpVtbl -> DiscardView1(This,pResourceView,pRects,NumRects) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DeviceContext1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_1_0000_0004 */ -/* [local] */ - -typedef struct D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK - { - UINT ClearSize; - UINT EncryptedSize; - } D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK; - -typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC1 - { - D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; - UINT DataOffset; - UINT DataSize; - /* [annotation] */ - _Field_size_opt_(IVSize) void *pIV; - UINT IVSize; - /* [annotation] */ - _Field_size_opt_(SubSampleMappingCount) D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock; - UINT SubSampleMappingCount; - } D3D11_VIDEO_DECODER_BUFFER_DESC1; - -typedef struct D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION - { - ID3D11CryptoSession *pCryptoSession; - UINT BlobSize; - /* [annotation] */ - _Field_size_opt_(BlobSize) void *pBlob; - GUID *pKeyInfoId; - UINT PrivateDataSize; - /* [annotation] */ - _Field_size_opt_(PrivateDataSize) void *pPrivateData; - } D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION; - -typedef -enum D3D11_VIDEO_DECODER_CAPS - { - D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE = 0x1, - D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME = 0x2, - D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC = 0x4, - D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED = 0x8, - D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED = 0x10 - } D3D11_VIDEO_DECODER_CAPS; - -typedef -enum D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS - { - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION = 0x1, - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE = 0x2, - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION = 0x4, - D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT = 0x8 - } D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS; - -typedef struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT - { - BOOL Enable; - UINT Width; - UINT Height; - DXGI_FORMAT Format; - } D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT; - -typedef -enum D3D11_CRYPTO_SESSION_STATUS - { - D3D11_CRYPTO_SESSION_STATUS_OK = 0, - D3D11_CRYPTO_SESSION_STATUS_KEY_LOST = 1, - D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST = 2 - } D3D11_CRYPTO_SESSION_STATUS; - -typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA - { - UINT PrivateDataSize; - UINT HWProtectionDataSize; - BYTE pbInput[ 4 ]; - } D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA; - -typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA - { - UINT PrivateDataSize; - UINT MaxHWProtectionDataSize; - UINT HWProtectionDataSize; - UINT64 TransportTime; - UINT64 ExecutionTime; - BYTE pbOutput[ 4 ]; - } D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA; - -typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA - { - UINT HWProtectionFunctionID; - D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA *pInputData; - D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA *pOutputData; - HRESULT Status; - } D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA; - -typedef struct D3D11_VIDEO_SAMPLE_DESC - { - UINT Width; - UINT Height; - DXGI_FORMAT Format; - DXGI_COLOR_SPACE_TYPE ColorSpace; - } D3D11_VIDEO_SAMPLE_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0004_v0_0_s_ifspec; - -#ifndef __ID3D11VideoContext1_INTERFACE_DEFINED__ -#define __ID3D11VideoContext1_INTERFACE_DEFINED__ - -/* interface ID3D11VideoContext1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoContext1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A7F026DA-A5F8-4487-A564-15E34357651E") - ID3D11VideoContext1 : public ID3D11VideoContext - { - public: - virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers1( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ UINT NumBuffers, - /* [annotation] */ - _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC1 *pBufferDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDataForNewHardwareKey( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT PrivateInputSize, - /* [annotation] */ - _In_reads_(PrivateInputSize) const void *pPrivatInputData, - /* [annotation] */ - _Out_ UINT64 *pPrivateOutputData) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckCryptoSessionStatus( - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _Out_ D3D11_CRYPTO_SESSION_STATUS *pStatus) = 0; - - virtual HRESULT STDMETHODCALLTYPE DecoderEnableDownsampling( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc, - /* [annotation] */ - _In_ UINT ReferenceFrameCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE DecoderUpdateDownsampling( - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputColorSpace1( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetOutputShaderUsage( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL ShaderUsage) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputColorSpace1( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetOutputShaderUsage( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pShaderUsage) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamColorSpace1( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorSetStreamMirror( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ BOOL FlipHorizontal, - /* [annotation] */ - _In_ BOOL FlipVertical) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamColorSpace1( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace) = 0; - - virtual void STDMETHODCALLTYPE VideoProcessorGetStreamMirror( - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnable, - /* [annotation] */ - _Out_ BOOL *pFlipHorizontal, - /* [annotation] */ - _Out_ BOOL *pFlipVertical) = 0; - - virtual HRESULT STDMETHODCALLTYPE VideoProcessorGetBehaviorHints( - /* [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) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoContext1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoContext1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoContext1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoContext1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetDecoderBuffer )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ D3D11_VIDEO_DECODER_BUFFER_TYPE Type); - - HRESULT ( STDMETHODCALLTYPE *DecoderBeginFrame )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ ID3D11VideoDecoderOutputView *pView, - UINT ContentKeySize, - /* [annotation] */ - _In_reads_bytes_opt_(ContentKeySize) const void *pContentKey); - - HRESULT ( STDMETHODCALLTYPE *DecoderEndFrame )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder); - - HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputTargetRect )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputBackgroundColor )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL YCbCr, - /* [annotation] */ - _In_ const D3D11_VIDEO_COLOR *pColor); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputAlphaFillMode )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode, - /* [annotation] */ - _In_ UINT StreamIndex); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputConstriction )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ SIZE Size); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputStereoMode )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL Enable); - - APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorSetOutputExtension )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ void *pData); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputTargetRect )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *Enabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputBackgroundColor )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pYCbCr, - /* [annotation] */ - _Out_ D3D11_VIDEO_COLOR *pColor); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputAlphaFillMode )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode, - /* [annotation] */ - _Out_ UINT *pStreamIndex); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputConstriction )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ SIZE *pSize); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputStereoMode )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pEnabled); - - APP_DEPRECATED_HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetOutputExtension )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ const GUID *pExtensionGuid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Out_writes_bytes_(DataSize) void *pData); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFrameFormat )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ D3D11_VIDEO_FRAME_FORMAT FrameFormat); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamOutputRate )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamDestRect )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_opt_ const RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamAlpha )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Alpha); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPalette )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _In_reads_opt_(Count) const UINT *pEntries); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamPixelAspectRatio )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ FLOAT Lower, - /* [annotation] */ - _In_ FLOAT Upper); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamStereoFormat )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamFilter )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_FRAME_FORMAT *pFrameFormat); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamOutputRate )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamDestRect )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ RECT *pRect); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamAlpha )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pAlpha); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPalette )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ UINT Count, - /* [annotation] */ - _Out_writes_(Count) UINT *pEntries); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamPixelAspectRatio )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled, - /* [annotation] */ - _Out_ FLOAT *pLower, - /* [annotation] */ - _Out_ FLOAT *pUpper); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamStereoFormat )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnabled); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamFilter )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData); - - void ( STDMETHODCALLTYPE *EncryptionBlt )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT RandomNumberSize, - /* [annotation] */ - _Out_writes_bytes_(RandomNumberSize) void *pRandomNumber); - - void ( STDMETHODCALLTYPE *FinishSessionKeyRefresh )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession); - - HRESULT ( STDMETHODCALLTYPE *GetEncryptionBltKey )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT KeySize, - /* [annotation] */ - _Out_writes_bytes_(KeySize) void *pReadbackKey); - - HRESULT ( STDMETHODCALLTYPE *NegotiateAuthenticatedChannelKeyExchange )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11AuthenticatedChannel *pChannel, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _Inout_updates_bytes_(DataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *QueryAuthenticatedChannel )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_ROTATION Rotation); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamRotation )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnable, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_ROTATION *pRotation); - - HRESULT ( STDMETHODCALLTYPE *SubmitDecoderBuffers1 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ UINT NumBuffers, - /* [annotation] */ - _In_reads_(NumBuffers) const D3D11_VIDEO_DECODER_BUFFER_DESC1 *pBufferDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDataForNewHardwareKey )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _In_ UINT PrivateInputSize, - /* [annotation] */ - _In_reads_(PrivateInputSize) const void *pPrivatInputData, - /* [annotation] */ - _Out_ UINT64 *pPrivateOutputData); - - HRESULT ( STDMETHODCALLTYPE *CheckCryptoSessionStatus )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11CryptoSession *pCryptoSession, - /* [annotation] */ - _Out_ D3D11_CRYPTO_SESSION_STATUS *pStatus); - - HRESULT ( STDMETHODCALLTYPE *DecoderEnableDownsampling )( - ID3D11VideoContext1 * 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 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoDecoder *pDecoder, - /* [annotation] */ - _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputColorSpace1 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetOutputShaderUsage )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ BOOL ShaderUsage); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputColorSpace1 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetOutputShaderUsage )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _Out_ BOOL *pShaderUsage); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamColorSpace1 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorSetStreamMirror )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _In_ BOOL Enable, - /* [annotation] */ - _In_ BOOL FlipHorizontal, - /* [annotation] */ - _In_ BOOL FlipVertical); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamColorSpace1 )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ DXGI_COLOR_SPACE_TYPE *pColorSpace); - - void ( STDMETHODCALLTYPE *VideoProcessorGetStreamMirror )( - ID3D11VideoContext1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessor *pVideoProcessor, - /* [annotation] */ - _In_ UINT StreamIndex, - /* [annotation] */ - _Out_ BOOL *pEnable, - /* [annotation] */ - _Out_ BOOL *pFlipHorizontal, - /* [annotation] */ - _Out_ BOOL *pFlipVertical); - - HRESULT ( STDMETHODCALLTYPE *VideoProcessorGetBehaviorHints )( - ID3D11VideoContext1 * 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); - - END_INTERFACE - } ID3D11VideoContext1Vtbl; - - interface ID3D11VideoContext1 - { - CONST_VTBL struct ID3D11VideoContext1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoContext1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoContext1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoContext1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoContext1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoContext1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoContext1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoContext1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoContext1_GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) \ - ( (This)->lpVtbl -> GetDecoderBuffer(This,pDecoder,Type,pBufferSize,ppBuffer) ) - -#define ID3D11VideoContext1_ReleaseDecoderBuffer(This,pDecoder,Type) \ - ( (This)->lpVtbl -> ReleaseDecoderBuffer(This,pDecoder,Type) ) - -#define ID3D11VideoContext1_DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) \ - ( (This)->lpVtbl -> DecoderBeginFrame(This,pDecoder,pView,ContentKeySize,pContentKey) ) - -#define ID3D11VideoContext1_DecoderEndFrame(This,pDecoder) \ - ( (This)->lpVtbl -> DecoderEndFrame(This,pDecoder) ) - -#define ID3D11VideoContext1_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) \ - ( (This)->lpVtbl -> SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) ) - -#define ID3D11VideoContext1_DecoderExtension(This,pDecoder,pExtensionData) \ - ( (This)->lpVtbl -> DecoderExtension(This,pDecoder,pExtensionData) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputTargetRect(This,pVideoProcessor,Enable,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputBackgroundColor(This,pVideoProcessor,YCbCr,pColor) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace(This,pVideoProcessor,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputAlphaFillMode(This,pVideoProcessor,AlphaFillMode,StreamIndex) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputConstriction(This,pVideoProcessor,Enable,Size) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputStereoMode(This,pVideoProcessor,Enable) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputTargetRect(This,pVideoProcessor,Enabled,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputBackgroundColor(This,pVideoProcessor,pYCbCr,pColor) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace(This,pVideoProcessor,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputAlphaFillMode(This,pVideoProcessor,pAlphaFillMode,pStreamIndex) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputConstriction(This,pVideoProcessor,pEnabled,pSize) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputStereoMode(This,pVideoProcessor,pEnabled) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputExtension(This,pVideoProcessor,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamFrameFormat(This,pVideoProcessor,StreamIndex,FrameFormat) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamOutputRate(This,pVideoProcessor,StreamIndex,OutputRate,RepeatFrame,pCustomRate) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamSourceRect(This,pVideoProcessor,StreamIndex,Enable,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamDestRect(This,pVideoProcessor,StreamIndex,Enable,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamAlpha(This,pVideoProcessor,StreamIndex,Enable,Alpha) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,Enable,pSourceAspectRatio,pDestinationAspectRatio) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamLumaKey(This,pVideoProcessor,StreamIndex,Enable,Lower,Upper) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamStereoFormat(This,pVideoProcessor,StreamIndex,Enable,Format,LeftViewFrame0,BaseViewFrame0,FlipMode,MonoOffset) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,Enable) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,Enable,Level) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamFrameFormat(This,pVideoProcessor,StreamIndex,pFrameFormat) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace(This,pVideoProcessor,StreamIndex,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamOutputRate(This,pVideoProcessor,StreamIndex,pOutputRate,pRepeatFrame,pCustomRate) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamSourceRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamDestRect(This,pVideoProcessor,StreamIndex,pEnabled,pRect) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamAlpha(This,pVideoProcessor,StreamIndex,pEnabled,pAlpha) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamPalette(This,pVideoProcessor,StreamIndex,Count,pEntries) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamPixelAspectRatio(This,pVideoProcessor,StreamIndex,pEnabled,pSourceAspectRatio,pDestinationAspectRatio) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamLumaKey(This,pVideoProcessor,StreamIndex,pEnabled,pLower,pUpper) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamStereoFormat(This,pVideoProcessor,StreamIndex,pEnable,pFormat,pLeftViewFrame0,pBaseViewFrame0,pFlipMode,MonoOffset) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamAutoProcessingMode(This,pVideoProcessor,StreamIndex,pEnabled) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamFilter(This,pVideoProcessor,StreamIndex,Filter,pEnabled,pLevel) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamExtension(This,pVideoProcessor,StreamIndex,pExtensionGuid,DataSize,pData) ) - -#define ID3D11VideoContext1_VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) \ - ( (This)->lpVtbl -> VideoProcessorBlt(This,pVideoProcessor,pView,OutputFrame,StreamCount,pStreams) ) - -#define ID3D11VideoContext1_NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) \ - ( (This)->lpVtbl -> NegotiateCryptoSessionKeyExchange(This,pCryptoSession,DataSize,pData) ) - -#define ID3D11VideoContext1_EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) \ - ( (This)->lpVtbl -> EncryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,IVSize,pIV) ) - -#define ID3D11VideoContext1_DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) \ - ( (This)->lpVtbl -> DecryptionBlt(This,pCryptoSession,pSrcSurface,pDstSurface,pEncryptedBlockInfo,ContentKeySize,pContentKey,IVSize,pIV) ) - -#define ID3D11VideoContext1_StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) \ - ( (This)->lpVtbl -> StartSessionKeyRefresh(This,pCryptoSession,RandomNumberSize,pRandomNumber) ) - -#define ID3D11VideoContext1_FinishSessionKeyRefresh(This,pCryptoSession) \ - ( (This)->lpVtbl -> FinishSessionKeyRefresh(This,pCryptoSession) ) - -#define ID3D11VideoContext1_GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) \ - ( (This)->lpVtbl -> GetEncryptionBltKey(This,pCryptoSession,KeySize,pReadbackKey) ) - -#define ID3D11VideoContext1_NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) \ - ( (This)->lpVtbl -> NegotiateAuthenticatedChannelKeyExchange(This,pChannel,DataSize,pData) ) - -#define ID3D11VideoContext1_QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) \ - ( (This)->lpVtbl -> QueryAuthenticatedChannel(This,pChannel,InputSize,pInput,OutputSize,pOutput) ) - -#define ID3D11VideoContext1_ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) \ - ( (This)->lpVtbl -> ConfigureAuthenticatedChannel(This,pChannel,InputSize,pInput,pOutput) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamRotation(This,pVideoProcessor,StreamIndex,Enable,Rotation) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamRotation(This,pVideoProcessor,StreamIndex,pEnable,pRotation) ) - - -#define ID3D11VideoContext1_SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) \ - ( (This)->lpVtbl -> SubmitDecoderBuffers1(This,pDecoder,NumBuffers,pBufferDesc) ) - -#define ID3D11VideoContext1_GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) \ - ( (This)->lpVtbl -> GetDataForNewHardwareKey(This,pCryptoSession,PrivateInputSize,pPrivatInputData,pPrivateOutputData) ) - -#define ID3D11VideoContext1_CheckCryptoSessionStatus(This,pCryptoSession,pStatus) \ - ( (This)->lpVtbl -> CheckCryptoSessionStatus(This,pCryptoSession,pStatus) ) - -#define ID3D11VideoContext1_DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) \ - ( (This)->lpVtbl -> DecoderEnableDownsampling(This,pDecoder,InputColorSpace,pOutputDesc,ReferenceFrameCount) ) - -#define ID3D11VideoContext1_DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) \ - ( (This)->lpVtbl -> DecoderUpdateDownsampling(This,pDecoder,pOutputDesc) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputColorSpace1(This,pVideoProcessor,ColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) \ - ( (This)->lpVtbl -> VideoProcessorSetOutputShaderUsage(This,pVideoProcessor,ShaderUsage) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputColorSpace1(This,pVideoProcessor,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) \ - ( (This)->lpVtbl -> VideoProcessorGetOutputShaderUsage(This,pVideoProcessor,pShaderUsage) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamColorSpace1(This,pVideoProcessor,StreamIndex,ColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) \ - ( (This)->lpVtbl -> VideoProcessorSetStreamMirror(This,pVideoProcessor,StreamIndex,Enable,FlipHorizontal,FlipVertical) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamColorSpace1(This,pVideoProcessor,StreamIndex,pColorSpace) ) - -#define ID3D11VideoContext1_VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) \ - ( (This)->lpVtbl -> VideoProcessorGetStreamMirror(This,pVideoProcessor,StreamIndex,pEnable,pFlipHorizontal,pFlipVertical) ) - -#define ID3D11VideoContext1_VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) \ - ( (This)->lpVtbl -> VideoProcessorGetBehaviorHints(This,pVideoProcessor,OutputWidth,OutputHeight,OutputFormat,StreamCount,pStreams,pBehaviorHints) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoContext1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11VideoDevice1_INTERFACE_DEFINED__ -#define __ID3D11VideoDevice1_INTERFACE_DEFINED__ - -/* interface ID3D11VideoDevice1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoDevice1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("29DA1D51-1321-4454-804B-F5FC9F861F0F") - ID3D11VideoDevice1 : public ID3D11VideoDevice - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCryptoSessionPrivateDataSize( - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ const GUID *pKeyExchangeType, - /* [annotation] */ - _Out_ UINT *pPrivateInputSize, - /* [annotation] */ - _Out_ UINT *pPrivateOutputSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderCaps( - /* [annotation] */ - _In_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ UINT SampleWidth, - /* [annotation] */ - _In_ UINT SampleHeight, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _In_ UINT BitRate, - /* [annotation] */ - _In_opt_ const GUID *pCryptoType, - /* [annotation] */ - _Out_ UINT *pDecoderCaps) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderDownsampling( - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc, - /* [annotation] */ - _Out_ BOOL *pSupported, - /* [annotation] */ - _Out_ BOOL *pRealTimeHint) = 0; - - virtual HRESULT STDMETHODCALLTYPE RecommendVideoDecoderDownsampleParameters( - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _Out_ D3D11_VIDEO_SAMPLE_DESC *pRecommendedOutputDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoDevice1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoDevice1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoDevice1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoDevice1 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pVideoDesc, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pConfig, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoDecoder **ppDecoder); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ UINT RateConversionIndex, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessor **ppVideoProcessor); - - HRESULT ( STDMETHODCALLTYPE *CreateAuthenticatedChannel )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, - /* [annotation] */ - _COM_Outptr_ ID3D11AuthenticatedChannel **ppAuthenticatedChannel); - - HRESULT ( STDMETHODCALLTYPE *CreateCryptoSession )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ const GUID *pKeyExchangeType, - /* [annotation] */ - _COM_Outptr_ ID3D11CryptoSession **ppCryptoSession); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderOutputView )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoDecoderOutputView **ppVDOVView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorInputView )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorInputView **ppVPIView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorOutputView )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ ID3D11VideoProcessorEnumerator *pEnum, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11VideoProcessorOutputView **ppVPOView); - - HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessorEnumerator )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_ ID3D11VideoProcessorEnumerator **ppEnum); - - UINT ( STDMETHODCALLTYPE *GetVideoDecoderProfileCount )( - ID3D11VideoDevice1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderProfile )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pDecoderProfile); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoDecoderFormat )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ BOOL *pSupported); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfigCount )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _Out_ UINT *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderConfig )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pDesc, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ D3D11_VIDEO_DECODER_CONFIG *pConfig); - - HRESULT ( STDMETHODCALLTYPE *GetContentProtectionCaps )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_opt_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _Out_ D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *CheckCryptoKeyExchange )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ UINT Index, - /* [annotation] */ - _Out_ GUID *pKeyExchangeType); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetCryptoSessionPrivateDataSize )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const GUID *pCryptoType, - /* [annotation] */ - _In_opt_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ const GUID *pKeyExchangeType, - /* [annotation] */ - _Out_ UINT *pPrivateInputSize, - /* [annotation] */ - _Out_ UINT *pPrivateOutputSize); - - HRESULT ( STDMETHODCALLTYPE *GetVideoDecoderCaps )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const GUID *pDecoderProfile, - /* [annotation] */ - _In_ UINT SampleWidth, - /* [annotation] */ - _In_ UINT SampleHeight, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _In_ UINT BitRate, - /* [annotation] */ - _In_opt_ const GUID *pCryptoType, - /* [annotation] */ - _Out_ UINT *pDecoderCaps); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoDecoderDownsampling )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _In_ const D3D11_VIDEO_SAMPLE_DESC *pOutputDesc, - /* [annotation] */ - _Out_ BOOL *pSupported, - /* [annotation] */ - _Out_ BOOL *pRealTimeHint); - - HRESULT ( STDMETHODCALLTYPE *RecommendVideoDecoderDownsampleParameters )( - ID3D11VideoDevice1 * This, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_DESC *pInputDesc, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ const D3D11_VIDEO_DECODER_CONFIG *pInputConfig, - /* [annotation] */ - _In_ const DXGI_RATIONAL *pFrameRate, - /* [annotation] */ - _Out_ D3D11_VIDEO_SAMPLE_DESC *pRecommendedOutputDesc); - - END_INTERFACE - } ID3D11VideoDevice1Vtbl; - - interface ID3D11VideoDevice1 - { - CONST_VTBL struct ID3D11VideoDevice1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoDevice1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoDevice1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoDevice1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoDevice1_CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) \ - ( (This)->lpVtbl -> CreateVideoDecoder(This,pVideoDesc,pConfig,ppDecoder) ) - -#define ID3D11VideoDevice1_CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) \ - ( (This)->lpVtbl -> CreateVideoProcessor(This,pEnum,RateConversionIndex,ppVideoProcessor) ) - -#define ID3D11VideoDevice1_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) \ - ( (This)->lpVtbl -> CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) ) - -#define ID3D11VideoDevice1_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) \ - ( (This)->lpVtbl -> CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) ) - -#define ID3D11VideoDevice1_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) \ - ( (This)->lpVtbl -> CreateVideoDecoderOutputView(This,pResource,pDesc,ppVDOVView) ) - -#define ID3D11VideoDevice1_CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) \ - ( (This)->lpVtbl -> CreateVideoProcessorInputView(This,pResource,pEnum,pDesc,ppVPIView) ) - -#define ID3D11VideoDevice1_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) \ - ( (This)->lpVtbl -> CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) ) - -#define ID3D11VideoDevice1_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) \ - ( (This)->lpVtbl -> CreateVideoProcessorEnumerator(This,pDesc,ppEnum) ) - -#define ID3D11VideoDevice1_GetVideoDecoderProfileCount(This) \ - ( (This)->lpVtbl -> GetVideoDecoderProfileCount(This) ) - -#define ID3D11VideoDevice1_GetVideoDecoderProfile(This,Index,pDecoderProfile) \ - ( (This)->lpVtbl -> GetVideoDecoderProfile(This,Index,pDecoderProfile) ) - -#define ID3D11VideoDevice1_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) \ - ( (This)->lpVtbl -> CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) ) - -#define ID3D11VideoDevice1_GetVideoDecoderConfigCount(This,pDesc,pCount) \ - ( (This)->lpVtbl -> GetVideoDecoderConfigCount(This,pDesc,pCount) ) - -#define ID3D11VideoDevice1_GetVideoDecoderConfig(This,pDesc,Index,pConfig) \ - ( (This)->lpVtbl -> GetVideoDecoderConfig(This,pDesc,Index,pConfig) ) - -#define ID3D11VideoDevice1_GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) \ - ( (This)->lpVtbl -> GetContentProtectionCaps(This,pCryptoType,pDecoderProfile,pCaps) ) - -#define ID3D11VideoDevice1_CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) \ - ( (This)->lpVtbl -> CheckCryptoKeyExchange(This,pCryptoType,pDecoderProfile,Index,pKeyExchangeType) ) - -#define ID3D11VideoDevice1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoDevice1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoDevice1_GetCryptoSessionPrivateDataSize(This,pCryptoType,pDecoderProfile,pKeyExchangeType,pPrivateInputSize,pPrivateOutputSize) \ - ( (This)->lpVtbl -> GetCryptoSessionPrivateDataSize(This,pCryptoType,pDecoderProfile,pKeyExchangeType,pPrivateInputSize,pPrivateOutputSize) ) - -#define ID3D11VideoDevice1_GetVideoDecoderCaps(This,pDecoderProfile,SampleWidth,SampleHeight,pFrameRate,BitRate,pCryptoType,pDecoderCaps) \ - ( (This)->lpVtbl -> GetVideoDecoderCaps(This,pDecoderProfile,SampleWidth,SampleHeight,pFrameRate,BitRate,pCryptoType,pDecoderCaps) ) - -#define ID3D11VideoDevice1_CheckVideoDecoderDownsampling(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pOutputDesc,pSupported,pRealTimeHint) \ - ( (This)->lpVtbl -> CheckVideoDecoderDownsampling(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pOutputDesc,pSupported,pRealTimeHint) ) - -#define ID3D11VideoDevice1_RecommendVideoDecoderDownsampleParameters(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pRecommendedOutputDesc) \ - ( (This)->lpVtbl -> RecommendVideoDecoderDownsampleParameters(This,pInputDesc,InputColorSpace,pInputConfig,pFrameRate,pRecommendedOutputDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoDevice1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__ -#define __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__ - -/* interface ID3D11VideoProcessorEnumerator1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11VideoProcessorEnumerator1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("465217F2-5568-43CF-B5B9-F61D54531CA1") - ID3D11VideoProcessorEnumerator1 : public ID3D11VideoProcessorEnumerator - { - public: - virtual HRESULT STDMETHODCALLTYPE CheckVideoProcessorFormatConversion( - /* [annotation] */ - _In_ DXGI_FORMAT InputFormat, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ DXGI_FORMAT OutputFormat, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE OutputColorSpace, - /* [annotation] */ - _Out_ BOOL *pSupported) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11VideoProcessorEnumerator1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11VideoProcessorEnumerator1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11VideoProcessorEnumerator1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11VideoProcessorEnumerator1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorContentDesc )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoProcessorFormat )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFlags); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCaps )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorRateConversionCaps )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorCustomRate )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ UINT TypeIndex, - /* [annotation] */ - _In_ UINT CustomRateIndex, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate); - - HRESULT ( STDMETHODCALLTYPE *GetVideoProcessorFilterRange )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ D3D11_VIDEO_PROCESSOR_FILTER Filter, - /* [annotation] */ - _Out_ D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange); - - HRESULT ( STDMETHODCALLTYPE *CheckVideoProcessorFormatConversion )( - ID3D11VideoProcessorEnumerator1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT InputFormat, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE InputColorSpace, - /* [annotation] */ - _In_ DXGI_FORMAT OutputFormat, - /* [annotation] */ - _In_ DXGI_COLOR_SPACE_TYPE OutputColorSpace, - /* [annotation] */ - _Out_ BOOL *pSupported); - - END_INTERFACE - } ID3D11VideoProcessorEnumerator1Vtbl; - - interface ID3D11VideoProcessorEnumerator1 - { - CONST_VTBL struct ID3D11VideoProcessorEnumerator1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11VideoProcessorEnumerator1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11VideoProcessorEnumerator1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11VideoProcessorEnumerator1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11VideoProcessorEnumerator1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11VideoProcessorEnumerator1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11VideoProcessorEnumerator1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11VideoProcessorEnumerator1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorContentDesc(This,pContentDesc) \ - ( (This)->lpVtbl -> GetVideoProcessorContentDesc(This,pContentDesc) ) - -#define ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormat(This,Format,pFlags) \ - ( (This)->lpVtbl -> CheckVideoProcessorFormat(This,Format,pFlags) ) - -#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorCaps(This,pCaps) \ - ( (This)->lpVtbl -> GetVideoProcessorCaps(This,pCaps) ) - -#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) \ - ( (This)->lpVtbl -> GetVideoProcessorRateConversionCaps(This,TypeIndex,pCaps) ) - -#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) \ - ( (This)->lpVtbl -> GetVideoProcessorCustomRate(This,TypeIndex,CustomRateIndex,pRate) ) - -#define ID3D11VideoProcessorEnumerator1_GetVideoProcessorFilterRange(This,Filter,pRange) \ - ( (This)->lpVtbl -> GetVideoProcessorFilterRange(This,Filter,pRange) ) - - -#define ID3D11VideoProcessorEnumerator1_CheckVideoProcessorFormatConversion(This,InputFormat,InputColorSpace,OutputFormat,OutputColorSpace,pSupported) \ - ( (This)->lpVtbl -> CheckVideoProcessorFormatConversion(This,InputFormat,InputColorSpace,OutputFormat,OutputColorSpace,pSupported) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11VideoProcessorEnumerator1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11Device1_INTERFACE_DEFINED__ -#define __ID3D11Device1_INTERFACE_DEFINED__ - -/* interface ID3D11Device1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Device1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a04bfb29-08ef-43d6-a49c-a9bdbdcbe686") - ID3D11Device1 : public ID3D11Device - { - public: - virtual void STDMETHODCALLTYPE GetImmediateContext1( - /* [annotation] */ - _Outptr_ ID3D11DeviceContext1 **ppImmediateContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext1( - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBlendState1( - /* [annotation] */ - _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState1( - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDeviceContextState( - 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) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedResource1( - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedResourceByName( - /* [annotation] */ - _In_ LPCWSTR lpName, - /* [annotation] */ - _In_ DWORD dwDesiredAccess, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Device1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Device1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Device1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * 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 )( - ID3D11Device1 * This, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassLinkage **ppLinkage); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )( - ID3D11Device1 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _COM_Outptr_opt_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D11Device1 * This, - /* [annotation] */ - _Out_ D3D11_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D11Device1 * 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 )( - ID3D11Device1 * This, - D3D11_FEATURE Feature, - /* [annotation] */ - _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )( - ID3D11Device1 * This); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D11Device1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D11Device1 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext )( - ID3D11Device1 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D11Device1 * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D11Device1 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext1 )( - ID3D11Device1 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext1 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext1 )( - ID3D11Device1 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState1 )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateDeviceContextState )( - ID3D11Device1 * 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 )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResourceByName )( - ID3D11Device1 * This, - /* [annotation] */ - _In_ LPCWSTR lpName, - /* [annotation] */ - _In_ DWORD dwDesiredAccess, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - END_INTERFACE - } ID3D11Device1Vtbl; - - interface ID3D11Device1 - { - CONST_VTBL struct ID3D11Device1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Device1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Device1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Device1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Device1_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D11Device1_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D11Device1_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D11Device1_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D11Device1_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D11Device1_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ) - -#define ID3D11Device1_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D11Device1_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D11Device1_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D11Device1_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ) - -#define ID3D11Device1_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ) - -#define ID3D11Device1_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 ID3D11Device1_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ) - -#define ID3D11Device1_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \ - ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ) - -#define ID3D11Device1_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \ - ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ) - -#define ID3D11Device1_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \ - ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ) - -#define ID3D11Device1_CreateClassLinkage(This,ppLinkage) \ - ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) ) - -#define ID3D11Device1_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device1_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D11Device1_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device1_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D11Device1_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D11Device1_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D11Device1_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D11Device1_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D11Device1_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D11Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D11Device1_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D11Device1_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 ID3D11Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D11Device1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Device1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Device1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D11Device1_GetFeatureLevel(This) \ - ( (This)->lpVtbl -> GetFeatureLevel(This) ) - -#define ID3D11Device1_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D11Device1_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D11Device1_GetImmediateContext(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) ) - -#define ID3D11Device1_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D11Device1_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - - -#define ID3D11Device1_GetImmediateContext1(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext1(This,ppImmediateContext) ) - -#define ID3D11Device1_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext1(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device1_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device1_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device1_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) \ - ( (This)->lpVtbl -> CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) ) - -#define ID3D11Device1_OpenSharedResource1(This,hResource,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource1(This,hResource,returnedInterface,ppResource) ) - -#define ID3D11Device1_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Device1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__ -#define __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__ - -/* interface ID3DUserDefinedAnnotation */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3DUserDefinedAnnotation; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab") - ID3DUserDefinedAnnotation : public IUnknown - { - public: - virtual INT STDMETHODCALLTYPE BeginEvent( - /* [annotation] */ - _In_ LPCWSTR Name) = 0; - - virtual INT STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - /* [annotation] */ - _In_ LPCWSTR Name) = 0; - - virtual BOOL STDMETHODCALLTYPE GetStatus( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3DUserDefinedAnnotationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3DUserDefinedAnnotation * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3DUserDefinedAnnotation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3DUserDefinedAnnotation * This); - - INT ( STDMETHODCALLTYPE *BeginEvent )( - ID3DUserDefinedAnnotation * This, - /* [annotation] */ - _In_ LPCWSTR Name); - - INT ( STDMETHODCALLTYPE *EndEvent )( - ID3DUserDefinedAnnotation * This); - - void ( STDMETHODCALLTYPE *SetMarker )( - ID3DUserDefinedAnnotation * This, - /* [annotation] */ - _In_ LPCWSTR Name); - - BOOL ( STDMETHODCALLTYPE *GetStatus )( - ID3DUserDefinedAnnotation * This); - - END_INTERFACE - } ID3DUserDefinedAnnotationVtbl; - - interface ID3DUserDefinedAnnotation - { - CONST_VTBL struct ID3DUserDefinedAnnotationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3DUserDefinedAnnotation_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3DUserDefinedAnnotation_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3DUserDefinedAnnotation_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3DUserDefinedAnnotation_BeginEvent(This,Name) \ - ( (This)->lpVtbl -> BeginEvent(This,Name) ) - -#define ID3DUserDefinedAnnotation_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3DUserDefinedAnnotation_SetMarker(This,Name) \ - ( (This)->lpVtbl -> SetMarker(This,Name) ) - -#define ID3DUserDefinedAnnotation_GetStatus(This) \ - ( (This)->lpVtbl -> GetStatus(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3DUserDefinedAnnotation_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_1_0000_0009 */ -/* [local] */ - -DEFINE_GUID(IID_ID3D11BlendState1,0xcc86fabe,0xda55,0x401d,0x85,0xe7,0xe3,0xc9,0xde,0x28,0x77,0xe9); -DEFINE_GUID(IID_ID3D11RasterizerState1,0x1217d7a6,0x5039,0x418c,0xb0,0x42,0x9c,0xbe,0x25,0x6a,0xfd,0x6e); -DEFINE_GUID(IID_ID3DDeviceContextState,0x5c1e0d8a,0x7c23,0x48f9,0x8c,0x59,0xa9,0x29,0x58,0xce,0xff,0x11); -DEFINE_GUID(IID_ID3D11DeviceContext1,0xbb2c6faa,0xb5fb,0x4082,0x8e,0x6b,0x38,0x8b,0x8c,0xfa,0x90,0xe1); -DEFINE_GUID(IID_ID3D11VideoContext1,0xA7F026DA,0xA5F8,0x4487,0xA5,0x64,0x15,0xE3,0x43,0x57,0x65,0x1E); -DEFINE_GUID(IID_ID3D11VideoDevice1,0x29DA1D51,0x1321,0x4454,0x80,0x4B,0xF5,0xFC,0x9F,0x86,0x1F,0x0F); -DEFINE_GUID(IID_ID3D11VideoProcessorEnumerator1,0x465217F2,0x5568,0x43CF,0xB5,0xB9,0xF6,0x1D,0x54,0x53,0x1C,0xA1); -DEFINE_GUID(IID_ID3D11Device1,0xa04bfb29,0x08ef,0x43d6,0xa4,0x9c,0xa9,0xbd,0xbd,0xcb,0xe6,0x86); -DEFINE_GUID(IID_ID3DUserDefinedAnnotation,0xb2daad8b,0x03d4,0x4dbf,0x95,0xeb,0x32,0xab,0x4b,0x63,0xd0,0xab); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_1_0000_0009_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d11_2.h b/3rdparty/minidx12/Include/d3d11_2.h deleted file mode 100644 index c8dccdc7ca..0000000000 --- a/3rdparty/minidx12/Include/d3d11_2.h +++ /dev/null @@ -1,2721 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_2_h__ -#define __d3d11_2_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D11DeviceContext2_FWD_DEFINED__ -#define __ID3D11DeviceContext2_FWD_DEFINED__ -typedef interface ID3D11DeviceContext2 ID3D11DeviceContext2; - -#endif /* __ID3D11DeviceContext2_FWD_DEFINED__ */ - - -#ifndef __ID3D11Device2_FWD_DEFINED__ -#define __ID3D11Device2_FWD_DEFINED__ -typedef interface ID3D11Device2 ID3D11Device2; - -#endif /* __ID3D11Device2_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi1_3.h" -#include "d3dcommon.h" -#include "d3d11_1.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d11_2_0000_0000 */ -/* [local] */ - -#ifdef __cplusplus -} -#endif -#include "d3d11_1.h" // -#ifdef __cplusplus -extern "C"{ -#endif -typedef struct D3D11_TILED_RESOURCE_COORDINATE - { - UINT X; - UINT Y; - UINT Z; - UINT Subresource; - } D3D11_TILED_RESOURCE_COORDINATE; - -typedef struct D3D11_TILE_REGION_SIZE - { - UINT NumTiles; - BOOL bUseBox; - UINT Width; - UINT16 Height; - UINT16 Depth; - } D3D11_TILE_REGION_SIZE; - -typedef -enum D3D11_TILE_MAPPING_FLAG - { - D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1 - } D3D11_TILE_MAPPING_FLAG; - -typedef -enum D3D11_TILE_RANGE_FLAG - { - D3D11_TILE_RANGE_NULL = 0x1, - D3D11_TILE_RANGE_SKIP = 0x2, - D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4 - } D3D11_TILE_RANGE_FLAG; - -typedef struct D3D11_SUBRESOURCE_TILING - { - UINT WidthInTiles; - UINT16 HeightInTiles; - UINT16 DepthInTiles; - UINT StartTileIndexInOverallResource; - } D3D11_SUBRESOURCE_TILING; - -#define D3D11_PACKED_TILE ( 0xffffffff ) - -typedef struct D3D11_TILE_SHAPE - { - UINT WidthInTexels; - UINT HeightInTexels; - UINT DepthInTexels; - } D3D11_TILE_SHAPE; - -typedef struct D3D11_PACKED_MIP_DESC - { - UINT8 NumStandardMips; - UINT8 NumPackedMips; - UINT NumTilesForPackedMips; - UINT StartTileIndexInOverallResource; - } D3D11_PACKED_MIP_DESC; - -typedef -enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG - { - D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1 - } D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG; - -typedef -enum D3D11_TILE_COPY_FLAG - { - D3D11_TILE_COPY_NO_OVERWRITE = 0x1, - D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, - D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 - } D3D11_TILE_COPY_FLAG; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_2_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_2_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D11DeviceContext2_INTERFACE_DEFINED__ -#define __ID3D11DeviceContext2_INTERFACE_DEFINED__ - -/* interface ID3D11DeviceContext2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DeviceContext2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("420d5b32-b90c-4da4-bef0-359f6a24a83a") - ID3D11DeviceContext2 : public ID3D11DeviceContext1 - { - public: - virtual HRESULT STDMETHODCALLTYPE UpdateTileMappings( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CopyTileMappings( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE CopyTiles( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE UpdateTiles( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResizeTilePool( - /* [annotation] */ - _In_ ID3D11Buffer *pTilePool, - /* [annotation] */ - _In_ UINT64 NewSizeInBytes) = 0; - - virtual void STDMETHODCALLTYPE TiledResourceBarrier( - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier, - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier) = 0; - - virtual BOOL STDMETHODCALLTYPE IsAnnotationEnabled( void) = 0; - - virtual void STDMETHODCALLTYPE SetMarkerInt( - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data) = 0; - - virtual void STDMETHODCALLTYPE BeginEventInt( - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceContext2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DeviceContext2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DeviceContext2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DeviceContext2 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11PixelShader *pPixelShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11VertexShader *pVertexShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11GeometryShader *pShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ D3D11_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - void ( STDMETHODCALLTYPE *End )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync, - /* [annotation] */ - _Out_writes_bytes_opt_( DataSize ) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11BlendState *pBlendState, - /* [annotation] */ - _In_opt_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This); - - void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *DrawInstancedIndirect )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ UINT ThreadGroupCountX, - /* [annotation] */ - _In_ UINT ThreadGroupCountY, - /* [annotation] */ - _In_ UINT ThreadGroupCountZ); - - void ( STDMETHODCALLTYPE *DispatchIndirect )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pDstBuffer, - /* [annotation] */ - _In_ UINT DstAlignedByteOffset, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pSrcView); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const UINT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const FLOAT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *SetResourceMinLOD )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - FLOAT MinLOD); - - FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11CommandList *pCommandList, - BOOL RestoreContextState); - - void ( STDMETHODCALLTYPE *HSSetShaderResources )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11HullShader *pHullShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *HSSetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11DomainShader *pDomainShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DSSetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11ComputeShader *pComputeShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *CSSetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *HSGetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *DSGetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *CSGetSamplers )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D11DeviceContext2 * This); - - D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D11DeviceContext2 * This); - - UINT ( STDMETHODCALLTYPE *GetContextFlags )( - ID3D11DeviceContext2 * This); - - HRESULT ( STDMETHODCALLTYPE *FinishCommandList )( - ID3D11DeviceContext2 * This, - BOOL RestoreDeferredContextState, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11CommandList **ppCommandList); - - void ( STDMETHODCALLTYPE *CopySubresourceRegion1 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *DiscardView )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers1 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3DDeviceContextState *pState, - /* [annotation] */ - _Outptr_opt_ ID3DDeviceContextState **ppPreviousState); - - void ( STDMETHODCALLTYPE *ClearView )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRects, - UINT NumRects); - - HRESULT ( STDMETHODCALLTYPE *UpdateTileMappings )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * 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 )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pTilePool, - /* [annotation] */ - _In_ UINT64 NewSizeInBytes); - - void ( STDMETHODCALLTYPE *TiledResourceBarrier )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier, - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier); - - BOOL ( STDMETHODCALLTYPE *IsAnnotationEnabled )( - ID3D11DeviceContext2 * This); - - void ( STDMETHODCALLTYPE *SetMarkerInt )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data); - - void ( STDMETHODCALLTYPE *BeginEventInt )( - ID3D11DeviceContext2 * This, - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data); - - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D11DeviceContext2 * This); - - END_INTERFACE - } ID3D11DeviceContext2Vtbl; - - interface ID3D11DeviceContext2 - { - CONST_VTBL struct ID3D11DeviceContext2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DeviceContext2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DeviceContext2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DeviceContext2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DeviceContext2_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DeviceContext2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DeviceContext2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DeviceContext2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DeviceContext2_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D11DeviceContext2_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D11DeviceContext2_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) \ - ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) ) - -#define ID3D11DeviceContext2_Unmap(This,pResource,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) ) - -#define ID3D11DeviceContext2_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D11DeviceContext2_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext2_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext2_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D11DeviceContext2_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_Begin(This,pAsync) \ - ( (This)->lpVtbl -> Begin(This,pAsync) ) - -#define ID3D11DeviceContext2_End(This,pAsync) \ - ( (This)->lpVtbl -> End(This,pAsync) ) - -#define ID3D11DeviceContext2_GetData(This,pAsync,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) ) - -#define ID3D11DeviceContext2_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D11DeviceContext2_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D11DeviceContext2_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext2_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D11DeviceContext2_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D11DeviceContext2_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D11DeviceContext2_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D11DeviceContext2_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext2_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D11DeviceContext2_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext2_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D11DeviceContext2_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D11DeviceContext2_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D11DeviceContext2_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D11DeviceContext2_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D11DeviceContext2_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D11DeviceContext2_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) \ - ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) ) - -#define ID3D11DeviceContext2_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D11DeviceContext2_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext2_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext2_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D11DeviceContext2_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D11DeviceContext2_SetResourceMinLOD(This,pResource,MinLOD) \ - ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) ) - -#define ID3D11DeviceContext2_GetResourceMinLOD(This,pResource) \ - ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) ) - -#define ID3D11DeviceContext2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D11DeviceContext2_ExecuteCommandList(This,pCommandList,RestoreContextState) \ - ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) ) - -#define ID3D11DeviceContext2_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext2_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext2_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D11DeviceContext2_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext2_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext2_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D11DeviceContext2_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D11DeviceContext2_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D11DeviceContext2_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext2_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D11DeviceContext2_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D11DeviceContext2_SOGetTargets(This,NumBuffers,ppSOTargets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) ) - -#define ID3D11DeviceContext2_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D11DeviceContext2_RSGetViewports(This,pNumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) ) - -#define ID3D11DeviceContext2_RSGetScissorRects(This,pNumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) ) - -#define ID3D11DeviceContext2_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext2_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext2_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext2_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext2_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext2_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D11DeviceContext2_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D11DeviceContext2_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#define ID3D11DeviceContext2_GetContextFlags(This) \ - ( (This)->lpVtbl -> GetContextFlags(This) ) - -#define ID3D11DeviceContext2_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) \ - ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) ) - - -#define ID3D11DeviceContext2_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 ID3D11DeviceContext2_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) \ - ( (This)->lpVtbl -> UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) ) - -#define ID3D11DeviceContext2_DiscardResource(This,pResource) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource) ) - -#define ID3D11DeviceContext2_DiscardView(This,pResourceView) \ - ( (This)->lpVtbl -> DiscardView(This,pResourceView) ) - -#define ID3D11DeviceContext2_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext2_SwapDeviceContextState(This,pState,ppPreviousState) \ - ( (This)->lpVtbl -> SwapDeviceContextState(This,pState,ppPreviousState) ) - -#define ID3D11DeviceContext2_ClearView(This,pView,Color,pRect,NumRects) \ - ( (This)->lpVtbl -> ClearView(This,pView,Color,pRect,NumRects) ) - -#define ID3D11DeviceContext2_DiscardView1(This,pResourceView,pRects,NumRects) \ - ( (This)->lpVtbl -> DiscardView1(This,pResourceView,pRects,NumRects) ) - - -#define ID3D11DeviceContext2_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 ID3D11DeviceContext2_CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) \ - ( (This)->lpVtbl -> CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) ) - -#define ID3D11DeviceContext2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D11DeviceContext2_UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) \ - ( (This)->lpVtbl -> UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) ) - -#define ID3D11DeviceContext2_ResizeTilePool(This,pTilePool,NewSizeInBytes) \ - ( (This)->lpVtbl -> ResizeTilePool(This,pTilePool,NewSizeInBytes) ) - -#define ID3D11DeviceContext2_TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) \ - ( (This)->lpVtbl -> TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) ) - -#define ID3D11DeviceContext2_IsAnnotationEnabled(This) \ - ( (This)->lpVtbl -> IsAnnotationEnabled(This) ) - -#define ID3D11DeviceContext2_SetMarkerInt(This,pLabel,Data) \ - ( (This)->lpVtbl -> SetMarkerInt(This,pLabel,Data) ) - -#define ID3D11DeviceContext2_BeginEventInt(This,pLabel,Data) \ - ( (This)->lpVtbl -> BeginEventInt(This,pLabel,Data) ) - -#define ID3D11DeviceContext2_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DeviceContext2_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11Device2_INTERFACE_DEFINED__ -#define __ID3D11Device2_INTERFACE_DEFINED__ - -/* interface ID3D11Device2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Device2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9d06dffa-d1e5-4d07-83a8-1bb123f2f841") - ID3D11Device2 : public ID3D11Device1 - { - public: - virtual void STDMETHODCALLTYPE GetImmediateContext2( - /* [annotation] */ - _Outptr_ ID3D11DeviceContext2 **ppImmediateContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext2( - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext2 **ppDeferredContext) = 0; - - virtual void STDMETHODCALLTYPE GetResourceTiling( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckMultisampleQualityLevels1( - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _In_ UINT Flags, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Device2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Device2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Device2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Device2 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * 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 )( - ID3D11Device2 * This, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassLinkage **ppLinkage); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )( - ID3D11Device2 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _COM_Outptr_opt_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D11Device2 * This, - /* [annotation] */ - _Out_ D3D11_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D11Device2 * 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 )( - ID3D11Device2 * This, - D3D11_FEATURE Feature, - /* [annotation] */ - _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )( - ID3D11Device2 * This); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D11Device2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D11Device2 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext )( - ID3D11Device2 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D11Device2 * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D11Device2 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext1 )( - ID3D11Device2 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext1 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext1 )( - ID3D11Device2 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState1 )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateDeviceContextState )( - ID3D11Device2 * 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 )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResourceByName )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ LPCWSTR lpName, - /* [annotation] */ - _In_ DWORD dwDesiredAccess, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - void ( STDMETHODCALLTYPE *GetImmediateContext2 )( - ID3D11Device2 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext2 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext2 )( - ID3D11Device2 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext2 **ppDeferredContext); - - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D11Device2 * 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 )( - ID3D11Device2 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _In_ UINT Flags, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - END_INTERFACE - } ID3D11Device2Vtbl; - - interface ID3D11Device2 - { - CONST_VTBL struct ID3D11Device2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Device2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Device2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Device2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Device2_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D11Device2_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D11Device2_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D11Device2_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D11Device2_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D11Device2_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ) - -#define ID3D11Device2_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D11Device2_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D11Device2_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D11Device2_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ) - -#define ID3D11Device2_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ) - -#define ID3D11Device2_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 ID3D11Device2_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ) - -#define ID3D11Device2_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \ - ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ) - -#define ID3D11Device2_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \ - ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ) - -#define ID3D11Device2_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \ - ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ) - -#define ID3D11Device2_CreateClassLinkage(This,ppLinkage) \ - ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) ) - -#define ID3D11Device2_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device2_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D11Device2_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device2_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D11Device2_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D11Device2_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D11Device2_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D11Device2_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device2_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D11Device2_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D11Device2_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D11Device2_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D11Device2_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 ID3D11Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D11Device2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Device2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Device2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D11Device2_GetFeatureLevel(This) \ - ( (This)->lpVtbl -> GetFeatureLevel(This) ) - -#define ID3D11Device2_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D11Device2_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D11Device2_GetImmediateContext(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) ) - -#define ID3D11Device2_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D11Device2_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - - -#define ID3D11Device2_GetImmediateContext1(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext1(This,ppImmediateContext) ) - -#define ID3D11Device2_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext1(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device2_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device2_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device2_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) \ - ( (This)->lpVtbl -> CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) ) - -#define ID3D11Device2_OpenSharedResource1(This,hResource,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource1(This,hResource,returnedInterface,ppResource) ) - -#define ID3D11Device2_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) ) - - -#define ID3D11Device2_GetImmediateContext2(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext2(This,ppImmediateContext) ) - -#define ID3D11Device2_CreateDeferredContext2(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext2(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) - -#define ID3D11Device2_CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Device2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_2_0000_0002 */ -/* [local] */ - -DEFINE_GUID(IID_ID3D11DeviceContext2,0x420d5b32,0xb90c,0x4da4,0xbe,0xf0,0x35,0x9f,0x6a,0x24,0xa8,0x3a); -DEFINE_GUID(IID_ID3D11Device2,0x9d06dffa,0xd1e5,0x4d07,0x83,0xa8,0x1b,0xb1,0x23,0xf2,0xf8,0x41); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_2_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_2_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/d3d11_3.h b/3rdparty/minidx12/Include/d3d11_3.h deleted file mode 100644 index 76922367dc..0000000000 --- a/3rdparty/minidx12/Include/d3d11_3.h +++ /dev/null @@ -1,4817 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_3_h__ -#define __d3d11_3_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D11Texture2D1_FWD_DEFINED__ -#define __ID3D11Texture2D1_FWD_DEFINED__ -typedef interface ID3D11Texture2D1 ID3D11Texture2D1; - -#endif /* __ID3D11Texture2D1_FWD_DEFINED__ */ - - -#ifndef __ID3D11Texture3D1_FWD_DEFINED__ -#define __ID3D11Texture3D1_FWD_DEFINED__ -typedef interface ID3D11Texture3D1 ID3D11Texture3D1; - -#endif /* __ID3D11Texture3D1_FWD_DEFINED__ */ - - -#ifndef __ID3D11RasterizerState2_FWD_DEFINED__ -#define __ID3D11RasterizerState2_FWD_DEFINED__ -typedef interface ID3D11RasterizerState2 ID3D11RasterizerState2; - -#endif /* __ID3D11RasterizerState2_FWD_DEFINED__ */ - - -#ifndef __ID3D11ShaderResourceView1_FWD_DEFINED__ -#define __ID3D11ShaderResourceView1_FWD_DEFINED__ -typedef interface ID3D11ShaderResourceView1 ID3D11ShaderResourceView1; - -#endif /* __ID3D11ShaderResourceView1_FWD_DEFINED__ */ - - -#ifndef __ID3D11RenderTargetView1_FWD_DEFINED__ -#define __ID3D11RenderTargetView1_FWD_DEFINED__ -typedef interface ID3D11RenderTargetView1 ID3D11RenderTargetView1; - -#endif /* __ID3D11RenderTargetView1_FWD_DEFINED__ */ - - -#ifndef __ID3D11UnorderedAccessView1_FWD_DEFINED__ -#define __ID3D11UnorderedAccessView1_FWD_DEFINED__ -typedef interface ID3D11UnorderedAccessView1 ID3D11UnorderedAccessView1; - -#endif /* __ID3D11UnorderedAccessView1_FWD_DEFINED__ */ - - -#ifndef __ID3D11Query1_FWD_DEFINED__ -#define __ID3D11Query1_FWD_DEFINED__ -typedef interface ID3D11Query1 ID3D11Query1; - -#endif /* __ID3D11Query1_FWD_DEFINED__ */ - - -#ifndef __ID3D11DeviceContext3_FWD_DEFINED__ -#define __ID3D11DeviceContext3_FWD_DEFINED__ -typedef interface ID3D11DeviceContext3 ID3D11DeviceContext3; - -#endif /* __ID3D11DeviceContext3_FWD_DEFINED__ */ - - -#ifndef __ID3D11Device3_FWD_DEFINED__ -#define __ID3D11Device3_FWD_DEFINED__ -typedef interface ID3D11Device3 ID3D11Device3; - -#endif /* __ID3D11Device3_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi1_3.h" -#include "d3dcommon.h" -#include "d3d11_2.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d11_3_0000_0000 */ -/* [local] */ - -#ifdef __cplusplus -} -#endif -#include "d3d11_2.h" // -#ifdef __cplusplus -extern "C"{ -#endif -typedef -enum D3D11_CONTEXT_TYPE - { - D3D11_CONTEXT_TYPE_ALL = 0, - D3D11_CONTEXT_TYPE_3D = 1, - D3D11_CONTEXT_TYPE_COMPUTE = 2, - D3D11_CONTEXT_TYPE_COPY = 3, - D3D11_CONTEXT_TYPE_VIDEO = 4 - } D3D11_CONTEXT_TYPE; - -typedef -enum D3D11_TEXTURE_LAYOUT - { - D3D11_TEXTURE_LAYOUT_UNDEFINED = 0, - D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1, - D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2 - } D3D11_TEXTURE_LAYOUT; - -typedef struct D3D11_TEXTURE2D_DESC1 - { - UINT Width; - UINT Height; - UINT MipLevels; - UINT ArraySize; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - D3D11_TEXTURE_LAYOUT TextureLayout; - } D3D11_TEXTURE2D_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_TEXTURE2D_DESC1 : public D3D11_TEXTURE2D_DESC1 -{ - CD3D11_TEXTURE2D_DESC1() - {} - explicit CD3D11_TEXTURE2D_DESC1( const D3D11_TEXTURE2D_DESC1& o ) : - D3D11_TEXTURE2D_DESC1( o ) - {} - explicit CD3D11_TEXTURE2D_DESC1( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT arraySize = 1, - UINT mipLevels = 0, - UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - UINT miscFlags = 0, - D3D11_TEXTURE_LAYOUT textureLayout = D3D11_TEXTURE_LAYOUT_UNDEFINED) - { - Width = width; - Height = height; - MipLevels = mipLevels; - ArraySize = arraySize; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - TextureLayout = textureLayout; - } - explicit CD3D11_TEXTURE2D_DESC1( - const D3D11_TEXTURE2D_DESC &desc, - D3D11_TEXTURE_LAYOUT textureLayout = D3D11_TEXTURE_LAYOUT_UNDEFINED) - { - Width = desc.Width; - Height = desc.Height; - MipLevels = desc.MipLevels; - ArraySize = desc.ArraySize; - Format = desc.Format; - SampleDesc.Count = desc.SampleDesc.Count; - SampleDesc.Quality = desc. SampleDesc.Quality; - Usage = desc.Usage; - BindFlags = desc.BindFlags; - CPUAccessFlags = desc.CPUAccessFlags; - MiscFlags = desc.MiscFlags; - TextureLayout = textureLayout; - } - ~CD3D11_TEXTURE2D_DESC1() {} - operator const D3D11_TEXTURE2D_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D11Texture2D1_INTERFACE_DEFINED__ -#define __ID3D11Texture2D1_INTERFACE_DEFINED__ - -/* interface ID3D11Texture2D1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Texture2D1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("51218251-1E33-4617-9CCB-4D3A4367E7BB") - ID3D11Texture2D1 : public ID3D11Texture2D - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_TEXTURE2D_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Texture2D1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Texture2D1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Texture2D1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Texture2D1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Texture2D1 * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE2D_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11Texture2D1 * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE2D_DESC1 *pDesc); - - END_INTERFACE - } ID3D11Texture2D1Vtbl; - - interface ID3D11Texture2D1 - { - CONST_VTBL struct ID3D11Texture2D1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Texture2D1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Texture2D1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Texture2D1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Texture2D1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Texture2D1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Texture2D1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Texture2D1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Texture2D1_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Texture2D1_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Texture2D1_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Texture2D1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11Texture2D1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Texture2D1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0001 */ -/* [local] */ - -typedef struct D3D11_TEXTURE3D_DESC1 - { - UINT Width; - UINT Height; - UINT Depth; - UINT MipLevels; - DXGI_FORMAT Format; - D3D11_USAGE Usage; - UINT BindFlags; - UINT CPUAccessFlags; - UINT MiscFlags; - D3D11_TEXTURE_LAYOUT TextureLayout; - } D3D11_TEXTURE3D_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_TEXTURE3D_DESC1 : public D3D11_TEXTURE3D_DESC1 -{ - CD3D11_TEXTURE3D_DESC1() - {} - explicit CD3D11_TEXTURE3D_DESC1( const D3D11_TEXTURE3D_DESC1& o ) : - D3D11_TEXTURE3D_DESC1( o ) - {} - explicit CD3D11_TEXTURE3D_DESC1( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT mipLevels = 0, - UINT bindFlags = D3D11_BIND_SHADER_RESOURCE, - D3D11_USAGE usage = D3D11_USAGE_DEFAULT, - UINT cpuaccessFlags = 0, - UINT miscFlags = 0, - D3D11_TEXTURE_LAYOUT textureLayout = D3D11_TEXTURE_LAYOUT_UNDEFINED) - { - Width = width; - Height = height; - Depth = depth; - MipLevels = mipLevels; - Format = format; - Usage = usage; - BindFlags = bindFlags; - CPUAccessFlags = cpuaccessFlags; - MiscFlags = miscFlags; - TextureLayout = textureLayout; - } - explicit CD3D11_TEXTURE3D_DESC1( - const D3D11_TEXTURE3D_DESC &desc, - D3D11_TEXTURE_LAYOUT textureLayout = D3D11_TEXTURE_LAYOUT_UNDEFINED) - { - Width = desc.Width; - Height = desc.Height; - Depth = desc.Depth; - MipLevels = desc.MipLevels; - Format = desc.Format; - Usage = desc.Usage; - BindFlags = desc.BindFlags; - CPUAccessFlags = desc.CPUAccessFlags; - MiscFlags = desc.MiscFlags; - TextureLayout = textureLayout; - } - ~CD3D11_TEXTURE3D_DESC1() {} - operator const D3D11_TEXTURE3D_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D11Texture3D1_INTERFACE_DEFINED__ -#define __ID3D11Texture3D1_INTERFACE_DEFINED__ - -/* interface ID3D11Texture3D1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Texture3D1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0C711683-2853-4846-9BB0-F3E60639E46A") - ID3D11Texture3D1 : public ID3D11Texture3D - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_TEXTURE3D_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Texture3D1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Texture3D1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Texture3D1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Texture3D1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetType )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _Out_ D3D11_RESOURCE_DIMENSION *pResourceDimension); - - void ( STDMETHODCALLTYPE *SetEvictionPriority )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _In_ UINT EvictionPriority); - - UINT ( STDMETHODCALLTYPE *GetEvictionPriority )( - ID3D11Texture3D1 * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE3D_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11Texture3D1 * This, - /* [annotation] */ - _Out_ D3D11_TEXTURE3D_DESC1 *pDesc); - - END_INTERFACE - } ID3D11Texture3D1Vtbl; - - interface ID3D11Texture3D1 - { - CONST_VTBL struct ID3D11Texture3D1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Texture3D1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Texture3D1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Texture3D1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Texture3D1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Texture3D1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Texture3D1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Texture3D1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Texture3D1_GetType(This,pResourceDimension) \ - ( (This)->lpVtbl -> GetType(This,pResourceDimension) ) - -#define ID3D11Texture3D1_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define ID3D11Texture3D1_GetEvictionPriority(This) \ - ( (This)->lpVtbl -> GetEvictionPriority(This) ) - - -#define ID3D11Texture3D1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11Texture3D1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Texture3D1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0002 */ -/* [local] */ - -typedef -enum D3D11_CONSERVATIVE_RASTERIZATION_MODE - { - D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, - D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 - } D3D11_CONSERVATIVE_RASTERIZATION_MODE; - -typedef struct D3D11_RASTERIZER_DESC2 - { - D3D11_FILL_MODE FillMode; - D3D11_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL ScissorEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; - } D3D11_RASTERIZER_DESC2; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RASTERIZER_DESC2 : public D3D11_RASTERIZER_DESC2 -{ - CD3D11_RASTERIZER_DESC2() - {} - explicit CD3D11_RASTERIZER_DESC2( const D3D11_RASTERIZER_DESC2& o ) : - D3D11_RASTERIZER_DESC2( o ) - {} - explicit CD3D11_RASTERIZER_DESC2( CD3D11_DEFAULT ) - { - FillMode = D3D11_FILL_SOLID; - CullMode = D3D11_CULL_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D11_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - ScissorEnable = FALSE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3D11_RASTERIZER_DESC2( - D3D11_FILL_MODE fillMode, - D3D11_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL scissorEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D11_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster ) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - ScissorEnable = scissorEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - ~CD3D11_RASTERIZER_DESC2() {} - operator const D3D11_RASTERIZER_DESC2&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0002_v0_0_s_ifspec; - -#ifndef __ID3D11RasterizerState2_INTERFACE_DEFINED__ -#define __ID3D11RasterizerState2_INTERFACE_DEFINED__ - -/* interface ID3D11RasterizerState2 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11RasterizerState2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6fbd02fb-209f-46c4-b059-2ed15586a6ac") - ID3D11RasterizerState2 : public ID3D11RasterizerState1 - { - public: - virtual void STDMETHODCALLTYPE GetDesc2( - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC2 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11RasterizerState2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11RasterizerState2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11RasterizerState2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11RasterizerState2 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC1 *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc2 )( - ID3D11RasterizerState2 * This, - /* [annotation] */ - _Out_ D3D11_RASTERIZER_DESC2 *pDesc); - - END_INTERFACE - } ID3D11RasterizerState2Vtbl; - - interface ID3D11RasterizerState2 - { - CONST_VTBL struct ID3D11RasterizerState2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11RasterizerState2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11RasterizerState2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11RasterizerState2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11RasterizerState2_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11RasterizerState2_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11RasterizerState2_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11RasterizerState2_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11RasterizerState2_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11RasterizerState2_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - - -#define ID3D11RasterizerState2_GetDesc2(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc2(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11RasterizerState2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0003 */ -/* [local] */ - -typedef struct D3D11_TEX2D_SRV1 - { - UINT MostDetailedMip; - UINT MipLevels; - UINT PlaneSlice; - } D3D11_TEX2D_SRV1; - -typedef struct D3D11_TEX2D_ARRAY_SRV1 - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D11_TEX2D_ARRAY_SRV1; - -typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC1 - { - DXGI_FORMAT Format; - D3D11_SRV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_SRV Buffer; - D3D11_TEX1D_SRV Texture1D; - D3D11_TEX1D_ARRAY_SRV Texture1DArray; - D3D11_TEX2D_SRV1 Texture2D; - D3D11_TEX2D_ARRAY_SRV1 Texture2DArray; - D3D11_TEX2DMS_SRV Texture2DMS; - D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D11_TEX3D_SRV Texture3D; - D3D11_TEXCUBE_SRV TextureCube; - D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; - D3D11_BUFFEREX_SRV BufferEx; - } ; - } D3D11_SHADER_RESOURCE_VIEW_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_SHADER_RESOURCE_VIEW_DESC1 : public D3D11_SHADER_RESOURCE_VIEW_DESC1 -{ - CD3D11_SHADER_RESOURCE_VIEW_DESC1() - {} - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( const D3D11_SHADER_RESOURCE_VIEW_DESC1& o ) : - D3D11_SHADER_RESOURCE_VIEW_DESC1( o ) - {} - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, // FirstElement for BUFFER - UINT mipLevels = -1, // NumElements for BUFFER - UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY - UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY - UINT flags = 0, // BUFFEREX only - UINT planeSlice = 0 ) // Texture2D and Texture2DArray only - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_BUFFER: - Buffer.FirstElement = mostDetailedMip; - Buffer.NumElements = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1D: - Texture1D.MostDetailedMip = mostDetailedMip; - Texture1D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MostDetailedMip = mostDetailedMip; - Texture1DArray.MipLevels = mipLevels; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE2D: - Texture2D.MostDetailedMip = mostDetailedMip; - Texture2D.MipLevels = mipLevels; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MostDetailedMip = mostDetailedMip; - Texture2DArray.MipLevels = mipLevels; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURE3D: - Texture3D.MostDetailedMip = mostDetailedMip; - Texture3D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBE: - TextureCube.MostDetailedMip = mostDetailedMip; - TextureCube.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: - TextureCubeArray.MostDetailedMip = mostDetailedMip; - TextureCubeArray.MipLevels = mipLevels; - TextureCubeArray.First2DArrayFace = firstArraySlice; - TextureCubeArray.NumCubes = arraySize; - break; - case D3D11_SRV_DIMENSION_BUFFEREX: - BufferEx.FirstElement = mostDetailedMip; - BufferEx.NumElements = mipLevels; - BufferEx.Flags = flags; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements, - UINT flags = 0 ) - { - Format = format; - ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX; - BufferEx.FirstElement = firstElement; - BufferEx.NumElements = numElements; - BufferEx.Flags = flags; - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( - _In_ ID3D11Texture1D* pTex1D, - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels || - (-1 == arraySize && D3D11_SRV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_TEXTURE1D: - Texture1D.MostDetailedMip = mostDetailedMip; - Texture1D.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MostDetailedMip = mostDetailedMip; - Texture1DArray.MipLevels = mipLevels; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( - _In_ ID3D11Texture2D* pTex2D, - D3D11_SRV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1, - UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY - UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY - UINT planeSlice = 0 ) // PlaneSlice for TEXTURE2D or TEXTURE2DARRAY - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == mipLevels && - D3D11_SRV_DIMENSION_TEXTURE2DMS != viewDimension && - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY != viewDimension) || - (-1 == arraySize && - (D3D11_SRV_DIMENSION_TEXTURE2DARRAY == viewDimension || - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY == viewDimension || - D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension))) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - if (-1 == arraySize) - { - arraySize = TexDesc.ArraySize - firstArraySlice; - if (D3D11_SRV_DIMENSION_TEXTURECUBEARRAY == viewDimension) arraySize /= 6; - } - } - Format = format; - switch (viewDimension) - { - case D3D11_SRV_DIMENSION_TEXTURE2D: - Texture2D.MostDetailedMip = mostDetailedMip; - Texture2D.MipLevels = mipLevels; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MostDetailedMip = mostDetailedMip; - Texture2DArray.MipLevels = mipLevels; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBE: - TextureCube.MostDetailedMip = mostDetailedMip; - TextureCube.MipLevels = mipLevels; - break; - case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: - TextureCubeArray.MostDetailedMip = mostDetailedMip; - TextureCubeArray.MipLevels = mipLevels; - TextureCubeArray.First2DArrayFace = firstArraySlice; - TextureCubeArray.NumCubes = arraySize; - break; - default: break; - } - } - explicit CD3D11_SHADER_RESOURCE_VIEW_DESC1( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mostDetailedMip = 0, - UINT mipLevels = -1 ) - { - ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == mipLevels) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == mipLevels) mipLevels = TexDesc.MipLevels - mostDetailedMip; - } - Format = format; - Texture3D.MostDetailedMip = mostDetailedMip; - Texture3D.MipLevels = mipLevels; - } - ~CD3D11_SHADER_RESOURCE_VIEW_DESC1() {} - operator const D3D11_SHADER_RESOURCE_VIEW_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0003_v0_0_s_ifspec; - -#ifndef __ID3D11ShaderResourceView1_INTERFACE_DEFINED__ -#define __ID3D11ShaderResourceView1_INTERFACE_DEFINED__ - -/* interface ID3D11ShaderResourceView1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11ShaderResourceView1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("91308b87-9040-411d-8c67-c39253ce3802") - ID3D11ShaderResourceView1 : public ID3D11ShaderResourceView - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11ShaderResourceView1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11ShaderResourceView1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11ShaderResourceView1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11ShaderResourceView1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _Out_ D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11ShaderResourceView1 * This, - /* [annotation] */ - _Out_ D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1); - - END_INTERFACE - } ID3D11ShaderResourceView1Vtbl; - - interface ID3D11ShaderResourceView1 - { - CONST_VTBL struct ID3D11ShaderResourceView1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11ShaderResourceView1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11ShaderResourceView1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11ShaderResourceView1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11ShaderResourceView1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11ShaderResourceView1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11ShaderResourceView1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11ShaderResourceView1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11ShaderResourceView1_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11ShaderResourceView1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11ShaderResourceView1_GetDesc1(This,pDesc1) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc1) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11ShaderResourceView1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0004 */ -/* [local] */ - -typedef struct D3D11_TEX2D_RTV1 - { - UINT MipSlice; - UINT PlaneSlice; - } D3D11_TEX2D_RTV1; - -typedef struct D3D11_TEX2D_ARRAY_RTV1 - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D11_TEX2D_ARRAY_RTV1; - -typedef struct D3D11_RENDER_TARGET_VIEW_DESC1 - { - DXGI_FORMAT Format; - D3D11_RTV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_RTV Buffer; - D3D11_TEX1D_RTV Texture1D; - D3D11_TEX1D_ARRAY_RTV Texture1DArray; - D3D11_TEX2D_RTV1 Texture2D; - D3D11_TEX2D_ARRAY_RTV1 Texture2DArray; - D3D11_TEX2DMS_RTV Texture2DMS; - D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D11_TEX3D_RTV Texture3D; - } ; - } D3D11_RENDER_TARGET_VIEW_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_RENDER_TARGET_VIEW_DESC1 : public D3D11_RENDER_TARGET_VIEW_DESC1 -{ - CD3D11_RENDER_TARGET_VIEW_DESC1() - {} - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( const D3D11_RENDER_TARGET_VIEW_DESC1& o ) : - D3D11_RENDER_TARGET_VIEW_DESC1( o ) - {} - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, // FirstElement for BUFFER - UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D - UINT arraySize = -1, // WSize for TEXTURE3D - UINT planeSlice = 0 ) // PlaneSlice for TEXTURE2D and TEXTURE2DARRAY - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_BUFFER: - Buffer.FirstElement = mipSlice; - Buffer.NumElements = firstArraySlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - case D3D11_RTV_DIMENSION_TEXTURE3D: - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstArraySlice; - Texture3D.WSize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements ) - { - Format = format; - ViewDimension = D3D11_RTV_DIMENSION_BUFFER; - Buffer.FirstElement = firstElement; - Buffer.NumElements = numElements; - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( - _In_ ID3D11Texture1D* pTex1D, - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_RTV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( - _In_ ID3D11Texture2D* pTex2D, - D3D11_RTV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1, - UINT planeSlice = 0 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && - (D3D11_RTV_DIMENSION_TEXTURE2DARRAY == viewDimension || - D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY == viewDimension))) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_RTV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMS: - break; - case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: - Texture2DMSArray.FirstArraySlice = firstArraySlice; - Texture2DMSArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_RENDER_TARGET_VIEW_DESC1( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstWSlice = 0, - UINT wSize = -1 ) - { - ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; - } - Format = format; - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstWSlice; - Texture3D.WSize = wSize; - } - ~CD3D11_RENDER_TARGET_VIEW_DESC1() {} - operator const D3D11_RENDER_TARGET_VIEW_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0004_v0_0_s_ifspec; - -#ifndef __ID3D11RenderTargetView1_INTERFACE_DEFINED__ -#define __ID3D11RenderTargetView1_INTERFACE_DEFINED__ - -/* interface ID3D11RenderTargetView1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11RenderTargetView1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ffbe2e23-f011-418a-ac56-5ceed7c5b94b") - ID3D11RenderTargetView1 : public ID3D11RenderTargetView - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11RenderTargetView1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11RenderTargetView1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11RenderTargetView1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11RenderTargetView1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _Out_ D3D11_RENDER_TARGET_VIEW_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11RenderTargetView1 * This, - /* [annotation] */ - _Out_ D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1); - - END_INTERFACE - } ID3D11RenderTargetView1Vtbl; - - interface ID3D11RenderTargetView1 - { - CONST_VTBL struct ID3D11RenderTargetView1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11RenderTargetView1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11RenderTargetView1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11RenderTargetView1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11RenderTargetView1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11RenderTargetView1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11RenderTargetView1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11RenderTargetView1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11RenderTargetView1_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11RenderTargetView1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11RenderTargetView1_GetDesc1(This,pDesc1) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc1) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11RenderTargetView1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0005 */ -/* [local] */ - -typedef struct D3D11_TEX2D_UAV1 - { - UINT MipSlice; - UINT PlaneSlice; - } D3D11_TEX2D_UAV1; - -typedef struct D3D11_TEX2D_ARRAY_UAV1 - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D11_TEX2D_ARRAY_UAV1; - -typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC1 - { - DXGI_FORMAT Format; - D3D11_UAV_DIMENSION ViewDimension; - union - { - D3D11_BUFFER_UAV Buffer; - D3D11_TEX1D_UAV Texture1D; - D3D11_TEX1D_ARRAY_UAV Texture1DArray; - D3D11_TEX2D_UAV1 Texture2D; - D3D11_TEX2D_ARRAY_UAV1 Texture2DArray; - D3D11_TEX3D_UAV Texture3D; - } ; - } D3D11_UNORDERED_ACCESS_VIEW_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_UNORDERED_ACCESS_VIEW_DESC1 : public D3D11_UNORDERED_ACCESS_VIEW_DESC1 -{ - CD3D11_UNORDERED_ACCESS_VIEW_DESC1() - {} - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( const D3D11_UNORDERED_ACCESS_VIEW_DESC1& o ) : - D3D11_UNORDERED_ACCESS_VIEW_DESC1( o ) - {} - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, // FirstElement for BUFFER - UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D - UINT arraySize = -1, // WSize for TEXTURE3D - UINT flags = 0, // BUFFER only - UINT planeSlice = 0 ) // PlaneSlice for TEXTURE2D and TEXTURE2DARRAY - { - Format = format; - ViewDimension = viewDimension; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_BUFFER: - Buffer.FirstElement = mipSlice; - Buffer.NumElements = firstArraySlice; - Buffer.Flags = flags; - break; - case D3D11_UAV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - case D3D11_UAV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE3D: - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstArraySlice; - Texture3D.WSize = arraySize; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( - _In_ ID3D11Buffer*, - DXGI_FORMAT format, - UINT firstElement, - UINT numElements, - UINT flags = 0 ) - { - Format = format; - ViewDimension = D3D11_UAV_DIMENSION_BUFFER; - Buffer.FirstElement = firstElement; - Buffer.NumElements = numElements; - Buffer.Flags = flags; - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( - _In_ ID3D11Texture1D* pTex1D, - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE1DARRAY == viewDimension)) - { - D3D11_TEXTURE1D_DESC TexDesc; - pTex1D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_TEXTURE1D: - Texture1D.MipSlice = mipSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: - Texture1DArray.MipSlice = mipSlice; - Texture1DArray.FirstArraySlice = firstArraySlice; - Texture1DArray.ArraySize = arraySize; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( - _In_ ID3D11Texture2D* pTex2D, - D3D11_UAV_DIMENSION viewDimension, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstArraySlice = 0, - UINT arraySize = -1, - UINT planeSlice = 0 ) - { - ViewDimension = viewDimension; - if (DXGI_FORMAT_UNKNOWN == format || - (-1 == arraySize && D3D11_UAV_DIMENSION_TEXTURE2DARRAY == viewDimension)) - { - D3D11_TEXTURE2D_DESC TexDesc; - pTex2D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == arraySize) arraySize = TexDesc.ArraySize - firstArraySlice; - } - Format = format; - switch (viewDimension) - { - case D3D11_UAV_DIMENSION_TEXTURE2D: - Texture2D.MipSlice = mipSlice; - Texture2D.PlaneSlice = planeSlice; - break; - case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: - Texture2DArray.MipSlice = mipSlice; - Texture2DArray.FirstArraySlice = firstArraySlice; - Texture2DArray.ArraySize = arraySize; - Texture2DArray.PlaneSlice = planeSlice; - break; - default: break; - } - } - explicit CD3D11_UNORDERED_ACCESS_VIEW_DESC1( - _In_ ID3D11Texture3D* pTex3D, - DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, - UINT mipSlice = 0, - UINT firstWSlice = 0, - UINT wSize = -1 ) - { - ViewDimension = D3D11_UAV_DIMENSION_TEXTURE3D; - if (DXGI_FORMAT_UNKNOWN == format || -1 == wSize) - { - D3D11_TEXTURE3D_DESC TexDesc; - pTex3D->GetDesc( &TexDesc ); - if (DXGI_FORMAT_UNKNOWN == format) format = TexDesc.Format; - if (-1 == wSize) wSize = TexDesc.Depth - firstWSlice; - } - Format = format; - Texture3D.MipSlice = mipSlice; - Texture3D.FirstWSlice = firstWSlice; - Texture3D.WSize = wSize; - } - ~CD3D11_UNORDERED_ACCESS_VIEW_DESC1() {} - operator const D3D11_UNORDERED_ACCESS_VIEW_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0005_v0_0_s_ifspec; - -#ifndef __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__ -#define __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__ - -/* interface ID3D11UnorderedAccessView1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11UnorderedAccessView1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7b3b6153-a886-4544-ab37-6537c8500403") - ID3D11UnorderedAccessView1 : public ID3D11UnorderedAccessView - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11UnorderedAccessView1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11UnorderedAccessView1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11UnorderedAccessView1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11UnorderedAccessView1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *GetResource )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _Outptr_ ID3D11Resource **ppResource); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _Out_ D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11UnorderedAccessView1 * This, - /* [annotation] */ - _Out_ D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1); - - END_INTERFACE - } ID3D11UnorderedAccessView1Vtbl; - - interface ID3D11UnorderedAccessView1 - { - CONST_VTBL struct ID3D11UnorderedAccessView1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11UnorderedAccessView1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11UnorderedAccessView1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11UnorderedAccessView1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11UnorderedAccessView1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11UnorderedAccessView1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11UnorderedAccessView1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11UnorderedAccessView1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11UnorderedAccessView1_GetResource(This,ppResource) \ - ( (This)->lpVtbl -> GetResource(This,ppResource) ) - - -#define ID3D11UnorderedAccessView1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11UnorderedAccessView1_GetDesc1(This,pDesc1) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc1) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11UnorderedAccessView1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0006 */ -/* [local] */ - -typedef struct D3D11_QUERY_DESC1 - { - D3D11_QUERY Query; - UINT MiscFlags; - D3D11_CONTEXT_TYPE ContextType; - } D3D11_QUERY_DESC1; - -#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus ) -} -struct CD3D11_QUERY_DESC1 : public D3D11_QUERY_DESC1 -{ - CD3D11_QUERY_DESC1() - {} - explicit CD3D11_QUERY_DESC1( const D3D11_QUERY_DESC1& o ) : - D3D11_QUERY_DESC1( o ) - {} - explicit CD3D11_QUERY_DESC1( - D3D11_QUERY query, - UINT miscFlags = 0, - D3D11_CONTEXT_TYPE contextType = D3D11_CONTEXT_TYPE_ALL ) - { - Query = query; - MiscFlags = miscFlags; - ContextType = contextType; - } - ~CD3D11_QUERY_DESC1() {} - operator const D3D11_QUERY_DESC1&() const { return *this; } -}; -extern "C"{ -#endif - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11_3_0000_0006_v0_0_s_ifspec; - -#ifndef __ID3D11Query1_INTERFACE_DEFINED__ -#define __ID3D11Query1_INTERFACE_DEFINED__ - -/* interface ID3D11Query1 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Query1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("631b4766-36dc-461d-8db6-c47e13e60916") - ID3D11Query1 : public ID3D11Query - { - public: - virtual void STDMETHODCALLTYPE GetDesc1( - /* [annotation] */ - _Out_ D3D11_QUERY_DESC1 *pDesc1) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Query1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Query1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Query1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Query1 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11Query1 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Query1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Query1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Query1 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - UINT ( STDMETHODCALLTYPE *GetDataSize )( - ID3D11Query1 * This); - - void ( STDMETHODCALLTYPE *GetDesc )( - ID3D11Query1 * This, - /* [annotation] */ - _Out_ D3D11_QUERY_DESC *pDesc); - - void ( STDMETHODCALLTYPE *GetDesc1 )( - ID3D11Query1 * This, - /* [annotation] */ - _Out_ D3D11_QUERY_DESC1 *pDesc1); - - END_INTERFACE - } ID3D11Query1Vtbl; - - interface ID3D11Query1 - { - CONST_VTBL struct ID3D11Query1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Query1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Query1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Query1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Query1_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11Query1_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Query1_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Query1_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11Query1_GetDataSize(This) \ - ( (This)->lpVtbl -> GetDataSize(This) ) - - -#define ID3D11Query1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - - -#define ID3D11Query1_GetDesc1(This,pDesc1) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc1) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Query1_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11DeviceContext3_INTERFACE_DEFINED__ -#define __ID3D11DeviceContext3_INTERFACE_DEFINED__ - -/* interface ID3D11DeviceContext3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11DeviceContext3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("b4e3c01d-e79e-4637-91b2-510e9f4c9b8f") - ID3D11DeviceContext3 : public ID3D11DeviceContext2 - { - public: - virtual void STDMETHODCALLTYPE Flush1( - D3D11_CONTEXT_TYPE ContextType, - /* [annotation] */ - _In_opt_ HANDLE hEvent) = 0; - - virtual void STDMETHODCALLTYPE SetHardwareProtectionState( - /* [annotation] */ - _In_ BOOL HwProtectionEnable) = 0; - - virtual void STDMETHODCALLTYPE GetHardwareProtectionState( - /* [annotation] */ - _Out_ BOOL *pHwProtectionEnable) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11DeviceContext3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11DeviceContext3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11DeviceContext3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11DeviceContext3 * This); - - void ( STDMETHODCALLTYPE *GetDevice )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_ ID3D11Device **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11PixelShader *pPixelShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *PSSetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11VertexShader *pVertexShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DrawIndexed )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ UINT IndexCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation); - - void ( STDMETHODCALLTYPE *Draw )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ UINT VertexCount, - /* [annotation] */ - _In_ UINT StartVertexLocation); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_ UINT Subresource); - - void ( STDMETHODCALLTYPE *PSSetConstantBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11InputLayout *pInputLayout); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11Buffer *pIndexBuffer, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT Offset); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ UINT IndexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartIndexLocation, - /* [annotation] */ - _In_ INT BaseVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ UINT VertexCountPerInstance, - /* [annotation] */ - _In_ UINT InstanceCount, - /* [annotation] */ - _In_ UINT StartVertexLocation, - /* [annotation] */ - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *GSSetConstantBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11GeometryShader *pShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ D3D11_PRIMITIVE_TOPOLOGY Topology); - - void ( STDMETHODCALLTYPE *VSSetShaderResources )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - void ( STDMETHODCALLTYPE *End )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync); - - HRESULT ( STDMETHODCALLTYPE *GetData )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Asynchronous *pAsync, - /* [annotation] */ - _Out_writes_bytes_opt_( DataSize ) void *pData, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_ UINT GetDataFlags); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11Predicate *pPredicate, - /* [annotation] */ - _In_ BOOL PredicateValue); - - void ( STDMETHODCALLTYPE *GSSetShaderResources )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11BlendState *pBlendState, - /* [annotation] */ - _In_opt_ const FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _In_ UINT SampleMask); - - void ( STDMETHODCALLTYPE *OMSetDepthStencilState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11DepthStencilState *pDepthStencilState, - /* [annotation] */ - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This); - - void ( STDMETHODCALLTYPE *DrawIndexedInstancedIndirect )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *DrawInstancedIndirect )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ UINT ThreadGroupCountX, - /* [annotation] */ - _In_ UINT ThreadGroupCountY, - /* [annotation] */ - _In_ UINT ThreadGroupCountZ); - - void ( STDMETHODCALLTYPE *DispatchIndirect )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pBufferForArgs, - /* [annotation] */ - _In_ UINT AlignedByteOffsetForArgs); - - void ( STDMETHODCALLTYPE *RSSetState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11RasterizerState *pRasterizerState); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pDstResource, - /* [annotation] */ - _In_ ID3D11Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *UpdateSubresource )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pDstBuffer, - /* [annotation] */ - _In_ UINT DstAlignedByteOffset, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pSrcView); - - void ( STDMETHODCALLTYPE *ClearRenderTargetView )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11RenderTargetView *pRenderTargetView, - /* [annotation] */ - _In_ const FLOAT ColorRGBA[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const UINT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11UnorderedAccessView *pUnorderedAccessView, - /* [annotation] */ - _In_ const FLOAT Values[ 4 ]); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11DepthStencilView *pDepthStencilView, - /* [annotation] */ - _In_ UINT ClearFlags, - /* [annotation] */ - _In_ FLOAT Depth, - /* [annotation] */ - _In_ UINT8 Stencil); - - void ( STDMETHODCALLTYPE *GenerateMips )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11ShaderResourceView *pShaderResourceView); - - void ( STDMETHODCALLTYPE *SetResourceMinLOD )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - FLOAT MinLOD); - - FLOAT ( STDMETHODCALLTYPE *GetResourceMinLOD )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *ResolveSubresource )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11CommandList *pCommandList, - BOOL RestoreContextState); - - void ( STDMETHODCALLTYPE *HSSetShaderResources )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11HullShader *pHullShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *HSSetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11DomainShader *pDomainShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *DSSetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11ComputeShader *pComputeShader, - /* [annotation] */ - _In_reads_opt_(NumClassInstances) ID3D11ClassInstance *const *ppClassInstances, - UINT NumClassInstances); - - void ( STDMETHODCALLTYPE *CSSetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11PixelShader **ppPixelShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11VertexShader **ppVertexShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *PSGetConstantBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11InputLayout **ppInputLayout); - - void ( STDMETHODCALLTYPE *IAGetVertexBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Buffer **pIndexBuffer, - /* [annotation] */ - _Out_opt_ DXGI_FORMAT *Format, - /* [annotation] */ - _Out_opt_ UINT *Offset); - - void ( STDMETHODCALLTYPE *GSGetConstantBuffers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11GeometryShader **ppGeometryShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *IAGetPrimitiveTopology )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Out_ D3D11_PRIMITIVE_TOPOLOGY *pTopology); - - void ( STDMETHODCALLTYPE *VSGetShaderResources )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11Predicate **ppPredicate, - /* [annotation] */ - _Out_opt_ BOOL *pPredicateValue); - - void ( STDMETHODCALLTYPE *GSGetShaderResources )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11BlendState **ppBlendState, - /* [annotation] */ - _Out_opt_ FLOAT BlendFactor[ 4 ], - /* [annotation] */ - _Out_opt_ UINT *pSampleMask); - - void ( STDMETHODCALLTYPE *OMGetDepthStencilState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_opt_result_maybenull_ ID3D11DepthStencilState **ppDepthStencilState, - /* [annotation] */ - _Out_opt_ UINT *pStencilRef); - - void ( STDMETHODCALLTYPE *SOGetTargets )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_range_( 0, D3D11_SO_BUFFER_SLOT_COUNT ) UINT NumBuffers, - /* [annotation] */ - _Out_writes_opt_(NumBuffers) ID3D11Buffer **ppSOTargets); - - void ( STDMETHODCALLTYPE *RSGetState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11RasterizerState **ppRasterizerState); - - void ( STDMETHODCALLTYPE *RSGetViewports )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11HullShader **ppHullShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *HSGetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11DomainShader **ppDomainShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *DSGetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Outptr_result_maybenull_ ID3D11ComputeShader **ppComputeShader, - /* [annotation] */ - _Out_writes_opt_(*pNumClassInstances) ID3D11ClassInstance **ppClassInstances, - /* [annotation] */ - _Inout_opt_ UINT *pNumClassInstances); - - void ( STDMETHODCALLTYPE *CSGetSamplers )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This); - - void ( STDMETHODCALLTYPE *Flush )( - ID3D11DeviceContext3 * This); - - D3D11_DEVICE_CONTEXT_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D11DeviceContext3 * This); - - UINT ( STDMETHODCALLTYPE *GetContextFlags )( - ID3D11DeviceContext3 * This); - - HRESULT ( STDMETHODCALLTYPE *FinishCommandList )( - ID3D11DeviceContext3 * This, - BOOL RestoreDeferredContextState, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11CommandList **ppCommandList); - - void ( STDMETHODCALLTYPE *CopySubresourceRegion1 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource); - - void ( STDMETHODCALLTYPE *DiscardView )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView); - - void ( STDMETHODCALLTYPE *VSSetConstantBuffers1 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3DDeviceContextState *pState, - /* [annotation] */ - _Outptr_opt_ ID3DDeviceContextState **ppPreviousState); - - void ( STDMETHODCALLTYPE *ClearView )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11View *pResourceView, - /* [annotation] */ - _In_reads_opt_(NumRects) const D3D11_RECT *pRects, - UINT NumRects); - - HRESULT ( STDMETHODCALLTYPE *UpdateTileMappings )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * 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 )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ ID3D11Buffer *pTilePool, - /* [annotation] */ - _In_ UINT64 NewSizeInBytes); - - void ( STDMETHODCALLTYPE *TiledResourceBarrier )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessBeforeBarrier, - /* [annotation] */ - _In_opt_ ID3D11DeviceChild *pTiledResourceOrViewAccessAfterBarrier); - - BOOL ( STDMETHODCALLTYPE *IsAnnotationEnabled )( - ID3D11DeviceContext3 * This); - - void ( STDMETHODCALLTYPE *SetMarkerInt )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data); - - void ( STDMETHODCALLTYPE *BeginEventInt )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ LPCWSTR pLabel, - INT Data); - - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D11DeviceContext3 * This); - - void ( STDMETHODCALLTYPE *Flush1 )( - ID3D11DeviceContext3 * This, - D3D11_CONTEXT_TYPE ContextType, - /* [annotation] */ - _In_opt_ HANDLE hEvent); - - void ( STDMETHODCALLTYPE *SetHardwareProtectionState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _In_ BOOL HwProtectionEnable); - - void ( STDMETHODCALLTYPE *GetHardwareProtectionState )( - ID3D11DeviceContext3 * This, - /* [annotation] */ - _Out_ BOOL *pHwProtectionEnable); - - END_INTERFACE - } ID3D11DeviceContext3Vtbl; - - interface ID3D11DeviceContext3 - { - CONST_VTBL struct ID3D11DeviceContext3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11DeviceContext3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11DeviceContext3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11DeviceContext3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11DeviceContext3_GetDevice(This,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,ppDevice) ) - -#define ID3D11DeviceContext3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11DeviceContext3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11DeviceContext3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - - -#define ID3D11DeviceContext3_VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> PSSetShader(This,pPixelShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> VSSetShader(This,pVertexShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) \ - ( (This)->lpVtbl -> DrawIndexed(This,IndexCount,StartIndexLocation,BaseVertexLocation) ) - -#define ID3D11DeviceContext3_Draw(This,VertexCount,StartVertexLocation) \ - ( (This)->lpVtbl -> Draw(This,VertexCount,StartVertexLocation) ) - -#define ID3D11DeviceContext3_Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) \ - ( (This)->lpVtbl -> Map(This,pResource,Subresource,MapType,MapFlags,pMappedResource) ) - -#define ID3D11DeviceContext3_Unmap(This,pResource,Subresource) \ - ( (This)->lpVtbl -> Unmap(This,pResource,Subresource) ) - -#define ID3D11DeviceContext3_PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_IASetInputLayout(This,pInputLayout) \ - ( (This)->lpVtbl -> IASetInputLayout(This,pInputLayout) ) - -#define ID3D11DeviceContext3_IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext3_IASetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D11DeviceContext3_GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_GSSetShader(This,pShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> GSSetShader(This,pShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_IASetPrimitiveTopology(This,Topology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,Topology) ) - -#define ID3D11DeviceContext3_VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_Begin(This,pAsync) \ - ( (This)->lpVtbl -> Begin(This,pAsync) ) - -#define ID3D11DeviceContext3_End(This,pAsync) \ - ( (This)->lpVtbl -> End(This,pAsync) ) - -#define ID3D11DeviceContext3_GetData(This,pAsync,pData,DataSize,GetDataFlags) \ - ( (This)->lpVtbl -> GetData(This,pAsync,pData,DataSize,GetDataFlags) ) - -#define ID3D11DeviceContext3_SetPredication(This,pPredicate,PredicateValue) \ - ( (This)->lpVtbl -> SetPredication(This,pPredicate,PredicateValue) ) - -#define ID3D11DeviceContext3_GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumViews,ppRenderTargetViews,pDepthStencilView) ) - -#define ID3D11DeviceContext3_OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> OMSetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,pDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext3_OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) \ - ( (This)->lpVtbl -> OMSetBlendState(This,pBlendState,BlendFactor,SampleMask) ) - -#define ID3D11DeviceContext3_OMSetDepthStencilState(This,pDepthStencilState,StencilRef) \ - ( (This)->lpVtbl -> OMSetDepthStencilState(This,pDepthStencilState,StencilRef) ) - -#define ID3D11DeviceContext3_SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) \ - ( (This)->lpVtbl -> SOSetTargets(This,NumBuffers,ppSOTargets,pOffsets) ) - -#define ID3D11DeviceContext3_DrawAuto(This) \ - ( (This)->lpVtbl -> DrawAuto(This) ) - -#define ID3D11DeviceContext3_DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawIndexedInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext3_DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DrawInstancedIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D11DeviceContext3_DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) \ - ( (This)->lpVtbl -> DispatchIndirect(This,pBufferForArgs,AlignedByteOffsetForArgs) ) - -#define ID3D11DeviceContext3_RSSetState(This,pRasterizerState) \ - ( (This)->lpVtbl -> RSSetState(This,pRasterizerState) ) - -#define ID3D11DeviceContext3_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D11DeviceContext3_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D11DeviceContext3_CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> CopySubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,DstZ,pSrcResource,SrcSubresource,pSrcBox) ) - -#define ID3D11DeviceContext3_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D11DeviceContext3_UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> UpdateSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D11DeviceContext3_CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) \ - ( (This)->lpVtbl -> CopyStructureCount(This,pDstBuffer,DstAlignedByteOffset,pSrcView) ) - -#define ID3D11DeviceContext3_ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,pRenderTargetView,ColorRGBA) ) - -#define ID3D11DeviceContext3_ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext3_ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,pUnorderedAccessView,Values) ) - -#define ID3D11DeviceContext3_ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,pDepthStencilView,ClearFlags,Depth,Stencil) ) - -#define ID3D11DeviceContext3_GenerateMips(This,pShaderResourceView) \ - ( (This)->lpVtbl -> GenerateMips(This,pShaderResourceView) ) - -#define ID3D11DeviceContext3_SetResourceMinLOD(This,pResource,MinLOD) \ - ( (This)->lpVtbl -> SetResourceMinLOD(This,pResource,MinLOD) ) - -#define ID3D11DeviceContext3_GetResourceMinLOD(This,pResource) \ - ( (This)->lpVtbl -> GetResourceMinLOD(This,pResource) ) - -#define ID3D11DeviceContext3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D11DeviceContext3_ExecuteCommandList(This,pCommandList,RestoreContextState) \ - ( (This)->lpVtbl -> ExecuteCommandList(This,pCommandList,RestoreContextState) ) - -#define ID3D11DeviceContext3_HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> HSSetShader(This,pHullShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> DSSetShader(This,pDomainShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSSetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) \ - ( (This)->lpVtbl -> CSSetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews,pUAVInitialCounts) ) - -#define ID3D11DeviceContext3_CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) \ - ( (This)->lpVtbl -> CSSetShader(This,pComputeShader,ppClassInstances,NumClassInstances) ) - -#define ID3D11DeviceContext3_CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSSetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSSetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> VSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> PSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> PSGetShader(This,ppPixelShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> PSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> VSGetShader(This,ppVertexShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> PSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_IAGetInputLayout(This,ppInputLayout) \ - ( (This)->lpVtbl -> IAGetInputLayout(This,ppInputLayout) ) - -#define ID3D11DeviceContext3_IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) \ - ( (This)->lpVtbl -> IAGetVertexBuffers(This,StartSlot,NumBuffers,ppVertexBuffers,pStrides,pOffsets) ) - -#define ID3D11DeviceContext3_IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) \ - ( (This)->lpVtbl -> IAGetIndexBuffer(This,pIndexBuffer,Format,Offset) ) - -#define ID3D11DeviceContext3_GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> GSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> GSGetShader(This,ppGeometryShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_IAGetPrimitiveTopology(This,pTopology) \ - ( (This)->lpVtbl -> IAGetPrimitiveTopology(This,pTopology) ) - -#define ID3D11DeviceContext3_VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> VSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> VSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_GetPredication(This,ppPredicate,pPredicateValue) \ - ( (This)->lpVtbl -> GetPredication(This,ppPredicate,pPredicateValue) ) - -#define ID3D11DeviceContext3_GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> GSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> GSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) \ - ( (This)->lpVtbl -> OMGetRenderTargets(This,NumViews,ppRenderTargetViews,ppDepthStencilView) ) - -#define ID3D11DeviceContext3_OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> OMGetRenderTargetsAndUnorderedAccessViews(This,NumRTVs,ppRenderTargetViews,ppDepthStencilView,UAVStartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext3_OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) \ - ( (This)->lpVtbl -> OMGetBlendState(This,ppBlendState,BlendFactor,pSampleMask) ) - -#define ID3D11DeviceContext3_OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) \ - ( (This)->lpVtbl -> OMGetDepthStencilState(This,ppDepthStencilState,pStencilRef) ) - -#define ID3D11DeviceContext3_SOGetTargets(This,NumBuffers,ppSOTargets) \ - ( (This)->lpVtbl -> SOGetTargets(This,NumBuffers,ppSOTargets) ) - -#define ID3D11DeviceContext3_RSGetState(This,ppRasterizerState) \ - ( (This)->lpVtbl -> RSGetState(This,ppRasterizerState) ) - -#define ID3D11DeviceContext3_RSGetViewports(This,pNumViewports,pViewports) \ - ( (This)->lpVtbl -> RSGetViewports(This,pNumViewports,pViewports) ) - -#define ID3D11DeviceContext3_RSGetScissorRects(This,pNumRects,pRects) \ - ( (This)->lpVtbl -> RSGetScissorRects(This,pNumRects,pRects) ) - -#define ID3D11DeviceContext3_HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> HSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> HSGetShader(This,ppHullShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> HSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> HSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> DSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> DSGetShader(This,ppDomainShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> DSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> DSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) \ - ( (This)->lpVtbl -> CSGetShaderResources(This,StartSlot,NumViews,ppShaderResourceViews) ) - -#define ID3D11DeviceContext3_CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) \ - ( (This)->lpVtbl -> CSGetUnorderedAccessViews(This,StartSlot,NumUAVs,ppUnorderedAccessViews) ) - -#define ID3D11DeviceContext3_CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) \ - ( (This)->lpVtbl -> CSGetShader(This,ppComputeShader,ppClassInstances,pNumClassInstances) ) - -#define ID3D11DeviceContext3_CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) \ - ( (This)->lpVtbl -> CSGetSamplers(This,StartSlot,NumSamplers,ppSamplers) ) - -#define ID3D11DeviceContext3_CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) \ - ( (This)->lpVtbl -> CSGetConstantBuffers(This,StartSlot,NumBuffers,ppConstantBuffers) ) - -#define ID3D11DeviceContext3_ClearState(This) \ - ( (This)->lpVtbl -> ClearState(This) ) - -#define ID3D11DeviceContext3_Flush(This) \ - ( (This)->lpVtbl -> Flush(This) ) - -#define ID3D11DeviceContext3_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#define ID3D11DeviceContext3_GetContextFlags(This) \ - ( (This)->lpVtbl -> GetContextFlags(This) ) - -#define ID3D11DeviceContext3_FinishCommandList(This,RestoreDeferredContextState,ppCommandList) \ - ( (This)->lpVtbl -> FinishCommandList(This,RestoreDeferredContextState,ppCommandList) ) - - -#define ID3D11DeviceContext3_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 ID3D11DeviceContext3_UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) \ - ( (This)->lpVtbl -> UpdateSubresource1(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch,CopyFlags) ) - -#define ID3D11DeviceContext3_DiscardResource(This,pResource) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource) ) - -#define ID3D11DeviceContext3_DiscardView(This,pResourceView) \ - ( (This)->lpVtbl -> DiscardView(This,pResourceView) ) - -#define ID3D11DeviceContext3_VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSSetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> VSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> HSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> DSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> GSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> PSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) \ - ( (This)->lpVtbl -> CSGetConstantBuffers1(This,StartSlot,NumBuffers,ppConstantBuffers,pFirstConstant,pNumConstants) ) - -#define ID3D11DeviceContext3_SwapDeviceContextState(This,pState,ppPreviousState) \ - ( (This)->lpVtbl -> SwapDeviceContextState(This,pState,ppPreviousState) ) - -#define ID3D11DeviceContext3_ClearView(This,pView,Color,pRect,NumRects) \ - ( (This)->lpVtbl -> ClearView(This,pView,Color,pRect,NumRects) ) - -#define ID3D11DeviceContext3_DiscardView1(This,pResourceView,pRects,NumRects) \ - ( (This)->lpVtbl -> DiscardView1(This,pResourceView,pRects,NumRects) ) - - -#define ID3D11DeviceContext3_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 ID3D11DeviceContext3_CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) \ - ( (This)->lpVtbl -> CopyTileMappings(This,pDestTiledResource,pDestRegionStartCoordinate,pSourceTiledResource,pSourceRegionStartCoordinate,pTileRegionSize,Flags) ) - -#define ID3D11DeviceContext3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D11DeviceContext3_UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) \ - ( (This)->lpVtbl -> UpdateTiles(This,pDestTiledResource,pDestTileRegionStartCoordinate,pDestTileRegionSize,pSourceTileData,Flags) ) - -#define ID3D11DeviceContext3_ResizeTilePool(This,pTilePool,NewSizeInBytes) \ - ( (This)->lpVtbl -> ResizeTilePool(This,pTilePool,NewSizeInBytes) ) - -#define ID3D11DeviceContext3_TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) \ - ( (This)->lpVtbl -> TiledResourceBarrier(This,pTiledResourceOrViewAccessBeforeBarrier,pTiledResourceOrViewAccessAfterBarrier) ) - -#define ID3D11DeviceContext3_IsAnnotationEnabled(This) \ - ( (This)->lpVtbl -> IsAnnotationEnabled(This) ) - -#define ID3D11DeviceContext3_SetMarkerInt(This,pLabel,Data) \ - ( (This)->lpVtbl -> SetMarkerInt(This,pLabel,Data) ) - -#define ID3D11DeviceContext3_BeginEventInt(This,pLabel,Data) \ - ( (This)->lpVtbl -> BeginEventInt(This,pLabel,Data) ) - -#define ID3D11DeviceContext3_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - - -#define ID3D11DeviceContext3_Flush1(This,ContextType,hEvent) \ - ( (This)->lpVtbl -> Flush1(This,ContextType,hEvent) ) - -#define ID3D11DeviceContext3_SetHardwareProtectionState(This,HwProtectionEnable) \ - ( (This)->lpVtbl -> SetHardwareProtectionState(This,HwProtectionEnable) ) - -#define ID3D11DeviceContext3_GetHardwareProtectionState(This,pHwProtectionEnable) \ - ( (This)->lpVtbl -> GetHardwareProtectionState(This,pHwProtectionEnable) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11DeviceContext3_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D11Device3_INTERFACE_DEFINED__ -#define __ID3D11Device3_INTERFACE_DEFINED__ - -/* interface ID3D11Device3 */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11Device3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("A05C8C37-D2C6-4732-B3A0-9CE0B0DC9AE6") - ID3D11Device3 : public ID3D11Device2 - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateTexture2D1( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateTexture3D1( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRasterizerState2( - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC2 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState2 **ppRasterizerState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateShaderResourceView1( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView1 **ppSRView1) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateUnorderedAccessView1( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView1 **ppUAView1) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRenderTargetView1( - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView1 **ppRTView1) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateQuery1( - /* [annotation] */ - _In_ const D3D11_QUERY_DESC1 *pQueryDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query1 **ppQuery1) = 0; - - virtual void STDMETHODCALLTYPE GetImmediateContext3( - /* [annotation] */ - _Outptr_ ID3D11DeviceContext3 **ppImmediateContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDeferredContext3( - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext3 **ppDeferredContext) = 0; - - virtual void STDMETHODCALLTYPE WriteToSubresource( - /* [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) = 0; - - virtual void STDMETHODCALLTYPE ReadFromSubresource( - /* [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) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11Device3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11Device3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11Device3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11Device3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateBuffer )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView **ppSRView); - - HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView **ppUAView); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView **ppRTView); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilView **ppDepthStencilView); - - HRESULT ( STDMETHODCALLTYPE *CreateInputLayout )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - /* [annotation] */ - _COM_Outptr_ ID3D11ClassLinkage **ppLinkage); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateDepthStencilState )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DepthStencilState **ppDepthStencilState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateSamplerState )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_SAMPLER_DESC *pSamplerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11SamplerState **ppSamplerState); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pQueryDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query **ppQuery); - - HRESULT ( STDMETHODCALLTYPE *CreatePredicate )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC *pPredicateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Predicate **ppPredicate); - - HRESULT ( STDMETHODCALLTYPE *CreateCounter )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_COUNTER_DESC *pCounterDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Counter **ppCounter); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext )( - ID3D11Device3 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResource )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID ReturnedInterface, - /* [annotation] */ - _COM_Outptr_opt_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *CheckFormatSupport )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _Out_ UINT *pFormatSupport); - - HRESULT ( STDMETHODCALLTYPE *CheckMultisampleQualityLevels )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - void ( STDMETHODCALLTYPE *CheckCounterInfo )( - ID3D11Device3 * This, - /* [annotation] */ - _Out_ D3D11_COUNTER_INFO *pCounterInfo); - - HRESULT ( STDMETHODCALLTYPE *CheckCounter )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - D3D11_FEATURE Feature, - /* [annotation] */ - _Out_writes_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _Inout_ UINT *pDataSize, - /* [annotation] */ - _Out_writes_bytes_opt_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_ UINT DataSize, - /* [annotation] */ - _In_reads_bytes_opt_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ REFGUID guid, - /* [annotation] */ - _In_opt_ const IUnknown *pData); - - D3D_FEATURE_LEVEL ( STDMETHODCALLTYPE *GetFeatureLevel )( - ID3D11Device3 * This); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - ID3D11Device3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D11Device3 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext )( - ID3D11Device3 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *SetExceptionMode )( - ID3D11Device3 * This, - UINT RaiseFlags); - - UINT ( STDMETHODCALLTYPE *GetExceptionMode )( - ID3D11Device3 * This); - - void ( STDMETHODCALLTYPE *GetImmediateContext1 )( - ID3D11Device3 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext1 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext1 )( - ID3D11Device3 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext1 **ppDeferredContext); - - HRESULT ( STDMETHODCALLTYPE *CreateBlendState1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_BLEND_DESC1 *pBlendStateDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11BlendState1 **ppBlendState); - - HRESULT ( STDMETHODCALLTYPE *CreateRasterizerState1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC1 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState1 **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateDeviceContextState )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedResourceByName )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ LPCWSTR lpName, - /* [annotation] */ - _In_ DWORD dwDesiredAccess, - /* [annotation] */ - _In_ REFIID returnedInterface, - /* [annotation] */ - _COM_Outptr_ void **ppResource); - - void ( STDMETHODCALLTYPE *GetImmediateContext2 )( - ID3D11Device3 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext2 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext2 )( - ID3D11Device3 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext2 **ppDeferredContext); - - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ DXGI_FORMAT Format, - /* [annotation] */ - _In_ UINT SampleCount, - /* [annotation] */ - _In_ UINT Flags, - /* [annotation] */ - _Out_ UINT *pNumQualityLevels); - - HRESULT ( STDMETHODCALLTYPE *CreateTexture2D1 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_RASTERIZER_DESC2 *pRasterizerDesc, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RasterizerState2 **ppRasterizerState); - - HRESULT ( STDMETHODCALLTYPE *CreateShaderResourceView1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_SHADER_RESOURCE_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11ShaderResourceView1 **ppSRView1); - - HRESULT ( STDMETHODCALLTYPE *CreateUnorderedAccessView1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11UnorderedAccessView1 **ppUAView1); - - HRESULT ( STDMETHODCALLTYPE *CreateRenderTargetView1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ ID3D11Resource *pResource, - /* [annotation] */ - _In_opt_ const D3D11_RENDER_TARGET_VIEW_DESC1 *pDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11RenderTargetView1 **ppRTView1); - - HRESULT ( STDMETHODCALLTYPE *CreateQuery1 )( - ID3D11Device3 * This, - /* [annotation] */ - _In_ const D3D11_QUERY_DESC1 *pQueryDesc1, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11Query1 **ppQuery1); - - void ( STDMETHODCALLTYPE *GetImmediateContext3 )( - ID3D11Device3 * This, - /* [annotation] */ - _Outptr_ ID3D11DeviceContext3 **ppImmediateContext); - - HRESULT ( STDMETHODCALLTYPE *CreateDeferredContext3 )( - ID3D11Device3 * This, - UINT ContextFlags, - /* [annotation] */ - _COM_Outptr_opt_ ID3D11DeviceContext3 **ppDeferredContext); - - void ( STDMETHODCALLTYPE *WriteToSubresource )( - ID3D11Device3 * 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 )( - ID3D11Device3 * 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); - - END_INTERFACE - } ID3D11Device3Vtbl; - - interface ID3D11Device3 - { - CONST_VTBL struct ID3D11Device3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11Device3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11Device3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11Device3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11Device3_CreateBuffer(This,pDesc,pInitialData,ppBuffer) \ - ( (This)->lpVtbl -> CreateBuffer(This,pDesc,pInitialData,ppBuffer) ) - -#define ID3D11Device3_CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) \ - ( (This)->lpVtbl -> CreateTexture1D(This,pDesc,pInitialData,ppTexture1D) ) - -#define ID3D11Device3_CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D(This,pDesc,pInitialData,ppTexture2D) ) - -#define ID3D11Device3_CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D(This,pDesc,pInitialData,ppTexture3D) ) - -#define ID3D11Device3_CreateShaderResourceView(This,pResource,pDesc,ppSRView) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,ppSRView) ) - -#define ID3D11Device3_CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pDesc,ppUAView) ) - -#define ID3D11Device3_CreateRenderTargetView(This,pResource,pDesc,ppRTView) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,ppRTView) ) - -#define ID3D11Device3_CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,ppDepthStencilView) ) - -#define ID3D11Device3_CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) \ - ( (This)->lpVtbl -> CreateInputLayout(This,pInputElementDescs,NumElements,pShaderBytecodeWithInputSignature,BytecodeLength,ppInputLayout) ) - -#define ID3D11Device3_CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) \ - ( (This)->lpVtbl -> CreateVertexShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppVertexShader) ) - -#define ID3D11Device3_CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) \ - ( (This)->lpVtbl -> CreateGeometryShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppGeometryShader) ) - -#define ID3D11Device3_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 ID3D11Device3_CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) \ - ( (This)->lpVtbl -> CreatePixelShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppPixelShader) ) - -#define ID3D11Device3_CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) \ - ( (This)->lpVtbl -> CreateHullShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppHullShader) ) - -#define ID3D11Device3_CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) \ - ( (This)->lpVtbl -> CreateDomainShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppDomainShader) ) - -#define ID3D11Device3_CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) \ - ( (This)->lpVtbl -> CreateComputeShader(This,pShaderBytecode,BytecodeLength,pClassLinkage,ppComputeShader) ) - -#define ID3D11Device3_CreateClassLinkage(This,ppLinkage) \ - ( (This)->lpVtbl -> CreateClassLinkage(This,ppLinkage) ) - -#define ID3D11Device3_CreateBlendState(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device3_CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) \ - ( (This)->lpVtbl -> CreateDepthStencilState(This,pDepthStencilDesc,ppDepthStencilState) ) - -#define ID3D11Device3_CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device3_CreateSamplerState(This,pSamplerDesc,ppSamplerState) \ - ( (This)->lpVtbl -> CreateSamplerState(This,pSamplerDesc,ppSamplerState) ) - -#define ID3D11Device3_CreateQuery(This,pQueryDesc,ppQuery) \ - ( (This)->lpVtbl -> CreateQuery(This,pQueryDesc,ppQuery) ) - -#define ID3D11Device3_CreatePredicate(This,pPredicateDesc,ppPredicate) \ - ( (This)->lpVtbl -> CreatePredicate(This,pPredicateDesc,ppPredicate) ) - -#define ID3D11Device3_CreateCounter(This,pCounterDesc,ppCounter) \ - ( (This)->lpVtbl -> CreateCounter(This,pCounterDesc,ppCounter) ) - -#define ID3D11Device3_CreateDeferredContext(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device3_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource(This,hResource,ReturnedInterface,ppResource) ) - -#define ID3D11Device3_CheckFormatSupport(This,Format,pFormatSupport) \ - ( (This)->lpVtbl -> CheckFormatSupport(This,Format,pFormatSupport) ) - -#define ID3D11Device3_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) ) - -#define ID3D11Device3_CheckCounterInfo(This,pCounterInfo) \ - ( (This)->lpVtbl -> CheckCounterInfo(This,pCounterInfo) ) - -#define ID3D11Device3_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 ID3D11Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D11Device3_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D11Device3_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D11Device3_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D11Device3_GetFeatureLevel(This) \ - ( (This)->lpVtbl -> GetFeatureLevel(This) ) - -#define ID3D11Device3_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#define ID3D11Device3_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D11Device3_GetImmediateContext(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext(This,ppImmediateContext) ) - -#define ID3D11Device3_SetExceptionMode(This,RaiseFlags) \ - ( (This)->lpVtbl -> SetExceptionMode(This,RaiseFlags) ) - -#define ID3D11Device3_GetExceptionMode(This) \ - ( (This)->lpVtbl -> GetExceptionMode(This) ) - - -#define ID3D11Device3_GetImmediateContext1(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext1(This,ppImmediateContext) ) - -#define ID3D11Device3_CreateDeferredContext1(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext1(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device3_CreateBlendState1(This,pBlendStateDesc,ppBlendState) \ - ( (This)->lpVtbl -> CreateBlendState1(This,pBlendStateDesc,ppBlendState) ) - -#define ID3D11Device3_CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState1(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device3_CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) \ - ( (This)->lpVtbl -> CreateDeviceContextState(This,Flags,pFeatureLevels,FeatureLevels,SDKVersion,EmulatedInterface,pChosenFeatureLevel,ppContextState) ) - -#define ID3D11Device3_OpenSharedResource1(This,hResource,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResource1(This,hResource,returnedInterface,ppResource) ) - -#define ID3D11Device3_OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) \ - ( (This)->lpVtbl -> OpenSharedResourceByName(This,lpName,dwDesiredAccess,returnedInterface,ppResource) ) - - -#define ID3D11Device3_GetImmediateContext2(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext2(This,ppImmediateContext) ) - -#define ID3D11Device3_CreateDeferredContext2(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext2(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) - -#define ID3D11Device3_CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) \ - ( (This)->lpVtbl -> CheckMultisampleQualityLevels1(This,Format,SampleCount,Flags,pNumQualityLevels) ) - - -#define ID3D11Device3_CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) \ - ( (This)->lpVtbl -> CreateTexture2D1(This,pDesc1,pInitialData,ppTexture2D) ) - -#define ID3D11Device3_CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) \ - ( (This)->lpVtbl -> CreateTexture3D1(This,pDesc1,pInitialData,ppTexture3D) ) - -#define ID3D11Device3_CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) \ - ( (This)->lpVtbl -> CreateRasterizerState2(This,pRasterizerDesc,ppRasterizerState) ) - -#define ID3D11Device3_CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) \ - ( (This)->lpVtbl -> CreateShaderResourceView1(This,pResource,pDesc1,ppSRView1) ) - -#define ID3D11Device3_CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView1(This,pResource,pDesc1,ppUAView1) ) - -#define ID3D11Device3_CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) \ - ( (This)->lpVtbl -> CreateRenderTargetView1(This,pResource,pDesc1,ppRTView1) ) - -#define ID3D11Device3_CreateQuery1(This,pQueryDesc1,ppQuery1) \ - ( (This)->lpVtbl -> CreateQuery1(This,pQueryDesc1,ppQuery1) ) - -#define ID3D11Device3_GetImmediateContext3(This,ppImmediateContext) \ - ( (This)->lpVtbl -> GetImmediateContext3(This,ppImmediateContext) ) - -#define ID3D11Device3_CreateDeferredContext3(This,ContextFlags,ppDeferredContext) \ - ( (This)->lpVtbl -> CreateDeferredContext3(This,ContextFlags,ppDeferredContext) ) - -#define ID3D11Device3_WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> WriteToSubresource(This,pDstResource,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D11Device3_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,pSrcResource,SrcSubresource,pSrcBox) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11Device3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11_3_0000_0009 */ -/* [local] */ - -DEFINE_GUID(IID_ID3D11Texture2D1,0x51218251,0x1E33,0x4617,0x9C,0xCB,0x4D,0x3A,0x43,0x67,0xE7,0xBB); -DEFINE_GUID(IID_ID3D11Texture3D1,0x0C711683,0x2853,0x4846,0x9B,0xB0,0xF3,0xE6,0x06,0x39,0xE4,0x6A); -DEFINE_GUID(IID_ID3D11RasterizerState2,0x6fbd02fb,0x209f,0x46c4,0xb0,0x59,0x2e,0xd1,0x55,0x86,0xa6,0xac); -DEFINE_GUID(IID_ID3D11ShaderResourceView1,0x91308b87,0x9040,0x411d,0x8c,0x67,0xc3,0x92,0x53,0xce,0x38,0x02); -DEFINE_GUID(IID_ID3D11RenderTargetView1,0xffbe2e23,0xf011,0x418a,0xac,0x56,0x5c,0xee,0xd7,0xc5,0xb9,0x4b); -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_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; - -/* 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 deleted file mode 100644 index f7f3fdd937..0000000000 --- a/3rdparty/minidx12/Include/d3d11on12.h +++ /dev/null @@ -1,283 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ - - - -/* 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 __d3d11on12_h__ -#define __d3d11on12_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D11On12Device_FWD_DEFINED__ -#define __ID3D11On12Device_FWD_DEFINED__ -typedef interface ID3D11On12Device ID3D11On12Device; - -#endif /* __ID3D11On12Device_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "d3d11.h" -#include "d3d12.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d11on12_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - -/////////////////////////////////////////////////////////////////////////// -// D3D11On12CreateDevice -// ------------------ -// -// pDevice -// Specifies a pre-existing D3D12 device to use for D3D11 interop. -// May not be NULL. -// Flags -// Any of those documented for D3D11CreateDeviceAndSwapChain. -// pFeatureLevels -// Array of any of the following: -// D3D_FEATURE_LEVEL_12_1 -// D3D_FEATURE_LEVEL_12_0 -// D3D_FEATURE_LEVEL_11_1 -// D3D_FEATURE_LEVEL_11_0 -// D3D_FEATURE_LEVEL_10_1 -// D3D_FEATURE_LEVEL_10_0 -// D3D_FEATURE_LEVEL_9_3 -// D3D_FEATURE_LEVEL_9_2 -// D3D_FEATURE_LEVEL_9_1 -// The first feature level which is less than or equal to the -// D3D12 device's feature level will be used to perform D3D11 validation. -// Creation will fail if no acceptable feature levels are provided. -// Providing NULL will default to the D3D12 device's feature level. -// FeatureLevels -// Size of feature levels array. -// ppCommandQueues -// Array of unique queues for D3D11On12 to use. Valid queue types: -// 3D command queue. -// Flags must be compatible with device flags, and its NodeMask must -// be a subset of the NodeMask provided to this API. -// NumQueues -// Size of command queue array. -// NodeMask -// Which node of the D3D12 device to use. Only 1 bit may be set. -// ppDevice -// Pointer to returned interface. May be NULL. -// ppImmediateContext -// Pointer to returned interface. May be NULL. -// pChosenFeatureLevel -// Pointer to returned feature level. May be NULL. -// -// Return Values -// Any of those documented for -// D3D11CreateDevice -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D11ON12_CREATE_DEVICE)( _In_ IUnknown*, UINT, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL*, UINT FeatureLevels, - _In_reads_opt_( NumQueues ) IUnknown* CONST*, UINT NumQueues, - UINT, _COM_Outptr_opt_ ID3D11Device**, _COM_Outptr_opt_ ID3D11DeviceContext**, - _Out_opt_ D3D_FEATURE_LEVEL* ); - -HRESULT WINAPI D3D11On12CreateDevice( - _In_ IUnknown* pDevice, - UINT Flags, - _In_reads_opt_( FeatureLevels ) CONST D3D_FEATURE_LEVEL* pFeatureLevels, - UINT FeatureLevels, - _In_reads_opt_( NumQueues ) IUnknown* CONST* ppCommandQueues, - UINT NumQueues, - UINT NodeMask, - _COM_Outptr_opt_ ID3D11Device** ppDevice, - _COM_Outptr_opt_ ID3D11DeviceContext** ppImmediateContext, - _Out_opt_ D3D_FEATURE_LEVEL* pChosenFeatureLevel ); - -typedef struct D3D11_RESOURCE_FLAGS - { - UINT BindFlags; - UINT MiscFlags; - UINT CPUAccessFlags; - UINT StructureByteStride; - } D3D11_RESOURCE_FLAGS; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11on12_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11on12_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D11On12Device_INTERFACE_DEFINED__ -#define __ID3D11On12Device_INTERFACE_DEFINED__ - -/* interface ID3D11On12Device */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D11On12Device; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("85611e73-70a9-490e-9614-a9e302777904") - ID3D11On12Device : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateWrappedResource( - _In_ IUnknown *pResource12, - _In_ const D3D11_RESOURCE_FLAGS *pFlags11, - D3D12_RESOURCE_STATES InState, - D3D12_RESOURCE_STATES OutState, - REFIID riid, - _COM_Outptr_opt_ void **ppResource11) = 0; - - virtual void STDMETHODCALLTYPE ReleaseWrappedResources( - _In_reads_( NumResources ) ID3D11Resource *const *ppResources, - UINT NumResources) = 0; - - virtual void STDMETHODCALLTYPE AcquireWrappedResources( - _In_reads_( NumResources ) ID3D11Resource *const *ppResources, - UINT NumResources) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D11On12DeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D11On12Device * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D11On12Device * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D11On12Device * This); - - HRESULT ( STDMETHODCALLTYPE *CreateWrappedResource )( - ID3D11On12Device * This, - _In_ IUnknown *pResource12, - _In_ const D3D11_RESOURCE_FLAGS *pFlags11, - D3D12_RESOURCE_STATES InState, - D3D12_RESOURCE_STATES OutState, - REFIID riid, - _COM_Outptr_opt_ void **ppResource11); - - void ( STDMETHODCALLTYPE *ReleaseWrappedResources )( - ID3D11On12Device * This, - _In_reads_( NumResources ) ID3D11Resource *const *ppResources, - UINT NumResources); - - void ( STDMETHODCALLTYPE *AcquireWrappedResources )( - ID3D11On12Device * This, - _In_reads_( NumResources ) ID3D11Resource *const *ppResources, - UINT NumResources); - - END_INTERFACE - } ID3D11On12DeviceVtbl; - - interface ID3D11On12Device - { - CONST_VTBL struct ID3D11On12DeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D11On12Device_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D11On12Device_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D11On12Device_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D11On12Device_CreateWrappedResource(This,pResource12,pFlags11,InState,OutState,riid,ppResource11) \ - ( (This)->lpVtbl -> CreateWrappedResource(This,pResource12,pFlags11,InState,OutState,riid,ppResource11) ) - -#define ID3D11On12Device_ReleaseWrappedResources(This,ppResources,NumResources) \ - ( (This)->lpVtbl -> ReleaseWrappedResources(This,ppResources,NumResources) ) - -#define ID3D11On12Device_AcquireWrappedResources(This,ppResources,NumResources) \ - ( (This)->lpVtbl -> AcquireWrappedResources(This,ppResources,NumResources) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D11On12Device_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d11on12_0000_0001 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -DEFINE_GUID(IID_ID3D11On12Device,0x85611e73,0x70a9,0x490e,0x96,0x14,0xa9,0xe3,0x02,0x77,0x79,0x04); - - -extern RPC_IF_HANDLE __MIDL_itf_d3d11on12_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d11on12_0000_0001_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d11shader.h b/3rdparty/minidx12/Include/d3d11shader.h deleted file mode 100644 index 84c36cf64c..0000000000 --- a/3rdparty/minidx12/Include/d3d11shader.h +++ /dev/null @@ -1,601 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// File: D3D11Shader.h -// Content: D3D11 Shader Types and APIs -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3D11SHADER_H__ -#define __D3D11SHADER_H__ - -#include "d3dcommon.h" - - -typedef enum D3D11_SHADER_VERSION_TYPE -{ - D3D11_SHVER_PIXEL_SHADER = 0, - D3D11_SHVER_VERTEX_SHADER = 1, - D3D11_SHVER_GEOMETRY_SHADER = 2, - - // D3D11 Shaders - D3D11_SHVER_HULL_SHADER = 3, - D3D11_SHVER_DOMAIN_SHADER = 4, - D3D11_SHVER_COMPUTE_SHADER = 5, - - D3D11_SHVER_RESERVED0 = 0xFFF0, -} D3D11_SHADER_VERSION_TYPE; - -#define D3D11_SHVER_GET_TYPE(_Version) \ - (((_Version) >> 16) & 0xffff) -#define D3D11_SHVER_GET_MAJOR(_Version) \ - (((_Version) >> 4) & 0xf) -#define D3D11_SHVER_GET_MINOR(_Version) \ - (((_Version) >> 0) & 0xf) - -// Slot ID for library function return -#define D3D_RETURN_PARAMETER_INDEX (-1) - -typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE; - -typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE; - - -typedef struct _D3D11_SIGNATURE_PARAMETER_DESC -{ - LPCSTR SemanticName; // Name of the semantic - UINT SemanticIndex; // Index of the semantic - UINT Register; // Number of member variables - D3D_NAME SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable - D3D_REGISTER_COMPONENT_TYPE ComponentType; // Scalar type (e.g. uint, float, etc.) - BYTE Mask; // Mask to indicate which components of the register - // are used (combination of D3D10_COMPONENT_MASK values) - BYTE ReadWriteMask; // Mask to indicate whether a given component is - // never written (if this is an output signature) or - // always read (if this is an input signature). - // (combination of D3D_MASK_* values) - UINT Stream; // Stream index - D3D_MIN_PRECISION MinPrecision; // Minimum desired interpolation precision -} D3D11_SIGNATURE_PARAMETER_DESC; - -typedef struct _D3D11_SHADER_BUFFER_DESC -{ - LPCSTR Name; // Name of the constant buffer - D3D_CBUFFER_TYPE Type; // Indicates type of buffer content - UINT Variables; // Number of member variables - UINT Size; // Size of CB (in bytes) - UINT uFlags; // Buffer description flags -} D3D11_SHADER_BUFFER_DESC; - -typedef struct _D3D11_SHADER_VARIABLE_DESC -{ - LPCSTR Name; // Name of the variable - UINT StartOffset; // Offset in constant buffer's backing store - UINT Size; // Size of variable (in bytes) - UINT uFlags; // Variable flags - LPVOID DefaultValue; // Raw pointer to default value - UINT StartTexture; // First texture index (or -1 if no textures used) - UINT TextureSize; // Number of texture slots possibly used. - UINT StartSampler; // First sampler index (or -1 if no textures used) - UINT SamplerSize; // Number of sampler slots possibly used. -} D3D11_SHADER_VARIABLE_DESC; - -typedef struct _D3D11_SHADER_TYPE_DESC -{ - D3D_SHADER_VARIABLE_CLASS Class; // Variable class (e.g. object, matrix, etc.) - D3D_SHADER_VARIABLE_TYPE Type; // Variable type (e.g. float, sampler, etc.) - UINT Rows; // Number of rows (for matrices, 1 for other numeric, 0 if not applicable) - UINT Columns; // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable) - UINT Elements; // Number of elements (0 if not an array) - UINT Members; // Number of members (0 if not a structure) - UINT Offset; // Offset from the start of structure (0 if not a structure member) - LPCSTR Name; // Name of type, can be NULL -} D3D11_SHADER_TYPE_DESC; - -typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN; - -typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING; - -typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE; - -typedef struct _D3D11_SHADER_DESC -{ - UINT Version; // Shader version - LPCSTR Creator; // Creator string - UINT Flags; // Shader compilation/parse flags - - UINT ConstantBuffers; // Number of constant buffers - UINT BoundResources; // Number of bound resources - UINT InputParameters; // Number of parameters in the input signature - UINT OutputParameters; // Number of parameters in the output signature - - UINT InstructionCount; // Number of emitted instructions - UINT TempRegisterCount; // Number of temporary registers used - UINT TempArrayCount; // Number of temporary arrays used - UINT DefCount; // Number of constant defines - UINT DclCount; // Number of declarations (input + output) - UINT TextureNormalInstructions; // Number of non-categorized texture instructions - UINT TextureLoadInstructions; // Number of texture load instructions - UINT TextureCompInstructions; // Number of texture comparison instructions - UINT TextureBiasInstructions; // Number of texture bias instructions - UINT TextureGradientInstructions; // Number of texture gradient instructions - UINT FloatInstructionCount; // Number of floating point arithmetic instructions used - UINT IntInstructionCount; // Number of signed integer arithmetic instructions used - UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used - UINT StaticFlowControlCount; // Number of static flow control instructions used - UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used - UINT MacroInstructionCount; // Number of macro instructions used - UINT ArrayInstructionCount; // Number of array instructions used - UINT CutInstructionCount; // Number of cut instructions used - UINT EmitInstructionCount; // Number of emit instructions used - D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; // Geometry shader output topology - UINT GSMaxOutputVertexCount; // Geometry shader maximum output vertex count - D3D_PRIMITIVE InputPrimitive; // GS/HS input primitive - UINT PatchConstantParameters; // Number of parameters in the patch constant signature - UINT cGSInstanceCount; // Number of Geometry shader instances - UINT cControlPoints; // Number of control points in the HS->DS stage - D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; // Primitive output by the tessellator - D3D_TESSELLATOR_PARTITIONING HSPartitioning; // Partitioning mode of the tessellator - D3D_TESSELLATOR_DOMAIN TessellatorDomain; // Domain of the tessellator (quad, tri, isoline) - // instruction counts - UINT cBarrierInstructions; // Number of barrier instructions in a compute shader - UINT cInterlockedInstructions; // Number of interlocked instructions - UINT cTextureStoreInstructions; // Number of texture writes -} D3D11_SHADER_DESC; - -typedef struct _D3D11_SHADER_INPUT_BIND_DESC -{ - LPCSTR Name; // Name of the resource - D3D_SHADER_INPUT_TYPE Type; // Type of resource (e.g. texture, cbuffer, etc.) - UINT BindPoint; // Starting bind point - UINT BindCount; // Number of contiguous bind points (for arrays) - - UINT uFlags; // Input binding flags - D3D_RESOURCE_RETURN_TYPE ReturnType; // Return type (if texture) - D3D_SRV_DIMENSION Dimension; // Dimension (if texture) - UINT NumSamples; // Number of samples (0 if not MS texture) -} D3D11_SHADER_INPUT_BIND_DESC; - -#define D3D_SHADER_REQUIRES_DOUBLES 0x00000001 -#define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002 -#define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004 -#define D3D_SHADER_REQUIRES_64_UAVS 0x00000008 -#define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010 -#define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020 -#define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040 -#define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080 -#define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100 - - -typedef struct _D3D11_LIBRARY_DESC -{ - LPCSTR Creator; // The name of the originator of the library. - UINT Flags; // Compilation flags. - UINT FunctionCount; // Number of functions exported from the library. -} D3D11_LIBRARY_DESC; - -typedef struct _D3D11_FUNCTION_DESC -{ - UINT Version; // Shader version - LPCSTR Creator; // Creator string - UINT Flags; // Shader compilation/parse flags - - UINT ConstantBuffers; // Number of constant buffers - UINT BoundResources; // Number of bound resources - - UINT InstructionCount; // Number of emitted instructions - UINT TempRegisterCount; // Number of temporary registers used - UINT TempArrayCount; // Number of temporary arrays used - UINT DefCount; // Number of constant defines - UINT DclCount; // Number of declarations (input + output) - UINT TextureNormalInstructions; // Number of non-categorized texture instructions - UINT TextureLoadInstructions; // Number of texture load instructions - UINT TextureCompInstructions; // Number of texture comparison instructions - UINT TextureBiasInstructions; // Number of texture bias instructions - UINT TextureGradientInstructions; // Number of texture gradient instructions - UINT FloatInstructionCount; // Number of floating point arithmetic instructions used - UINT IntInstructionCount; // Number of signed integer arithmetic instructions used - UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used - UINT StaticFlowControlCount; // Number of static flow control instructions used - UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used - UINT MacroInstructionCount; // Number of macro instructions used - UINT ArrayInstructionCount; // Number of array instructions used - UINT MovInstructionCount; // Number of mov instructions used - UINT MovcInstructionCount; // Number of movc instructions used - UINT ConversionInstructionCount; // Number of type conversion instructions used - UINT BitwiseInstructionCount; // Number of bitwise arithmetic instructions used - D3D_FEATURE_LEVEL MinFeatureLevel; // Min target of the function byte code - UINT64 RequiredFeatureFlags; // Required feature flags - - LPCSTR Name; // Function name - INT FunctionParameterCount; // Number of logical parameters in the function signature (not including return) - BOOL HasReturn; // TRUE, if function returns a value, false - it is a subroutine - BOOL Has10Level9VertexShader; // TRUE, if there is a 10L9 VS blob - BOOL Has10Level9PixelShader; // TRUE, if there is a 10L9 PS blob -} D3D11_FUNCTION_DESC; - -typedef struct _D3D11_PARAMETER_DESC -{ - LPCSTR Name; // Parameter name. - LPCSTR SemanticName; // Parameter semantic name (+index). - D3D_SHADER_VARIABLE_TYPE Type; // Element type. - D3D_SHADER_VARIABLE_CLASS Class; // Scalar/Vector/Matrix. - UINT Rows; // Rows are for matrix parameters. - UINT Columns; // Components or Columns in matrix. - D3D_INTERPOLATION_MODE InterpolationMode; // Interpolation mode. - D3D_PARAMETER_FLAGS Flags; // Parameter modifiers. - - UINT FirstInRegister; // The first input register for this parameter. - UINT FirstInComponent; // The first input register component for this parameter. - UINT FirstOutRegister; // The first output register for this parameter. - UINT FirstOutComponent; // The first output register component for this parameter. -} D3D11_PARAMETER_DESC; - - -////////////////////////////////////////////////////////////////////////////// -// Interfaces //////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -typedef interface ID3D11ShaderReflectionType ID3D11ShaderReflectionType; -typedef interface ID3D11ShaderReflectionType *LPD3D11SHADERREFLECTIONTYPE; - -typedef interface ID3D11ShaderReflectionVariable ID3D11ShaderReflectionVariable; -typedef interface ID3D11ShaderReflectionVariable *LPD3D11SHADERREFLECTIONVARIABLE; - -typedef interface ID3D11ShaderReflectionConstantBuffer ID3D11ShaderReflectionConstantBuffer; -typedef interface ID3D11ShaderReflectionConstantBuffer *LPD3D11SHADERREFLECTIONCONSTANTBUFFER; - -typedef interface ID3D11ShaderReflection ID3D11ShaderReflection; -typedef interface ID3D11ShaderReflection *LPD3D11SHADERREFLECTION; - -typedef interface ID3D11LibraryReflection ID3D11LibraryReflection; -typedef interface ID3D11LibraryReflection *LPD3D11LIBRARYREFLECTION; - -typedef interface ID3D11FunctionReflection ID3D11FunctionReflection; -typedef interface ID3D11FunctionReflection *LPD3D11FUNCTIONREFLECTION; - -typedef interface ID3D11FunctionParameterReflection ID3D11FunctionParameterReflection; -typedef interface ID3D11FunctionParameterReflection *LPD3D11FUNCTIONPARAMETERREFLECTION; - -// {6E6FFA6A-9BAE-4613-A51E-91652D508C21} -interface DECLSPEC_UUID("6E6FFA6A-9BAE-4613-A51E-91652D508C21") ID3D11ShaderReflectionType; -DEFINE_GUID(IID_ID3D11ShaderReflectionType, -0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21); - -#undef INTERFACE -#define INTERFACE ID3D11ShaderReflectionType - -DECLARE_INTERFACE(ID3D11ShaderReflectionType) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_SHADER_TYPE_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D11ShaderReflectionType*, GetMemberTypeByName)(THIS_ _In_ LPCSTR Name) PURE; - STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ _In_ UINT Index) PURE; - - STDMETHOD(IsEqual)(THIS_ _In_ ID3D11ShaderReflectionType* pType) PURE; - STDMETHOD_(ID3D11ShaderReflectionType*, GetSubType)(THIS) PURE; - STDMETHOD_(ID3D11ShaderReflectionType*, GetBaseClass)(THIS) PURE; - STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE; - STDMETHOD_(ID3D11ShaderReflectionType*, GetInterfaceByIndex)(THIS_ _In_ UINT uIndex) PURE; - STDMETHOD(IsOfType)(THIS_ _In_ ID3D11ShaderReflectionType* pType) PURE; - STDMETHOD(ImplementsInterface)(THIS_ _In_ ID3D11ShaderReflectionType* pBase) PURE; -}; - -// {51F23923-F3E5-4BD1-91CB-606177D8DB4C} -interface DECLSPEC_UUID("51F23923-F3E5-4BD1-91CB-606177D8DB4C") ID3D11ShaderReflectionVariable; -DEFINE_GUID(IID_ID3D11ShaderReflectionVariable, -0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c); - -#undef INTERFACE -#define INTERFACE ID3D11ShaderReflectionVariable - -DECLARE_INTERFACE(ID3D11ShaderReflectionVariable) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_SHADER_VARIABLE_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionType*, GetType)(THIS) PURE; - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE; - - STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ _In_ UINT uArrayIndex) PURE; -}; - -// {EB62D63D-93DD-4318-8AE8-C6F83AD371B8} -interface DECLSPEC_UUID("EB62D63D-93DD-4318-8AE8-C6F83AD371B8") ID3D11ShaderReflectionConstantBuffer; -DEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer, -0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8); - -#undef INTERFACE -#define INTERFACE ID3D11ShaderReflectionConstantBuffer - -DECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer) -{ - STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; -}; - -// The ID3D11ShaderReflection IID may change from SDK version to SDK version -// if the reflection API changes. This prevents new code with the new API -// from working with an old binary. Recompiling with the new header -// will pick up the new IID. - -// 8d536ca1-0cca-4956-a837-786963755584 -interface DECLSPEC_UUID("8d536ca1-0cca-4956-a837-786963755584") ID3D11ShaderReflection; -DEFINE_GUID(IID_ID3D11ShaderReflection, -0x8d536ca1, 0x0cca, 0x4956, 0xa8, 0x37, 0x78, 0x69, 0x63, 0x75, 0x55, 0x84); - -#undef INTERFACE -#define INTERFACE ID3D11ShaderReflection - -DECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, - _Out_ LPVOID *ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_SHADER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ _In_ UINT Index) PURE; - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, - _Out_ D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD(GetInputParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetOutputParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - STDMETHOD(GetPatchConstantParameterDesc)(THIS_ _In_ UINT ParameterIndex, - _Out_ D3D11_SIGNATURE_PARAMETER_DESC *pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, - _Out_ D3D11_SHADER_INPUT_BIND_DESC *pDesc) PURE; - - STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE; - STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE; - - STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE; - STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE; - - STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE; - STDMETHOD(GetMinFeatureLevel)(THIS_ _Out_ enum D3D_FEATURE_LEVEL* pLevel) PURE; - - STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ - _Out_opt_ UINT* pSizeX, - _Out_opt_ UINT* pSizeY, - _Out_opt_ UINT* pSizeZ) PURE; - - STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE; -}; - -// {54384F1B-5B3E-4BB7-AE01-60BA3097CBB6} -interface DECLSPEC_UUID("54384F1B-5B3E-4BB7-AE01-60BA3097CBB6") ID3D11LibraryReflection; -DEFINE_GUID(IID_ID3D11LibraryReflection, -0x54384f1b, 0x5b3e, 0x4bb7, 0xae, 0x1, 0x60, 0xba, 0x30, 0x97, 0xcb, 0xb6); - -#undef INTERFACE -#define INTERFACE ID3D11LibraryReflection - -DECLARE_INTERFACE_(ID3D11LibraryReflection, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_LIBRARY_DESC * pDesc) PURE; - - STDMETHOD_(ID3D11FunctionReflection *, GetFunctionByIndex)(THIS_ _In_ INT FunctionIndex) PURE; -}; - -// {207BCECB-D683-4A06-A8A3-9B149B9F73A4} -interface DECLSPEC_UUID("207BCECB-D683-4A06-A8A3-9B149B9F73A4") ID3D11FunctionReflection; -DEFINE_GUID(IID_ID3D11FunctionReflection, -0x207bcecb, 0xd683, 0x4a06, 0xa8, 0xa3, 0x9b, 0x14, 0x9b, 0x9f, 0x73, 0xa4); - -#undef INTERFACE -#define INTERFACE ID3D11FunctionReflection - -DECLARE_INTERFACE(ID3D11FunctionReflection) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_FUNCTION_DESC * pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ _In_ UINT BufferIndex) PURE; - STDMETHOD_(ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, - _Out_ D3D11_SHADER_INPUT_BIND_DESC * pDesc) PURE; - - STDMETHOD_(ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; - - STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, - _Out_ D3D11_SHADER_INPUT_BIND_DESC * pDesc) PURE; - - // Use D3D_RETURN_PARAMETER_INDEX to get description of the return value. - STDMETHOD_(ID3D11FunctionParameterReflection *, GetFunctionParameter)(THIS_ _In_ INT ParameterIndex) PURE; -}; - -// {42757488-334F-47FE-982E-1A65D08CC462} -interface DECLSPEC_UUID("42757488-334F-47FE-982E-1A65D08CC462") ID3D11FunctionParameterReflection; -DEFINE_GUID(IID_ID3D11FunctionParameterReflection, -0x42757488, 0x334f, 0x47fe, 0x98, 0x2e, 0x1a, 0x65, 0xd0, 0x8c, 0xc4, 0x62); - -#undef INTERFACE -#define INTERFACE ID3D11FunctionParameterReflection - -DECLARE_INTERFACE(ID3D11FunctionParameterReflection) -{ - STDMETHOD(GetDesc)(THIS_ _Out_ D3D11_PARAMETER_DESC * pDesc) PURE; -}; - -// {CAC701EE-80FC-4122-8242-10B39C8CEC34} -interface DECLSPEC_UUID("CAC701EE-80FC-4122-8242-10B39C8CEC34") ID3D11Module; -DEFINE_GUID(IID_ID3D11Module, -0xcac701ee, 0x80fc, 0x4122, 0x82, 0x42, 0x10, 0xb3, 0x9c, 0x8c, 0xec, 0x34); - -#undef INTERFACE -#define INTERFACE ID3D11Module - -DECLARE_INTERFACE_(ID3D11Module, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - // Create an instance of a module for resource re-binding. - STDMETHOD(CreateInstance)(THIS_ _In_opt_ LPCSTR pNamespace, - _COM_Outptr_ interface ID3D11ModuleInstance ** ppModuleInstance) PURE; -}; - - -// {469E07F7-045A-48D5-AA12-68A478CDF75D} -interface DECLSPEC_UUID("469E07F7-045A-48D5-AA12-68A478CDF75D") ID3D11ModuleInstance; -DEFINE_GUID(IID_ID3D11ModuleInstance, -0x469e07f7, 0x45a, 0x48d5, 0xaa, 0x12, 0x68, 0xa4, 0x78, 0xcd, 0xf7, 0x5d); - -#undef INTERFACE -#define INTERFACE ID3D11ModuleInstance - -DECLARE_INTERFACE_(ID3D11ModuleInstance, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - // - // Resource binding API. - // - STDMETHOD(BindConstantBuffer)(THIS_ _In_ UINT uSrcSlot, _In_ UINT uDstSlot, _In_ UINT cbDstOffset) PURE; - STDMETHOD(BindConstantBufferByName)(THIS_ _In_ LPCSTR pName, _In_ UINT uDstSlot, _In_ UINT cbDstOffset) PURE; - - STDMETHOD(BindResource)(THIS_ _In_ UINT uSrcSlot, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - STDMETHOD(BindResourceByName)(THIS_ _In_ LPCSTR pName, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - - STDMETHOD(BindSampler)(THIS_ _In_ UINT uSrcSlot, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - STDMETHOD(BindSamplerByName)(THIS_ _In_ LPCSTR pName, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - - STDMETHOD(BindUnorderedAccessView)(THIS_ _In_ UINT uSrcSlot, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - STDMETHOD(BindUnorderedAccessViewByName)(THIS_ _In_ LPCSTR pName, _In_ UINT uDstSlot, _In_ UINT uCount) PURE; - - STDMETHOD(BindResourceAsUnorderedAccessView)(THIS_ _In_ UINT uSrcSrvSlot, _In_ UINT uDstUavSlot, _In_ UINT uCount) PURE; - STDMETHOD(BindResourceAsUnorderedAccessViewByName)(THIS_ _In_ LPCSTR pSrvName, _In_ UINT uDstUavSlot, _In_ UINT uCount) PURE; -}; - - -// {59A6CD0E-E10D-4C1F-88C0-63ABA1DAF30E} -interface DECLSPEC_UUID("59A6CD0E-E10D-4C1F-88C0-63ABA1DAF30E") ID3D11Linker; -DEFINE_GUID(IID_ID3D11Linker, -0x59a6cd0e, 0xe10d, 0x4c1f, 0x88, 0xc0, 0x63, 0xab, 0xa1, 0xda, 0xf3, 0xe); - -#undef INTERFACE -#define INTERFACE ID3D11Linker - -DECLARE_INTERFACE_(ID3D11Linker, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - // Link the shader and produce a shader blob suitable to D3D runtime. - STDMETHOD(Link)(THIS_ _In_ interface ID3D11ModuleInstance * pEntry, - _In_ LPCSTR pEntryName, - _In_ LPCSTR pTargetName, - _In_ UINT uFlags, - _COM_Outptr_ ID3DBlob ** ppShaderBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob ** ppErrorBuffer) PURE; - - // Add an instance of a library module to be used for linking. - STDMETHOD(UseLibrary)(THIS_ _In_ interface ID3D11ModuleInstance * pLibraryMI) PURE; - - // Add a clip plane with the plane coefficients taken from a cbuffer entry for 10L9 shaders. - STDMETHOD(AddClipPlaneFromCBuffer)(THIS_ _In_ UINT uCBufferSlot, _In_ UINT uCBufferEntry) PURE; -}; - - -// {D80DD70C-8D2F-4751-94A1-03C79B3556DB} -interface DECLSPEC_UUID("D80DD70C-8D2F-4751-94A1-03C79B3556DB") ID3D11LinkingNode; -DEFINE_GUID(IID_ID3D11LinkingNode, -0xd80dd70c, 0x8d2f, 0x4751, 0x94, 0xa1, 0x3, 0xc7, 0x9b, 0x35, 0x56, 0xdb); - -#undef INTERFACE -#define INTERFACE ID3D11LinkingNode - -DECLARE_INTERFACE_(ID3D11LinkingNode, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; -}; - - -// {54133220-1CE8-43D3-8236-9855C5CEECFF} -interface DECLSPEC_UUID("54133220-1CE8-43D3-8236-9855C5CEECFF") ID3D11FunctionLinkingGraph; -DEFINE_GUID(IID_ID3D11FunctionLinkingGraph, -0x54133220, 0x1ce8, 0x43d3, 0x82, 0x36, 0x98, 0x55, 0xc5, 0xce, 0xec, 0xff); - -#undef INTERFACE -#define INTERFACE ID3D11FunctionLinkingGraph - -DECLARE_INTERFACE_(ID3D11FunctionLinkingGraph, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; - STDMETHOD_(ULONG, AddRef)(THIS) PURE; - STDMETHOD_(ULONG, Release)(THIS) PURE; - - // Create a shader module out of FLG description. - STDMETHOD(CreateModuleInstance)(THIS_ _COM_Outptr_ interface ID3D11ModuleInstance ** ppModuleInstance, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob ** ppErrorBuffer) PURE; - - STDMETHOD(SetInputSignature)(THIS_ __in_ecount(cInputParameters) const D3D11_PARAMETER_DESC * pInputParameters, - _In_ UINT cInputParameters, - _COM_Outptr_ interface ID3D11LinkingNode ** ppInputNode) PURE; - - STDMETHOD(SetOutputSignature)(THIS_ __in_ecount(cOutputParameters) const D3D11_PARAMETER_DESC * pOutputParameters, - _In_ UINT cOutputParameters, - _COM_Outptr_ interface ID3D11LinkingNode ** ppOutputNode) PURE; - - STDMETHOD(CallFunction)(THIS_ _In_opt_ LPCSTR pModuleInstanceNamespace, - _In_ interface ID3D11Module * pModuleWithFunctionPrototype, - _In_ LPCSTR pFunctionName, - _COM_Outptr_ interface ID3D11LinkingNode ** ppCallNode) PURE; - - STDMETHOD(PassValue)(THIS_ _In_ interface ID3D11LinkingNode * pSrcNode, - _In_ INT SrcParameterIndex, - _In_ interface ID3D11LinkingNode * pDstNode, - _In_ INT DstParameterIndex) PURE; - - STDMETHOD(PassValueWithSwizzle)(THIS_ _In_ interface ID3D11LinkingNode * pSrcNode, - _In_ INT SrcParameterIndex, - _In_ LPCSTR pSrcSwizzle, - _In_ interface ID3D11LinkingNode * pDstNode, - _In_ INT DstParameterIndex, - _In_ LPCSTR pDstSwizzle) PURE; - - STDMETHOD(GetLastError)(THIS_ _Always_(_Outptr_opt_result_maybenull_) ID3DBlob ** ppErrorBuffer) PURE; - - STDMETHOD(GenerateHlsl)(THIS_ _In_ UINT uFlags, // uFlags is reserved for future use. - _COM_Outptr_ ID3DBlob ** ppBuffer) PURE; -}; - - -////////////////////////////////////////////////////////////////////////////// -// APIs ////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -#ifdef __cplusplus -extern "C" { -#endif //__cplusplus - -#ifdef __cplusplus -} -#endif //__cplusplus - -#endif //__D3D11SHADER_H__ - diff --git a/3rdparty/minidx12/Include/d3d12.h b/3rdparty/minidx12/Include/d3d12.h deleted file mode 100644 index 0755bc96fa..0000000000 --- a/3rdparty/minidx12/Include/d3d12.h +++ /dev/null @@ -1,6265 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ - - - -/* 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 __d3d12_h__ -#define __d3d12_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12Object_FWD_DEFINED__ -#define __ID3D12Object_FWD_DEFINED__ -typedef interface ID3D12Object ID3D12Object; - -#endif /* __ID3D12Object_FWD_DEFINED__ */ - - -#ifndef __ID3D12DeviceChild_FWD_DEFINED__ -#define __ID3D12DeviceChild_FWD_DEFINED__ -typedef interface ID3D12DeviceChild ID3D12DeviceChild; - -#endif /* __ID3D12DeviceChild_FWD_DEFINED__ */ - - -#ifndef __ID3D12RootSignature_FWD_DEFINED__ -#define __ID3D12RootSignature_FWD_DEFINED__ -typedef interface ID3D12RootSignature ID3D12RootSignature; - -#endif /* __ID3D12RootSignature_FWD_DEFINED__ */ - - -#ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ -#define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ -typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; - -#endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */ - - -#ifndef __ID3D12Pageable_FWD_DEFINED__ -#define __ID3D12Pageable_FWD_DEFINED__ -typedef interface ID3D12Pageable ID3D12Pageable; - -#endif /* __ID3D12Pageable_FWD_DEFINED__ */ - - -#ifndef __ID3D12Heap_FWD_DEFINED__ -#define __ID3D12Heap_FWD_DEFINED__ -typedef interface ID3D12Heap ID3D12Heap; - -#endif /* __ID3D12Heap_FWD_DEFINED__ */ - - -#ifndef __ID3D12Resource_FWD_DEFINED__ -#define __ID3D12Resource_FWD_DEFINED__ -typedef interface ID3D12Resource ID3D12Resource; - -#endif /* __ID3D12Resource_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandAllocator_FWD_DEFINED__ -#define __ID3D12CommandAllocator_FWD_DEFINED__ -typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; - -#endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */ - - -#ifndef __ID3D12Fence_FWD_DEFINED__ -#define __ID3D12Fence_FWD_DEFINED__ -typedef interface ID3D12Fence ID3D12Fence; - -#endif /* __ID3D12Fence_FWD_DEFINED__ */ - - -#ifndef __ID3D12PipelineState_FWD_DEFINED__ -#define __ID3D12PipelineState_FWD_DEFINED__ -typedef interface ID3D12PipelineState ID3D12PipelineState; - -#endif /* __ID3D12PipelineState_FWD_DEFINED__ */ - - -#ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ -#define __ID3D12DescriptorHeap_FWD_DEFINED__ -typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; - -#endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12QueryHeap_FWD_DEFINED__ -#define __ID3D12QueryHeap_FWD_DEFINED__ -typedef interface ID3D12QueryHeap ID3D12QueryHeap; - -#endif /* __ID3D12QueryHeap_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandSignature_FWD_DEFINED__ -#define __ID3D12CommandSignature_FWD_DEFINED__ -typedef interface ID3D12CommandSignature ID3D12CommandSignature; - -#endif /* __ID3D12CommandSignature_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandList_FWD_DEFINED__ -#define __ID3D12CommandList_FWD_DEFINED__ -typedef interface ID3D12CommandList ID3D12CommandList; - -#endif /* __ID3D12CommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ -#define __ID3D12GraphicsCommandList_FWD_DEFINED__ -typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; - -#endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12CommandQueue_FWD_DEFINED__ -#define __ID3D12CommandQueue_FWD_DEFINED__ -typedef interface ID3D12CommandQueue ID3D12CommandQueue; - -#endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ - - -#ifndef __ID3D12Device_FWD_DEFINED__ -#define __ID3D12Device_FWD_DEFINED__ -typedef interface ID3D12Device ID3D12Device; - -#endif /* __ID3D12Device_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgi.h" -#include "d3dcommon.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -#ifndef _D3D12_CONSTANTS -#define _D3D12_CONSTANTS -#define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) - -#define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) - -#define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) - -#define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) - -#define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) - -#define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) - -#define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) - -#define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) - -#define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) - -#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) - -#define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) - -#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) - -#define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) - -#define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 ) - -#define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) - -#define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) - -#define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) - -#define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) - -#define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) - -#define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) - -#define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) - -#define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) - -#define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) - -#define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) - -#define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) - -#define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) - -#define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) - -#define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) - -#define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) - -#define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) - -#define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) - -#define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) - -#define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) - -#define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) - -#define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) - -#define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) - -#define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) - -#define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) - -#define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) - -#define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) - -#define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) - -#define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) - -#define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) - -#define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) - -#define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) - -#define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) - -#define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) - -#define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) - -#define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) - -#define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) - -#define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 ) - -#define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_CS_THREADID_REGISTER_COUNT ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 ) - -#define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 ) - -#define D3D12_CS_THREAD_GROUP_MIN_X ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 ) - -#define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 ) - -#define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) - -#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) -#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) -#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D12_DEFAULT_DEPTH_BIAS ( 0 ) - -#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) -#define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 ) - -#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f ) -#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 ) - -#define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) - -#define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) - -#define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff ) - -#define D3D12_DEFAULT_SCISSOR_ENDX ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_ENDY ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_STARTX ( 0 ) - -#define D3D12_DEFAULT_SCISSOR_STARTY ( 0 ) - -#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) -#define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff ) - -#define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 ) - -#define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) - -#define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) -#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) -#define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) - -#define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 ) - -#define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff ) - -#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 ) - -#define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) - -#define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) -#define D3D12_FLOAT32_MAX ( 3.402823466e+38f ) -#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) -#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) -#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) -#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f ) -#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) -#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) -#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) -#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) -#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) -#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) -#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) -#define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 ) - -#define D3D12_GS_MAX_INSTANCE_COUNT ( 32 ) - -#define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) - -#define D3D12_GS_OUTPUT_ELEMENTS ( 32 ) - -#define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) - -#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) -#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) -#define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) - -#define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) - -#define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) - -#define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) - -#define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) - -#define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) - -#define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) - -#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) - -#define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) - -#define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) - -#define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) - -#define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) - -#define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) - -#define D3D12_LINEAR_GAMMA ( 1.0f ) -#define D3D12_MAJOR_VERSION ( 12 ) - -#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) -#define D3D12_MAX_DEPTH ( 1.0f ) -#define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 ) - -#define D3D12_MAX_MAXANISOTROPY ( 16 ) - -#define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) - -#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f ) -#define D3D12_MAX_ROOT_COST ( 64 ) - -#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 ) - -#define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 ) - -#define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 ) - -#define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) - -#define D3D12_MINOR_VERSION ( 0 ) - -#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) -#define D3D12_MIN_DEPTH ( 0.0f ) -#define D3D12_MIN_MAXANISOTROPY ( 0 ) - -#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f ) -#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f ) -#define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 ) - -#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) -#define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) - -#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) - -#define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 ) - -#define D3D12_PACKED_TILE ( 0xffffffff ) - -#define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) - -#define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 ) - -#define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) - -#define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) - -#define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 ) - -#define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) - -#define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) - -#define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 ) - -#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) -#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) - -#define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) - -#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) - -#define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) - -#define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) - -#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) - -#define D3D12_REQ_MAXANISOTROPY ( 16 ) - -#define D3D12_REQ_MIP_LEVELS ( 15 ) - -#define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) - -#define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) - -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) - -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) -#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) - -#define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) - -#define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) - -#define D3D12_REQ_SUBRESOURCES ( 30720 ) - -#define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) - -#define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) - -#define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) - -#define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 ) - -#define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) - -#define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff ) - -#define D3D12_SHADER_MAJOR_VERSION ( 5 ) - -#define D3D12_SHADER_MAX_INSTANCES ( 65535 ) - -#define D3D12_SHADER_MAX_INTERFACES ( 253 ) - -#define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) - -#define D3D12_SHADER_MAX_TYPES ( 65535 ) - -#define D3D12_SHADER_MINOR_VERSION ( 1 ) - -#define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) - -#define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) - -#define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) - -#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) - -#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 ) - -#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) - -#define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) - -#define D3D12_SO_BUFFER_SLOT_COUNT ( 4 ) - -#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) - -#define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) - -#define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 ) - -#define D3D12_SO_STREAM_COUNT ( 4 ) - -#define D3D12_SPEC_DATE_DAY ( 14 ) - -#define D3D12_SPEC_DATE_MONTH ( 11 ) - -#define D3D12_SPEC_DATE_YEAR ( 2014 ) - -#define D3D12_SPEC_VERSION ( 1.16 ) -#define D3D12_SRGB_GAMMA ( 2.2f ) -#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) -#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) -#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) -#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f ) -#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) -#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) -#define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) - -#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) - -#define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) - -#define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) - -#define D3D12_STANDARD_VECTOR_SIZE ( 4 ) - -#define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) - -#define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) - -#define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) - -#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) - -#define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) - -#define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) - -#define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) - -#define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) - -#define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) - -#define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) - -#define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) - -#define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 ) - -#define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) - -#define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) - -#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 ) - -#define D3D12_UAV_SLOT_COUNT ( 64 ) - -#define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) - -#define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) - -#define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) - -#define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 ) - -#define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 ) - -#define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_VS_INPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) - -#define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 ) - -#define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) - -#define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) - -#define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 ) - -#define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) - -#define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) - -#define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) - -#endif - -typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; - -typedef -enum D3D12_COMMAND_LIST_TYPE - { - D3D12_COMMAND_LIST_TYPE_DIRECT = 0, - D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, - D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, - D3D12_COMMAND_LIST_TYPE_COPY = 3 - } D3D12_COMMAND_LIST_TYPE; - -typedef -enum D3D12_COMMAND_QUEUE_FLAGS - { - D3D12_COMMAND_QUEUE_FLAG_NONE = 0, - D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 - } D3D12_COMMAND_QUEUE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ); -typedef -enum D3D12_COMMAND_QUEUE_PRIORITY - { - D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, - D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100 - } D3D12_COMMAND_QUEUE_PRIORITY; - -typedef struct D3D12_COMMAND_QUEUE_DESC - { - D3D12_COMMAND_LIST_TYPE Type; - INT Priority; - D3D12_COMMAND_QUEUE_FLAGS Flags; - UINT NodeMask; - } D3D12_COMMAND_QUEUE_DESC; - -typedef -enum D3D12_PRIMITIVE_TOPOLOGY_TYPE - { - D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, - D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 - } D3D12_PRIMITIVE_TOPOLOGY_TYPE; - -typedef -enum D3D12_INPUT_CLASSIFICATION - { - D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, - D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 - } D3D12_INPUT_CLASSIFICATION; - -typedef struct D3D12_INPUT_ELEMENT_DESC - { - LPCSTR SemanticName; - UINT SemanticIndex; - DXGI_FORMAT Format; - UINT InputSlot; - UINT AlignedByteOffset; - D3D12_INPUT_CLASSIFICATION InputSlotClass; - UINT InstanceDataStepRate; - } D3D12_INPUT_ELEMENT_DESC; - -typedef -enum D3D12_FILL_MODE - { - D3D12_FILL_MODE_WIREFRAME = 2, - D3D12_FILL_MODE_SOLID = 3 - } D3D12_FILL_MODE; - -typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; - -typedef D3D_PRIMITIVE D3D12_PRIMITIVE; - -typedef -enum D3D12_CULL_MODE - { - D3D12_CULL_MODE_NONE = 1, - D3D12_CULL_MODE_FRONT = 2, - D3D12_CULL_MODE_BACK = 3 - } D3D12_CULL_MODE; - -typedef struct D3D12_SO_DECLARATION_ENTRY - { - UINT Stream; - LPCSTR SemanticName; - UINT SemanticIndex; - BYTE StartComponent; - BYTE ComponentCount; - BYTE OutputSlot; - } D3D12_SO_DECLARATION_ENTRY; - -typedef struct D3D12_VIEWPORT - { - FLOAT TopLeftX; - FLOAT TopLeftY; - FLOAT Width; - FLOAT Height; - FLOAT MinDepth; - FLOAT MaxDepth; - } D3D12_VIEWPORT; - -typedef RECT D3D12_RECT; - -typedef struct D3D12_BOX - { - UINT left; - UINT top; - UINT front; - UINT right; - UINT bottom; - UINT back; - } D3D12_BOX; - -typedef -enum D3D12_COMPARISON_FUNC - { - D3D12_COMPARISON_FUNC_NEVER = 1, - D3D12_COMPARISON_FUNC_LESS = 2, - D3D12_COMPARISON_FUNC_EQUAL = 3, - D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, - D3D12_COMPARISON_FUNC_GREATER = 5, - D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, - D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, - D3D12_COMPARISON_FUNC_ALWAYS = 8 - } D3D12_COMPARISON_FUNC; - -typedef -enum D3D12_DEPTH_WRITE_MASK - { - D3D12_DEPTH_WRITE_MASK_ZERO = 0, - D3D12_DEPTH_WRITE_MASK_ALL = 1 - } D3D12_DEPTH_WRITE_MASK; - -typedef -enum D3D12_STENCIL_OP - { - D3D12_STENCIL_OP_KEEP = 1, - D3D12_STENCIL_OP_ZERO = 2, - D3D12_STENCIL_OP_REPLACE = 3, - D3D12_STENCIL_OP_INCR_SAT = 4, - D3D12_STENCIL_OP_DECR_SAT = 5, - D3D12_STENCIL_OP_INVERT = 6, - D3D12_STENCIL_OP_INCR = 7, - D3D12_STENCIL_OP_DECR = 8 - } D3D12_STENCIL_OP; - -typedef struct D3D12_DEPTH_STENCILOP_DESC - { - D3D12_STENCIL_OP StencilFailOp; - D3D12_STENCIL_OP StencilDepthFailOp; - D3D12_STENCIL_OP StencilPassOp; - D3D12_COMPARISON_FUNC StencilFunc; - } D3D12_DEPTH_STENCILOP_DESC; - -typedef struct D3D12_DEPTH_STENCIL_DESC - { - 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; - } D3D12_DEPTH_STENCIL_DESC; - -typedef -enum D3D12_BLEND - { - D3D12_BLEND_ZERO = 1, - D3D12_BLEND_ONE = 2, - D3D12_BLEND_SRC_COLOR = 3, - D3D12_BLEND_INV_SRC_COLOR = 4, - D3D12_BLEND_SRC_ALPHA = 5, - D3D12_BLEND_INV_SRC_ALPHA = 6, - D3D12_BLEND_DEST_ALPHA = 7, - D3D12_BLEND_INV_DEST_ALPHA = 8, - D3D12_BLEND_DEST_COLOR = 9, - D3D12_BLEND_INV_DEST_COLOR = 10, - D3D12_BLEND_SRC_ALPHA_SAT = 11, - D3D12_BLEND_BLEND_FACTOR = 14, - D3D12_BLEND_INV_BLEND_FACTOR = 15, - D3D12_BLEND_SRC1_COLOR = 16, - D3D12_BLEND_INV_SRC1_COLOR = 17, - D3D12_BLEND_SRC1_ALPHA = 18, - D3D12_BLEND_INV_SRC1_ALPHA = 19 - } D3D12_BLEND; - -typedef -enum D3D12_BLEND_OP - { - D3D12_BLEND_OP_ADD = 1, - D3D12_BLEND_OP_SUBTRACT = 2, - D3D12_BLEND_OP_REV_SUBTRACT = 3, - D3D12_BLEND_OP_MIN = 4, - D3D12_BLEND_OP_MAX = 5 - } D3D12_BLEND_OP; - -typedef -enum D3D12_COLOR_WRITE_ENABLE - { - D3D12_COLOR_WRITE_ENABLE_RED = 1, - D3D12_COLOR_WRITE_ENABLE_GREEN = 2, - D3D12_COLOR_WRITE_ENABLE_BLUE = 4, - D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, - D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA ) - } D3D12_COLOR_WRITE_ENABLE; - -typedef -enum D3D12_LOGIC_OP - { - D3D12_LOGIC_OP_CLEAR = 0, - D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , - D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , - D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , - D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , - D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , - D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , - D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , - D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , - D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , - D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , - D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , - D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , - D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , - D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , - D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) - } D3D12_LOGIC_OP; - -typedef struct D3D12_RENDER_TARGET_BLEND_DESC - { - BOOL BlendEnable; - BOOL LogicOpEnable; - D3D12_BLEND SrcBlend; - D3D12_BLEND DestBlend; - D3D12_BLEND_OP BlendOp; - D3D12_BLEND SrcBlendAlpha; - D3D12_BLEND DestBlendAlpha; - D3D12_BLEND_OP BlendOpAlpha; - D3D12_LOGIC_OP LogicOp; - UINT8 RenderTargetWriteMask; - } D3D12_RENDER_TARGET_BLEND_DESC; - -typedef struct D3D12_BLEND_DESC - { - BOOL AlphaToCoverageEnable; - BOOL IndependentBlendEnable; - D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; - } D3D12_BLEND_DESC; - -/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. - IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ -typedef -enum D3D12_CONSERVATIVE_RASTERIZATION_MODE - { - D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, - D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 - } D3D12_CONSERVATIVE_RASTERIZATION_MODE; - -typedef struct D3D12_RASTERIZER_DESC - { - D3D12_FILL_MODE FillMode; - D3D12_CULL_MODE CullMode; - BOOL FrontCounterClockwise; - INT DepthBias; - FLOAT DepthBiasClamp; - FLOAT SlopeScaledDepthBias; - BOOL DepthClipEnable; - BOOL MultisampleEnable; - BOOL AntialiasedLineEnable; - UINT ForcedSampleCount; - D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; - } D3D12_RASTERIZER_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12Object_INTERFACE_DEFINED__ -#define __ID3D12Object_INTERFACE_DEFINED__ - -/* interface ID3D12Object */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Object; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") - ID3D12Object : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetName( - _In_z_ LPCWSTR Name) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Object * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Object * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Object * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Object * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Object * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Object * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Object * This, - _In_z_ LPCWSTR Name); - - END_INTERFACE - } ID3D12ObjectVtbl; - - interface ID3D12Object - { - CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Object_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Object_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Object_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Object_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Object_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ -#define __ID3D12DeviceChild_INTERFACE_DEFINED__ - -/* interface ID3D12DeviceChild */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DeviceChild; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") - ID3D12DeviceChild : public ID3D12Object - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDevice( - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceChildVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DeviceChild * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DeviceChild * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DeviceChild * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12DeviceChild * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12DeviceChild * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12DeviceChild * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12DeviceChildVtbl; - - interface ID3D12DeviceChild - { - CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DeviceChild_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DeviceChild_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12DeviceChild_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ -#define __ID3D12RootSignature_INTERFACE_DEFINED__ - -/* interface ID3D12RootSignature */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12RootSignature; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") - ID3D12RootSignature : public ID3D12DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12RootSignatureVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12RootSignature * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12RootSignature * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12RootSignature * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12RootSignature * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12RootSignature * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12RootSignature * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12RootSignatureVtbl; - - interface ID3D12RootSignature - { - CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12RootSignature_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12RootSignature_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12RootSignature_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0001 */ -/* [local] */ - -typedef struct D3D12_SHADER_BYTECODE - { - _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode; - SIZE_T BytecodeLength; - } D3D12_SHADER_BYTECODE; - -typedef struct D3D12_STREAM_OUTPUT_DESC - { - _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; - UINT NumEntries; - _Field_size_full_(NumStrides) const UINT *pBufferStrides; - UINT NumStrides; - UINT RasterizedStream; - } D3D12_STREAM_OUTPUT_DESC; - -typedef struct D3D12_INPUT_LAYOUT_DESC - { - _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; - UINT NumElements; - } D3D12_INPUT_LAYOUT_DESC; - -typedef -enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE - { - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 - } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; - -typedef struct D3D12_CACHED_PIPELINE_STATE - { - _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob; - SIZE_T CachedBlobSizeInBytes; - } D3D12_CACHED_PIPELINE_STATE; - -typedef -enum D3D12_PIPELINE_STATE_FLAGS - { - D3D12_PIPELINE_STATE_FLAG_NONE = 0, - D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1 - } D3D12_PIPELINE_STATE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS ); -typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC - { - ID3D12RootSignature *pRootSignature; - D3D12_SHADER_BYTECODE VS; - D3D12_SHADER_BYTECODE PS; - D3D12_SHADER_BYTECODE DS; - D3D12_SHADER_BYTECODE HS; - D3D12_SHADER_BYTECODE GS; - D3D12_STREAM_OUTPUT_DESC StreamOutput; - D3D12_BLEND_DESC BlendState; - UINT SampleMask; - D3D12_RASTERIZER_DESC RasterizerState; - D3D12_DEPTH_STENCIL_DESC DepthStencilState; - D3D12_INPUT_LAYOUT_DESC InputLayout; - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; - D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; - UINT NumRenderTargets; - DXGI_FORMAT RTVFormats[ 8 ]; - DXGI_FORMAT DSVFormat; - DXGI_SAMPLE_DESC SampleDesc; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; - } D3D12_GRAPHICS_PIPELINE_STATE_DESC; - -typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC - { - ID3D12RootSignature *pRootSignature; - D3D12_SHADER_BYTECODE CS; - UINT NodeMask; - D3D12_CACHED_PIPELINE_STATE CachedPSO; - D3D12_PIPELINE_STATE_FLAGS Flags; - } D3D12_COMPUTE_PIPELINE_STATE_DESC; - -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; - -typedef -enum D3D12_SHADER_MIN_PRECISION_SUPPORT - { - D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, - D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, - D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 - } D3D12_SHADER_MIN_PRECISION_SUPPORT; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT ); -typedef -enum D3D12_TILED_RESOURCES_TIER - { - D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, - D3D12_TILED_RESOURCES_TIER_1 = 1, - D3D12_TILED_RESOURCES_TIER_2 = 2, - D3D12_TILED_RESOURCES_TIER_3 = 3 - } D3D12_TILED_RESOURCES_TIER; - -typedef -enum D3D12_RESOURCE_BINDING_TIER - { - D3D12_RESOURCE_BINDING_TIER_1 = 1, - D3D12_RESOURCE_BINDING_TIER_2 = 2, - D3D12_RESOURCE_BINDING_TIER_3 = 3 - } D3D12_RESOURCE_BINDING_TIER; - -typedef -enum D3D12_CONSERVATIVE_RASTERIZATION_TIER - { - D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, - D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 - } D3D12_CONSERVATIVE_RASTERIZATION_TIER; - -typedef -enum D3D12_FORMAT_SUPPORT1 - { - D3D12_FORMAT_SUPPORT1_NONE = 0, - D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, - D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, - D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, - D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, - D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, - D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, - D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, - D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, - D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, - D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, - D3D12_FORMAT_SUPPORT1_MIP = 0x1000, - D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, - D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, - D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, - D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, - D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, - D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, - D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, - D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, - D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, - D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, - D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, - D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 - } D3D12_FORMAT_SUPPORT1; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 ); -typedef -enum D3D12_FORMAT_SUPPORT2 - { - D3D12_FORMAT_SUPPORT2_NONE = 0, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, - D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, - D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, - D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, - D3D12_FORMAT_SUPPORT2_TILED = 0x200, - D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000 - } D3D12_FORMAT_SUPPORT2; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ); -typedef -enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS - { - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, - D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 - } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS ); -typedef -enum D3D12_CROSS_NODE_SHARING_TIER - { - D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, - D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, - D3D12_CROSS_NODE_SHARING_TIER_1 = 2, - D3D12_CROSS_NODE_SHARING_TIER_2 = 3 - } D3D12_CROSS_NODE_SHARING_TIER; - -typedef -enum D3D12_RESOURCE_HEAP_TIER - { - D3D12_RESOURCE_HEAP_TIER_1 = 1, - D3D12_RESOURCE_HEAP_TIER_2 = 2 - } D3D12_RESOURCE_HEAP_TIER; - -typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS - { - _Out_ BOOL DoublePrecisionFloatShaderOps; - _Out_ BOOL OutputMergerLogicOp; - _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; - _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier; - _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; - _Out_ BOOL PSSpecifiedStencilRefSupported; - _Out_ BOOL TypedUAVLoadAdditionalFormats; - _Out_ BOOL ROVsSupported; - _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; - _Out_ UINT MaxGPUVirtualAddressBitsPerResource; - _Out_ BOOL StandardSwizzle64KBSupported; - _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; - _Out_ BOOL CrossAdapterRowMajorTextureSupported; - _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; - _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; - } D3D12_FEATURE_DATA_D3D12_OPTIONS; - -typedef struct D3D12_FEATURE_DATA_ARCHITECTURE - { - _In_ UINT NodeIndex; - _Out_ BOOL TileBasedRenderer; - _Out_ BOOL UMA; - _Out_ BOOL CacheCoherentUMA; - } D3D12_FEATURE_DATA_ARCHITECTURE; - -typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS - { - _In_ UINT NumFeatureLevels; - _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; - _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; - } D3D12_FEATURE_DATA_FEATURE_LEVELS; - -typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT - { - _In_ DXGI_FORMAT Format; - _Out_ D3D12_FORMAT_SUPPORT1 Support1; - _Out_ D3D12_FORMAT_SUPPORT2 Support2; - } D3D12_FEATURE_DATA_FORMAT_SUPPORT; - -typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS - { - _In_ DXGI_FORMAT Format; - _In_ UINT SampleCount; - _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; - _Out_ UINT NumQualityLevels; - } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; - -typedef struct D3D12_FEATURE_DATA_FORMAT_INFO - { - DXGI_FORMAT Format; - UINT8 PlaneCount; - } D3D12_FEATURE_DATA_FORMAT_INFO; - -typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT - { - UINT MaxGPUVirtualAddressBitsPerResource; - UINT MaxGPUVirtualAddressBitsPerProcess; - } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; - -typedef struct D3D12_RESOURCE_ALLOCATION_INFO - { - UINT64 SizeInBytes; - UINT64 Alignment; - } D3D12_RESOURCE_ALLOCATION_INFO; - -typedef -enum D3D12_HEAP_TYPE - { - D3D12_HEAP_TYPE_DEFAULT = 1, - D3D12_HEAP_TYPE_UPLOAD = 2, - D3D12_HEAP_TYPE_READBACK = 3, - D3D12_HEAP_TYPE_CUSTOM = 4 - } D3D12_HEAP_TYPE; - -typedef -enum D3D12_CPU_PAGE_PROPERTY - { - D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, - D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, - D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, - D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 - } D3D12_CPU_PAGE_PROPERTY; - -typedef -enum D3D12_MEMORY_POOL - { - D3D12_MEMORY_POOL_UNKNOWN = 0, - D3D12_MEMORY_POOL_L0 = 1, - D3D12_MEMORY_POOL_L1 = 2 - } D3D12_MEMORY_POOL; - -typedef struct D3D12_HEAP_PROPERTIES - { - D3D12_HEAP_TYPE Type; - D3D12_CPU_PAGE_PROPERTY CPUPageProperty; - D3D12_MEMORY_POOL MemoryPoolPreference; - UINT CreationNodeMask; - UINT VisibleNodeMask; - } D3D12_HEAP_PROPERTIES; - -typedef -enum D3D12_HEAP_FLAGS - { - D3D12_HEAP_FLAG_NONE = 0, - D3D12_HEAP_FLAG_SHARED = 0x1, - D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, - D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, - 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_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, - D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, - D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, - D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 - } D3D12_HEAP_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS ); -typedef struct D3D12_HEAP_DESC - { - UINT64 SizeInBytes; - D3D12_HEAP_PROPERTIES Properties; - UINT64 Alignment; - D3D12_HEAP_FLAGS Flags; - } D3D12_HEAP_DESC; - -typedef -enum D3D12_RESOURCE_DIMENSION - { - D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, - D3D12_RESOURCE_DIMENSION_BUFFER = 1, - D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, - D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, - D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 - } D3D12_RESOURCE_DIMENSION; - -typedef -enum D3D12_TEXTURE_LAYOUT - { - D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, - D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, - D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, - D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 - } D3D12_TEXTURE_LAYOUT; - -typedef -enum D3D12_RESOURCE_FLAGS - { - D3D12_RESOURCE_FLAG_NONE = 0, - D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, - D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, - D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, - D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, - D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, - D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20 - } D3D12_RESOURCE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ); -typedef struct D3D12_RESOURCE_DESC - { - D3D12_RESOURCE_DIMENSION Dimension; - UINT64 Alignment; - UINT64 Width; - UINT Height; - UINT16 DepthOrArraySize; - UINT16 MipLevels; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - D3D12_TEXTURE_LAYOUT Layout; - D3D12_RESOURCE_FLAGS Flags; - } D3D12_RESOURCE_DESC; - -typedef struct D3D12_DEPTH_STENCIL_VALUE - { - FLOAT Depth; - UINT8 Stencil; - } D3D12_DEPTH_STENCIL_VALUE; - -typedef struct D3D12_CLEAR_VALUE - { - DXGI_FORMAT Format; - union - { - FLOAT Color[ 4 ]; - D3D12_DEPTH_STENCIL_VALUE DepthStencil; - } ; - } D3D12_CLEAR_VALUE; - -typedef struct D3D12_RANGE - { - SIZE_T Begin; - SIZE_T End; - } D3D12_RANGE; - -typedef struct D3D12_SUBRESOURCE_INFO - { - UINT64 Offset; - UINT RowPitch; - UINT DepthPitch; - } D3D12_SUBRESOURCE_INFO; - -typedef struct D3D12_TILED_RESOURCE_COORDINATE - { - UINT X; - UINT Y; - UINT Z; - UINT Subresource; - } D3D12_TILED_RESOURCE_COORDINATE; - -typedef struct D3D12_TILE_REGION_SIZE - { - UINT NumTiles; - BOOL UseBox; - UINT Width; - UINT16 Height; - UINT16 Depth; - } D3D12_TILE_REGION_SIZE; - -typedef -enum D3D12_TILE_RANGE_FLAGS - { - D3D12_TILE_RANGE_FLAG_NONE = 0, - D3D12_TILE_RANGE_FLAG_NULL = 1, - D3D12_TILE_RANGE_FLAG_SKIP = 2, - D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 - } D3D12_TILE_RANGE_FLAGS; - -typedef struct D3D12_SUBRESOURCE_TILING - { - UINT WidthInTiles; - UINT16 HeightInTiles; - UINT16 DepthInTiles; - UINT StartTileIndexInOverallResource; - } D3D12_SUBRESOURCE_TILING; - -typedef struct D3D12_TILE_SHAPE - { - UINT WidthInTexels; - UINT HeightInTexels; - UINT DepthInTexels; - } D3D12_TILE_SHAPE; - -typedef struct D3D12_PACKED_MIP_INFO - { - UINT8 NumStandardMips; - UINT8 NumPackedMips; - UINT NumTilesForPackedMips; - UINT StartTileIndexInOverallResource; - } D3D12_PACKED_MIP_INFO; - -typedef -enum D3D12_TILE_MAPPING_FLAGS - { - D3D12_TILE_MAPPING_FLAG_NONE = 0, - D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 - } D3D12_TILE_MAPPING_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS ); -typedef -enum D3D12_TILE_COPY_FLAGS - { - D3D12_TILE_COPY_FLAG_NONE = 0, - D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, - D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, - D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 - } D3D12_TILE_COPY_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS ); -typedef -enum D3D12_RESOURCE_STATES - { - D3D12_RESOURCE_STATE_COMMON = 0, - D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, - D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, - D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, - D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, - D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, - D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, - D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, - D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, - D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, - D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, - D3D12_RESOURCE_STATE_COPY_DEST = 0x400, - D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, - D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, - D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, - D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , - D3D12_RESOURCE_STATE_PRESENT = 0, - D3D12_RESOURCE_STATE_PREDICATION = 0x200 - } D3D12_RESOURCE_STATES; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES ); -typedef -enum D3D12_RESOURCE_BARRIER_TYPE - { - D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, - D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , - D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) - } D3D12_RESOURCE_BARRIER_TYPE; - - -typedef struct D3D12_RESOURCE_TRANSITION_BARRIER - { - ID3D12Resource *pResource; - UINT Subresource; - D3D12_RESOURCE_STATES StateBefore; - D3D12_RESOURCE_STATES StateAfter; - } D3D12_RESOURCE_TRANSITION_BARRIER; - -typedef struct D3D12_RESOURCE_ALIASING_BARRIER - { - ID3D12Resource *pResourceBefore; - ID3D12Resource *pResourceAfter; - } D3D12_RESOURCE_ALIASING_BARRIER; - -typedef struct D3D12_RESOURCE_UAV_BARRIER - { - ID3D12Resource *pResource; - } D3D12_RESOURCE_UAV_BARRIER; - -typedef -enum D3D12_RESOURCE_BARRIER_FLAGS - { - D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, - D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, - D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 - } D3D12_RESOURCE_BARRIER_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS ); -typedef struct D3D12_RESOURCE_BARRIER - { - D3D12_RESOURCE_BARRIER_TYPE Type; - D3D12_RESOURCE_BARRIER_FLAGS Flags; - union - { - D3D12_RESOURCE_TRANSITION_BARRIER Transition; - D3D12_RESOURCE_ALIASING_BARRIER Aliasing; - D3D12_RESOURCE_UAV_BARRIER UAV; - } ; - } D3D12_RESOURCE_BARRIER; - -typedef struct D3D12_SUBRESOURCE_FOOTPRINT - { - DXGI_FORMAT Format; - UINT Width; - UINT Height; - UINT Depth; - UINT RowPitch; - } D3D12_SUBRESOURCE_FOOTPRINT; - -typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT - { - UINT64 Offset; - D3D12_SUBRESOURCE_FOOTPRINT Footprint; - } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; - -typedef -enum D3D12_TEXTURE_COPY_TYPE - { - D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, - D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 - } D3D12_TEXTURE_COPY_TYPE; - -typedef struct D3D12_TEXTURE_COPY_LOCATION - { - ID3D12Resource *pResource; - D3D12_TEXTURE_COPY_TYPE Type; - union - { - D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; - UINT SubresourceIndex; - } ; - } D3D12_TEXTURE_COPY_LOCATION; - -typedef -enum D3D12_SHADER_COMPONENT_MAPPING - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 - } D3D12_SHADER_COMPONENT_MAPPING; - -#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 -#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 -#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) -#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ - (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) -#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) -typedef -enum D3D12_BUFFER_SRV_FLAGS - { - D3D12_BUFFER_SRV_FLAG_NONE = 0, - D3D12_BUFFER_SRV_FLAG_RAW = 0x1 - } D3D12_BUFFER_SRV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS ); -typedef struct D3D12_BUFFER_SRV - { - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; - D3D12_BUFFER_SRV_FLAGS Flags; - } D3D12_BUFFER_SRV; - -typedef struct D3D12_TEX1D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEX1D_SRV; - -typedef struct D3D12_TEX1D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - FLOAT ResourceMinLODClamp; - } D3D12_TEX1D_ARRAY_SRV; - -typedef struct D3D12_TEX2D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; - } D3D12_TEX2D_SRV; - -typedef struct D3D12_TEX2D_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - FLOAT ResourceMinLODClamp; - } D3D12_TEX2D_ARRAY_SRV; - -typedef struct D3D12_TEX3D_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEX3D_SRV; - -typedef struct D3D12_TEXCUBE_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - FLOAT ResourceMinLODClamp; - } D3D12_TEXCUBE_SRV; - -typedef struct D3D12_TEXCUBE_ARRAY_SRV - { - UINT MostDetailedMip; - UINT MipLevels; - UINT First2DArrayFace; - UINT NumCubes; - FLOAT ResourceMinLODClamp; - } D3D12_TEXCUBE_ARRAY_SRV; - -typedef struct D3D12_TEX2DMS_SRV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_SRV; - -typedef struct D3D12_TEX2DMS_ARRAY_SRV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_SRV; - -typedef -enum D3D12_SRV_DIMENSION - { - D3D12_SRV_DIMENSION_UNKNOWN = 0, - D3D12_SRV_DIMENSION_BUFFER = 1, - D3D12_SRV_DIMENSION_TEXTURE1D = 2, - D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_SRV_DIMENSION_TEXTURE2D = 4, - D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_SRV_DIMENSION_TEXTURE3D = 8, - D3D12_SRV_DIMENSION_TEXTURECUBE = 9, - D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10 - } D3D12_SRV_DIMENSION; - -typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_SRV_DIMENSION ViewDimension; - UINT Shader4ComponentMapping; - union - { - D3D12_BUFFER_SRV Buffer; - D3D12_TEX1D_SRV Texture1D; - D3D12_TEX1D_ARRAY_SRV Texture1DArray; - D3D12_TEX2D_SRV Texture2D; - D3D12_TEX2D_ARRAY_SRV Texture2DArray; - D3D12_TEX2DMS_SRV Texture2DMS; - D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; - D3D12_TEX3D_SRV Texture3D; - D3D12_TEXCUBE_SRV TextureCube; - D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; - } ; - } D3D12_SHADER_RESOURCE_VIEW_DESC; - -typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - } D3D12_CONSTANT_BUFFER_VIEW_DESC; - -typedef -enum D3D12_FILTER - { - D3D12_FILTER_MIN_MAG_MIP_POINT = 0, - D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, - D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, - D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, - D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, - D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, - D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, - D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, - D3D12_FILTER_ANISOTROPIC = 0x55, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, - D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, - D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, - D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, - D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, - D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, - D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, - D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, - D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, - D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, - D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, - D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, - D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, - D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, - D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, - D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, - D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, - D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, - D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 - } D3D12_FILTER; - -typedef -enum D3D12_FILTER_TYPE - { - D3D12_FILTER_TYPE_POINT = 0, - D3D12_FILTER_TYPE_LINEAR = 1 - } D3D12_FILTER_TYPE; - -typedef -enum D3D12_FILTER_REDUCTION_TYPE - { - D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, - D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, - D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, - D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 - } D3D12_FILTER_REDUCTION_TYPE; - -#define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) - -#define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) - -#define D3D12_FILTER_TYPE_MASK ( 0x3 ) - -#define D3D12_MIN_FILTER_SHIFT ( 4 ) - -#define D3D12_MAG_FILTER_SHIFT ( 2 ) - -#define D3D12_MIP_FILTER_SHIFT ( 0 ) - -#define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 ) - -#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ - ( ( D3D12_FILTER ) ( \ - ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ - ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ - ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ - ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) -#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ - ( ( D3D12_FILTER ) ( \ - D3D12_ANISOTROPIC_FILTERING_BIT | \ - D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_LINEAR, \ - D3D12_FILTER_TYPE_LINEAR, \ - reduction ) ) ) -#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ - ( ( D3D12_FILTER_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) -#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ - ( ( D3D12_FILTER_REDUCTION_TYPE ) \ - ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) -#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ - ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) -#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ - ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ - ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ - ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \ - ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) ) -typedef -enum D3D12_TEXTURE_ADDRESS_MODE - { - D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, - D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, - D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, - D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 - } D3D12_TEXTURE_ADDRESS_MODE; - -typedef struct D3D12_SAMPLER_DESC - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - FLOAT BorderColor[ 4 ]; - FLOAT MinLOD; - FLOAT MaxLOD; - } D3D12_SAMPLER_DESC; - -typedef -enum D3D12_BUFFER_UAV_FLAGS - { - D3D12_BUFFER_UAV_FLAG_NONE = 0, - D3D12_BUFFER_UAV_FLAG_RAW = 0x1 - } D3D12_BUFFER_UAV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS ); -typedef struct D3D12_BUFFER_UAV - { - UINT64 FirstElement; - UINT NumElements; - UINT StructureByteStride; - UINT64 CounterOffsetInBytes; - D3D12_BUFFER_UAV_FLAGS Flags; - } D3D12_BUFFER_UAV; - -typedef struct D3D12_TEX1D_UAV - { - UINT MipSlice; - } D3D12_TEX1D_UAV; - -typedef struct D3D12_TEX1D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_UAV; - -typedef struct D3D12_TEX2D_UAV - { - UINT MipSlice; - UINT PlaneSlice; - } D3D12_TEX2D_UAV; - -typedef struct D3D12_TEX2D_ARRAY_UAV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D12_TEX2D_ARRAY_UAV; - -typedef struct D3D12_TEX3D_UAV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D12_TEX3D_UAV; - -typedef -enum D3D12_UAV_DIMENSION - { - D3D12_UAV_DIMENSION_UNKNOWN = 0, - D3D12_UAV_DIMENSION_BUFFER = 1, - D3D12_UAV_DIMENSION_TEXTURE1D = 2, - D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_UAV_DIMENSION_TEXTURE2D = 4, - D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_UAV_DIMENSION_TEXTURE3D = 8 - } D3D12_UAV_DIMENSION; - -typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_UAV_DIMENSION ViewDimension; - union - { - D3D12_BUFFER_UAV Buffer; - D3D12_TEX1D_UAV Texture1D; - D3D12_TEX1D_ARRAY_UAV Texture1DArray; - D3D12_TEX2D_UAV Texture2D; - D3D12_TEX2D_ARRAY_UAV Texture2DArray; - D3D12_TEX3D_UAV Texture3D; - } ; - } D3D12_UNORDERED_ACCESS_VIEW_DESC; - -typedef struct D3D12_BUFFER_RTV - { - UINT64 FirstElement; - UINT NumElements; - } D3D12_BUFFER_RTV; - -typedef struct D3D12_TEX1D_RTV - { - UINT MipSlice; - } D3D12_TEX1D_RTV; - -typedef struct D3D12_TEX1D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_RTV; - -typedef struct D3D12_TEX2D_RTV - { - UINT MipSlice; - UINT PlaneSlice; - } D3D12_TEX2D_RTV; - -typedef struct D3D12_TEX2DMS_RTV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_RTV; - -typedef struct D3D12_TEX2D_ARRAY_RTV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - UINT PlaneSlice; - } D3D12_TEX2D_ARRAY_RTV; - -typedef struct D3D12_TEX2DMS_ARRAY_RTV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_RTV; - -typedef struct D3D12_TEX3D_RTV - { - UINT MipSlice; - UINT FirstWSlice; - UINT WSize; - } D3D12_TEX3D_RTV; - -typedef -enum D3D12_RTV_DIMENSION - { - D3D12_RTV_DIMENSION_UNKNOWN = 0, - D3D12_RTV_DIMENSION_BUFFER = 1, - D3D12_RTV_DIMENSION_TEXTURE1D = 2, - D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, - D3D12_RTV_DIMENSION_TEXTURE2D = 4, - D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, - D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, - D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D12_RTV_DIMENSION_TEXTURE3D = 8 - } D3D12_RTV_DIMENSION; - -typedef struct D3D12_RENDER_TARGET_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_RTV_DIMENSION ViewDimension; - union - { - D3D12_BUFFER_RTV Buffer; - D3D12_TEX1D_RTV Texture1D; - D3D12_TEX1D_ARRAY_RTV Texture1DArray; - D3D12_TEX2D_RTV Texture2D; - D3D12_TEX2D_ARRAY_RTV Texture2DArray; - D3D12_TEX2DMS_RTV Texture2DMS; - D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; - D3D12_TEX3D_RTV Texture3D; - } ; - } D3D12_RENDER_TARGET_VIEW_DESC; - -typedef struct D3D12_TEX1D_DSV - { - UINT MipSlice; - } D3D12_TEX1D_DSV; - -typedef struct D3D12_TEX1D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX1D_ARRAY_DSV; - -typedef struct D3D12_TEX2D_DSV - { - UINT MipSlice; - } D3D12_TEX2D_DSV; - -typedef struct D3D12_TEX2D_ARRAY_DSV - { - UINT MipSlice; - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2D_ARRAY_DSV; - -typedef struct D3D12_TEX2DMS_DSV - { - UINT UnusedField_NothingToDefine; - } D3D12_TEX2DMS_DSV; - -typedef struct D3D12_TEX2DMS_ARRAY_DSV - { - UINT FirstArraySlice; - UINT ArraySize; - } D3D12_TEX2DMS_ARRAY_DSV; - -typedef -enum D3D12_DSV_FLAGS - { - D3D12_DSV_FLAG_NONE = 0, - D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, - D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 - } D3D12_DSV_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS ); -typedef -enum D3D12_DSV_DIMENSION - { - D3D12_DSV_DIMENSION_UNKNOWN = 0, - D3D12_DSV_DIMENSION_TEXTURE1D = 1, - D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, - D3D12_DSV_DIMENSION_TEXTURE2D = 3, - D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, - D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, - D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 - } D3D12_DSV_DIMENSION; - -typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC - { - DXGI_FORMAT Format; - D3D12_DSV_DIMENSION ViewDimension; - D3D12_DSV_FLAGS Flags; - union - { - D3D12_TEX1D_DSV Texture1D; - D3D12_TEX1D_ARRAY_DSV Texture1DArray; - D3D12_TEX2D_DSV Texture2D; - D3D12_TEX2D_ARRAY_DSV Texture2DArray; - D3D12_TEX2DMS_DSV Texture2DMS; - D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; - } ; - } D3D12_DEPTH_STENCIL_VIEW_DESC; - -typedef -enum D3D12_CLEAR_FLAGS - { - D3D12_CLEAR_FLAG_DEPTH = 0x1, - D3D12_CLEAR_FLAG_STENCIL = 0x2 - } D3D12_CLEAR_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS ); -typedef -enum D3D12_FENCE_FLAGS - { - D3D12_FENCE_FLAG_NONE = 0, - D3D12_FENCE_FLAG_SHARED = 0x1, - D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2 - } D3D12_FENCE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS ); -typedef -enum D3D12_DESCRIPTOR_HEAP_TYPE - { - D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, - D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , - D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) - } D3D12_DESCRIPTOR_HEAP_TYPE; - -typedef -enum D3D12_DESCRIPTOR_HEAP_FLAGS - { - D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, - D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 - } D3D12_DESCRIPTOR_HEAP_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS ); -typedef struct D3D12_DESCRIPTOR_HEAP_DESC - { - D3D12_DESCRIPTOR_HEAP_TYPE Type; - UINT NumDescriptors; - D3D12_DESCRIPTOR_HEAP_FLAGS Flags; - UINT NodeMask; - } D3D12_DESCRIPTOR_HEAP_DESC; - -typedef -enum D3D12_DESCRIPTOR_RANGE_TYPE - { - D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, - D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , - D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , - D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) - } D3D12_DESCRIPTOR_RANGE_TYPE; - -typedef struct D3D12_DESCRIPTOR_RANGE - { - D3D12_DESCRIPTOR_RANGE_TYPE RangeType; - UINT NumDescriptors; - UINT BaseShaderRegister; - UINT RegisterSpace; - UINT OffsetInDescriptorsFromTableStart; - } D3D12_DESCRIPTOR_RANGE; - -typedef struct D3D12_ROOT_DESCRIPTOR_TABLE - { - UINT NumDescriptorRanges; - _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; - } D3D12_ROOT_DESCRIPTOR_TABLE; - -typedef struct D3D12_ROOT_CONSTANTS - { - UINT ShaderRegister; - UINT RegisterSpace; - UINT Num32BitValues; - } D3D12_ROOT_CONSTANTS; - -typedef struct D3D12_ROOT_DESCRIPTOR - { - UINT ShaderRegister; - UINT RegisterSpace; - } D3D12_ROOT_DESCRIPTOR; - -typedef -enum D3D12_SHADER_VISIBILITY - { - D3D12_SHADER_VISIBILITY_ALL = 0, - D3D12_SHADER_VISIBILITY_VERTEX = 1, - D3D12_SHADER_VISIBILITY_HULL = 2, - D3D12_SHADER_VISIBILITY_DOMAIN = 3, - D3D12_SHADER_VISIBILITY_GEOMETRY = 4, - D3D12_SHADER_VISIBILITY_PIXEL = 5 - } D3D12_SHADER_VISIBILITY; - -typedef -enum D3D12_ROOT_PARAMETER_TYPE - { - D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, - D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , - D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) - } D3D12_ROOT_PARAMETER_TYPE; - -typedef struct D3D12_ROOT_PARAMETER - { - D3D12_ROOT_PARAMETER_TYPE ParameterType; - union - { - D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; - D3D12_ROOT_CONSTANTS Constants; - D3D12_ROOT_DESCRIPTOR Descriptor; - } ; - D3D12_SHADER_VISIBILITY ShaderVisibility; - } D3D12_ROOT_PARAMETER; - -typedef -enum D3D12_ROOT_SIGNATURE_FLAGS - { - D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, - D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, - D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, - D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, - D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, - D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, - D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40 - } D3D12_ROOT_SIGNATURE_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS ); -typedef -enum D3D12_STATIC_BORDER_COLOR - { - D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, - D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , - D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) - } D3D12_STATIC_BORDER_COLOR; - -typedef struct D3D12_STATIC_SAMPLER_DESC - { - D3D12_FILTER Filter; - D3D12_TEXTURE_ADDRESS_MODE AddressU; - D3D12_TEXTURE_ADDRESS_MODE AddressV; - D3D12_TEXTURE_ADDRESS_MODE AddressW; - FLOAT MipLODBias; - UINT MaxAnisotropy; - D3D12_COMPARISON_FUNC ComparisonFunc; - D3D12_STATIC_BORDER_COLOR BorderColor; - FLOAT MinLOD; - FLOAT MaxLOD; - UINT ShaderRegister; - UINT RegisterSpace; - D3D12_SHADER_VISIBILITY ShaderVisibility; - } D3D12_STATIC_SAMPLER_DESC; - -typedef struct D3D12_ROOT_SIGNATURE_DESC - { - UINT NumParameters; - _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters; - UINT NumStaticSamplers; - _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; - D3D12_ROOT_SIGNATURE_FLAGS Flags; - } D3D12_ROOT_SIGNATURE_DESC; - -typedef -enum D3D_ROOT_SIGNATURE_VERSION - { - D3D_ROOT_SIGNATURE_VERSION_1 = 0x1 - } D3D_ROOT_SIGNATURE_VERSION; - - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; - -#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ -#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ - -/* interface ID3D12RootSignatureDeserializer */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12RootSignatureDeserializer; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046") - ID3D12RootSignatureDeserializer : public IUnknown - { - public: - virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12RootSignatureDeserializerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12RootSignatureDeserializer * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12RootSignatureDeserializer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12RootSignatureDeserializer * This); - - const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )( - ID3D12RootSignatureDeserializer * This); - - END_INTERFACE - } ID3D12RootSignatureDeserializerVtbl; - - interface ID3D12RootSignatureDeserializer - { - CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12RootSignatureDeserializer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12RootSignatureDeserializer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \ - ( (This)->lpVtbl -> GetRootSignatureDesc(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0002 */ -/* [local] */ - -typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( - _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, - _In_ D3D_ROOT_SIGNATURE_VERSION Version, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -HRESULT WINAPI D3D12SerializeRootSignature( - _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, - _In_ D3D_ROOT_SIGNATURE_VERSION Version, - _Out_ ID3DBlob** ppBlob, - _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); - -typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( - _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, - _In_ SIZE_T SrcDataSizeInBytes, - _In_ REFIID pRootSignatureDeserializerInterface, - _Out_ void** ppRootSignatureDeserializer); - -HRESULT WINAPI D3D12CreateRootSignatureDeserializer( - _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; - } D3D12_CPU_DESCRIPTOR_HANDLE; - -typedef struct D3D12_GPU_DESCRIPTOR_HANDLE - { - UINT64 ptr; - } D3D12_GPU_DESCRIPTOR_HANDLE; - -// If rects are supplied in D3D12_DISCARD_REGION, below, the resource -// must have 2D subresources with all specified subresources the same dimension. -typedef struct D3D12_DISCARD_REGION - { - UINT NumRects; - _In_reads_(NumRects) const D3D12_RECT *pRects; - UINT FirstSubresource; - UINT NumSubresources; - } D3D12_DISCARD_REGION; - -typedef -enum D3D12_QUERY_HEAP_TYPE - { - D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, - D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, - D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, - D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3 - } D3D12_QUERY_HEAP_TYPE; - -typedef struct D3D12_QUERY_HEAP_DESC - { - D3D12_QUERY_HEAP_TYPE Type; - UINT Count; - UINT NodeMask; - } D3D12_QUERY_HEAP_DESC; - -typedef -enum D3D12_QUERY_TYPE - { - D3D12_QUERY_TYPE_OCCLUSION = 0, - D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, - D3D12_QUERY_TYPE_TIMESTAMP = 2, - D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, - D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7 - } D3D12_QUERY_TYPE; - -typedef -enum D3D12_PREDICATION_OP - { - D3D12_PREDICATION_OP_EQUAL_ZERO = 0, - D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 - } D3D12_PREDICATION_OP; - -typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS - { - UINT64 IAVertices; - UINT64 IAPrimitives; - UINT64 VSInvocations; - UINT64 GSInvocations; - UINT64 GSPrimitives; - UINT64 CInvocations; - UINT64 CPrimitives; - UINT64 PSInvocations; - UINT64 HSInvocations; - UINT64 DSInvocations; - UINT64 CSInvocations; - } D3D12_QUERY_DATA_PIPELINE_STATISTICS; - -typedef struct D3D12_QUERY_DATA_SO_STATISTICS - { - UINT64 NumPrimitivesWritten; - UINT64 PrimitivesStorageNeeded; - } D3D12_QUERY_DATA_SO_STATISTICS; - -typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT64 SizeInBytes; - D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; - } D3D12_STREAM_OUTPUT_BUFFER_VIEW; - -typedef struct D3D12_DRAW_ARGUMENTS - { - UINT VertexCountPerInstance; - UINT InstanceCount; - UINT StartVertexLocation; - UINT StartInstanceLocation; - } D3D12_DRAW_ARGUMENTS; - -typedef struct D3D12_DRAW_INDEXED_ARGUMENTS - { - UINT IndexCountPerInstance; - UINT InstanceCount; - UINT StartIndexLocation; - INT BaseVertexLocation; - UINT StartInstanceLocation; - } D3D12_DRAW_INDEXED_ARGUMENTS; - -typedef struct D3D12_DISPATCH_ARGUMENTS - { - UINT ThreadGroupCountX; - UINT ThreadGroupCountY; - UINT ThreadGroupCountZ; - } D3D12_DISPATCH_ARGUMENTS; - -typedef struct D3D12_VERTEX_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - UINT StrideInBytes; - } D3D12_VERTEX_BUFFER_VIEW; - -typedef struct D3D12_INDEX_BUFFER_VIEW - { - D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; - UINT SizeInBytes; - DXGI_FORMAT Format; - } D3D12_INDEX_BUFFER_VIEW; - -typedef -enum D3D12_INDIRECT_ARGUMENT_TYPE - { - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, - D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , - D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) - } D3D12_INDIRECT_ARGUMENT_TYPE; - -typedef struct D3D12_INDIRECT_ARGUMENT_DESC - { - D3D12_INDIRECT_ARGUMENT_TYPE Type; - union - { - struct - { - UINT Slot; - } VertexBuffer; - struct - { - UINT RootParameterIndex; - UINT DestOffsetIn32BitValues; - UINT Num32BitValuesToSet; - } Constant; - struct - { - UINT RootParameterIndex; - } ConstantBufferView; - struct - { - UINT RootParameterIndex; - } ShaderResourceView; - struct - { - UINT RootParameterIndex; - } UnorderedAccessView; - } ; - } D3D12_INDIRECT_ARGUMENT_DESC; - -typedef struct D3D12_COMMAND_SIGNATURE_DESC - { - UINT ByteStride; - UINT NumArgumentDescs; - _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; - UINT NodeMask; - } 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; - -#ifndef __ID3D12Pageable_INTERFACE_DEFINED__ -#define __ID3D12Pageable_INTERFACE_DEFINED__ - -/* interface ID3D12Pageable */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Pageable; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") - ID3D12Pageable : public ID3D12DeviceChild - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12PageableVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Pageable * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Pageable * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Pageable * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Pageable * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Pageable * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Pageable * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12PageableVtbl; - - interface ID3D12Pageable - { - CONST_VTBL struct ID3D12PageableVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Pageable_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Pageable_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Pageable_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Heap_INTERFACE_DEFINED__ -#define __ID3D12Heap_INTERFACE_DEFINED__ - -/* interface ID3D12Heap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Heap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") - ID3D12Heap : public ID3D12Pageable - { - public: - virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12HeapVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Heap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Heap * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Heap * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Heap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Heap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Heap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Heap * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Heap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Heap * This); - - END_INTERFACE - } ID3D12HeapVtbl; - - interface ID3D12Heap - { - CONST_VTBL struct ID3D12HeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Heap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Heap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Heap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Heap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Heap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Heap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - - - - - -#endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Resource_INTERFACE_DEFINED__ -#define __ID3D12Resource_INTERFACE_DEFINED__ - -/* interface ID3D12Resource */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Resource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") - ID3D12Resource : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE Map( - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0; - - virtual void STDMETHODCALLTYPE Unmap( - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; - - virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; - - virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12ResourceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Resource * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Resource * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Resource * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Resource * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Resource * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Resource * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Resource * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Resource * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - HRESULT ( STDMETHODCALLTYPE *Map )( - ID3D12Resource * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pReadRange, - _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); - - void ( STDMETHODCALLTYPE *Unmap )( - ID3D12Resource * This, - UINT Subresource, - _In_opt_ const D3D12_RANGE *pWrittenRange); - - D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12Resource * This); - - D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( - ID3D12Resource * This); - - HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( - ID3D12Resource * This, - UINT DstSubresource, - _In_opt_ const D3D12_BOX *pDstBox, - _In_ const void *pSrcData, - UINT SrcRowPitch, - UINT SrcDepthPitch); - - HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( - ID3D12Resource * This, - _Out_ void *pDstData, - UINT DstRowPitch, - UINT DstDepthPitch, - UINT SrcSubresource, - _In_opt_ const D3D12_BOX *pSrcBox); - - HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( - ID3D12Resource * This, - _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, - _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); - - END_INTERFACE - } ID3D12ResourceVtbl; - - interface ID3D12Resource - { - CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Resource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Resource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Resource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Resource_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Resource_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \ - ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) - -#define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \ - ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) - -#define ID3D12Resource_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) - -#define ID3D12Resource_GetGPUVirtualAddress(This) \ - ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) - -#define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ - ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) - -#define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ - ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) - -#define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ - ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - - - - - -#endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ -#define __ID3D12CommandAllocator_INTERFACE_DEFINED__ - -/* interface ID3D12CommandAllocator */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandAllocator; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") - ID3D12CommandAllocator : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandAllocatorVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandAllocator * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandAllocator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandAllocator * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandAllocator * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandAllocator * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandAllocator * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12CommandAllocator * This); - - END_INTERFACE - } ID3D12CommandAllocatorVtbl; - - interface ID3D12CommandAllocator - { - CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandAllocator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandAllocator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandAllocator_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12CommandAllocator_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Fence_INTERFACE_DEFINED__ -#define __ID3D12Fence_INTERFACE_DEFINED__ - -/* interface ID3D12Fence */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Fence; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") - ID3D12Fence : public ID3D12Pageable - { - public: - virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( - UINT64 Value, - HANDLE hEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( - UINT64 Value) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12FenceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Fence * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Fence * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Fence * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Fence * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Fence * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Fence * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Fence * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12Fence * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( - ID3D12Fence * This); - - HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( - ID3D12Fence * This, - UINT64 Value, - HANDLE hEvent); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - ID3D12Fence * This, - UINT64 Value); - - END_INTERFACE - } ID3D12FenceVtbl; - - interface ID3D12Fence - { - CONST_VTBL struct ID3D12FenceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Fence_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Fence_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Fence_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Fence_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Fence_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12Fence_GetCompletedValue(This) \ - ( (This)->lpVtbl -> GetCompletedValue(This) ) - -#define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \ - ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) - -#define ID3D12Fence_Signal(This,Value) \ - ( (This)->lpVtbl -> Signal(This,Value) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ -#define __ID3D12PipelineState_INTERFACE_DEFINED__ - -/* interface ID3D12PipelineState */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12PipelineState; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") - ID3D12PipelineState : public ID3D12Pageable - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( - _COM_Outptr_ ID3DBlob **ppBlob) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12PipelineStateVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12PipelineState * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12PipelineState * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12PipelineState * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12PipelineState * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12PipelineState * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12PipelineState * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( - ID3D12PipelineState * This, - _COM_Outptr_ ID3DBlob **ppBlob); - - END_INTERFACE - } ID3D12PipelineStateVtbl; - - interface ID3D12PipelineState - { - CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12PipelineState_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12PipelineState_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12PipelineState_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \ - ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ -#define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ - -/* interface ID3D12DescriptorHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DescriptorHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") - ID3D12DescriptorHeap : public ID3D12Pageable - { - public: - virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; - - virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0; - - virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DescriptorHeapVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DescriptorHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DescriptorHeap * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DescriptorHeap * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12DescriptorHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12DescriptorHeap * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12DescriptorHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12DescriptorHeap * This); - - D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This); - - D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( - ID3D12DescriptorHeap * This); - - END_INTERFACE - } ID3D12DescriptorHeapVtbl; - - interface ID3D12DescriptorHeap - { - CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DescriptorHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DescriptorHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12DescriptorHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12DescriptorHeap_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) - -#define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \ - ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) ) - -#define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \ - ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - - - - - - - - - - - - - -#endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ -#define __ID3D12QueryHeap_INTERFACE_DEFINED__ - -/* interface ID3D12QueryHeap */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12QueryHeap; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") - ID3D12QueryHeap : public ID3D12Pageable - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12QueryHeapVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12QueryHeap * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12QueryHeap * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12QueryHeap * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12QueryHeap * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12QueryHeap * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12QueryHeap * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12QueryHeapVtbl; - - interface ID3D12QueryHeap - { - CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12QueryHeap_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12QueryHeap_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12QueryHeap_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ -#define __ID3D12CommandSignature_INTERFACE_DEFINED__ - -/* interface ID3D12CommandSignature */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandSignature; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") - ID3D12CommandSignature : public ID3D12Pageable - { - public: - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandSignatureVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandSignature * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandSignature * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandSignature * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandSignature * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandSignature * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandSignature * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - END_INTERFACE - } ID3D12CommandSignatureVtbl; - - interface ID3D12CommandSignature - { - CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandSignature_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandSignature_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandSignature_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandList_INTERFACE_DEFINED__ -#define __ID3D12CommandList_INTERFACE_DEFINED__ - -/* interface ID3D12CommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") - ID3D12CommandList : public ID3D12DeviceChild - { - public: - virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandList * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandList * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12CommandList * This); - - END_INTERFACE - } ID3D12CommandListVtbl; - - interface ID3D12CommandList - { - CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12CommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ -#define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12GraphicsCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12GraphicsCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") - ID3D12GraphicsCommandList : public ID3D12CommandList - { - public: - virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Reset( - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState) = 0; - - virtual void STDMETHODCALLTYPE ClearState( - _In_opt_ ID3D12PipelineState *pPipelineState) = 0; - - virtual void STDMETHODCALLTYPE DrawInstanced( - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE DrawIndexedInstanced( - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation) = 0; - - virtual void STDMETHODCALLTYPE Dispatch( - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ) = 0; - - virtual void STDMETHODCALLTYPE CopyBufferRegion( - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes) = 0; - - virtual void STDMETHODCALLTYPE CopyTextureRegion( - _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) = 0; - - virtual void STDMETHODCALLTYPE CopyResource( - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource) = 0; - - virtual void STDMETHODCALLTYPE CopyTiles( - _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) = 0; - - virtual void STDMETHODCALLTYPE ResolveSubresource( - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format) = 0; - - virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; - - virtual void STDMETHODCALLTYPE RSSetViewports( - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0; - - virtual void STDMETHODCALLTYPE RSSetScissorRects( - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE OMSetBlendFactor( - _In_opt_ const FLOAT BlendFactor[ 4 ]) = 0; - - virtual void STDMETHODCALLTYPE OMSetStencilRef( - _In_ UINT StencilRef) = 0; - - virtual void STDMETHODCALLTYPE SetPipelineState( - _In_ ID3D12PipelineState *pPipelineState) = 0; - - virtual void STDMETHODCALLTYPE ResourceBarrier( - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; - - virtual void STDMETHODCALLTYPE ExecuteBundle( - _In_ ID3D12GraphicsCommandList *pCommandList) = 0; - - virtual void STDMETHODCALLTYPE SetDescriptorHeaps( - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootSignature( - _In_ ID3D12RootSignature *pRootSignature) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( - _In_ ID3D12RootSignature *pRootSignature) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; - - virtual void STDMETHODCALLTYPE IASetIndexBuffer( - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0; - - virtual void STDMETHODCALLTYPE IASetVertexBuffers( - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; - - virtual void STDMETHODCALLTYPE SOSetTargets( - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; - - virtual void STDMETHODCALLTYPE OMSetRenderTargets( - _In_ UINT NumRenderTargetDescriptors, - _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; - - virtual void STDMETHODCALLTYPE ClearDepthStencilView( - _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) = 0; - - virtual void STDMETHODCALLTYPE ClearRenderTargetView( - _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, - _In_ const FLOAT ColorRGBA[ 4 ], - _In_ UINT NumRects, - _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( - _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) = 0; - - virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( - _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) = 0; - - virtual void STDMETHODCALLTYPE DiscardResource( - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; - - virtual void STDMETHODCALLTYPE BeginQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE EndQuery( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index) = 0; - - virtual void STDMETHODCALLTYPE ResolveQueryData( - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset) = 0; - - virtual void STDMETHODCALLTYPE SetPredication( - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual void STDMETHODCALLTYPE ExecuteIndirect( - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12GraphicsCommandListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12GraphicsCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12GraphicsCommandList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12GraphicsCommandList * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12GraphicsCommandList * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12GraphicsCommandList * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12GraphicsCommandList * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( - ID3D12GraphicsCommandList * This); - - HRESULT ( STDMETHODCALLTYPE *Close )( - ID3D12GraphicsCommandList * This); - - HRESULT ( STDMETHODCALLTYPE *Reset )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12CommandAllocator *pAllocator, - _In_opt_ ID3D12PipelineState *pInitialState); - - void ( STDMETHODCALLTYPE *ClearState )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12PipelineState *pPipelineState); - - void ( STDMETHODCALLTYPE *DrawInstanced )( - ID3D12GraphicsCommandList * This, - _In_ UINT VertexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartVertexLocation, - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( - ID3D12GraphicsCommandList * This, - _In_ UINT IndexCountPerInstance, - _In_ UINT InstanceCount, - _In_ UINT StartIndexLocation, - _In_ INT BaseVertexLocation, - _In_ UINT StartInstanceLocation); - - void ( STDMETHODCALLTYPE *Dispatch )( - ID3D12GraphicsCommandList * This, - _In_ UINT ThreadGroupCountX, - _In_ UINT ThreadGroupCountY, - _In_ UINT ThreadGroupCountZ); - - void ( STDMETHODCALLTYPE *CopyBufferRegion )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstBuffer, - UINT64 DstOffset, - _In_ ID3D12Resource *pSrcBuffer, - UINT64 SrcOffset, - UINT64 NumBytes); - - void ( STDMETHODCALLTYPE *CopyTextureRegion )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstResource, - _In_ ID3D12Resource *pSrcResource); - - void ( STDMETHODCALLTYPE *CopyTiles )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pDstResource, - _In_ UINT DstSubresource, - _In_ ID3D12Resource *pSrcResource, - _In_ UINT SrcSubresource, - _In_ DXGI_FORMAT Format); - - void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( - ID3D12GraphicsCommandList * This, - _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); - - void ( STDMETHODCALLTYPE *RSSetViewports )( - ID3D12GraphicsCommandList * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, - _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); - - void ( STDMETHODCALLTYPE *RSSetScissorRects )( - ID3D12GraphicsCommandList * This, - _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, - _In_reads_( NumRects) const D3D12_RECT *pRects); - - void ( STDMETHODCALLTYPE *OMSetBlendFactor )( - ID3D12GraphicsCommandList * This, - _In_opt_ const FLOAT BlendFactor[ 4 ]); - - void ( STDMETHODCALLTYPE *OMSetStencilRef )( - ID3D12GraphicsCommandList * This, - _In_ UINT StencilRef); - - void ( STDMETHODCALLTYPE *SetPipelineState )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12PipelineState *pPipelineState); - - void ( STDMETHODCALLTYPE *ResourceBarrier )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumBarriers, - _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); - - void ( STDMETHODCALLTYPE *ExecuteBundle )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12GraphicsCommandList *pCommandList); - - void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumDescriptorHeaps, - _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps); - - void ( STDMETHODCALLTYPE *SetComputeRootSignature )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12RootSignature *pRootSignature); - - void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12RootSignature *pRootSignature); - - void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); - - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT SrcData, - _In_ UINT DestOffsetIn32BitValues); - - void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ UINT Num32BitValuesToSet, - _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, - _In_ UINT DestOffsetIn32BitValues); - - void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( - ID3D12GraphicsCommandList * This, - _In_ UINT RootParameterIndex, - _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); - - void ( STDMETHODCALLTYPE *IASetIndexBuffer )( - ID3D12GraphicsCommandList * This, - _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); - - void ( STDMETHODCALLTYPE *IASetVertexBuffers )( - ID3D12GraphicsCommandList * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); - - void ( STDMETHODCALLTYPE *SOSetTargets )( - ID3D12GraphicsCommandList * This, - _In_ UINT StartSlot, - _In_ UINT NumViews, - _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); - - void ( STDMETHODCALLTYPE *OMSetRenderTargets )( - ID3D12GraphicsCommandList * This, - _In_ UINT NumRenderTargetDescriptors, - _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, - _In_ BOOL RTsSingleHandleToDescriptorRange, - _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); - - void ( STDMETHODCALLTYPE *ClearDepthStencilView )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * 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 )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DISCARD_REGION *pRegion); - - void ( STDMETHODCALLTYPE *BeginQuery )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - void ( STDMETHODCALLTYPE *EndQuery )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT Index); - - void ( STDMETHODCALLTYPE *ResolveQueryData )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12QueryHeap *pQueryHeap, - _In_ D3D12_QUERY_TYPE Type, - _In_ UINT StartIndex, - _In_ UINT NumQueries, - _In_ ID3D12Resource *pDestinationBuffer, - _In_ UINT64 AlignedDestinationBufferOffset); - - void ( STDMETHODCALLTYPE *SetPredication )( - ID3D12GraphicsCommandList * This, - _In_opt_ ID3D12Resource *pBuffer, - _In_ UINT64 AlignedBufferOffset, - _In_ D3D12_PREDICATION_OP Operation); - - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12GraphicsCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12GraphicsCommandList * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12GraphicsCommandList * This); - - void ( STDMETHODCALLTYPE *ExecuteIndirect )( - ID3D12GraphicsCommandList * This, - _In_ ID3D12CommandSignature *pCommandSignature, - _In_ UINT MaxCommandCount, - _In_ ID3D12Resource *pArgumentBuffer, - _In_ UINT64 ArgumentBufferOffset, - _In_opt_ ID3D12Resource *pCountBuffer, - _In_ UINT64 CountBufferOffset); - - END_INTERFACE - } ID3D12GraphicsCommandListVtbl; - - interface ID3D12GraphicsCommandList - { - CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12GraphicsCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12GraphicsCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12GraphicsCommandList_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - -#define ID3D12GraphicsCommandList_GetType(This) \ - ( (This)->lpVtbl -> GetType(This) ) - - -#define ID3D12GraphicsCommandList_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \ - ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) - -#define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \ - ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ - ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) - -#define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ - ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) - -#define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ - ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) - -#define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ - ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) - -#define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \ - ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) - -#define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ - ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) - -#define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ - ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) - -#define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \ - ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) - -#define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \ - ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) - -#define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \ - ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \ - ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) - -#define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \ - ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) - -#define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \ - ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) - -#define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ - ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) - -#define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \ - ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) - -#define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ - ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) - -#define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \ - ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) - -#define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ - ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) - -#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ - ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) - -#define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ - ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) - -#define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \ - ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) - -#define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \ - ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) - -#define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ - ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) - -#define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ - ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) - -#define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \ - ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) - -#define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \ - ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) - -#define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ - ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) - -#define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ - ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) - -#define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12GraphicsCommandList_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ - ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ -#define __ID3D12CommandQueue_INTERFACE_DEFINED__ - -/* interface ID3D12CommandQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12CommandQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") - ID3D12CommandQueue : public ID3D12Pageable - { - public: - virtual void STDMETHODCALLTYPE UpdateTileMappings( - _In_ ID3D12Resource *pResource, - UINT NumResourceRegions, - _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, - _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, - _In_opt_ ID3D12Heap *pHeap, - UINT NumRanges, - _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, - _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, - _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE CopyTileMappings( - _In_ ID3D12Resource *pDstResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, - _In_ ID3D12Resource *pSrcResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags) = 0; - - virtual void STDMETHODCALLTYPE ExecuteCommandLists( - _In_ UINT NumCommandLists, - _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0; - - virtual void STDMETHODCALLTYPE SetMarker( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE BeginEvent( - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size) = 0; - - virtual void STDMETHODCALLTYPE EndEvent( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Signal( - ID3D12Fence *pFence, - UINT64 Value) = 0; - - virtual HRESULT STDMETHODCALLTYPE Wait( - ID3D12Fence *pFence, - UINT64 Value) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( - _Out_ UINT64 *pFrequency) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( - _Out_ UINT64 *pGpuTimestamp, - _Out_ UINT64 *pCpuTimestamp) = 0; - - virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12CommandQueueVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12CommandQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12CommandQueue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12CommandQueue * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12CommandQueue * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12CommandQueue * This, - _In_z_ LPCWSTR Name); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - ID3D12CommandQueue * This, - REFIID riid, - _COM_Outptr_opt_ void **ppvDevice); - - void ( STDMETHODCALLTYPE *UpdateTileMappings )( - ID3D12CommandQueue * This, - _In_ ID3D12Resource *pResource, - UINT NumResourceRegions, - _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, - _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, - _In_opt_ ID3D12Heap *pHeap, - UINT NumRanges, - _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, - _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, - _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, - D3D12_TILE_MAPPING_FLAGS Flags); - - void ( STDMETHODCALLTYPE *CopyTileMappings )( - ID3D12CommandQueue * This, - _In_ ID3D12Resource *pDstResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, - _In_ ID3D12Resource *pSrcResource, - _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, - _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, - D3D12_TILE_MAPPING_FLAGS Flags); - - void ( STDMETHODCALLTYPE *ExecuteCommandLists )( - ID3D12CommandQueue * This, - _In_ UINT NumCommandLists, - _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); - - void ( STDMETHODCALLTYPE *SetMarker )( - ID3D12CommandQueue * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - void ( STDMETHODCALLTYPE *BeginEvent )( - ID3D12CommandQueue * This, - UINT Metadata, - _In_reads_bytes_opt_(Size) const void *pData, - UINT Size); - - void ( STDMETHODCALLTYPE *EndEvent )( - ID3D12CommandQueue * This); - - HRESULT ( STDMETHODCALLTYPE *Signal )( - ID3D12CommandQueue * This, - ID3D12Fence *pFence, - UINT64 Value); - - HRESULT ( STDMETHODCALLTYPE *Wait )( - ID3D12CommandQueue * This, - ID3D12Fence *pFence, - UINT64 Value); - - HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( - ID3D12CommandQueue * This, - _Out_ UINT64 *pFrequency); - - HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( - ID3D12CommandQueue * This, - _Out_ UINT64 *pGpuTimestamp, - _Out_ UINT64 *pCpuTimestamp); - - D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( - ID3D12CommandQueue * This); - - END_INTERFACE - } ID3D12CommandQueueVtbl; - - interface ID3D12CommandQueue - { - CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12CommandQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12CommandQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12CommandQueue_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) - - - -#define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ - ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) - -#define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ - ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) - -#define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ - ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) - -#define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) - -#define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \ - ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) - -#define ID3D12CommandQueue_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3D12CommandQueue_Signal(This,pFence,Value) \ - ( (This)->lpVtbl -> Signal(This,pFence,Value) ) - -#define ID3D12CommandQueue_Wait(This,pFence,Value) \ - ( (This)->lpVtbl -> Wait(This,pFence,Value) ) - -#define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \ - ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) - -#define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ - ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) - -#define ID3D12CommandQueue_GetDesc(This) \ - ( (This)->lpVtbl -> GetDesc(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - - - - - -#endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12Device_INTERFACE_DEFINED__ -#define __ID3D12Device_INTERFACE_DEFINED__ - -/* interface ID3D12Device */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Device; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") - ID3D12Device : public ID3D12Object - { - public: - virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandList( - _In_ UINT nodeMask, - _In_ D3D12_COMMAND_LIST_TYPE type, - _In_ ID3D12CommandAllocator *pCommandAllocator, - _In_opt_ ID3D12PipelineState *pInitialState, - REFIID riid, - _COM_Outptr_ void **ppCommandList) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap) = 0; - - virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature) = 0; - - virtual void STDMETHODCALLTYPE CreateConstantBufferView( - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateShaderResourceView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ ID3D12Resource *pCounterResource, - _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateRenderTargetView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateDepthStencilView( - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CreateSampler( - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; - - virtual void STDMETHODCALLTYPE CopyDescriptors( - _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) = 0; - - virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( - _In_ UINT NumDescriptors, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; - - virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; - - virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateHeap( - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( - _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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( - _In_ const D3D12_RESOURCE_DESC *pDesc, - D3D12_RESOURCE_STATES InitialState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riid, - _COM_Outptr_opt_ void **ppvResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE MakeResident( - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE Evict( - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateFence( - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; - - virtual void STDMETHODCALLTYPE GetCopyableFootprints( - _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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( - BOOL Enable) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature) = 0; - - virtual void STDMETHODCALLTYPE GetResourceTiling( - _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) = 0; - - virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Device * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Device * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Device * This); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - ID3D12Device * This, - _In_ REFGUID guid, - _Inout_ UINT *pDataSize, - _Out_writes_bytes_opt_( *pDataSize ) void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - ID3D12Device * This, - _In_ REFGUID guid, - _In_ UINT DataSize, - _In_reads_bytes_opt_( DataSize ) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - ID3D12Device * This, - _In_ REFGUID guid, - _In_opt_ const IUnknown *pData); - - HRESULT ( STDMETHODCALLTYPE *SetName )( - ID3D12Device * This, - _In_z_ LPCWSTR Name); - - UINT ( STDMETHODCALLTYPE *GetNodeCount )( - ID3D12Device * This); - - HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( - ID3D12Device * This, - _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppCommandQueue); - - HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( - ID3D12Device * This, - _In_ D3D12_COMMAND_LIST_TYPE type, - REFIID riid, - _COM_Outptr_ void **ppCommandAllocator); - - HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( - ID3D12Device * This, - _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( - ID3D12Device * This, - _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, - REFIID riid, - _COM_Outptr_ void **ppPipelineState); - - HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( - ID3D12Device * 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 )( - ID3D12Device * This, - D3D12_FEATURE Feature, - _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( - ID3D12Device * This, - _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, - REFIID riid, - _COM_Outptr_ void **ppvHeap); - - UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( - ID3D12Device * This, - _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); - - HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( - ID3D12Device * This, - _In_ UINT nodeMask, - _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, - _In_ SIZE_T blobLengthInBytes, - REFIID riid, - _COM_Outptr_ void **ppvRootSignature); - - void ( STDMETHODCALLTYPE *CreateConstantBufferView )( - ID3D12Device * This, - _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void ( STDMETHODCALLTYPE *CreateShaderResourceView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( - ID3D12Device * 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 )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void ( STDMETHODCALLTYPE *CreateDepthStencilView )( - ID3D12Device * This, - _In_opt_ ID3D12Resource *pResource, - _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void ( STDMETHODCALLTYPE *CreateSampler )( - ID3D12Device * This, - _In_ const D3D12_SAMPLER_DESC *pDesc, - _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); - - void ( STDMETHODCALLTYPE *CopyDescriptors )( - ID3D12Device * 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 )( - ID3D12Device * 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 )( - ID3D12Device * This, - _In_ UINT visibleMask, - _In_ UINT numResourceDescs, - _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); - - D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( - ID3D12Device * This, - _In_ UINT nodeMask, - D3D12_HEAP_TYPE heapType); - - HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( - ID3D12Device * This, - _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, - D3D12_HEAP_FLAGS HeapFlags, - _In_ const D3D12_RESOURCE_DESC *pResourceDesc, - D3D12_RESOURCE_STATES InitialResourceState, - _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, - REFIID riidResource, - _COM_Outptr_opt_ void **ppvResource); - - HRESULT ( STDMETHODCALLTYPE *CreateHeap )( - ID3D12Device * This, - _In_ const D3D12_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( - ID3D12Device * 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 )( - ID3D12Device * 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 )( - ID3D12Device * This, - _In_ ID3D12DeviceChild *pObject, - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - DWORD Access, - _In_opt_ LPCWSTR Name, - _Out_ HANDLE *pHandle); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( - ID3D12Device * This, - _In_ HANDLE NTHandle, - REFIID riid, - _COM_Outptr_opt_ void **ppvObj); - - HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( - ID3D12Device * This, - _In_ LPCWSTR Name, - DWORD Access, - /* [annotation][out] */ - _Out_ HANDLE *pNTHandle); - - HRESULT ( STDMETHODCALLTYPE *MakeResident )( - ID3D12Device * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - HRESULT ( STDMETHODCALLTYPE *Evict )( - ID3D12Device * This, - UINT NumObjects, - _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); - - HRESULT ( STDMETHODCALLTYPE *CreateFence )( - ID3D12Device * This, - UINT64 InitialValue, - D3D12_FENCE_FLAGS Flags, - REFIID riid, - _COM_Outptr_ void **ppFence); - - HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( - ID3D12Device * This); - - void ( STDMETHODCALLTYPE *GetCopyableFootprints )( - ID3D12Device * 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 )( - ID3D12Device * This, - _In_ const D3D12_QUERY_HEAP_DESC *pDesc, - REFIID riid, - _COM_Outptr_opt_ void **ppvHeap); - - HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( - ID3D12Device * This, - BOOL Enable); - - HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( - ID3D12Device * This, - _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, - _In_opt_ ID3D12RootSignature *pRootSignature, - REFIID riid, - _COM_Outptr_opt_ void **ppvCommandSignature); - - void ( STDMETHODCALLTYPE *GetResourceTiling )( - ID3D12Device * 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 )( - ID3D12Device * This); - - END_INTERFACE - } ID3D12DeviceVtbl; - - interface ID3D12Device - { - CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Device_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Device_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Device_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) - -#define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) - -#define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) - -#define ID3D12Device_SetName(This,Name) \ - ( (This)->lpVtbl -> SetName(This,Name) ) - - -#define ID3D12Device_GetNodeCount(This) \ - ( (This)->lpVtbl -> GetNodeCount(This) ) - -#define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ - ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) - -#define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ - ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) - -#define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ - ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) - -#define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ - ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) - -#define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ - ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) - -#define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) - -#define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ - ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) - -#define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ - ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) - -#define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) - -#define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \ - ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) - -#define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) - -#define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ - ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) - -#define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ - ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) - -#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_CreateHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ - ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) - -#define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) - -#define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ - ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) - -#define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ - ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) - -#define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) - -#define ID3D12Device_Evict(This,NumObjects,ppObjects) \ - ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) - -#define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \ - ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) - -#define ID3D12Device_GetDeviceRemovedReason(This) \ - ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) - -#define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ - ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) - -#define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ - ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) - -#define ID3D12Device_SetStablePowerState(This,Enable) \ - ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) - -#define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ - ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) - -#define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ - ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) - -#define ID3D12Device_GetAdapterLuid(This) \ - ( (This)->lpVtbl -> GetAdapterLuid(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - - - - - - - - - - - - - -#endif /* __ID3D12Device_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12_0000_0017 */ -/* [local] */ - -typedef struct D3D12_SUBRESOURCE_DATA - { - const void *pData; - LONG_PTR RowPitch; - LONG_PTR SlicePitch; - } D3D12_SUBRESOURCE_DATA; - -typedef struct D3D12_MEMCPY_DEST - { - void *pData; - SIZE_T RowPitch; - SIZE_T SlicePitch; - } D3D12_MEMCPY_DEST; - -#if !defined( D3D12_IGNORE_SDK_LAYERS ) -#include "d3d12sdklayers.h" -#endif - -/////////////////////////////////////////////////////////////////////////// -// D3D12CreateDevice -// ------------------ -// -// pAdapter -// If NULL, D3D12CreateDevice will choose the primary adapter. -// If non-NULL, D3D12CreateDevice will use the provided adapter. -// MinimumFeatureLevel -// The minimum feature level required for successful device creation. -// riid -// The interface IID of the device to be returned. Expected: ID3D12Device. -// ppDevice -// Pointer to returned interface. May be NULL. -// -// Return Values -// Any of those documented for -// CreateDXGIFactory1 -// IDXGIFactory::EnumAdapters -// D3D12CreateDevice -// -/////////////////////////////////////////////////////////////////////////// -typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, - D3D_FEATURE_LEVEL, - _In_ REFIID, _COM_Outptr_opt_ void** ); - -HRESULT WINAPI D3D12CreateDevice( - _In_opt_ IUnknown* pAdapter, - D3D_FEATURE_LEVEL MinimumFeatureLevel, - _In_ REFIID riid, // Expected: ID3D12Device - _COM_Outptr_opt_ void** ppDevice ); - - -typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** ); - -HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); - -#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_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); -DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24); -DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); -DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); -DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); -DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); -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_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); - - -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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3d12sdklayers.h b/3rdparty/minidx12/Include/d3d12sdklayers.h deleted file mode 100644 index e23088ea88..0000000000 --- a/3rdparty/minidx12/Include/d3d12sdklayers.h +++ /dev/null @@ -1,1926 +0,0 @@ -/*------------------------------------------------------------------------------------- - * - * Copyright (c) Microsoft Corporation - * - *-------------------------------------------------------------------------------------*/ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ - - - -/* 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 __d3d12sdklayers_h__ -#define __d3d12sdklayers_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D12Debug_FWD_DEFINED__ -#define __ID3D12Debug_FWD_DEFINED__ -typedef interface ID3D12Debug ID3D12Debug; - -#endif /* __ID3D12Debug_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugDevice_FWD_DEFINED__ -#define __ID3D12DebugDevice_FWD_DEFINED__ -typedef interface ID3D12DebugDevice ID3D12DebugDevice; - -#endif /* __ID3D12DebugDevice_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandQueue_FWD_DEFINED__ -#define __ID3D12DebugCommandQueue_FWD_DEFINED__ -typedef interface ID3D12DebugCommandQueue ID3D12DebugCommandQueue; - -#endif /* __ID3D12DebugCommandQueue_FWD_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList_FWD_DEFINED__ -#define __ID3D12DebugCommandList_FWD_DEFINED__ -typedef interface ID3D12DebugCommandList ID3D12DebugCommandList; - -#endif /* __ID3D12DebugCommandList_FWD_DEFINED__ */ - - -#ifndef __ID3D12InfoQueue_FWD_DEFINED__ -#define __ID3D12InfoQueue_FWD_DEFINED__ -typedef interface ID3D12InfoQueue ID3D12InfoQueue; - -#endif /* __ID3D12InfoQueue_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "d3d12.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D12Debug_INTERFACE_DEFINED__ -#define __ID3D12Debug_INTERFACE_DEFINED__ - -/* interface ID3D12Debug */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12Debug; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0") - ID3D12Debug : public IUnknown - { - public: - virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12Debug * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12Debug * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12Debug * This); - - void ( STDMETHODCALLTYPE *EnableDebugLayer )( - ID3D12Debug * This); - - END_INTERFACE - } ID3D12DebugVtbl; - - interface ID3D12Debug - { - CONST_VTBL struct ID3D12DebugVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12Debug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12Debug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12Debug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12Debug_EnableDebugLayer(This) \ - ( (This)->lpVtbl -> EnableDebugLayer(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12Debug_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0001 */ -/* [local] */ - -typedef -enum D3D12_DEBUG_FEATURE - { - D3D12_DEBUG_FEATURE_NONE = 0, - D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DRAW = 0x1, - D3D12_DEBUG_FEATURE_TREAT_BUNDLE_AS_DISPATCH = 0x2 - } D3D12_DEBUG_FEATURE; - -DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEBUG_FEATURE ); -typedef -enum D3D12_RLDO_FLAGS - { - D3D12_RLDO_NONE = 0, - D3D12_RLDO_SUMMARY = 0x1, - D3D12_RLDO_DETAIL = 0x2, - D3D12_RLDO_IGNORE_INTERNAL = 0x4 - } D3D12_RLDO_FLAGS; - -DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS) - - -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; - -#ifndef __ID3D12DebugDevice_INTERFACE_DEFINED__ -#define __ID3D12DebugDevice_INTERFACE_DEFINED__ - -/* interface ID3D12DebugDevice */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3febd6dd-4973-4787-8194-e45f9e28923e") - ID3D12DebugDevice : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( - D3D12_DEBUG_FEATURE Mask) = 0; - - virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects( - D3D12_RLDO_FLAGS Flags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugDeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugDevice * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugDevice * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugDevice * This); - - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugDevice * This, - D3D12_DEBUG_FEATURE Mask); - - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugDevice * This); - - HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( - ID3D12DebugDevice * This, - D3D12_RLDO_FLAGS Flags); - - END_INTERFACE - } ID3D12DebugDeviceVtbl; - - interface ID3D12DebugDevice - { - CONST_VTBL struct ID3D12DebugDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugDevice_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugDevice_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - -#define ID3D12DebugDevice_ReportLiveDeviceObjects(This,Flags) \ - ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0002 */ -/* [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; - -#ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053a") - ID3D12DebugCommandQueue : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE AssertResourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandQueueVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandQueue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandQueue * This); - - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandQueue * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - END_INTERFACE - } ID3D12DebugCommandQueueVtbl; - - interface ID3D12DebugCommandQueue - { - CONST_VTBL struct ID3D12DebugCommandQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandQueue_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */ - - -#ifndef __ID3D12DebugCommandList_INTERFACE_DEFINED__ -#define __ID3D12DebugCommandList_INTERFACE_DEFINED__ - -/* interface ID3D12DebugCommandList */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12DebugCommandList; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053f") - ID3D12DebugCommandList : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE AssertResourceState( - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( - D3D12_DEBUG_FEATURE Mask) = 0; - - virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12DebugCommandListVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12DebugCommandList * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12DebugCommandList * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12DebugCommandList * This); - - BOOL ( STDMETHODCALLTYPE *AssertResourceState )( - ID3D12DebugCommandList * This, - _In_ ID3D12Resource *pResource, - UINT Subresource, - UINT State); - - HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( - ID3D12DebugCommandList * This, - D3D12_DEBUG_FEATURE Mask); - - D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( - ID3D12DebugCommandList * This); - - END_INTERFACE - } ID3D12DebugCommandListVtbl; - - interface ID3D12DebugCommandList - { - CONST_VTBL struct ID3D12DebugCommandListVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12DebugCommandList_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12DebugCommandList_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12DebugCommandList_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12DebugCommandList_AssertResourceState(This,pResource,Subresource,State) \ - ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) - -#define ID3D12DebugCommandList_SetFeatureMask(This,Mask) \ - ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) - -#define ID3D12DebugCommandList_GetFeatureMask(This) \ - ( (This)->lpVtbl -> GetFeatureMask(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0004 */ -/* [local] */ - -typedef -enum D3D12_MESSAGE_CATEGORY - { - D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, - D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , - D3D12_MESSAGE_CATEGORY_INITIALIZATION = ( D3D12_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , - D3D12_MESSAGE_CATEGORY_CLEANUP = ( D3D12_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , - D3D12_MESSAGE_CATEGORY_COMPILATION = ( D3D12_MESSAGE_CATEGORY_CLEANUP + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_CREATION = ( D3D12_MESSAGE_CATEGORY_COMPILATION + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_SETTING = ( D3D12_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , - D3D12_MESSAGE_CATEGORY_STATE_GETTING = ( D3D12_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , - D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D12_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , - D3D12_MESSAGE_CATEGORY_EXECUTION = ( D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , - D3D12_MESSAGE_CATEGORY_SHADER = ( D3D12_MESSAGE_CATEGORY_EXECUTION + 1 ) - } D3D12_MESSAGE_CATEGORY; - -typedef -enum D3D12_MESSAGE_SEVERITY - { - D3D12_MESSAGE_SEVERITY_CORRUPTION = 0, - D3D12_MESSAGE_SEVERITY_ERROR = ( D3D12_MESSAGE_SEVERITY_CORRUPTION + 1 ) , - D3D12_MESSAGE_SEVERITY_WARNING = ( D3D12_MESSAGE_SEVERITY_ERROR + 1 ) , - D3D12_MESSAGE_SEVERITY_INFO = ( D3D12_MESSAGE_SEVERITY_WARNING + 1 ) , - D3D12_MESSAGE_SEVERITY_MESSAGE = ( D3D12_MESSAGE_SEVERITY_INFO + 1 ) - } D3D12_MESSAGE_SEVERITY; - -typedef -enum D3D12_MESSAGE_ID - { - D3D12_MESSAGE_ID_UNKNOWN = 0, - D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = ( D3D12_MESSAGE_ID_UNKNOWN + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_THIS = ( D3D12_MESSAGE_ID_STRING_FROM_APPLICATION + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = ( D3D12_MESSAGE_ID_CORRUPTED_THIS + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 + 1 ) , - D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = ( D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 + 1 ) , - D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING + 1 ) , - D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = ( D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = ( D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA + 1 ) , - D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA + 1 ) , - D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN + 1 ) , - D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC + 1 ) , - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT + 1 ) , - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX + 1 ) , - D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA + 1 ) , - D3D12_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = ( D3D12_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD + 1 ) , - D3D12_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD + 1 ) , - D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = ( D3D12_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC + 1 ) , - D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = ( D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT + 1 ) , - D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH + 1 ) , - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID + 1 ) , - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE + 1 ) , - D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , - D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE + 1 ) , - D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID + 1 ) , - D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID + 1 ) , - D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE + 1 ) , - D3D12_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED + 1 ) , - D3D12_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED + 1 ) , - D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED + 1 ) , - D3D12_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = ( D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED + 1 ) , - D3D12_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS + 1 ) , - D3D12_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = ( D3D12_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_REF_THREADING_MODE = ( D3D12_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE + 1 ) , - D3D12_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = ( D3D12_MESSAGE_ID_REF_THREADING_MODE + 1 ) , - D3D12_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = ( D3D12_MESSAGE_ID_REF_UMDRIVER_EXCEPTION + 1 ) , - D3D12_MESSAGE_ID_REF_HARDWARE_EXCEPTION = ( D3D12_MESSAGE_ID_REF_KMDRIVER_EXCEPTION + 1 ) , - D3D12_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = ( D3D12_MESSAGE_ID_REF_HARDWARE_EXCEPTION + 1 ) , - D3D12_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = ( D3D12_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE + 1 ) , - D3D12_MESSAGE_ID_REF_OUT_OF_MEMORY = ( D3D12_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER + 1 ) , - D3D12_MESSAGE_ID_REF_INFO = ( D3D12_MESSAGE_ID_REF_OUT_OF_MEMORY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_REF_INFO + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INPUTLAYOUT_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INPUTLAYOUT_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SAMPLER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_TOO_SMALL + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SHADERRESOURCEVIEW_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SAMPLER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VIEW_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SHADERRESOURCEVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VIEW_DIMENSION_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_POSITION_NOT_PRESENT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_RETURN_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_NOT_SET = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_POSITION_NOT_PRESENT + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_BOUND_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_BOUND_RESOURCE_MAPPED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_OFFSET_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_STRIDE_LARGER_THAN_BUFFER + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D12_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , - D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC + 1 ) , - D3D12_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = ( D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = ( D3D12_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , - D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = ( D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = ( D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT + 1 ) , - D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_LIVE_BUFFER = ( D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY + 1 ) , - D3D12_MESSAGE_ID_LIVE_TEXTURE1D = ( D3D12_MESSAGE_ID_LIVE_BUFFER + 1 ) , - D3D12_MESSAGE_ID_LIVE_TEXTURE2D = ( D3D12_MESSAGE_ID_LIVE_TEXTURE1D + 1 ) , - D3D12_MESSAGE_ID_LIVE_TEXTURE3D = ( D3D12_MESSAGE_ID_LIVE_TEXTURE2D + 1 ) , - D3D12_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = ( D3D12_MESSAGE_ID_LIVE_TEXTURE3D + 1 ) , - D3D12_MESSAGE_ID_LIVE_RENDERTARGETVIEW = ( D3D12_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW + 1 ) , - D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = ( D3D12_MESSAGE_ID_LIVE_RENDERTARGETVIEW + 1 ) , - D3D12_MESSAGE_ID_LIVE_VERTEXSHADER = ( D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW + 1 ) , - D3D12_MESSAGE_ID_LIVE_GEOMETRYSHADER = ( D3D12_MESSAGE_ID_LIVE_VERTEXSHADER + 1 ) , - D3D12_MESSAGE_ID_LIVE_PIXELSHADER = ( D3D12_MESSAGE_ID_LIVE_GEOMETRYSHADER + 1 ) , - D3D12_MESSAGE_ID_LIVE_INPUTLAYOUT = ( D3D12_MESSAGE_ID_LIVE_PIXELSHADER + 1 ) , - D3D12_MESSAGE_ID_LIVE_SAMPLER = ( D3D12_MESSAGE_ID_LIVE_INPUTLAYOUT + 1 ) , - D3D12_MESSAGE_ID_LIVE_BLENDSTATE = ( D3D12_MESSAGE_ID_LIVE_SAMPLER + 1 ) , - D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = ( D3D12_MESSAGE_ID_LIVE_BLENDSTATE + 1 ) , - D3D12_MESSAGE_ID_LIVE_RASTERIZERSTATE = ( D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE + 1 ) , - D3D12_MESSAGE_ID_LIVE_QUERY = ( D3D12_MESSAGE_ID_LIVE_RASTERIZERSTATE + 1 ) , - D3D12_MESSAGE_ID_LIVE_PREDICATE = ( D3D12_MESSAGE_ID_LIVE_QUERY + 1 ) , - D3D12_MESSAGE_ID_LIVE_COUNTER = ( D3D12_MESSAGE_ID_LIVE_PREDICATE + 1 ) , - D3D12_MESSAGE_ID_LIVE_DEVICE = ( D3D12_MESSAGE_ID_LIVE_COUNTER + 1 ) , - D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = ( D3D12_MESSAGE_ID_LIVE_DEVICE + 1 ) , - D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_LIVE_SWAPCHAIN + 1 ) , - D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS + 1 ) , - D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = ( D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES + 1 ) , - D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES + 1 ) , - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES + 1 ) , - D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL + 1 ) , - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL + 1 ) , - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH = ( D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE = ( D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED = ( D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN = ( D3D12_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD = ( D3D12_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = ( D3D12_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS = ( D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL = ( D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE + 1 ) , - D3D12_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER = ( D3D12_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D12_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY = ( D3D12_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = ( D3D12_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY + 1 ) , - D3D12_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET = ( D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET + 1 ) , - D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET + 1 ) , - D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE + 1 ) , - D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE + 1 ) , - D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED = ( D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_SHADER_ABORT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV + 1 ) , - D3D12_MESSAGE_ID_SHADER_MESSAGE = ( D3D12_MESSAGE_ID_SHADER_ABORT + 1 ) , - D3D12_MESSAGE_ID_SHADER_ERROR = ( D3D12_MESSAGE_ID_SHADER_MESSAGE + 1 ) , - D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_SHADER_ERROR + 1 ) , - D3D12_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN + 1 ) , - 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_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 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET = ( D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS + 1 ) , - D3D12_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 = ( D3D12_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_GETDC_INACCESSIBLE = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT = ( D3D12_MESSAGE_ID_GETDC_INACCESSIBLE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 + 1 ) , - D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE = ( D3D12_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA = ( D3D12_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE + 1 ) , - D3D12_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA = ( D3D12_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = ( D3D12_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA + 1 ) , - D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT + 1 ) , - D3D12_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX = ( D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT + 1 ) , - D3D12_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX = ( D3D12_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = ( D3D12_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET = ( D3D12_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = ( D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , - D3D12_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM = ( D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT + 1 ) , - D3D12_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM = ( D3D12_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_SETEVENTONHARDWARECONTENTPROTECTIONTILT_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM = ( D3D12_MESSAGE_ID_SETEVENTONHARDWARECONTENTPROTECTIONTILT_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT + 1 ) , - D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , - D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , - D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT + 1 ) , - D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT + 1 ) , - D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE = ( D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT + 1 ) , - D3D12_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE = ( D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE + 1 ) , - D3D12_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE = ( D3D12_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 = ( D3D12_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE + 1 ) , - D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1 + 1 ) , - D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER + 1 ) , - D3D12_MESSAGE_ID_COPYTILES_INVALID_PARAMETER = ( D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER + 1 ) , - D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING = ( D3D12_MESSAGE_ID_COPYTILES_INVALID_PARAMETER + 1 ) , - D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR = ( D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING + 1 ) , - D3D12_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS = ( D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR + 1 ) , - D3D12_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA = ( D3D12_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS + 1 ) , - D3D12_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE = ( D3D12_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA + 1 ) , - D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE + 1 ) , - D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES + 1 ) , - D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS = ( D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT + 1 ) , - D3D12_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE = ( D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER = ( D3D12_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = ( D3D12_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER + 1 ) , - D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = ( D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS + 1 ) , - D3D12_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEDEVICE_WARNING + 1 ) , - D3D12_MESSAGE_ID_CREATE_CRYPTOSESSION = ( D3D12_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_CREATE_CRYPTOSESSION + 1 ) , - D3D12_MESSAGE_ID_LIVE_CRYPTOSESSION = ( D3D12_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL + 1 ) , - D3D12_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_LIVE_CRYPTOSESSION + 1 ) , - D3D12_MESSAGE_ID_DESTROY_CRYPTOSESSION = ( D3D12_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL + 1 ) , - D3D12_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL = ( D3D12_MESSAGE_ID_DESTROY_CRYPTOSESSION + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALID_TYPE = ( D3D12_MESSAGE_ID_MAP_INVALID_SUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_MAP_UNSUPPORTED_TYPE = ( D3D12_MESSAGE_ID_MAP_INVALID_TYPE + 1 ) , - D3D12_MESSAGE_ID_UNMAP_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_MAP_UNSUPPORTED_TYPE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = ( D3D12_MESSAGE_ID_UNMAP_INVALID_SUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG + 1 ) , - D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE + 1 ) , - D3D12_MESSAGE_ID_INEFFICIENT_PRESENT = ( D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = ( D3D12_MESSAGE_ID_INEFFICIENT_PRESENT + 1 ) , - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION + 1 ) , - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET + 1 ) , - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET + 1 ) , - D3D12_MESSAGE_ID_QUERY_STATE_MISMATCH = ( D3D12_MESSAGE_ID_COMMAND_LIST_OPEN + 1 ) , - D3D12_MESSAGE_ID_INVALID_BUNDLE_API = ( D3D12_MESSAGE_ID_QUERY_STATE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = ( D3D12_MESSAGE_ID_INVALID_BUNDLE_API + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED_WITH_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED + 1 ) , - D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = ( D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED_WITH_INVALID_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_INVALID_INDIRECT_ARGUMENT_BUFFER = ( D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE + 1 ) , - D3D12_MESSAGE_ID_COMPUTE_AND_GRAPHICS_PIPELINE = ( D3D12_MESSAGE_ID_INVALID_INDIRECT_ARGUMENT_BUFFER + 1 ) , - D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = ( D3D12_MESSAGE_ID_COMPUTE_AND_GRAPHICS_PIPELINE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = ( D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC + 1 ) , - D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = ( D3D12_MESSAGE_ID_COMMAND_LIST_SYNC + 1 ) , - D3D12_MESSAGE_ID_CREATE_QUEUE_IMAGE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID + 1 ) , - D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_IMAGE_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATE_QUEUE_IMAGE_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_IMAGE_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE + 1 ) , - D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = ( D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR + 1 ) , - D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = ( D3D12_MESSAGE_ID_CREATE_PIPELINESTATE + 1 ) , - D3D12_MESSAGE_ID_CREATE_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 + 1 ) , - D3D12_MESSAGE_ID_CREATE_RESOURCE = ( D3D12_MESSAGE_ID_CREATE_IMAGECOMMANDLIST + 1 ) , - D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_CREATE_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP + 1 ) , - D3D12_MESSAGE_ID_CREATE_LIBRARY = ( D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_CREATE_HEAP = ( D3D12_MESSAGE_ID_CREATE_LIBRARY + 1 ) , - D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = ( D3D12_MESSAGE_ID_CREATE_HEAP + 1 ) , - D3D12_MESSAGE_ID_CREATE_QUERYHEAP = ( D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE + 1 ) , - D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_CREATE_QUERYHEAP + 1 ) , - D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = ( D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE + 1 ) , - D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = ( D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR + 1 ) , - D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = ( D3D12_MESSAGE_ID_LIVE_PIPELINESTATE + 1 ) , - D3D12_MESSAGE_ID_LIVE_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 + 1 ) , - D3D12_MESSAGE_ID_LIVE_RESOURCE = ( D3D12_MESSAGE_ID_LIVE_IMAGECOMMANDLIST + 1 ) , - D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_LIVE_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP + 1 ) , - D3D12_MESSAGE_ID_LIVE_LIBRARY = ( D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_LIVE_HEAP = ( D3D12_MESSAGE_ID_LIVE_LIBRARY + 1 ) , - D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = ( D3D12_MESSAGE_ID_LIVE_HEAP + 1 ) , - D3D12_MESSAGE_ID_LIVE_QUERYHEAP = ( D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE + 1 ) , - D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_LIVE_QUERYHEAP + 1 ) , - D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = ( D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = ( D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = ( D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR + 1 ) , - D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = ( D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_IMAGECOMMANDLIST = ( D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 + 1 ) , - D3D12_MESSAGE_ID_DESTROY_RESOURCE = ( D3D12_MESSAGE_ID_DESTROY_IMAGECOMMANDLIST + 1 ) , - D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = ( D3D12_MESSAGE_ID_DESTROY_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = ( D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP + 1 ) , - D3D12_MESSAGE_ID_DESTROY_LIBRARY = ( D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_HEAP = ( D3D12_MESSAGE_ID_DESTROY_LIBRARY + 1 ) , - D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = ( D3D12_MESSAGE_ID_DESTROY_HEAP + 1 ) , - D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = ( D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE + 1 ) , - D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = ( D3D12_MESSAGE_ID_DESTROY_QUERYHEAP + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDHEAPTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_LARGEALLOCATION = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_SMALLALLOCATION = ( D3D12_MESSAGE_ID_CREATERESOURCE_LARGEALLOCATION + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCE_SMALLALLOCATION + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = ( D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_HAS_PENDING_INITIAL_DATA = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE + 1 ) , - D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = ( D3D12_MESSAGE_ID_RESOURCE_HAS_PENDING_INITIAL_DATA + 1 ) , - D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = ( D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE + 1 ) , - D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = ( D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = ( D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = ( D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = ( D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = ( D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = ( D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = ( D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = ( D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = ( D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE + 1 ) , - D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = ( D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC + 1 ) , - D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = ( D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE + 1 ) , - D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE + 1 ) , - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = ( D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE + 1 ) , - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_LARGE_OFFSET = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC + 1 ) , - D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = ( D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_LARGE_OFFSET + 1 ) , - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = ( D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE + 1 ) , - D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = ( D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = ( D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE + 1 ) , - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE + 1 ) , - D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = ( D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE + 1 ) , - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = ( D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE + 1 ) , - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND + 1 ) , - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED + 1 ) , - D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = ( D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = ( D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP + 1 ) , - D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = ( D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS + 1 ) , - D3D12_MESSAGE_ID_MAKERESIDENT_INVALIDOBJECT = ( D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY + 1 ) , - D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = ( D3D12_MESSAGE_ID_MAKERESIDENT_INVALIDOBJECT + 1 ) , - D3D12_MESSAGE_ID_EVICT_INVALIDOBJECT = ( D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY + 1 ) , - D3D12_MESSAGE_ID_HEAPS_UNSUPPORTED = ( D3D12_MESSAGE_ID_EVICT_INVALIDOBJECT + 1 ) , - D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = ( D3D12_MESSAGE_ID_HEAPS_UNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = ( D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = ( D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_LARGE_OFFSET = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC + 1 ) , - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_LARGE_OFFSET + 1 ) , - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_LARGE_OFFSET = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC + 1 ) , - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_LARGE_OFFSET + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = ( D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC + 1 ) , - D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT + 1 ) , - D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = ( D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = ( D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID + 1 ) , - D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = ( D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID + 1 ) , - D3D12_MESSAGE_ID_CREATEQUERY_HEAP_JPEG_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS + 1 ) , - D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CREATEQUERY_HEAP_JPEG_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = ( D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS + 1 ) , - D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY + 1 ) , - D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = ( D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS + 1 ) , - D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = ( D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS + 1 ) , - D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE = ( D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = ( D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE + 1 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = ( D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE + 1 ) , - D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = ( D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET + 1 ) , - D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = ( D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP + 1 ) , - 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_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 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX = ( D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET = ( D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE = ( D3D12_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D = ( D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOMPONENTS + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D = ( D3D12_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD = ( D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD = ( D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_UPSCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_TIER4DOWNSCALETOLARGE = ( D3D12_MESSAGE_ID_JPEGDECODE_UPSCALEUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_TIER3DOWNSCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_TIER4DOWNSCALETOLARGE + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_TIER3DOWNSCALEUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH = ( D3D12_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS = ( D3D12_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT = ( D3D12_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE = ( D3D12_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_HAZARD = ( D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS + 1 ) , - D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE = ( D3D12_MESSAGE_ID_JPEGDECODE_HAZARD + 1 ) , - 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_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 ) , - D3D12_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_SOURCENOT2D + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH = ( D3D12_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDCOMPONENTS = ( D3D12_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED = ( D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDCOMPONENTS + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE = ( D3D12_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_HAZARD = ( D3D12_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE + 1 ) , - D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE = ( D3D12_MESSAGE_ID_JPEGENCODE_HAZARD + 1 ) , - 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_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 ) , - D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = ( D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALIDDEPTH = ( D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH + 1 ) , - D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALIDDEPTH + 1 ) , - D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = ( D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDHEAP = ( D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE + 1 ) , - D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = ( D3D12_MESSAGE_ID_MAP_INVALIDHEAP + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP + 1 ) , - D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDRANGE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = ( D3D12_MESSAGE_ID_MAP_INVALIDRANGE + 1 ) , - D3D12_MESSAGE_ID_MAP_NULLRANGE = ( D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE + 1 ) , - D3D12_MESSAGE_ID_UNMAP_NULLRANGE = ( D3D12_MESSAGE_ID_MAP_NULLRANGE + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = ( D3D12_MESSAGE_ID_UNMAP_NULLRANGE + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = ( D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER + 1 ) , - D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = ( D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = ( D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION + 1 ) , - D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = ( D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH + 1 ) , - D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX + 1 ) , - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = ( D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS + 1 ) , - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX + 1 ) , - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT + 1 ) , - D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = ( D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER + 1 ) , - D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = ( D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH + 1 ) , - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED + 1 ) , - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP + 1 ) , - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX + 1 ) , - D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = ( D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX + 1 ) , - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP + 1 ) , - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX + 1 ) , - D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE + 1 ) , - D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = ( D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX + 1 ) , - D3D12_MESSAGE_ID_INVALID_NODE_INDEX = ( D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED + 1 ) , - D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = ( D3D12_MESSAGE_ID_INVALID_NODE_INDEX + 1 ) , - D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = ( D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = ( D3D12_MESSAGE_ID_NODE_MASK_MISMATCH + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES + 1 ) , - D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = ( D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = ( D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE + 1 ) , - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = ( D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS + 1 ) , - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE + 1 ) , - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = ( D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = ( D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT + 1 ) , - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = ( D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS + 1 ) , - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES + 1 ) , - D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE + 1 ) , - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = ( D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT + 1 ) , - D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = ( D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT + 1 ) , - D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = ( D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY + 1 ) , - D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = ( D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE + 1 ) , - D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = ( D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY + 1 ) , - D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = ( D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE + 1 ) , - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = ( D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS + 1 ) , - D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = ( D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE + 1 ) , - D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = ( D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED + 1 ) , - D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = ( D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT + 1 ) , - D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = ( D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS + 1 ) , - D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_NEEDED = ( D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED + 1 ) , - D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = ( D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_NEEDED + 1 ) , - D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = ( D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY + 1 ) , - 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; - -typedef struct D3D12_MESSAGE - { - D3D12_MESSAGE_CATEGORY Category; - D3D12_MESSAGE_SEVERITY Severity; - D3D12_MESSAGE_ID ID; - _Field_size_(DescriptionByteLength) const char *pDescription; - SIZE_T DescriptionByteLength; - } D3D12_MESSAGE; - -typedef struct D3D12_INFO_QUEUE_FILTER_DESC - { - UINT NumCategories; - _Field_size_(NumCategories) D3D12_MESSAGE_CATEGORY *pCategoryList; - UINT NumSeverities; - _Field_size_(NumSeverities) D3D12_MESSAGE_SEVERITY *pSeverityList; - UINT NumIDs; - _Field_size_(NumIDs) D3D12_MESSAGE_ID *pIDList; - } D3D12_INFO_QUEUE_FILTER_DESC; - -typedef struct D3D12_INFO_QUEUE_FILTER - { - D3D12_INFO_QUEUE_FILTER_DESC AllowList; - D3D12_INFO_QUEUE_FILTER_DESC DenyList; - } 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; - -#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__ -#define __ID3D12InfoQueue_INTERFACE_DEFINED__ - -/* interface ID3D12InfoQueue */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D12InfoQueue; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0742a90b-c387-483f-b946-30a7e4e61458") - ID3D12InfoQueue : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit( - _In_ UINT64 MessageCountLimit) = 0; - - virtual void STDMETHODCALLTYPE ClearStoredMessages( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMessage( - _In_ UINT64 MessageIndex, - _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, - _Inout_ SIZE_T *pMessageByteLength) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit( void) = 0; - - virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStorageFilter( - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength) = 0; - - virtual void STDMETHODCALLTYPE ClearStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushStorageFilter( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual void STDMETHODCALLTYPE PopStorageFilter( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter( - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength) = 0; - - virtual void STDMETHODCALLTYPE ClearRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter( - _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; - - virtual void STDMETHODCALLTYPE PopRetrievalFilter( void) = 0; - - virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddMessage( - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ D3D12_MESSAGE_ID ID, - _In_ LPCSTR pDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage( - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ LPCSTR pDescription) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory( - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ BOOL bEnable) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity( - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ BOOL bEnable) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBreakOnID( - _In_ D3D12_MESSAGE_ID ID, - _In_ BOOL bEnable) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory( - _In_ D3D12_MESSAGE_CATEGORY Category) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity( - _In_ D3D12_MESSAGE_SEVERITY Severity) = 0; - - virtual BOOL STDMETHODCALLTYPE GetBreakOnID( - _In_ D3D12_MESSAGE_ID ID) = 0; - - virtual void STDMETHODCALLTYPE SetMuteDebugOutput( - _In_ BOOL bMute) = 0; - - virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D12InfoQueueVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D12InfoQueue * This, - REFIID riid, - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D12InfoQueue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )( - ID3D12InfoQueue * This, - _In_ UINT64 MessageCountLimit); - - void ( STDMETHODCALLTYPE *ClearStoredMessages )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *GetMessage )( - ID3D12InfoQueue * This, - _In_ UINT64 MessageIndex, - _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, - _Inout_ SIZE_T *pMessageByteLength); - - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )( - ID3D12InfoQueue * This); - - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )( - ID3D12InfoQueue * This); - - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )( - ID3D12InfoQueue * This); - - UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )( - ID3D12InfoQueue * This); - - UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )( - ID3D12InfoQueue * This); - - UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )( - ID3D12InfoQueue * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - void ( STDMETHODCALLTYPE *ClearStorageFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - void ( STDMETHODCALLTYPE *PopStorageFilter )( - ID3D12InfoQueue * This); - - UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )( - ID3D12InfoQueue * This, - _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, - _Inout_ SIZE_T *pFilterByteLength); - - void ( STDMETHODCALLTYPE *ClearRetrievalFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )( - ID3D12InfoQueue * This, - _In_ D3D12_INFO_QUEUE_FILTER *pFilter); - - void ( STDMETHODCALLTYPE *PopRetrievalFilter )( - ID3D12InfoQueue * This); - - UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )( - ID3D12InfoQueue * This); - - HRESULT ( STDMETHODCALLTYPE *AddMessage )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ D3D12_MESSAGE_ID ID, - _In_ LPCSTR pDescription); - - HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ LPCSTR pDescription); - - HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category, - _In_ BOOL bEnable); - - HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity, - _In_ BOOL bEnable); - - HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_ID ID, - _In_ BOOL bEnable); - - BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_CATEGORY Category); - - BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_SEVERITY Severity); - - BOOL ( STDMETHODCALLTYPE *GetBreakOnID )( - ID3D12InfoQueue * This, - _In_ D3D12_MESSAGE_ID ID); - - void ( STDMETHODCALLTYPE *SetMuteDebugOutput )( - ID3D12InfoQueue * This, - _In_ BOOL bMute); - - BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )( - ID3D12InfoQueue * This); - - END_INTERFACE - } ID3D12InfoQueueVtbl; - - interface ID3D12InfoQueue - { - CONST_VTBL struct ID3D12InfoQueueVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D12InfoQueue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D12InfoQueue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D12InfoQueue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D12InfoQueue_SetMessageCountLimit(This,MessageCountLimit) \ - ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) ) - -#define ID3D12InfoQueue_ClearStoredMessages(This) \ - ( (This)->lpVtbl -> ClearStoredMessages(This) ) - -#define ID3D12InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) \ - ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) ) - -#define ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) ) - -#define ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(This) \ - ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) ) - -#define ID3D12InfoQueue_GetNumStoredMessages(This) \ - ( (This)->lpVtbl -> GetNumStoredMessages(This) ) - -#define ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) \ - ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) ) - -#define ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) ) - -#define ID3D12InfoQueue_GetMessageCountLimit(This) \ - ( (This)->lpVtbl -> GetMessageCountLimit(This) ) - -#define ID3D12InfoQueue_AddStorageFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue_ClearStorageFilter(This) \ - ( (This)->lpVtbl -> ClearStorageFilter(This) ) - -#define ID3D12InfoQueue_PushEmptyStorageFilter(This) \ - ( (This)->lpVtbl -> PushEmptyStorageFilter(This) ) - -#define ID3D12InfoQueue_PushCopyOfStorageFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) ) - -#define ID3D12InfoQueue_PushStorageFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) ) - -#define ID3D12InfoQueue_PopStorageFilter(This) \ - ( (This)->lpVtbl -> PopStorageFilter(This) ) - -#define ID3D12InfoQueue_GetStorageFilterStackSize(This) \ - ( (This)->lpVtbl -> GetStorageFilterStackSize(This) ) - -#define ID3D12InfoQueue_AddRetrievalFilterEntries(This,pFilter) \ - ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) ) - -#define ID3D12InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength) \ - ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) ) - -#define ID3D12InfoQueue_ClearRetrievalFilter(This) \ - ( (This)->lpVtbl -> ClearRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushEmptyRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushCopyOfRetrievalFilter(This) \ - ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) ) - -#define ID3D12InfoQueue_PushRetrievalFilter(This,pFilter) \ - ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) ) - -#define ID3D12InfoQueue_PopRetrievalFilter(This) \ - ( (This)->lpVtbl -> PopRetrievalFilter(This) ) - -#define ID3D12InfoQueue_GetRetrievalFilterStackSize(This) \ - ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) ) - -#define ID3D12InfoQueue_AddMessage(This,Category,Severity,ID,pDescription) \ - ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) ) - -#define ID3D12InfoQueue_AddApplicationMessage(This,Severity,pDescription) \ - ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) ) - -#define ID3D12InfoQueue_SetBreakOnCategory(This,Category,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) ) - -#define ID3D12InfoQueue_SetBreakOnSeverity(This,Severity,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) ) - -#define ID3D12InfoQueue_SetBreakOnID(This,ID,bEnable) \ - ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) ) - -#define ID3D12InfoQueue_GetBreakOnCategory(This,Category) \ - ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) ) - -#define ID3D12InfoQueue_GetBreakOnSeverity(This,Severity) \ - ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) ) - -#define ID3D12InfoQueue_GetBreakOnID(This,ID) \ - ( (This)->lpVtbl -> GetBreakOnID(This,ID) ) - -#define ID3D12InfoQueue_SetMuteDebugOutput(This,bMute) \ - ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) ) - -#define ID3D12InfoQueue_GetMuteDebugOutput(This) \ - ( (This)->lpVtbl -> GetMuteDebugOutput(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3d12sdklayers_0000_0005 */ -/* [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_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_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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/d3dcommon.h b/3rdparty/minidx12/Include/d3dcommon.h deleted file mode 100644 index 16a5557215..0000000000 --- a/3rdparty/minidx12/Include/d3dcommon.h +++ /dev/null @@ -1,882 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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 __d3dcommon_h__ -#define __d3dcommon_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __ID3D10Blob_FWD_DEFINED__ -#define __ID3D10Blob_FWD_DEFINED__ -typedef interface ID3D10Blob ID3D10Blob; - -#endif /* __ID3D10Blob_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_d3dcommon_0000_0000 */ -/* [local] */ - -typedef -enum D3D_DRIVER_TYPE - { - D3D_DRIVER_TYPE_UNKNOWN = 0, - D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , - D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , - D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , - D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , - D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) - } D3D_DRIVER_TYPE; - -typedef -enum D3D_FEATURE_LEVEL - { - D3D_FEATURE_LEVEL_9_1 = 0x9100, - D3D_FEATURE_LEVEL_9_2 = 0x9200, - D3D_FEATURE_LEVEL_9_3 = 0x9300, - D3D_FEATURE_LEVEL_10_0 = 0xa000, - D3D_FEATURE_LEVEL_10_1 = 0xa100, - D3D_FEATURE_LEVEL_11_0 = 0xb000, - D3D_FEATURE_LEVEL_11_1 = 0xb100, - D3D_FEATURE_LEVEL_12_0 = 0xc000, - D3D_FEATURE_LEVEL_12_1 = 0xc100 - } D3D_FEATURE_LEVEL; - -#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048 -#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048 -#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512 -#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096 -#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256 -#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2 -#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535 -#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575 -#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1 -#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4 -#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128 -#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048 -#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192 -typedef -enum D3D_PRIMITIVE_TOPOLOGY - { - D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, - D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, - D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, - D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, - D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, - D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, - D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, - D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, - D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, - D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, - D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, - D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, - D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, - D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, - D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, - D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, - D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, - D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, - D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, - D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, - D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, - D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, - D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, - D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, - D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, - D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, - D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, - D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, - D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, - D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, - D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, - D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, - D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, - D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, - D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, - D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, - D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, - D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, - D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, - D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, - D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST - } D3D_PRIMITIVE_TOPOLOGY; - -typedef -enum D3D_PRIMITIVE - { - D3D_PRIMITIVE_UNDEFINED = 0, - D3D_PRIMITIVE_POINT = 1, - D3D_PRIMITIVE_LINE = 2, - D3D_PRIMITIVE_TRIANGLE = 3, - D3D_PRIMITIVE_LINE_ADJ = 6, - D3D_PRIMITIVE_TRIANGLE_ADJ = 7, - D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, - D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, - D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, - D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, - D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, - D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, - D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, - D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, - D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, - D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, - D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, - D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, - D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, - D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, - D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, - D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, - D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, - D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, - D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, - D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, - D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, - D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, - D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, - D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, - D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, - D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, - D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, - D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, - D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, - D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, - D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, - D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, - D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, - D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, - D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, - D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, - D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, - D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, - D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, - D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH - } D3D_PRIMITIVE; - -typedef -enum D3D_SRV_DIMENSION - { - D3D_SRV_DIMENSION_UNKNOWN = 0, - D3D_SRV_DIMENSION_BUFFER = 1, - D3D_SRV_DIMENSION_TEXTURE1D = 2, - D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, - D3D_SRV_DIMENSION_TEXTURE2D = 4, - D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, - D3D_SRV_DIMENSION_TEXTURE2DMS = 6, - D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, - D3D_SRV_DIMENSION_TEXTURE3D = 8, - D3D_SRV_DIMENSION_TEXTURECUBE = 9, - D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, - D3D_SRV_DIMENSION_BUFFEREX = 11, - D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, - D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, - D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, - D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, - D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, - D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, - D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, - D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, - D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, - D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, - D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX - } D3D_SRV_DIMENSION; - -typedef struct _D3D_SHADER_MACRO - { - LPCSTR Name; - LPCSTR Definition; - } D3D_SHADER_MACRO; - -typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO; - -DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2); - - -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec; - -#ifndef __ID3D10Blob_INTERFACE_DEFINED__ -#define __ID3D10Blob_INTERFACE_DEFINED__ - -/* interface ID3D10Blob */ -/* [unique][local][object][uuid] */ - - -EXTERN_C const IID IID_ID3D10Blob; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102") - ID3D10Blob : public IUnknown - { - public: - virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0; - - virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ID3D10BlobVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3D10Blob * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3D10Blob * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3D10Blob * This); - - LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )( - ID3D10Blob * This); - - SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )( - ID3D10Blob * This); - - END_INTERFACE - } ID3D10BlobVtbl; - - interface ID3D10Blob - { - CONST_VTBL struct ID3D10BlobVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ID3D10Blob_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3D10Blob_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3D10Blob_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ID3D10Blob_GetBufferPointer(This) \ - ( (This)->lpVtbl -> GetBufferPointer(This) ) - -#define ID3D10Blob_GetBufferSize(This) \ - ( (This)->lpVtbl -> GetBufferSize(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ID3D10Blob_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_d3dcommon_0000_0001 */ -/* [local] */ - -typedef interface ID3D10Blob* LPD3D10BLOB; -typedef ID3D10Blob ID3DBlob; - -typedef ID3DBlob* LPD3DBLOB; -#define IID_ID3DBlob IID_ID3D10Blob -typedef -enum _D3D_INCLUDE_TYPE - { - D3D_INCLUDE_LOCAL = 0, - D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , - D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, - D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, - D3D_INCLUDE_FORCE_DWORD = 0x7fffffff - } D3D_INCLUDE_TYPE; - -typedef interface ID3DInclude ID3DInclude; -#undef INTERFACE -#define INTERFACE ID3DInclude -DECLARE_INTERFACE(ID3DInclude) -{ - STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE; - STDMETHOD(Close)(THIS_ LPCVOID pData) PURE; -}; -typedef ID3DInclude* LPD3DINCLUDE; -typedef -enum _D3D_SHADER_VARIABLE_CLASS - { - D3D_SVC_SCALAR = 0, - D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , - D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , - D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , - D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , - D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , - D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , - D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , - D3D10_SVC_SCALAR = D3D_SVC_SCALAR, - D3D10_SVC_VECTOR = D3D_SVC_VECTOR, - D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, - D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, - D3D10_SVC_OBJECT = D3D_SVC_OBJECT, - D3D10_SVC_STRUCT = D3D_SVC_STRUCT, - D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, - D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, - D3D_SVC_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_CLASS; - -typedef -enum _D3D_SHADER_VARIABLE_FLAGS - { - D3D_SVF_USERPACKED = 1, - D3D_SVF_USED = 2, - D3D_SVF_INTERFACE_POINTER = 4, - D3D_SVF_INTERFACE_PARAMETER = 8, - D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, - D3D10_SVF_USED = D3D_SVF_USED, - D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, - D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, - D3D_SVF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_FLAGS; - -typedef -enum _D3D_SHADER_VARIABLE_TYPE - { - D3D_SVT_VOID = 0, - D3D_SVT_BOOL = 1, - D3D_SVT_INT = 2, - D3D_SVT_FLOAT = 3, - D3D_SVT_STRING = 4, - D3D_SVT_TEXTURE = 5, - D3D_SVT_TEXTURE1D = 6, - D3D_SVT_TEXTURE2D = 7, - D3D_SVT_TEXTURE3D = 8, - D3D_SVT_TEXTURECUBE = 9, - D3D_SVT_SAMPLER = 10, - D3D_SVT_SAMPLER1D = 11, - D3D_SVT_SAMPLER2D = 12, - D3D_SVT_SAMPLER3D = 13, - D3D_SVT_SAMPLERCUBE = 14, - D3D_SVT_PIXELSHADER = 15, - D3D_SVT_VERTEXSHADER = 16, - D3D_SVT_PIXELFRAGMENT = 17, - D3D_SVT_VERTEXFRAGMENT = 18, - D3D_SVT_UINT = 19, - D3D_SVT_UINT8 = 20, - D3D_SVT_GEOMETRYSHADER = 21, - D3D_SVT_RASTERIZER = 22, - D3D_SVT_DEPTHSTENCIL = 23, - D3D_SVT_BLEND = 24, - D3D_SVT_BUFFER = 25, - D3D_SVT_CBUFFER = 26, - D3D_SVT_TBUFFER = 27, - D3D_SVT_TEXTURE1DARRAY = 28, - D3D_SVT_TEXTURE2DARRAY = 29, - D3D_SVT_RENDERTARGETVIEW = 30, - D3D_SVT_DEPTHSTENCILVIEW = 31, - D3D_SVT_TEXTURE2DMS = 32, - D3D_SVT_TEXTURE2DMSARRAY = 33, - D3D_SVT_TEXTURECUBEARRAY = 34, - D3D_SVT_HULLSHADER = 35, - D3D_SVT_DOMAINSHADER = 36, - D3D_SVT_INTERFACE_POINTER = 37, - D3D_SVT_COMPUTESHADER = 38, - D3D_SVT_DOUBLE = 39, - D3D_SVT_RWTEXTURE1D = 40, - D3D_SVT_RWTEXTURE1DARRAY = 41, - D3D_SVT_RWTEXTURE2D = 42, - D3D_SVT_RWTEXTURE2DARRAY = 43, - D3D_SVT_RWTEXTURE3D = 44, - D3D_SVT_RWBUFFER = 45, - D3D_SVT_BYTEADDRESS_BUFFER = 46, - D3D_SVT_RWBYTEADDRESS_BUFFER = 47, - D3D_SVT_STRUCTURED_BUFFER = 48, - D3D_SVT_RWSTRUCTURED_BUFFER = 49, - D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, - D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, - D3D_SVT_MIN8FLOAT = 52, - D3D_SVT_MIN10FLOAT = 53, - D3D_SVT_MIN16FLOAT = 54, - D3D_SVT_MIN12INT = 55, - D3D_SVT_MIN16INT = 56, - D3D_SVT_MIN16UINT = 57, - D3D10_SVT_VOID = D3D_SVT_VOID, - D3D10_SVT_BOOL = D3D_SVT_BOOL, - D3D10_SVT_INT = D3D_SVT_INT, - D3D10_SVT_FLOAT = D3D_SVT_FLOAT, - D3D10_SVT_STRING = D3D_SVT_STRING, - D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, - D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, - D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, - D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, - D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, - D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, - D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, - D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, - D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, - D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, - D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, - D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, - D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, - D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, - D3D10_SVT_UINT = D3D_SVT_UINT, - D3D10_SVT_UINT8 = D3D_SVT_UINT8, - D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, - D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, - D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, - D3D10_SVT_BLEND = D3D_SVT_BLEND, - D3D10_SVT_BUFFER = D3D_SVT_BUFFER, - D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, - D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, - D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, - D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, - D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, - D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, - D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, - D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, - D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, - D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, - D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, - D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, - D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, - D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, - D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, - D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, - D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, - D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, - D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, - D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, - D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, - D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, - D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, - D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, - D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, - D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, - D3D_SVT_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_VARIABLE_TYPE; - -typedef -enum _D3D_SHADER_INPUT_FLAGS - { - D3D_SIF_USERPACKED = 0x1, - D3D_SIF_COMPARISON_SAMPLER = 0x2, - D3D_SIF_TEXTURE_COMPONENT_0 = 0x4, - D3D_SIF_TEXTURE_COMPONENT_1 = 0x8, - D3D_SIF_TEXTURE_COMPONENTS = 0xc, - D3D_SIF_UNUSED = 0x10, - D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, - D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, - D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, - D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, - D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, - D3D_SIF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_INPUT_FLAGS; - -typedef -enum _D3D_SHADER_INPUT_TYPE - { - D3D_SIT_CBUFFER = 0, - D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , - D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , - D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , - D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , - D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , - D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , - D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , - D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , - D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , - D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , - D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , - D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, - D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, - D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, - D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, - D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, - D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, - D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, - D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, - D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, - D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, - D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER - } D3D_SHADER_INPUT_TYPE; - -typedef -enum _D3D_SHADER_CBUFFER_FLAGS - { - D3D_CBF_USERPACKED = 1, - D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, - D3D_CBF_FORCE_DWORD = 0x7fffffff - } D3D_SHADER_CBUFFER_FLAGS; - -typedef -enum _D3D_CBUFFER_TYPE - { - D3D_CT_CBUFFER = 0, - D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , - D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , - D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , - D3D10_CT_CBUFFER = D3D_CT_CBUFFER, - D3D10_CT_TBUFFER = D3D_CT_TBUFFER, - D3D11_CT_CBUFFER = D3D_CT_CBUFFER, - D3D11_CT_TBUFFER = D3D_CT_TBUFFER, - D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, - D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO - } D3D_CBUFFER_TYPE; - -typedef -enum D3D_NAME - { - D3D_NAME_UNDEFINED = 0, - D3D_NAME_POSITION = 1, - D3D_NAME_CLIP_DISTANCE = 2, - D3D_NAME_CULL_DISTANCE = 3, - D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, - D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, - D3D_NAME_VERTEX_ID = 6, - D3D_NAME_PRIMITIVE_ID = 7, - D3D_NAME_INSTANCE_ID = 8, - D3D_NAME_IS_FRONT_FACE = 9, - D3D_NAME_SAMPLE_INDEX = 10, - D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, - D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, - D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, - D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, - D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, - D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, - D3D_NAME_TARGET = 64, - D3D_NAME_DEPTH = 65, - D3D_NAME_COVERAGE = 66, - D3D_NAME_DEPTH_GREATER_EQUAL = 67, - D3D_NAME_DEPTH_LESS_EQUAL = 68, - D3D_NAME_STENCIL_REF = 69, - D3D_NAME_INNER_COVERAGE = 70, - D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, - D3D10_NAME_POSITION = D3D_NAME_POSITION, - D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, - D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, - D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, - D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, - D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, - D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, - D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, - D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, - D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, - D3D10_NAME_TARGET = D3D_NAME_TARGET, - D3D10_NAME_DEPTH = D3D_NAME_DEPTH, - D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, - D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, - D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, - D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, - D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, - D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, - D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, - D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE - } D3D_NAME; - -typedef -enum D3D_RESOURCE_RETURN_TYPE - { - D3D_RETURN_TYPE_UNORM = 1, - D3D_RETURN_TYPE_SNORM = 2, - D3D_RETURN_TYPE_SINT = 3, - D3D_RETURN_TYPE_UINT = 4, - D3D_RETURN_TYPE_FLOAT = 5, - D3D_RETURN_TYPE_MIXED = 6, - D3D_RETURN_TYPE_DOUBLE = 7, - D3D_RETURN_TYPE_CONTINUED = 8, - D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, - D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, - D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, - D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, - D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, - D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, - D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, - D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED - } D3D_RESOURCE_RETURN_TYPE; - -typedef -enum D3D_REGISTER_COMPONENT_TYPE - { - D3D_REGISTER_COMPONENT_UNKNOWN = 0, - D3D_REGISTER_COMPONENT_UINT32 = 1, - D3D_REGISTER_COMPONENT_SINT32 = 2, - D3D_REGISTER_COMPONENT_FLOAT32 = 3, - D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, - D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, - D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, - D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32 - } D3D_REGISTER_COMPONENT_TYPE; - -typedef -enum D3D_TESSELLATOR_DOMAIN - { - D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, - D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, - D3D_TESSELLATOR_DOMAIN_TRI = 2, - D3D_TESSELLATOR_DOMAIN_QUAD = 3, - D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, - D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, - D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, - D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD - } D3D_TESSELLATOR_DOMAIN; - -typedef -enum D3D_TESSELLATOR_PARTITIONING - { - D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, - D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, - D3D_TESSELLATOR_PARTITIONING_POW2 = 2, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, - D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, - D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, - D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, - D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, - D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN - } D3D_TESSELLATOR_PARTITIONING; - -typedef -enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE - { - D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, - D3D_TESSELLATOR_OUTPUT_POINT = 1, - D3D_TESSELLATOR_OUTPUT_LINE = 2, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, - D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, - D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, - D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, - D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, - D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW - } D3D_TESSELLATOR_OUTPUT_PRIMITIVE; - -typedef -enum D3D_MIN_PRECISION - { - D3D_MIN_PRECISION_DEFAULT = 0, - D3D_MIN_PRECISION_FLOAT_16 = 1, - D3D_MIN_PRECISION_FLOAT_2_8 = 2, - D3D_MIN_PRECISION_RESERVED = 3, - D3D_MIN_PRECISION_SINT_16 = 4, - D3D_MIN_PRECISION_UINT_16 = 5, - D3D_MIN_PRECISION_ANY_16 = 0xf0, - D3D_MIN_PRECISION_ANY_10 = 0xf1 - } D3D_MIN_PRECISION; - -typedef -enum D3D_INTERPOLATION_MODE - { - D3D_INTERPOLATION_UNDEFINED = 0, - D3D_INTERPOLATION_CONSTANT = 1, - D3D_INTERPOLATION_LINEAR = 2, - D3D_INTERPOLATION_LINEAR_CENTROID = 3, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, - D3D_INTERPOLATION_LINEAR_SAMPLE = 6, - D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 - } D3D_INTERPOLATION_MODE; - -typedef -enum _D3D_PARAMETER_FLAGS - { - D3D_PF_NONE = 0, - D3D_PF_IN = 0x1, - D3D_PF_OUT = 0x2, - D3D_PF_FORCE_DWORD = 0x7fffffff - } D3D_PARAMETER_FLAGS; - -DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00); -DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41); -DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2); -#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName) -#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName) -#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName) -#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName) -#define D3D_COMPONENT_MASK_X 1 -#define D3D_COMPONENT_MASK_Y 2 -#define D3D_COMPONENT_MASK_Z 4 -#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; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/dcommon.h b/3rdparty/minidx12/Include/dcommon.h deleted file mode 100644 index 5565a04056..0000000000 --- a/3rdparty/minidx12/Include/dcommon.h +++ /dev/null @@ -1,109 +0,0 @@ -//+-------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Abstract: -// Public API definitions for DWrite, D2D and DImage. -// -//---------------------------------------------------------------------------- -#pragma once - -#ifndef DCOMMON_H_INCLUDED -#define DCOMMON_H_INCLUDED - -#include - -#ifndef DX_DECLARE_INTERFACE -#define DX_DECLARE_INTERFACE(x) DECLSPEC_UUID(x) DECLSPEC_NOVTABLE -#endif - -#ifndef CHECKMETHOD -#define CHECKMETHOD(method) virtual DECLSPEC_NOTHROW _Must_inspect_result_ HRESULT STDMETHODCALLTYPE method -#endif - -// -// Forward declarations -// -interface IDXGISurface; - -//+---------------------------------------------------------------------------- -// -// Enum: -// DWRITE_MEASURING_MODE -// -// Synopsis: -// 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. - // - DWRITE_MEASURING_MODE_NATURAL, - - // - // 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. -// -//------------------------------------------------------------------------------ -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. - // - D2D1_ALPHA_MODE_UNKNOWN = 0, - - // - // Treat the alpha as premultipled. - // - D2D1_ALPHA_MODE_PREMULTIPLIED = 1, - - // - // Opacity is in the 'A' component only. - // - D2D1_ALPHA_MODE_STRAIGHT = 2, - - // - // Ignore any alpha channel information. - // - D2D1_ALPHA_MODE_IGNORE = 3, - - D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff - -} D2D1_ALPHA_MODE; - -//+----------------------------------------------------------------------------- -// -// Struct: -// D2D1_PIXEL_FORMAT -// -//------------------------------------------------------------------------------ -typedef struct D2D1_PIXEL_FORMAT -{ - DXGI_FORMAT format; - D2D1_ALPHA_MODE alphaMode; - -} D2D1_PIXEL_FORMAT; - -#endif /* DCOMMON_H_INCLUDED */ diff --git a/3rdparty/minidx12/Include/dwrite.h b/3rdparty/minidx12/Include/dwrite.h deleted file mode 100644 index e37bc2f1aa..0000000000 --- a/3rdparty/minidx12/Include/dwrite.h +++ /dev/null @@ -1,5090 +0,0 @@ -//+-------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Abstract: -// DirectX Typography Services public API definitions. -// -//---------------------------------------------------------------------------- - -#ifndef DWRITE_H_INCLUDED -#define DWRITE_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif - -#ifndef DWRITE_NO_WINDOWS_H - -#include -#include - -#endif // DWRITE_NO_WINDOWS_H - -#include - -#ifndef DWRITE_DECLARE_INTERFACE -#define DWRITE_DECLARE_INTERFACE(iid) DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE -#endif - -#ifndef DWRITE_EXPORT -#define DWRITE_EXPORT __declspec(dllimport) WINAPI -#endif - -/// -/// The type of a font represented by a single font file. -/// Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have -/// separate enum values for each of the file type. -/// -enum DWRITE_FONT_FILE_TYPE -{ - /// - /// Font type is not recognized by the DirectWrite font system. - /// - DWRITE_FONT_FILE_TYPE_UNKNOWN, - - /// - /// OpenType font with CFF outlines. - /// - DWRITE_FONT_FILE_TYPE_CFF, - - /// - /// OpenType font with TrueType outlines. - /// - DWRITE_FONT_FILE_TYPE_TRUETYPE, - - /// - /// OpenType font that contains a TrueType collection. - /// - DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION, - - /// - /// Type 1 PFM font. - /// - DWRITE_FONT_FILE_TYPE_TYPE1_PFM, - - /// - /// Type 1 PFB font. - /// - DWRITE_FONT_FILE_TYPE_TYPE1_PFB, - - /// - /// Vector .FON font. - /// - DWRITE_FONT_FILE_TYPE_VECTOR, - - /// - /// Bitmap .FON font. - /// - DWRITE_FONT_FILE_TYPE_BITMAP -}; - -/// -/// The file format of a complete font face. -/// Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have -/// a single enum entry. -/// -enum DWRITE_FONT_FACE_TYPE -{ - /// - /// OpenType font face with CFF outlines. - /// - DWRITE_FONT_FACE_TYPE_CFF, - - /// - /// OpenType font face with TrueType outlines. - /// - DWRITE_FONT_FACE_TYPE_TRUETYPE, - - /// - /// OpenType font face that is a part of a TrueType collection. - /// - DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION, - - /// - /// A Type 1 font face. - /// - DWRITE_FONT_FACE_TYPE_TYPE1, - - /// - /// A vector .FON format font face. - /// - DWRITE_FONT_FACE_TYPE_VECTOR, - - /// - /// A bitmap .FON format font face. - /// - DWRITE_FONT_FACE_TYPE_BITMAP, - - /// - /// Font face type is not recognized by the DirectWrite font system. - /// - DWRITE_FONT_FACE_TYPE_UNKNOWN, - - /// - /// The font data includes only the CFF table from an OpenType CFF font. - /// This font face type can be used only for embedded fonts (i.e., custom - /// font file loaders) and the resulting font face object supports only the - /// minimum functionality necessary to render glyphs. - /// - DWRITE_FONT_FACE_TYPE_RAW_CFF -}; - -/// -/// Specifies algorithmic style simulations to be applied to the font face. -/// Bold and oblique simulations can be combined via bitwise OR operation. -/// -enum DWRITE_FONT_SIMULATIONS -{ - /// - /// No simulations are performed. - /// - DWRITE_FONT_SIMULATIONS_NONE = 0x0000, - - /// - /// Algorithmic emboldening is performed. - /// - DWRITE_FONT_SIMULATIONS_BOLD = 0x0001, - - /// - /// Algorithmic italicization is performed. - /// - DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002 -}; - -#ifdef DEFINE_ENUM_FLAG_OPERATORS -DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); -#endif - -/// -/// The font weight enumeration describes common values for degree of blackness or thickness of strokes of characters in a font. -/// Font weight values less than 1 or greater than 999 are considered to be invalid, and they are rejected by font API functions. -/// -enum DWRITE_FONT_WEIGHT -{ - /// - /// Predefined font weight : Thin (100). - /// - DWRITE_FONT_WEIGHT_THIN = 100, - - /// - /// Predefined font weight : Extra-light (200). - /// - DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, - - /// - /// Predefined font weight : Ultra-light (200). - /// - DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, - - /// - /// Predefined font weight : Light (300). - /// - DWRITE_FONT_WEIGHT_LIGHT = 300, - - /// - /// Predefined font weight : Semi-light (350). - /// - DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, - - /// - /// Predefined font weight : Normal (400). - /// - DWRITE_FONT_WEIGHT_NORMAL = 400, - - /// - /// Predefined font weight : Regular (400). - /// - DWRITE_FONT_WEIGHT_REGULAR = 400, - - /// - /// Predefined font weight : Medium (500). - /// - DWRITE_FONT_WEIGHT_MEDIUM = 500, - - /// - /// Predefined font weight : Demi-bold (600). - /// - DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, - - /// - /// Predefined font weight : Semi-bold (600). - /// - DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, - - /// - /// Predefined font weight : Bold (700). - /// - DWRITE_FONT_WEIGHT_BOLD = 700, - - /// - /// Predefined font weight : Extra-bold (800). - /// - DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, - - /// - /// Predefined font weight : Ultra-bold (800). - /// - DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, - - /// - /// Predefined font weight : Black (900). - /// - DWRITE_FONT_WEIGHT_BLACK = 900, - - /// - /// Predefined font weight : Heavy (900). - /// - DWRITE_FONT_WEIGHT_HEAVY = 900, - - /// - /// Predefined font weight : Extra-black (950). - /// - DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, - - /// - /// Predefined font weight : Ultra-black (950). - /// - DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 -}; - -/// -/// The font stretch enumeration describes relative change from the normal aspect ratio -/// as specified by a font designer for the glyphs in a font. -/// Values less than 1 or greater than 9 are considered to be invalid, and they are rejected by font API functions. -/// -enum DWRITE_FONT_STRETCH -{ - /// - /// Predefined font stretch : Not known (0). - /// - DWRITE_FONT_STRETCH_UNDEFINED = 0, - - /// - /// Predefined font stretch : Ultra-condensed (1). - /// - DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, - - /// - /// Predefined font stretch : Extra-condensed (2). - /// - DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, - - /// - /// Predefined font stretch : Condensed (3). - /// - DWRITE_FONT_STRETCH_CONDENSED = 3, - - /// - /// Predefined font stretch : Semi-condensed (4). - /// - DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, - - /// - /// Predefined font stretch : Normal (5). - /// - DWRITE_FONT_STRETCH_NORMAL = 5, - - /// - /// Predefined font stretch : Medium (5). - /// - DWRITE_FONT_STRETCH_MEDIUM = 5, - - /// - /// Predefined font stretch : Semi-expanded (6). - /// - DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, - - /// - /// Predefined font stretch : Expanded (7). - /// - DWRITE_FONT_STRETCH_EXPANDED = 7, - - /// - /// Predefined font stretch : Extra-expanded (8). - /// - DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, - - /// - /// Predefined font stretch : Ultra-expanded (9). - /// - DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 -}; - -/// -/// The font style enumeration describes the slope style of a font face, such as Normal, Italic or Oblique. -/// Values other than the ones defined in the enumeration are considered to be invalid, and they are rejected by font API functions. -/// -enum DWRITE_FONT_STYLE -{ - /// - /// Font slope style : Normal. - /// - DWRITE_FONT_STYLE_NORMAL, - - /// - /// Font slope style : Oblique. - /// - DWRITE_FONT_STYLE_OBLIQUE, - - /// - /// Font slope style : Italic. - /// - DWRITE_FONT_STYLE_ITALIC - -}; - -/// -/// The informational string enumeration identifies a string in a font. -/// -enum DWRITE_INFORMATIONAL_STRING_ID -{ - /// - /// Unspecified name ID. - /// - DWRITE_INFORMATIONAL_STRING_NONE, - - /// - /// Copyright notice provided by the font. - /// - DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE, - - /// - /// String containing a version number. - /// - DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS, - - /// - /// Trademark information provided by the font. - /// - DWRITE_INFORMATIONAL_STRING_TRADEMARK, - - /// - /// Name of the font manufacturer. - /// - DWRITE_INFORMATIONAL_STRING_MANUFACTURER, - - /// - /// Name of the font designer. - /// - DWRITE_INFORMATIONAL_STRING_DESIGNER, - - /// - /// URL of font designer (with protocol, e.g., http://, ftp://). - /// - DWRITE_INFORMATIONAL_STRING_DESIGNER_URL, - - /// - /// Description of the font. Can contain revision information, usage recommendations, history, features, etc. - /// - DWRITE_INFORMATIONAL_STRING_DESCRIPTION, - - /// - /// URL of font vendor (with protocol, e.g., http://, ftp://). If a unique serial number is embedded in the URL, it can be used to register the font. - /// - DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL, - - /// - /// Description of how the font may be legally used, or different example scenarios for licensed use. This field should be written in plain language, not legalese. - /// - DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION, - - /// - /// URL where additional licensing information can be found. - /// - DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL, - - /// - /// GDI-compatible family name. Because GDI allows a maximum of four fonts per family, fonts in the same family may have different GDI-compatible family names - /// (e.g., "Arial", "Arial Narrow", "Arial Black"). - /// - DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, - - /// - /// GDI-compatible subfamily name. - /// - DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, - - /// - /// Family name preferred by the designer. This enables font designers to group more than four fonts in a single family without losing compatibility with - /// GDI. This name is typically only present if it differs from the GDI-compatible family name. - /// - DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES, - - /// - /// Subfamily name preferred by the designer. This name is typically only present if it differs from the GDI-compatible subfamily name. - /// - DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES, - - /// - /// Sample text. This can be the font name or any other text that the designer thinks is the best example to display the font in. - /// - DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT, - - /// - /// The full name of the font, e.g. "Arial Bold", from name id 4 in the name table. - /// - DWRITE_INFORMATIONAL_STRING_FULL_NAME, - - /// - /// The postscript name of the font, e.g. "GillSans-Bold" from name id 6 in the name table. - /// - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, - - /// - /// The postscript CID findfont name, from name id 20 in the name table. - /// - DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME, - - /// - /// Family name for the weight-width-slope model. - /// - DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME, - - /// - /// Script/language tag to identify the scripts or languages that the font was - /// primarily designed to support. See DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG - /// for a longer description. - /// - DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG, - - /// - /// Script/language tag to identify the scripts or languages that the font declares - /// it is able to support. - /// - DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG, -}; - - -/// -/// The DWRITE_FONT_METRICS structure specifies the metrics of a font face that -/// are applicable to all glyphs within the font face. -/// -struct DWRITE_FONT_METRICS -{ - /// - /// The number of font design units per em unit. - /// Font files use their own coordinate system of font design units. - /// A font design unit is the smallest measurable unit in the em square, - /// an imaginary square that is used to size and align glyphs. - /// The concept of em square is used as a reference scale factor when defining font size and device transformation semantics. - /// The size of one em square is also commonly used to compute the paragraph indentation value. - /// - UINT16 designUnitsPerEm; - - /// - /// Ascent value of the font face in font design units. - /// Ascent is the distance from the top of font character alignment box to English baseline. - /// - UINT16 ascent; - - /// - /// Descent value of the font face in font design units. - /// Descent is the distance from the bottom of font character alignment box to English baseline. - /// - UINT16 descent; - - /// - /// Line gap in font design units. - /// Recommended additional white space to add between lines to improve legibility. The recommended line spacing - /// (baseline-to-baseline distance) is thus the sum of ascent, descent, and lineGap. The line gap is usually - /// positive or zero but can be negative, in which case the recommended line spacing is less than the height - /// of the character alignment box. - /// - INT16 lineGap; - - /// - /// Cap height value of the font face in font design units. - /// Cap height is the distance from English baseline to the top of a typical English capital. - /// Capital "H" is often used as a reference character for the purpose of calculating the cap height value. - /// - UINT16 capHeight; - - /// - /// x-height value of the font face in font design units. - /// x-height is the distance from English baseline to the top of lowercase letter "x", or a similar lowercase character. - /// - UINT16 xHeight; - - /// - /// The underline position value of the font face in font design units. - /// Underline position is the position of underline relative to the English baseline. - /// The value is usually made negative in order to place the underline below the baseline. - /// - INT16 underlinePosition; - - /// - /// The suggested underline thickness value of the font face in font design units. - /// - UINT16 underlineThickness; - - /// - /// The strikethrough position value of the font face in font design units. - /// Strikethrough position is the position of strikethrough relative to the English baseline. - /// The value is usually made positive in order to place the strikethrough above the baseline. - /// - INT16 strikethroughPosition; - - /// - /// The suggested strikethrough thickness value of the font face in font design units. - /// - UINT16 strikethroughThickness; -}; - -/// -/// The DWRITE_GLYPH_METRICS structure specifies the metrics of an individual glyph. -/// The units depend on how the metrics are obtained. -/// -struct DWRITE_GLYPH_METRICS -{ - /// - /// Specifies the X offset from the glyph origin to the left edge of the black box. - /// The glyph origin is the current horizontal writing position. - /// A negative value means the black box extends to the left of the origin (often true for lowercase italic 'f'). - /// - INT32 leftSideBearing; - - /// - /// Specifies the X offset from the origin of the current glyph to the origin of the next glyph when writing horizontally. - /// - UINT32 advanceWidth; - - /// - /// Specifies the X offset from the right edge of the black box to the origin of the next glyph when writing horizontally. - /// The value is negative when the right edge of the black box overhangs the layout box. - /// - INT32 rightSideBearing; - - /// - /// Specifies the vertical offset from the vertical origin to the top of the black box. - /// Thus, a positive value adds whitespace whereas a negative value means the glyph overhangs the top of the layout box. - /// - INT32 topSideBearing; - - /// - /// Specifies the Y offset from the vertical origin of the current glyph to the vertical origin of the next glyph when writing vertically. - /// (Note that the term "origin" by itself denotes the horizontal origin. The vertical origin is different. - /// Its Y coordinate is specified by verticalOriginY value, - /// and its X coordinate is half the advanceWidth to the right of the horizontal origin). - /// - UINT32 advanceHeight; - - /// - /// Specifies the vertical distance from the black box's bottom edge to the advance height. - /// Positive when the bottom edge of the black box is within the layout box. - /// Negative when the bottom edge of black box overhangs the layout box. - /// - INT32 bottomSideBearing; - - /// - /// Specifies the Y coordinate of a glyph's vertical origin, in the font's design coordinate system. - /// The y coordinate of a glyph's vertical origin is the sum of the glyph's top side bearing - /// and the top (i.e. yMax) of the glyph's bounding box. - /// - INT32 verticalOriginY; -}; - -/// -/// Optional adjustment to a glyph's position. A glyph offset changes the position of a glyph without affecting -/// the pen position. Offsets are in logical, pre-transform units. -/// -struct DWRITE_GLYPH_OFFSET -{ - /// - /// Offset in the advance direction of the run. A positive advance offset moves the glyph to the right - /// (in pre-transform coordinates) if the run is left-to-right or to the left if the run is right-to-left. - /// - FLOAT advanceOffset; - - /// - /// Offset in the ascent direction, i.e., the direction ascenders point. A positive ascender offset moves - /// the glyph up (in pre-transform coordinates). - /// - FLOAT ascenderOffset; -}; - -/// -/// Specifies the type of DirectWrite factory object. -/// DirectWrite factory contains internal state such as font loader registration and cached font data. -/// In most cases it is recommended to use the shared factory object, because it allows multiple components -/// that use DirectWrite to share internal DirectWrite state and reduce memory usage. -/// However, there are cases when it is desirable to reduce the impact of a component, -/// such as a plug-in from an untrusted source, on the rest of the process by sandboxing and isolating it -/// from the rest of the process components. In such cases, it is recommended to use an isolated factory for the sandboxed -/// component. -/// -enum DWRITE_FACTORY_TYPE -{ - /// - /// Shared factory allow for re-use of cached font data across multiple in process components. - /// Such factories also take advantage of cross process font caching components for better performance. - /// - DWRITE_FACTORY_TYPE_SHARED, - - /// - /// Objects created from the isolated factory do not interact with internal DirectWrite state from other components. - /// - DWRITE_FACTORY_TYPE_ISOLATED -}; - -// Creates an OpenType tag as a 32bit integer such that -// the first character in the tag is the lowest byte, -// (least significant on little endian architectures) -// which can be used to compare with tags in the font file. -// This macro is compatible with DWRITE_FONT_FEATURE_TAG. -// -// Example: DWRITE_MAKE_OPENTYPE_TAG('c','c','m','p') -// Dword: 0x706D6363 -// -#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ - (static_cast(static_cast(d)) << 24) | \ - (static_cast(static_cast(c)) << 16) | \ - (static_cast(static_cast(b)) << 8) | \ - static_cast(static_cast(a))) - -interface IDWriteFontFileStream; - -/// -/// Font file loader interface handles loading font file resources of a particular type from a key. -/// The font file loader interface is recommended to be implemented by a singleton object. -/// IMPORTANT: font file loader implementations must not register themselves with DirectWrite factory -/// inside their constructors and must not unregister themselves in their destructors, because -/// registration and unregistration operations increment and decrement the object reference count respectively. -/// Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed -/// outside of the font file loader implementation as a separate step. -/// -interface DWRITE_DECLARE_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") IDWriteFontFileLoader : public IUnknown -{ - /// - /// Creates a font file stream object that encapsulates an open file resource. - /// The resource is closed when the last reference to fontFileStream is released. - /// - /// 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. - /// - STDMETHOD(CreateStreamFromKey)( - _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, - UINT32 fontFileReferenceKeySize, - _COM_Outptr_ IDWriteFontFileStream** fontFileStream - ) PURE; -}; - -/// -/// A built-in implementation of IDWriteFontFileLoader interface that operates on local font files -/// and exposes local font file information from the font file reference key. -/// Font file references created using CreateFontFileReference use this font file loader. -/// -interface DWRITE_DECLARE_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") IDWriteLocalFontFileLoader : public IDWriteFontFileLoader -{ - /// - /// Obtains the length of the absolute file path from the font file reference key. - /// - /// Font file reference key that uniquely identifies the local font file - /// within the scope of the font loader being used. - /// Size of font file reference key in bytes. - /// Length of the file path string not including the terminated NULL character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFilePathLengthFromKey)( - _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, - UINT32 fontFileReferenceKeySize, - _Out_ UINT32* filePathLength - ) PURE; - - /// - /// Obtains the absolute font file path from the font file reference key. - /// - /// Font file reference key that uniquely identifies the local font file - /// within the scope of the font loader being used. - /// Size of font file reference key in bytes. - /// Character array that receives the local file path. - /// Size of the filePath array in character count including the terminated NULL character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFilePathFromKey)( - _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, - UINT32 fontFileReferenceKeySize, - _Out_writes_z_(filePathSize) WCHAR* filePath, - UINT32 filePathSize - ) PURE; - - /// - /// Obtains the last write time of the file from the font file reference key. - /// - /// Font file reference key that uniquely identifies the local font file - /// within the scope of the font loader being used. - /// Size of font file reference key in bytes. - /// Last modified time of the font file. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLastWriteTimeFromKey)( - _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, - UINT32 fontFileReferenceKeySize, - _Out_ FILETIME* lastWriteTime - ) PURE; -}; - -/// -/// The interface for loading font file data. -/// -interface DWRITE_DECLARE_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") IDWriteFontFileStream : public IUnknown -{ - /// - /// Reads a fragment from a file. - /// - /// Receives the pointer to the start of the font file fragment. - /// Offset of the fragment from the beginning of the font file. - /// Size of the fragment in bytes. - /// The client defined context to be passed to the ReleaseFileFragment. - /// - /// Standard HRESULT error code. - /// - /// - /// IMPORTANT: ReadFileFragment() implementations must check whether the requested file fragment - /// is within the file bounds. Otherwise, an error should be returned from ReadFileFragment. - /// - STDMETHOD(ReadFileFragment)( - _Outptr_result_bytebuffer_(fragmentSize) void const** fragmentStart, - UINT64 fileOffset, - UINT64 fragmentSize, - _Out_ void** fragmentContext - ) PURE; - - /// - /// Releases a fragment from a file. - /// - /// The client defined context of a font fragment returned from ReadFileFragment. - STDMETHOD_(void, ReleaseFileFragment)( - void* fragmentContext - ) PURE; - - /// - /// Obtains the total size of a file. - /// - /// Receives the total size of the file. - /// - /// Standard HRESULT error code. - /// - /// - /// Implementing GetFileSize() for asynchronously loaded font files may require - /// downloading the complete file contents, therefore this method should only be used for operations that - /// either require complete font file to be loaded (e.g., copying a font file) or need to make - /// decisions based on the value of the file size (e.g., validation against a persisted file size). - /// - STDMETHOD(GetFileSize)( - _Out_ UINT64* fileSize - ) PURE; - - /// - /// Obtains the last modified time of the file. The last modified time is used by DirectWrite font selection algorithms - /// to determine whether one font resource is more up to date than another one. - /// - /// Receives the last modified time of the file in the format that represents - /// the number of 100-nanosecond intervals since January 1, 1601 (UTC). - /// - /// Standard HRESULT error code. For resources that don't have a concept of the last modified time, the implementation of - /// GetLastWriteTime should return E_NOTIMPL. - /// - STDMETHOD(GetLastWriteTime)( - _Out_ UINT64* lastWriteTime - ) PURE; -}; - -/// -/// The interface that represents a reference to a font file. -/// -interface DWRITE_DECLARE_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") IDWriteFontFile : public IUnknown -{ - /// - /// This method obtains the pointer to the reference key of a font file. The pointer is only valid until the object that refers to it is released. - /// - /// Pointer to the font file reference key. - /// IMPORTANT: The pointer value is valid until the font file reference object it is obtained from is released. - /// Size of font file reference key in bytes. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetReferenceKey)( - _Outptr_result_bytebuffer_(*fontFileReferenceKeySize) void const** fontFileReferenceKey, - _Out_ UINT32* fontFileReferenceKeySize - ) PURE; - - /// - /// Obtains the file loader associated with a font file object. - /// - /// The font file loader associated with the font file object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLoader)( - _COM_Outptr_ IDWriteFontFileLoader** fontFileLoader - ) PURE; - - /// - /// Analyzes a file and returns whether it represents a font, and whether the font type is supported by the font system. - /// - /// TRUE if the font type is supported by the font system, FALSE otherwise. - /// The type of the font file. Note that even if isSupportedFontType is FALSE, - /// the fontFileType value may be different from DWRITE_FONT_FILE_TYPE_UNKNOWN. - /// The type of the font face that can be constructed from the font file. - /// Note that even if isSupportedFontType is FALSE, the fontFaceType value may be different from - /// DWRITE_FONT_FACE_TYPE_UNKNOWN. - /// Number of font faces contained in the font file. - /// - /// Standard HRESULT error code if there was a processing error during analysis. - /// - /// - /// IMPORTANT: certain font file types are recognized, but not supported by the font system. - /// For example, the font system will recognize a file as a Type 1 font file, - /// but will not be able to construct a font face object from it. In such situations, Analyze will set - /// isSupportedFontType output parameter to FALSE. - /// - STDMETHOD(Analyze)( - _Out_ BOOL* isSupportedFontType, - _Out_ DWRITE_FONT_FILE_TYPE* fontFileType, - _Out_opt_ DWRITE_FONT_FACE_TYPE* fontFaceType, - _Out_ UINT32* numberOfFaces - ) PURE; -}; - -/// -/// Represents the internal structure of a device pixel (i.e., the physical arrangement of red, -/// green, and blue color components) that is assumed for purposes of rendering text. -/// -#ifndef DWRITE_PIXEL_GEOMETRY_DEFINED -enum DWRITE_PIXEL_GEOMETRY -{ - /// - /// The red, green, and blue color components of each pixel are assumed to occupy the same point. - /// - DWRITE_PIXEL_GEOMETRY_FLAT, - - /// - /// Each pixel comprises three vertical stripes, with red on the left, green in the center, and - /// blue on the right. This is the most common pixel geometry for LCD monitors. - /// - DWRITE_PIXEL_GEOMETRY_RGB, - - /// - /// Each pixel comprises three vertical stripes, with blue on the left, green in the center, and - /// red on the right. - /// - DWRITE_PIXEL_GEOMETRY_BGR -}; -#define DWRITE_PIXEL_GEOMETRY_DEFINED -#endif - -/// -/// Represents a method of rendering glyphs. -/// -enum DWRITE_RENDERING_MODE -{ - /// - /// Specifies that the rendering mode is determined automatically based on the font and size. - /// - DWRITE_RENDERING_MODE_DEFAULT, - - /// - /// Specifies that no antialiasing is performed. Each pixel is either set to the foreground - /// color of the text or retains the color of the background. - /// - DWRITE_RENDERING_MODE_ALIASED, - - /// - /// Specifies that antialiasing is performed in the horizontal direction and the appearance - /// of glyphs is layout-compatible with GDI using CLEARTYPE_QUALITY. Use DWRITE_MEASURING_MODE_GDI_CLASSIC - /// to get glyph advances. The antialiasing may be either ClearType or grayscale depending on - /// the text antialiasing mode. - /// - DWRITE_RENDERING_MODE_GDI_CLASSIC, - - /// - /// Specifies that antialiasing is performed in the horizontal direction and the appearance - /// of glyphs is layout-compatible with GDI using CLEARTYPE_NATURAL_QUALITY. Glyph advances - /// are close to the font design advances, but are still rounded to whole pixels. Use - /// DWRITE_MEASURING_MODE_GDI_NATURAL to get glyph advances. The antialiasing may be either - /// ClearType or grayscale depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE_GDI_NATURAL, - - /// - /// Specifies that antialiasing is performed in the horizontal direction. This rendering - /// mode allows glyphs to be positioned with subpixel precision and is therefore suitable - /// for natural (i.e., resolution-independent) layout. The antialiasing may be either - /// ClearType or grayscale depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE_NATURAL, - - /// - /// Similar to natural mode except that antialiasing is performed in both the horizontal - /// and vertical directions. This is typically used at larger sizes to make curves and - /// diagonal lines look smoother. The antialiasing may be either ClearType or grayscale - /// depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC, - - /// - /// Specifies that rendering should bypass the rasterizer and use the outlines directly. - /// This is typically used at very large sizes. - /// - DWRITE_RENDERING_MODE_OUTLINE, - - // The following names are obsolete, but are kept as aliases to avoid breaking existing code. - // Each of these rendering modes may result in either ClearType or grayscale antialiasing - // depending on the DWRITE_TEXT_ANTIALIASING_MODE. - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, - DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, - DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC -}; - -/// -/// The DWRITE_MATRIX structure specifies the graphics transform to be applied -/// to rendered glyphs. -/// -struct DWRITE_MATRIX -{ - /// - /// 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; -}; - -/// -/// The interface that represents text rendering settings for glyph rasterization and filtering. -/// -interface DWRITE_DECLARE_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") IDWriteRenderingParams : public IUnknown -{ - /// - /// Gets the gamma value used for gamma correction. Valid values must be - /// greater than zero and cannot exceed 256. - /// - STDMETHOD_(FLOAT, GetGamma)() PURE; - - /// - /// Gets the amount of contrast enhancement. Valid values are greater than - /// or equal to zero. - /// - STDMETHOD_(FLOAT, GetEnhancedContrast)() PURE; - - /// - /// Gets the ClearType level. Valid values range from 0.0f (no ClearType) - /// to 1.0f (full ClearType). - /// - STDMETHOD_(FLOAT, GetClearTypeLevel)() PURE; - - /// - /// Gets the pixel geometry. - /// - STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)() PURE; - - /// - /// Gets the rendering mode. - /// - STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)() PURE; -}; - -// Forward declarations of D2D types -interface ID2D1SimplifiedGeometrySink; - -typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; - -/// -/// 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("5f49804d-7024-4d43-bfa9-d25984f53849") IDWriteFontFace : public IUnknown -{ - /// - /// Obtains the file format type of a font face. - /// - STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)() PURE; - - /// - /// Obtains the font files representing a font face. - /// - /// The number of files representing the font face. - /// User provided array that stores pointers to font files representing the font face. - /// This parameter can be NULL if the user is only interested in the number of files representing the font face. - /// This API increments reference count of the font file pointers returned according to COM conventions, and the client - /// should release them when finished. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFiles)( - _Inout_ UINT32* numberOfFiles, - _Out_writes_opt_(*numberOfFiles) IDWriteFontFile** fontFiles - ) PURE; - - /// - /// Obtains the zero-based index of the font face in its font file or files. If the font files contain a single face, - /// the return value is zero. - /// - STDMETHOD_(UINT32, GetIndex)() PURE; - - /// - /// Obtains the algorithmic style simulation flags of a font face. - /// - STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE; - - /// - /// Determines whether the font is a symbol font. - /// - STDMETHOD_(BOOL, IsSymbolFont)() PURE; - - /// - /// Obtains design units and common metrics for the font face. - /// These metrics are applicable to all the glyphs within a fontface and are used by applications for layout calculations. - /// - /// Points to a DWRITE_FONT_METRICS structure to fill in. - /// The metrics returned by this function are in font design units. - STDMETHOD_(void, GetMetrics)( - _Out_ DWRITE_FONT_METRICS* fontFaceMetrics - ) PURE; - - /// - /// Obtains the number of glyphs in the font face. - /// - STDMETHOD_(UINT16, GetGlyphCount)() PURE; - - /// - /// Obtains ideal glyph metrics in font design units. Design glyphs metrics are used for glyph positioning. - /// - /// An array of glyph indices to compute the metrics for. - /// The number of elements in the glyphIndices array. - /// Array of DWRITE_GLYPH_METRICS structures filled by this function. - /// The metrics returned by this function are in font design units. - /// Indicates whether the font is being used in a sideways run. - /// This can affect the glyph metrics if the font has oblique simulation - /// because sideways oblique simulation differs from non-sideways oblique simulation. - /// - /// Standard HRESULT error code. If any of the input glyph indices are outside of the valid glyph index range - /// for the current font face, E_INVALIDARG will be returned. - /// - STDMETHOD(GetDesignGlyphMetrics)( - _In_reads_(glyphCount) UINT16 const* glyphIndices, - UINT32 glyphCount, - _Out_writes_(glyphCount) DWRITE_GLYPH_METRICS* glyphMetrics, - BOOL isSideways = FALSE - ) PURE; - - /// - /// Returns the nominal mapping of UTF-32 Unicode code points to glyph indices as defined by the font 'cmap' table. - /// Note that this mapping is primarily provided for line layout engines built on top of the physical font API. - /// Because of OpenType glyph substitution and line layout character substitution, the nominal conversion does not always correspond - /// to how a Unicode string will map to glyph indices when rendering using a particular font face. - /// Also, note that Unicode Variation Selectors provide for alternate mappings for character to glyph. - /// This call will always return the default variant. - /// - /// An array of UTF-32 code points to obtain nominal glyph indices from. - /// The number of elements in the codePoints array. - /// Array of nominal glyph indices filled by this function. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGlyphIndices)( - _In_reads_(codePointCount) UINT32 const* codePoints, - UINT32 codePointCount, - _Out_writes_(codePointCount) UINT16* glyphIndices - ) PURE; - - /// - /// Finds the specified OpenType font table if it exists and returns a pointer to it. - /// The function accesses the underlying font data via the IDWriteFontFileStream interface - /// implemented by the font file loader. - /// - /// Four character tag of table to find. - /// Use the DWRITE_MAKE_OPENTYPE_TAG() macro to create it. - /// Unlike GDI, it does not support the special TTCF and null tags to access the whole font. - /// - /// Pointer to base of table in memory. - /// The pointer is only valid so long as the FontFace used to get the font table still exists - /// (not any other FontFace, even if it actually refers to the same physical font). - /// - /// Byte size of table. - /// - /// Opaque context which must be freed by calling ReleaseFontTable. - /// The context actually comes from the lower level IDWriteFontFileStream, - /// which may be implemented by the application or DWrite itself. - /// It is possible for a NULL tableContext to be returned, especially if - /// the implementation directly memory maps the whole file. - /// Nevertheless, always release it later, and do not use it as a test for function success. - /// The same table can be queried multiple times, - /// but each returned context can be different, so release each separately. - /// - /// True if table exists. - /// - /// Standard HRESULT error code. - /// If a table can not be found, the function will not return an error, but the size will be 0, table NULL, and exists = FALSE. - /// The context does not need to be freed if the table was not found. - /// - /// - /// The context for the same tag may be different for each call, - /// so each one must be held and released separately. - /// - STDMETHOD(TryGetFontTable)( - _In_ UINT32 openTypeTableTag, - _Outptr_result_bytebuffer_(*tableSize) const void** tableData, - _Out_ UINT32* tableSize, - _Out_ void** tableContext, - _Out_ BOOL* exists - ) PURE; - - /// - /// Releases the table obtained earlier from TryGetFontTable. - /// - /// Opaque context from TryGetFontTable. - STDMETHOD_(void, ReleaseFontTable)( - _In_ void* tableContext - ) PURE; - - /// - /// Computes the outline of a run of glyphs by calling back to the outline sink interface. - /// - /// Logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. - /// Array of glyph indices. - /// Optional array of glyph advances in DIPs. - /// Optional array of glyph offsets. - /// Number of glyphs. - /// If true, specifies that glyphs are rotated 90 degrees to the left and vertical metrics are used. - /// A client can render a vertical run by specifying isSideways = true and rotating the resulting geometry 90 degrees to the - /// right using a transform. - /// If true, specifies that the advance direction is right to left. By default, the advance direction - /// is left to right. - /// Interface the function calls back to draw each element of the geometry. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGlyphRunOutline)( - FLOAT emSize, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _In_reads_opt_(glyphCount) FLOAT const* glyphAdvances, - _In_reads_opt_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets, - UINT32 glyphCount, - BOOL isSideways, - BOOL isRightToLeft, - _In_ IDWriteGeometrySink* geometrySink - ) PURE; - - /// - /// Determines the recommended rendering mode for the font given the specified size and rendering parameters. - /// - /// Logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. - /// Number of physical pixels per DIP. For example, if the DPI of the rendering surface is 96 this - /// value is 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Specifies measuring mode that will be used for glyphs in the font. - /// Renderer implementations may choose different rendering modes for given measuring modes, but - /// best results are seen when the corresponding modes match: - /// DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL for DWRITE_MEASURING_MODE_NATURAL - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC for DWRITE_MEASURING_MODE_GDI_CLASSIC - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL for DWRITE_MEASURING_MODE_GDI_NATURAL - /// - /// Rendering parameters object. This parameter is necessary in case the rendering parameters - /// object overrides the rendering mode. - /// Receives the recommended rendering mode to use. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetRecommendedRenderingMode)( - FLOAT emSize, - FLOAT pixelsPerDip, - DWRITE_MEASURING_MODE measuringMode, - IDWriteRenderingParams* renderingParams, - _Out_ DWRITE_RENDERING_MODE* renderingMode - ) PURE; - - /// - /// Obtains design units and common metrics for the font face. - /// These metrics are applicable to all the glyphs within a fontface and are used by applications for layout calculations. - /// - /// Logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. - /// Number of physical pixels per DIP. For example, if the DPI of the rendering surface is 96 this - /// value is 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the font size and pixelsPerDip. - /// Points to a DWRITE_FONT_METRICS structure to fill in. - /// The metrics returned by this function are in font design units. - STDMETHOD(GetGdiCompatibleMetrics)( - FLOAT emSize, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - _Out_ DWRITE_FONT_METRICS* fontFaceMetrics - ) PURE; - - /// - /// Obtains glyph metrics in font design units with the return values compatible with what GDI would produce. - /// Glyphs metrics are used for positioning of individual glyphs. - /// - /// Logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. - /// Number of physical pixels per DIP. For example, if the DPI of the rendering surface is 96 this - /// value is 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the font size and pixelsPerDip. - /// - /// When set to FALSE, the metrics are the same as the metrics of GDI aliased text. - /// When set to TRUE, the metrics are the same as the metrics of text measured by GDI using a font - /// created with CLEARTYPE_NATURAL_QUALITY. - /// - /// An array of glyph indices to compute the metrics for. - /// The number of elements in the glyphIndices array. - /// Array of DWRITE_GLYPH_METRICS structures filled by this function. - /// The metrics returned by this function are in font design units. - /// Indicates whether the font is being used in a sideways run. - /// This can affect the glyph metrics if the font has oblique simulation - /// because sideways oblique simulation differs from non-sideways oblique simulation. - /// - /// Standard HRESULT error code. If any of the input glyph indices are outside of the valid glyph index range - /// for the current font face, E_INVALIDARG will be returned. - /// - STDMETHOD(GetGdiCompatibleGlyphMetrics)( - FLOAT emSize, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL useGdiNatural, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - UINT32 glyphCount, - _Out_writes_(glyphCount) DWRITE_GLYPH_METRICS* glyphMetrics, - BOOL isSideways = FALSE - ) PURE; -}; - - -interface IDWriteFactory; -interface IDWriteFontFileEnumerator; - -/// -/// The font collection loader interface is used to construct a collection of fonts given a particular type of key. -/// The font collection loader interface is recommended to be implemented by a singleton object. -/// IMPORTANT: font collection loader implementations must not register themselves with a DirectWrite factory -/// inside their constructors and must not unregister themselves in their destructors, because -/// registration and unregistration operations increment and decrement the object reference count respectively. -/// Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed -/// outside of the font file loader implementation as a separate step. -/// -interface DWRITE_DECLARE_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") IDWriteFontCollectionLoader : public IUnknown -{ - /// - /// Creates a font file enumerator object that encapsulates a collection of font files. - /// The font system calls back to this interface to create a font collection. - /// - /// Factory associated with the loader. - /// Font collection key that uniquely identifies the collection of font files within - /// the scope of the font collection loader being used. - /// Size of the font collection key in bytes. - /// Pointer to the newly created font file enumerator. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateEnumeratorFromKey)( - _In_ IDWriteFactory* factory, - _In_reads_bytes_(collectionKeySize) void const* collectionKey, - UINT32 collectionKeySize, - _COM_Outptr_ IDWriteFontFileEnumerator** fontFileEnumerator - ) PURE; -}; - -/// -/// The font file enumerator interface encapsulates a collection of font files. The font system uses this interface -/// to enumerate font files when building a font collection. -/// -interface DWRITE_DECLARE_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") IDWriteFontFileEnumerator : public IUnknown -{ - /// - /// Advances to the next font file in the collection. When it is first created, the enumerator is positioned - /// before the first element of the collection and the first call to MoveNext advances to the first file. - /// - /// Receives the value TRUE if the enumerator advances to a file, or FALSE if - /// the enumerator advanced past the last file in the collection. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(MoveNext)( - _Out_ BOOL* hasCurrentFile - ) PURE; - - /// - /// Gets a reference to the current font file. - /// - /// Pointer to the newly created font file object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetCurrentFontFile)( - _COM_Outptr_ IDWriteFontFile** fontFile - ) PURE; -}; - -/// -/// Represents a collection of strings indexed by locale name. -/// -interface DWRITE_DECLARE_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") IDWriteLocalizedStrings : public IUnknown -{ - /// - /// Gets the number of language/string pairs. - /// - STDMETHOD_(UINT32, GetCount)() PURE; - - /// - /// Gets the index of the item with the specified locale name. - /// - /// Locale name to look for. - /// Receives the zero-based index of the locale name/string pair. - /// Receives TRUE if the locale name exists or FALSE if not. - /// - /// Standard HRESULT error code. If the specified locale name does not exist, the return value is S_OK, - /// but *index is UINT_MAX and *exists is FALSE. - /// - STDMETHOD(FindLocaleName)( - _In_z_ WCHAR const* localeName, - _Out_ UINT32* index, - _Out_ BOOL* exists - ) PURE; - - /// - /// Gets the length in characters (not including the null terminator) of the locale name with the specified index. - /// - /// Zero-based index of the locale name. - /// Receives the length in characters, not including the null terminator. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleNameLength)( - UINT32 index, - _Out_ UINT32* length - ) PURE; - - /// - /// Copies the locale name with the specified index to the specified array. - /// - /// Zero-based index of the locale name. - /// Character array that receives the locale name. - /// Size of the array in characters. The size must include space for the terminating - /// null character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleName)( - UINT32 index, - _Out_writes_z_(size) WCHAR* localeName, - UINT32 size - ) PURE; - - /// - /// Gets the length in characters (not including the null terminator) of the string with the specified index. - /// - /// Zero-based index of the string. - /// Receives the length in characters, not including the null terminator. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetStringLength)( - UINT32 index, - _Out_ UINT32* length - ) PURE; - - /// - /// Copies the string with the specified index to the specified array. - /// - /// Zero-based index of the string. - /// Character array that receives the string. - /// Size of the array in characters. The size must include space for the terminating - /// null character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetString)( - UINT32 index, - _Out_writes_z_(size) WCHAR* stringBuffer, - UINT32 size - ) PURE; -}; - -interface IDWriteFontFamily; -interface IDWriteFont; - -/// -/// The IDWriteFontCollection encapsulates a collection of fonts. -/// -interface DWRITE_DECLARE_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") IDWriteFontCollection : public IUnknown -{ - /// - /// Gets the number of font families in the collection. - /// - STDMETHOD_(UINT32, GetFontFamilyCount)() PURE; - - /// - /// Creates a font family object given a zero-based font family index. - /// - /// Zero-based index of the font family. - /// Receives a pointer the newly created font family object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamily)( - UINT32 index, - _COM_Outptr_ IDWriteFontFamily** fontFamily - ) PURE; - - /// - /// Finds the font family with the specified family name. - /// - /// Name of the font family. The name is not case-sensitive but must otherwise exactly match a family name in the collection. - /// Receives the zero-based index of the matching font family if the family name was found or UINT_MAX otherwise. - /// Receives TRUE if the family name exists or FALSE otherwise. - /// - /// Standard HRESULT error code. If the specified family name does not exist, the return value is S_OK, but *index is UINT_MAX and *exists is FALSE. - /// - STDMETHOD(FindFamilyName)( - _In_z_ WCHAR const* familyName, - _Out_ UINT32* index, - _Out_ BOOL* exists - ) PURE; - - /// - /// Gets the font object that corresponds to the same physical font as the specified font face object. The specified physical font must belong - /// to the font collection. - /// - /// Font face object that specifies the physical font. - /// Receives a pointer to the newly created font object if successful or NULL otherwise. - /// - /// Standard HRESULT error code. If the specified physical font is not part of the font collection the return value is DWRITE_E_NOFONT. - /// - STDMETHOD(GetFontFromFontFace)( - _In_ IDWriteFontFace* fontFace, - _COM_Outptr_ IDWriteFont** font - ) PURE; -}; - -/// -/// The IDWriteFontList interface represents a list of fonts. -/// -interface DWRITE_DECLARE_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") IDWriteFontList : public IUnknown -{ - /// - /// Gets the font collection that contains the fonts. - /// - /// Receives a pointer to the font collection object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontCollection)( - _COM_Outptr_ IDWriteFontCollection** fontCollection - ) PURE; - - /// - /// Gets the number of fonts in the font list. - /// - STDMETHOD_(UINT32, GetFontCount)() PURE; - - /// - /// Gets a font given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// Receives a pointer to the newly created font object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFont)( - UINT32 index, - _COM_Outptr_ IDWriteFont** font - ) PURE; -}; - -/// -/// The IDWriteFontFamily interface represents a set of fonts that share the same design but are differentiated -/// by weight, stretch, and style. -/// -interface DWRITE_DECLARE_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") IDWriteFontFamily : public IDWriteFontList -{ - /// - /// Creates a localized strings object that contains the family names for the font family, indexed by locale name. - /// - /// Receives a pointer to the newly created localized strings object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFamilyNames)( - _COM_Outptr_ IDWriteLocalizedStrings** names - ) PURE; - - /// - /// Gets the font that best matches the specified properties. - /// - /// Requested font weight. - /// Requested font stretch. - /// Requested font style. - /// Receives a pointer to the newly created font object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFirstMatchingFont)( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - _COM_Outptr_ IDWriteFont** matchingFont - ) PURE; - - /// - /// Gets a list of fonts in the font family ranked in order of how well they match the specified properties. - /// - /// Requested font weight. - /// Requested font stretch. - /// Requested font style. - /// Receives a pointer to the newly created font list object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetMatchingFonts)( - DWRITE_FONT_WEIGHT weight, - DWRITE_FONT_STRETCH stretch, - DWRITE_FONT_STYLE style, - _COM_Outptr_ IDWriteFontList** matchingFonts - ) PURE; -}; - -/// -/// The IDWriteFont interface represents a physical font in a font collection. -/// -interface DWRITE_DECLARE_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") IDWriteFont : public IUnknown -{ - /// - /// Gets the font family to which the specified font belongs. - /// - /// Receives a pointer to the font family object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamily)( - _COM_Outptr_ IDWriteFontFamily** fontFamily - ) PURE; - - /// - /// Gets the weight of the specified font. - /// - STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)() PURE; - - /// - /// Gets the stretch (aka. width) of the specified font. - /// - STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)() PURE; - - /// - /// Gets the style (aka. slope) of the specified font. - /// - STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)() PURE; - - /// - /// Returns TRUE if the font is a symbol font or FALSE if not. - /// - STDMETHOD_(BOOL, IsSymbolFont)() PURE; - - /// - /// Gets a localized strings collection containing the face names for the font (e.g., Regular or Bold), indexed by locale name. - /// - /// Receives a pointer to the newly created localized strings object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFaceNames)( - _COM_Outptr_ IDWriteLocalizedStrings** names - ) PURE; - - /// - /// Gets a localized strings collection containing the specified informational strings, indexed by locale name. - /// - /// Identifies the string to get. - /// Receives a pointer to the newly created localized strings object. - /// Receives the value TRUE if the font contains the specified string ID or FALSE if not. - /// - /// Standard HRESULT error code. If the font does not contain the specified string, the return value is S_OK but - /// informationalStrings receives a NULL pointer and exists receives the value FALSE. - /// - STDMETHOD(GetInformationalStrings)( - DWRITE_INFORMATIONAL_STRING_ID informationalStringID, - _COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** informationalStrings, - _Out_ BOOL* exists - ) PURE; - - /// - /// Gets a value that indicates what simulation are applied to the specified font. - /// - STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE; - - /// - /// Gets the metrics for the font. - /// - /// Receives the font metrics. - STDMETHOD_(void, GetMetrics)( - _Out_ DWRITE_FONT_METRICS* fontMetrics - ) PURE; - - /// - /// Determines whether the font supports the specified character. - /// - /// Unicode (UCS-4) character value. - /// Receives the value TRUE if the font supports the specified character or FALSE if not. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(HasCharacter)( - UINT32 unicodeValue, - _Out_ BOOL* exists - ) PURE; - - /// - /// Creates a font face object for the font. - /// - /// Receives a pointer to the newly created font face object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFace)( - _COM_Outptr_ IDWriteFontFace** fontFace - ) PURE; -}; - -/// -/// Direction for how reading progresses. -/// -enum DWRITE_READING_DIRECTION -{ - /// - /// Reading progresses from left to right. - /// - DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, - - /// - /// Reading progresses from right to left. - /// - DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, - - /// - /// Reading progresses from top to bottom. - /// - DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, - - /// - /// Reading progresses from bottom to top. - /// - DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3, -}; - -/// -/// Direction for how lines of text are placed relative to one another. -/// -enum DWRITE_FLOW_DIRECTION -{ - /// - /// Text lines are placed from top to bottom. - /// - DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, - - /// - /// Text lines are placed from bottom to top. - /// - DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, - - /// - /// Text lines are placed from left to right. - /// - DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, - - /// - /// Text lines are placed from right to left. - /// - DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3, -}; - -/// -/// Alignment of paragraph text along the reading direction axis relative to -/// the leading and trailing edge of the layout box. -/// -enum DWRITE_TEXT_ALIGNMENT -{ - /// - /// The leading edge of the paragraph text is aligned to the layout box's leading edge. - /// - DWRITE_TEXT_ALIGNMENT_LEADING, - - /// - /// The trailing edge of the paragraph text is aligned to the layout box's trailing edge. - /// - DWRITE_TEXT_ALIGNMENT_TRAILING, - - /// - /// The center of the paragraph text is aligned to the center of the layout box. - /// - DWRITE_TEXT_ALIGNMENT_CENTER, - - /// - /// Align text to the leading side, and also justify text to fill the lines. - /// - DWRITE_TEXT_ALIGNMENT_JUSTIFIED -}; - -/// -/// Alignment of paragraph text along the flow direction axis relative to the -/// flow's beginning and ending edge of the layout box. -/// -enum DWRITE_PARAGRAPH_ALIGNMENT -{ - /// - /// The first line of paragraph is aligned to the flow's beginning edge of the layout box. - /// - DWRITE_PARAGRAPH_ALIGNMENT_NEAR, - - /// - /// The last line of paragraph is aligned to the flow's ending edge of the layout box. - /// - DWRITE_PARAGRAPH_ALIGNMENT_FAR, - - /// - /// The center of the paragraph is aligned to the center of the flow of the layout box. - /// - DWRITE_PARAGRAPH_ALIGNMENT_CENTER -}; - -/// -/// Word wrapping in multiline paragraph. -/// -enum DWRITE_WORD_WRAPPING -{ - /// - /// Words are broken across lines to avoid text overflowing the layout box. - /// - DWRITE_WORD_WRAPPING_WRAP = 0, - - /// - /// Words are kept within the same line even when it overflows the layout box. - /// This option is often used with scrolling to reveal overflow text. - /// - DWRITE_WORD_WRAPPING_NO_WRAP = 1, - - /// - /// Words are broken across lines to avoid text overflowing the layout box. - /// Emergency wrapping occurs if the word is larger than the maximum width. - /// - DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, - - /// - /// Only wrap whole words, never breaking words (emergency wrapping) when the - /// layout width is too small for even a single word. - /// - DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, - - /// - /// Wrap between any valid characters clusters. - /// - DWRITE_WORD_WRAPPING_CHARACTER = 4, -}; - -/// -/// The method used for line spacing in layout. -/// -enum DWRITE_LINE_SPACING_METHOD -{ - /// - /// Line spacing depends solely on the content, growing to accommodate the size of fonts and inline objects. - /// - DWRITE_LINE_SPACING_METHOD_DEFAULT, - - /// - /// Lines are explicitly set to uniform spacing, regardless of contained font sizes. - /// This can be useful to avoid the uneven appearance that can occur from font fallback. - /// - DWRITE_LINE_SPACING_METHOD_UNIFORM, - - /// - /// Line spacing and baseline distances are proportional to the computed values based on the content, the size of the fonts and inline objects. - /// - DWRITE_LINE_SPACING_METHOD_PROPORTIONAL -}; - -/// -/// Text granularity used to trim text overflowing the layout box. -/// -enum DWRITE_TRIMMING_GRANULARITY -{ - /// - /// No trimming occurs. Text flows beyond the layout width. - /// - DWRITE_TRIMMING_GRANULARITY_NONE, - - /// - /// Trimming occurs at character cluster boundary. - /// - DWRITE_TRIMMING_GRANULARITY_CHARACTER, - - /// - /// Trimming occurs at word boundary. - /// - DWRITE_TRIMMING_GRANULARITY_WORD -}; - -/// -/// Typographic feature of text supplied by the font. -/// -enum DWRITE_FONT_FEATURE_TAG -{ - DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, // 'afrc' - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, // 'c2pc' - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, // 'c2sc' - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, // 'calt' - DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, // 'case' - DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, // 'ccmp' - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, // 'clig' - DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, // 'cpsp' - DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, // 'cswh' - DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, // 'curs' - DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, // 'dflt' - DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, // 'dlig' - DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, // 'expt' - DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, // 'frac' - DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, // 'fwid' - DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, // 'half' - DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, // 'haln' - DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, // 'halt' - DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, // 'hist' - DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, // 'hkna' - DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, // 'hlig' - DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, // 'hwid' - DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, // 'hojo' - DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, // 'jp04' - DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, // 'jp78' - DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, // 'jp83' - DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, // 'jp90' - DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, // 'kern' - DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, // 'liga' - DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, // 'lnum' - DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, // 'locl' - DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, // 'mark' - DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, // 'mgrk' - DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, // 'mkmk' - DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, // 'nalt' - DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, // 'nlck' - DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, // 'onum' - DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, // 'ordn' - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, // 'palt' - DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, // 'pcap' - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, // 'pnum' - DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, // 'pwid' - DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, // 'qwid' - DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, // 'rlig' - DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, // 'ruby' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, // 'salt' - DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, // 'sinf' - DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, // 'smcp' - DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, // 'smpl' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, // 'ss01' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, // 'ss02' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, // 'ss03' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, // 'ss04' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, // 'ss05' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, // 'ss06' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, // 'ss07' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, // 'ss08' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, // 'ss09' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, // 'ss10' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, // 'ss11' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, // 'ss12' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, // 'ss13' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, // 'ss14' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, // 'ss15' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, // 'ss16' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, // 'ss17' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, // 'ss18' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, // 'ss19' - DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, // 'ss20' - DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, // 'subs' - DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, // 'sups' - DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, // 'swsh' - DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, // 'titl' - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, // 'tnam' - DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, // 'tnum' - DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, // 'trad' - DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, // 'twid' - DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, // 'unic' - DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, // 'vert' - DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, // 'vrt2' - DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a, // 'zero' -}; - -/// -/// The DWRITE_TEXT_RANGE structure specifies a range of text positions where format is applied. -/// -struct DWRITE_TEXT_RANGE -{ - /// - /// The start text position of the range. - /// - UINT32 startPosition; - - /// - /// The number of text positions in the range. - /// - UINT32 length; -}; - -/// -/// The DWRITE_FONT_FEATURE structure specifies properties used to identify and execute typographic feature in the font. -/// -struct DWRITE_FONT_FEATURE -{ - /// - /// The feature OpenType name identifier. - /// - DWRITE_FONT_FEATURE_TAG nameTag; - - /// - /// Execution parameter of the feature. - /// - /// - /// The parameter should be non-zero to enable the feature. Once enabled, a feature can't be disabled again within - /// the same range. Features requiring a selector use this value to indicate the selector index. - /// - UINT32 parameter; -}; - -/// -/// Defines a set of typographic features to be applied during shaping. -/// Notice the character range which this feature list spans is specified -/// as a separate parameter to GetGlyphs. -/// -struct DWRITE_TYPOGRAPHIC_FEATURES -{ - /// - /// Array of font features. - /// - _Field_size_(featureCount) DWRITE_FONT_FEATURE* features; - - /// - /// The number of features. - /// - UINT32 featureCount; -}; - -/// -/// The DWRITE_TRIMMING structure specifies the trimming option for text overflowing the layout box. -/// -struct DWRITE_TRIMMING -{ - /// - /// Text granularity of which trimming applies. - /// - DWRITE_TRIMMING_GRANULARITY granularity; - - /// - /// Character code used as the delimiter signaling the beginning of the portion of text to be preserved, - /// most useful for path ellipsis, where the delimiter would be a slash. Leave this zero if there is no - /// delimiter. - /// - UINT32 delimiter; - - /// - /// How many occurrences of the delimiter to step back. Leave this zero if there is no delimiter. - /// - UINT32 delimiterCount; -}; - - -interface IDWriteTypography; -interface IDWriteInlineObject; - -/// -/// The format of text used for text layout. -/// -/// -/// This object may not be thread-safe and it may carry the state of text format change. -/// -interface DWRITE_DECLARE_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") IDWriteTextFormat : public IUnknown -{ - /// - /// Set alignment option of text relative to layout box's leading and trailing edge. - /// - /// Text alignment option - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetTextAlignment)( - DWRITE_TEXT_ALIGNMENT textAlignment - ) PURE; - - /// - /// Set alignment option of paragraph relative to layout box's top and bottom edge. - /// - /// Paragraph alignment option - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetParagraphAlignment)( - DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment - ) PURE; - - /// - /// Set word wrapping option. - /// - /// Word wrapping option - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetWordWrapping)( - DWRITE_WORD_WRAPPING wordWrapping - ) PURE; - - /// - /// Set paragraph reading direction. - /// - /// Text reading direction - /// - /// Standard HRESULT error code. - /// - /// - /// The flow direction must be perpendicular to the reading direction. - /// Setting both to a vertical direction or both to horizontal yields - /// DWRITE_E_FLOWDIRECTIONCONFLICTS when calling GetMetrics or Draw. - /// - STDMETHOD(SetReadingDirection)( - DWRITE_READING_DIRECTION readingDirection - ) PURE; - - /// - /// Set paragraph flow direction. - /// - /// Paragraph flow direction - /// - /// Standard HRESULT error code. - /// - /// - /// The flow direction must be perpendicular to the reading direction. - /// Setting both to a vertical direction or both to horizontal yields - /// DWRITE_E_FLOWDIRECTIONCONFLICTS when calling GetMetrics or Draw. - /// - STDMETHOD(SetFlowDirection)( - DWRITE_FLOW_DIRECTION flowDirection - ) PURE; - - /// - /// Set incremental tab stop position. - /// - /// The incremental tab stop value - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetIncrementalTabStop)( - FLOAT incrementalTabStop - ) PURE; - - /// - /// Set trimming options for any trailing text exceeding the layout width - /// or for any far text exceeding the layout height. - /// - /// Text trimming options. - /// Application-defined omission sign. This parameter may be NULL if no trimming sign is desired. - /// - /// Any inline object can be used for the trimming sign, but CreateEllipsisTrimmingSign - /// provides a typical ellipsis symbol. Trimming is also useful vertically for hiding - /// partial lines. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetTrimming)( - _In_ DWRITE_TRIMMING const* trimmingOptions, - _In_opt_ IDWriteInlineObject* trimmingSign - ) PURE; - - /// - /// Set line spacing. - /// - /// How to determine line height. - /// The line height, or rather distance between one baseline to another. - /// Distance from top of line to baseline. A reasonable ratio to lineSpacing is 80%. - /// - /// For the default method, spacing depends solely on the content. - /// For uniform spacing, the given line height will override the content. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLineSpacing)( - DWRITE_LINE_SPACING_METHOD lineSpacingMethod, - FLOAT lineSpacing, - FLOAT baseline - ) PURE; - - /// - /// Get alignment option of text relative to layout box's leading and trailing edge. - /// - STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)() PURE; - - /// - /// Get alignment option of paragraph relative to layout box's top and bottom edge. - /// - STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)() PURE; - - /// - /// Get word wrapping option. - /// - STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)() PURE; - - /// - /// Get paragraph reading direction. - /// - STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)() PURE; - - /// - /// Get paragraph flow direction. - /// - STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)() PURE; - - /// - /// Get incremental tab stop position. - /// - STDMETHOD_(FLOAT, GetIncrementalTabStop)() PURE; - - /// - /// Get trimming options for text overflowing the layout width. - /// - /// Text trimming options. - /// Trimming omission sign. This parameter may be NULL. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetTrimming)( - _Out_ DWRITE_TRIMMING* trimmingOptions, - _COM_Outptr_ IDWriteInlineObject** trimmingSign - ) PURE; - - /// - /// Get line spacing. - /// - /// How line height is determined. - /// The line height, or rather distance between one baseline to another. - /// Distance from top of line to baseline. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLineSpacing)( - _Out_ DWRITE_LINE_SPACING_METHOD* lineSpacingMethod, - _Out_ FLOAT* lineSpacing, - _Out_ FLOAT* baseline - ) PURE; - - /// - /// Get the font collection. - /// - /// The current font collection. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontCollection)( - _COM_Outptr_ IDWriteFontCollection** fontCollection - ) PURE; - - /// - /// Get the length of the font family name, in characters, not including the terminating NULL character. - /// - STDMETHOD_(UINT32, GetFontFamilyNameLength)() PURE; - - /// - /// Get a copy of the font family name. - /// - /// Character array that receives the current font family name - /// Size of the character array in character count including the terminated NULL character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamilyName)( - _Out_writes_z_(nameSize) WCHAR* fontFamilyName, - UINT32 nameSize - ) PURE; - - /// - /// Get the font weight. - /// - STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)() PURE; - - /// - /// Get the font style. - /// - STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)() PURE; - - /// - /// Get the font stretch. - /// - STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)() PURE; - - /// - /// Get the font em height. - /// - STDMETHOD_(FLOAT, GetFontSize)() PURE; - - /// - /// Get the length of the locale name, in characters, not including the terminating NULL character. - /// - STDMETHOD_(UINT32, GetLocaleNameLength)() PURE; - - /// - /// Get a copy of the locale name. - /// - /// Character array that receives the current locale name - /// Size of the character array in character count including the terminated NULL character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleName)( - _Out_writes_z_(nameSize) WCHAR* localeName, - UINT32 nameSize - ) PURE; -}; - - -/// -/// Font typography setting. -/// -interface DWRITE_DECLARE_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") IDWriteTypography : public IUnknown -{ - /// - /// Add font feature. - /// - /// The font feature to add. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddFontFeature)( - DWRITE_FONT_FEATURE fontFeature - ) PURE; - - /// - /// Get the number of font features. - /// - STDMETHOD_(UINT32, GetFontFeatureCount)() PURE; - - /// - /// Get the font feature at the specified index. - /// - /// The zero-based index of the font feature to get. - /// The font feature. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFeature)( - UINT32 fontFeatureIndex, - _Out_ DWRITE_FONT_FEATURE* fontFeature - ) PURE; -}; - -enum DWRITE_SCRIPT_SHAPES -{ - /// - /// No additional shaping requirement. Text is shaped with the writing system default behavior. - /// - DWRITE_SCRIPT_SHAPES_DEFAULT = 0, - - /// - /// Text should leave no visual on display i.e. control or format control characters. - /// - DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 -}; - -#ifdef DEFINE_ENUM_FLAG_OPERATORS -DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES); -#endif - -/// -/// Association of text and its writing system script as well as some display attributes. -/// -struct DWRITE_SCRIPT_ANALYSIS -{ - /// - /// Zero-based index representation of writing system script. - /// - UINT16 script; - - /// - /// Additional shaping requirement of text. - /// - DWRITE_SCRIPT_SHAPES shapes; -}; - -/// -/// Condition at the edges of inline object or text used to determine -/// line-breaking behavior. -/// -enum DWRITE_BREAK_CONDITION -{ - /// - /// Whether a break is allowed is determined by the condition of the - /// neighboring text span or inline object. - /// - DWRITE_BREAK_CONDITION_NEUTRAL, - - /// - /// A break is allowed, unless overruled by the condition of the - /// neighboring text span or inline object, either prohibited by a - /// May Not or forced by a Must. - /// - DWRITE_BREAK_CONDITION_CAN_BREAK, - - /// - /// There should be no break, unless overruled by a Must condition from - /// the neighboring text span or inline object. - /// - DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, - - /// - /// The break must happen, regardless of the condition of the adjacent - /// text span or inline object. - /// - DWRITE_BREAK_CONDITION_MUST_BREAK -}; - -/// -/// Line breakpoint characteristics of a character. -/// -struct DWRITE_LINE_BREAKPOINT -{ - /// - /// Breaking condition before the character. - /// - UINT8 breakConditionBefore : 2; - - /// - /// Breaking condition after the character. - /// - UINT8 breakConditionAfter : 2; - - /// - /// The character is some form of whitespace, which may be meaningful - /// for justification. - /// - UINT8 isWhitespace : 1; - - /// - /// The character is a soft hyphen, often used to indicate hyphenation - /// points inside words. - /// - UINT8 isSoftHyphen : 1; - - UINT8 padding : 2; -}; - -/// -/// How to apply number substitution on digits and related punctuation. -/// -enum DWRITE_NUMBER_SUBSTITUTION_METHOD -{ - /// - /// Specifies that the substitution method should be determined based - /// on LOCALE_IDIGITSUBSTITUTION value of the specified text culture. - /// - DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE, - - /// - /// If the culture is Arabic or Farsi, specifies that the number shape - /// depend on the context. Either traditional or nominal number shape - /// are used depending on the nearest preceding strong character or (if - /// there is none) the reading direction of the paragraph. - /// - DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, - - /// - /// Specifies that code points 0x30-0x39 are always rendered as nominal numeral - /// shapes (ones of the European number), i.e., no substitution is performed. - /// - DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, - - /// - /// Specifies that number are rendered using the national number shape - /// as specified by the LOCALE_SNATIVEDIGITS value of the specified text culture. - /// - DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL, - - /// - /// Specifies that number are rendered using the traditional shape - /// for the specified culture. For most cultures, this is the same as - /// NativeNational. However, NativeNational results in Latin number - /// for some Arabic cultures, whereas this value results in Arabic - /// number for all Arabic cultures. - /// - DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL -}; - -/// -/// Holds the appropriate digits and numeric punctuation for a given locale. -/// -interface DECLSPEC_UUID("14885CC9-BAB0-4f90-B6ED-5C366A2CD03D") DECLSPEC_NOVTABLE IDWriteNumberSubstitution : public IUnknown -{ -}; - -/// -/// Shaping output properties per input character. -/// -struct DWRITE_SHAPING_TEXT_PROPERTIES -{ - /// - /// This character can be shaped independently from the others - /// (usually set for the space character). - /// - UINT16 isShapedAlone : 1; - - /// - /// Reserved for use by shaping engine. - /// - UINT16 reserved : 15; -}; - -/// -/// Shaping output properties per output glyph. -/// -struct DWRITE_SHAPING_GLYPH_PROPERTIES -{ - /// - /// Justification class, whether to use spacing, kashidas, or - /// another method. This exists for backwards compatibility - /// with Uniscribe's SCRIPT_JUSTIFY enum. - /// - UINT16 justification : 4; - - /// - /// Indicates glyph is the first of a cluster. - /// - UINT16 isClusterStart : 1; - - /// - /// Glyph is a diacritic. - /// - UINT16 isDiacritic : 1; - - /// - /// Glyph has no width, blank, ZWJ, ZWNJ etc. - /// - UINT16 isZeroWidthSpace : 1; - - /// - /// Reserved for use by shaping engine. - /// - UINT16 reserved : 9; -}; - -/// -/// The interface implemented by the text analyzer's client to provide text to -/// the analyzer. It allows the separation between the logical view of text as -/// a continuous stream of characters identifiable by unique text positions, -/// and the actual memory layout of potentially discrete blocks of text in the -/// client's backing store. -/// -/// If any of these callbacks returns an error, the analysis functions will -/// 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 -{ - /// - /// Get a block of text starting at the specified text position. - /// Returning NULL indicates the end of text - the position is after - /// the last character. This function is called iteratively for - /// each consecutive block, tying together several fragmented blocks - /// in the backing store into a virtual contiguous string. - /// - /// First position of the piece to obtain. All - /// positions are in UTF16 code-units, not whole characters, which - /// matters when supplementary characters are used. - /// Address that receives a pointer to the text block - /// at the specified position. - /// Number of UTF16 units of the retrieved chunk. - /// The returned length is not the length of the block, but the length - /// remaining in the block, from the given position until its end. - /// So querying for a position that is 75 positions into a 100 - /// position block would return 25. - /// Pointer to the first character at the given text position. - /// NULL indicates no chunk available at the specified position, either - /// because textPosition >= the entire text content length or because the - /// queried position is not mapped into the app's backing store. - /// - /// Although apps can implement sparse textual content that only maps part of - /// the backing store, the app must map any text that is in the range passed - /// to any analysis functions. - /// - STDMETHOD(GetTextAtPosition)( - UINT32 textPosition, - _Outptr_result_buffer_(*textLength) WCHAR const** textString, - _Out_ UINT32* textLength - ) PURE; - - /// - /// Get a block of text immediately preceding the specified position. - /// - /// Position immediately after the last position of the chunk to obtain. - /// Address that receives a pointer to the text block - /// at the specified position. - /// Number of UTF16 units of the retrieved block. - /// The length returned is from the given position to the front of - /// the block. - /// Pointer to the first character at (textPosition - textLength). - /// NULL indicates no chunk available at the specified position, either - /// because textPosition == 0,the textPosition > the entire text content - /// length, or the queried position is not mapped into the app's backing - /// store. - /// - /// Although apps can implement sparse textual content that only maps part of - /// the backing store, the app must map any text that is in the range passed - /// to any analysis functions. - /// - STDMETHOD(GetTextBeforePosition)( - UINT32 textPosition, - _Outptr_result_buffer_(*textLength) WCHAR const** textString, - _Out_ UINT32* textLength - ) PURE; - - /// - /// Get paragraph reading direction. - /// - STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)() PURE; - - /// - /// Get locale name on the range affected by it. - /// - /// Position to get the locale name of. - /// Receives the length from the given position up to the - /// next differing locale. - /// Address that receives a pointer to the locale - /// at the specified position. - /// - /// The localeName pointer must remain valid until the next call or until - /// the analysis returns. - /// - STDMETHOD(GetLocaleName)( - UINT32 textPosition, - _Out_ UINT32* textLength, - _Outptr_result_z_ WCHAR const** localeName - ) PURE; - - /// - /// Get number substitution on the range affected by it. - /// - /// Position to get the number substitution of. - /// Receives the length from the given position up to the - /// next differing number substitution. - /// Address that receives a pointer to the number substitution - /// at the specified position. - /// - /// Any implementation should return the number substitution with an - /// incremented ref count, and the analysis will release when finished - /// with it (either before the next call or before it returns). However, - /// the sink callback may hold onto it after that. - /// - STDMETHOD(GetNumberSubstitution)( - UINT32 textPosition, - _Out_ UINT32* textLength, - _COM_Outptr_ IDWriteNumberSubstitution** numberSubstitution - ) PURE; -}; - -/// -/// The interface implemented by the text analyzer's client to receive the -/// output of a given text analysis. The Text analyzer disregards any current -/// 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 -{ - /// - /// Report script analysis for the text range. - /// - /// Starting position to report from. - /// Number of UTF16 units of the reported range. - /// Script analysis of characters in range. - /// - /// A successful code or error code to abort analysis. - /// - STDMETHOD(SetScriptAnalysis)( - UINT32 textPosition, - UINT32 textLength, - _In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis - ) PURE; - - /// - /// Report line-break opportunities for each character, starting from - /// the specified position. - /// - /// Starting position to report from. - /// Number of UTF16 units of the reported range. - /// Breaking conditions for each character. - /// - /// A successful code or error code to abort analysis. - /// - STDMETHOD(SetLineBreakpoints)( - UINT32 textPosition, - UINT32 textLength, - _In_reads_(textLength) DWRITE_LINE_BREAKPOINT const* lineBreakpoints - ) PURE; - - /// - /// Set bidirectional level on the range, called once per each - /// level run change (either explicit or resolved implicit). - /// - /// Starting position to report from. - /// Number of UTF16 units of the reported range. - /// Explicit level from embedded control codes - /// RLE/RLO/LRE/LRO/PDF, determined before any additional rules. - /// Final implicit level considering the - /// explicit level and characters' natural directionality, after all - /// Bidi rules have been applied. - /// - /// A successful code or error code to abort analysis. - /// - STDMETHOD(SetBidiLevel)( - UINT32 textPosition, - UINT32 textLength, - UINT8 explicitLevel, - UINT8 resolvedLevel - ) PURE; - - /// - /// Set number substitution on the range. - /// - /// Starting position to report from. - /// Number of UTF16 units of the reported range. - /// The number substitution applicable to - /// the returned range of text. The sink callback may hold onto it by - /// incrementing its ref count. - /// - /// A successful code or error code to abort analysis. - /// - /// - /// Unlike script and bidi analysis, where every character passed to the - /// analyzer has a result, this will only be called for those ranges where - /// substitution is applicable. For any other range, you will simply not - /// be called. - /// - STDMETHOD(SetNumberSubstitution)( - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteNumberSubstitution* numberSubstitution - ) PURE; -}; - -/// -/// Analyzes various text properties for complex script processing. -/// -interface DWRITE_DECLARE_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") IDWriteTextAnalyzer : public IUnknown -{ - /// - /// Analyzes a text range for script boundaries, reading text attributes - /// from the source and reporting the Unicode script ID to the sink - /// callback SetScript. - /// - /// Source object to analyze. - /// Starting position within the source object. - /// Length to analyze. - /// Callback object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AnalyzeScript)( - _In_ IDWriteTextAnalysisSource* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteTextAnalysisSink* analysisSink - ) PURE; - - /// - /// Analyzes a text range for script directionality, reading attributes - /// from the source and reporting levels to the sink callback SetBidiLevel. - /// - /// Source object to analyze. - /// Starting position within the source object. - /// Length to analyze. - /// Callback object. - /// - /// Standard HRESULT error code. - /// - /// - /// While the function can handle multiple paragraphs, the text range - /// should not arbitrarily split the middle of paragraphs. Otherwise the - /// returned levels may be wrong, since the Bidi algorithm is meant to - /// apply to the paragraph as a whole. - /// - /// - /// Embedded control codes (LRE/LRO/RLE/RLO/PDF) are taken into account. - /// - STDMETHOD(AnalyzeBidi)( - _In_ IDWriteTextAnalysisSource* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteTextAnalysisSink* analysisSink - ) PURE; - - /// - /// Analyzes a text range for spans where number substitution is applicable, - /// reading attributes from the source and reporting substitutable ranges - /// to the sink callback SetNumberSubstitution. - /// - /// Source object to analyze. - /// Starting position within the source object. - /// Length to analyze. - /// Callback object. - /// - /// Standard HRESULT error code. - /// - /// - /// While the function can handle multiple ranges of differing number - /// substitutions, the text ranges should not arbitrarily split the - /// middle of numbers. Otherwise it will treat the numbers separately - /// and will not translate any intervening punctuation. - /// - /// - /// Embedded control codes (LRE/LRO/RLE/RLO/PDF) are taken into account. - /// - STDMETHOD(AnalyzeNumberSubstitution)( - _In_ IDWriteTextAnalysisSource* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteTextAnalysisSink* analysisSink - ) PURE; - - /// - /// Analyzes a text range for potential breakpoint opportunities, reading - /// attributes from the source and reporting breakpoint opportunities to - /// the sink callback SetLineBreakpoints. - /// - /// Source object to analyze. - /// Starting position within the source object. - /// Length to analyze. - /// Callback object. - /// - /// Standard HRESULT error code. - /// - /// - /// While the function can handle multiple paragraphs, the text range - /// should not arbitrarily split the middle of paragraphs, unless the - /// given text span is considered a whole unit. Otherwise the - /// returned properties for the first and last characters will - /// inappropriately allow breaks. - /// - /// - /// Special cases include the first, last, and surrogate characters. Any - /// text span is treated as if adjacent to inline objects on either side. - /// So the rules with contingent-break opportunities are used, where the - /// edge between text and inline objects is always treated as a potential - /// break opportunity, dependent on any overriding rules of the adjacent - /// objects to prohibit or force the break (see Unicode TR #14). - /// Surrogate pairs never break between. - /// - STDMETHOD(AnalyzeLineBreakpoints)( - _In_ IDWriteTextAnalysisSource* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteTextAnalysisSink* analysisSink - ) PURE; - - /// - /// Parses the input text string and maps it to the set of glyphs and associated glyph data - /// according to the font and the writing system's rendering rules. - /// - /// The string to convert to glyphs. - /// The length of textString. - /// The font face to get glyphs from. - /// Set to true if the text is intended to be - /// drawn vertically. - /// Set to TRUE for right-to-left text. - /// Script analysis result from AnalyzeScript. - /// The locale to use when selecting glyphs. - /// e.g. the same character may map to different glyphs for ja-jp vs zh-chs. - /// If this is NULL then the default mapping based on the script is used. - /// Optional number substitution which - /// selects the appropriate glyphs for digits and related numeric characters, - /// depending on the results obtained from AnalyzeNumberSubstitution. Passing - /// null indicates that no substitution is needed and that the digits should - /// receive nominal glyphs. - /// An array of pointers to the sets of typographic - /// features to use in each feature range. - /// The length of each feature range, in characters. - /// The sum of all lengths should be equal to textLength. - /// The number of feature ranges. - /// The maximum number of glyphs that can be - /// returned. - /// The mapping from character ranges to glyph - /// ranges. - /// Per-character output properties. - /// Output glyph indices. - /// Per-glyph output properties. - /// The actual number of glyphs returned if - /// the call succeeds. - /// - /// Standard HRESULT error code. - /// - /// - /// Note that the mapping from characters to glyphs is, in general, many- - /// to-many. The recommended estimate for the per-glyph output buffers is - /// (3 * textLength / 2 + 16). This is not guaranteed to be sufficient. - /// - /// The value of the actualGlyphCount parameter is only valid if the call - /// succeeds. In the event that maxGlyphCount is not big enough - /// E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), - /// will be returned. The application should allocate a larger buffer and try again. - /// - STDMETHOD(GetGlyphs)( - _In_reads_(textLength) WCHAR const* textString, - UINT32 textLength, - _In_ IDWriteFontFace* fontFace, - BOOL isSideways, - BOOL isRightToLeft, - _In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - _In_opt_ IDWriteNumberSubstitution* numberSubstitution, - _In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features, - _In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths, - UINT32 featureRanges, - UINT32 maxGlyphCount, - _Out_writes_(textLength) UINT16* clusterMap, - _Out_writes_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps, - _Out_writes_(maxGlyphCount) UINT16* glyphIndices, - _Out_writes_(maxGlyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, - _Out_ UINT32* actualGlyphCount - ) PURE; - - /// - /// Place glyphs output from the GetGlyphs method according to the font - /// and the writing system's rendering rules. - /// - /// The original string the glyphs came from. - /// The mapping from character ranges to glyph - /// ranges. Returned by GetGlyphs. - /// Per-character properties. Returned by - /// GetGlyphs. - /// The length of textString. - /// Glyph indices. See GetGlyphs - /// Per-glyph properties. See GetGlyphs - /// The number of glyphs. - /// The font face the glyphs came from. - /// Logical font size in DIP's. - /// Set to true if the text is intended to be - /// drawn vertically. - /// Set to TRUE for right-to-left text. - /// Script analysis result from AnalyzeScript. - /// The locale to use when selecting glyphs. - /// e.g. the same character may map to different glyphs for ja-jp vs zh-chs. - /// If this is NULL then the default mapping based on the script is used. - /// An array of pointers to the sets of typographic - /// features to use in each feature range. - /// The length of each feature range, in characters. - /// The sum of all lengths should be equal to textLength. - /// The number of feature ranges. - /// The advance width of each glyph. - /// The offset of the origin of each glyph. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGlyphPlacements)( - _In_reads_(textLength) WCHAR const* textString, - _In_reads_(textLength) UINT16 const* clusterMap, - _In_reads_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps, - UINT32 textLength, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps, - UINT32 glyphCount, - _In_ IDWriteFontFace * fontFace, - FLOAT fontEmSize, - BOOL isSideways, - BOOL isRightToLeft, - _In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - _In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features, - _In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths, - UINT32 featureRanges, - _Out_writes_(glyphCount) FLOAT* glyphAdvances, - _Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* glyphOffsets - ) PURE; - - /// - /// Place glyphs output from the GetGlyphs method according to the font - /// and the writing system's rendering rules. - /// - /// The original string the glyphs came from. - /// The mapping from character ranges to glyph - /// ranges. Returned by GetGlyphs. - /// Per-character properties. Returned by - /// GetGlyphs. - /// The length of textString. - /// Glyph indices. See GetGlyphs - /// Per-glyph properties. See GetGlyphs - /// The number of glyphs. - /// The font face the glyphs came from. - /// Logical font size in DIP's. - /// Number of physical pixels per DIP. For example, if the DPI of the rendering surface is 96 this - /// value is 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the font size and pixelsPerDip. - /// - /// When set to FALSE, the metrics are the same as the metrics of GDI aliased text. - /// When set to TRUE, the metrics are the same as the metrics of text measured by GDI using a font - /// created with CLEARTYPE_NATURAL_QUALITY. - /// - /// Set to true if the text is intended to be - /// drawn vertically. - /// Set to TRUE for right-to-left text. - /// Script analysis result from AnalyzeScript. - /// The locale to use when selecting glyphs. - /// e.g. the same character may map to different glyphs for ja-jp vs zh-chs. - /// If this is NULL then the default mapping based on the script is used. - /// An array of pointers to the sets of typographic - /// features to use in each feature range. - /// The length of each feature range, in characters. - /// The sum of all lengths should be equal to textLength. - /// The number of feature ranges. - /// The advance width of each glyph. - /// The offset of the origin of each glyph. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGdiCompatibleGlyphPlacements)( - _In_reads_(textLength) WCHAR const* textString, - _In_reads_(textLength) UINT16 const* clusterMap, - _In_reads_(textLength) DWRITE_SHAPING_TEXT_PROPERTIES* textProps, - UINT32 textLength, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProps, - UINT32 glyphCount, - _In_ IDWriteFontFace * fontFace, - FLOAT fontEmSize, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL useGdiNatural, - BOOL isSideways, - BOOL isRightToLeft, - _In_ DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - _In_reads_opt_(featureRanges) DWRITE_TYPOGRAPHIC_FEATURES const** features, - _In_reads_opt_(featureRanges) UINT32 const* featureRangeLengths, - UINT32 featureRanges, - _Out_writes_(glyphCount) FLOAT* glyphAdvances, - _Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* glyphOffsets - ) PURE; -}; - -/// -/// The DWRITE_GLYPH_RUN structure contains the information needed by renderers -/// to draw glyph runs. All coordinates are in device independent pixels (DIPs). -/// -struct DWRITE_GLYPH_RUN -{ - /// - /// The physical font face to draw with. - /// - _Notnull_ IDWriteFontFace* fontFace; - - /// - /// Logical size of the font in DIPs, not points (equals 1/96 inch). - /// - FLOAT fontEmSize; - - /// - /// The number of glyphs. - /// - UINT32 glyphCount; - - /// - /// The indices to render. - /// - _Field_size_(glyphCount) UINT16 const* glyphIndices; - - /// - /// Glyph advance widths. - /// - _Field_size_opt_(glyphCount) FLOAT const* glyphAdvances; - - /// - /// Glyph offsets. - /// - _Field_size_opt_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets; - - /// - /// If true, specifies that glyphs are rotated 90 degrees to the left and - /// vertical metrics are used. Vertical writing is achieved by specifying - /// isSideways = true and rotating the entire run 90 degrees to the right - /// via a rotate transform. - /// - BOOL isSideways; - - /// - /// The implicit resolved bidi level of the run. Odd levels indicate - /// right-to-left languages like Hebrew and Arabic, while even levels - /// indicate left-to-right languages like English and Japanese (when - /// written horizontally). For right-to-left languages, the text origin - /// is on the right, and text should be drawn to the left. - /// - UINT32 bidiLevel; -}; - -/// -/// The DWRITE_GLYPH_RUN_DESCRIPTION structure contains additional properties -/// related to those in DWRITE_GLYPH_RUN. -/// -struct DWRITE_GLYPH_RUN_DESCRIPTION -{ - /// - /// The locale name associated with this run. - /// - _Field_z_ WCHAR const* localeName; - - /// - /// The text associated with the glyphs. - /// - _Field_size_(stringLength) WCHAR const* string; - - /// - /// The number of characters (UTF16 code-units). - /// Note that this may be different than the number of glyphs. - /// - UINT32 stringLength; - - /// - /// An array of indices to the glyph indices array, of the first glyphs of - /// all the glyph clusters of the glyphs to render. - /// - _Field_size_opt_(stringLength) UINT16 const* clusterMap; - - /// - /// Corresponding text position in the original string - /// this glyph run came from. - /// - UINT32 textPosition; -}; - -/// -/// The DWRITE_UNDERLINE structure contains information about the size and -/// placement of underlines. All coordinates are in device independent -/// pixels (DIPs). -/// -struct DWRITE_UNDERLINE -{ - /// - /// Width of the underline, measured parallel to the baseline. - /// - FLOAT width; - - /// - /// Thickness of the underline, measured perpendicular to the - /// baseline. - /// - FLOAT thickness; - - /// - /// Offset of the underline from the baseline. - /// A positive offset represents a position below the baseline and - /// a negative offset is above. - /// - FLOAT offset; - - /// - /// Height of the tallest run where the underline applies. - /// - FLOAT runHeight; - - /// - /// Reading direction of the text associated with the underline. This - /// value is used to interpret whether the width value runs horizontally - /// or vertically. - /// - DWRITE_READING_DIRECTION readingDirection; - - /// - /// Flow direction of the text associated with the underline. This value - /// is used to interpret whether the thickness value advances top to - /// bottom, left to right, or right to left. - /// - DWRITE_FLOW_DIRECTION flowDirection; - - /// - /// Locale of the text the underline is being drawn under. Can be - /// pertinent where the locale affects how the underline is drawn. - /// For example, in vertical text, the underline belongs on the - /// left for Chinese but on the right for Japanese. - /// This choice is completely left up to higher levels. - /// - _Field_z_ WCHAR const* localeName; - - /// - /// The measuring mode can be useful to the renderer to determine how - /// underlines are rendered, e.g. rounding the thickness to a whole pixel - /// in GDI-compatible modes. - /// - DWRITE_MEASURING_MODE measuringMode; -}; - -/// -/// The DWRITE_STRIKETHROUGH structure contains information about the size and -/// placement of strikethroughs. All coordinates are in device independent -/// pixels (DIPs). -/// -struct DWRITE_STRIKETHROUGH -{ - /// - /// Width of the strikethrough, measured parallel to the baseline. - /// - FLOAT width; - - /// - /// Thickness of the strikethrough, measured perpendicular to the - /// baseline. - /// - FLOAT thickness; - - /// - /// Offset of the strikethrough from the baseline. - /// A positive offset represents a position below the baseline and - /// a negative offset is above. - /// - FLOAT offset; - - /// - /// Reading direction of the text associated with the strikethrough. This - /// value is used to interpret whether the width value runs horizontally - /// or vertically. - /// - DWRITE_READING_DIRECTION readingDirection; - - /// - /// Flow direction of the text associated with the strikethrough. This - /// value is used to interpret whether the thickness value advances top to - /// bottom, left to right, or right to left. - /// - DWRITE_FLOW_DIRECTION flowDirection; - - /// - /// Locale of the range. Can be pertinent where the locale affects the style. - /// - _Field_z_ WCHAR const* localeName; - - /// - /// The measuring mode can be useful to the renderer to determine how - /// underlines are rendered, e.g. rounding the thickness to a whole pixel - /// in GDI-compatible modes. - /// - DWRITE_MEASURING_MODE measuringMode; -}; - -/// -/// The DWRITE_LINE_METRICS structure contains information about a formatted -/// line of text. -/// -struct DWRITE_LINE_METRICS -{ - /// - /// The number of total text positions in the line. - /// This includes any trailing whitespace and newline characters. - /// - UINT32 length; - - /// - /// The number of whitespace positions at the end of the line. Newline - /// sequences are considered whitespace. - /// - UINT32 trailingWhitespaceLength; - - /// - /// The number of characters in the newline sequence at the end of the line. - /// If the count is zero, then the line was either wrapped or it is the - /// end of the text. - /// - UINT32 newlineLength; - - /// - /// Height of the line as measured from top to bottom. - /// - FLOAT height; - - /// - /// Distance from the top of the line to its baseline. - /// - FLOAT baseline; - - /// - /// The line is trimmed. - /// - BOOL isTrimmed; -}; - - -/// -/// The DWRITE_CLUSTER_METRICS structure contains information about a glyph cluster. -/// -struct DWRITE_CLUSTER_METRICS -{ - /// - /// The total advance width of all glyphs in the cluster. - /// - FLOAT width; - - /// - /// The number of text positions in the cluster. - /// - UINT16 length; - - /// - /// Indicate whether line can be broken right after the cluster. - /// - UINT16 canWrapLineAfter : 1; - - /// - /// Indicate whether the cluster corresponds to whitespace character. - /// - UINT16 isWhitespace : 1; - - /// - /// Indicate whether the cluster corresponds to a newline character. - /// - UINT16 isNewline : 1; - - /// - /// Indicate whether the cluster corresponds to soft hyphen character. - /// - UINT16 isSoftHyphen : 1; - - /// - /// Indicate whether the cluster is read from right to left. - /// - UINT16 isRightToLeft : 1; - - UINT16 padding : 11; -}; - - -/// -/// Overall metrics associated with text after layout. -/// All coordinates are in device independent pixels (DIPs). -/// -struct DWRITE_TEXT_METRICS -{ - /// - /// Left-most point of formatted text relative to layout box - /// (excluding any glyph overhang). - /// - FLOAT left; - - /// - /// Top-most point of formatted text relative to layout box - /// (excluding any glyph overhang). - /// - FLOAT top; - - /// - /// The width of the formatted text ignoring trailing whitespace - /// at the end of each line. - /// - FLOAT width; - - /// - /// The width of the formatted text taking into account the - /// trailing whitespace at the end of each line. - /// - FLOAT widthIncludingTrailingWhitespace; - - /// - /// The height of the formatted text. The height of an empty string - /// is determined by the size of the default font's line height. - /// - FLOAT height; - - /// - /// Initial width given to the layout. Depending on whether the text - /// was wrapped or not, it can be either larger or smaller than the - /// text content width. - /// - FLOAT layoutWidth; - - /// - /// Initial height given to the layout. Depending on the length of the - /// text, it may be larger or smaller than the text content height. - /// - FLOAT layoutHeight; - - /// - /// The maximum reordering count of any line of text, used - /// to calculate the most number of hit-testing boxes needed. - /// If the layout has no bidirectional text or no text at all, - /// the minimum level is 1. - /// - UINT32 maxBidiReorderingDepth; - - /// - /// Total number of lines. - /// - UINT32 lineCount; -}; - - -/// -/// Properties describing the geometric measurement of an -/// application-defined inline object. -/// -struct DWRITE_INLINE_OBJECT_METRICS -{ - /// - /// Width of the inline object. - /// - FLOAT width; - - /// - /// Height of the inline object as measured from top to bottom. - /// - FLOAT height; - - /// - /// Distance from the top of the object to the baseline where it is lined up with the adjacent text. - /// If the baseline is at the bottom, baseline simply equals height. - /// - FLOAT baseline; - - /// - /// Flag indicating whether the object is to be placed upright or alongside the text baseline - /// for vertical text. - /// - BOOL supportsSideways; -}; - - -/// -/// The DWRITE_OVERHANG_METRICS structure holds how much any visible pixels -/// (in DIPs) overshoot each side of the layout or inline objects. -/// -/// -/// Positive overhangs indicate that the visible area extends outside the layout -/// box or inline object, while negative values mean there is whitespace inside. -/// The returned values are unaffected by rendering transforms or pixel snapping. -/// Additionally, they may not exactly match final target's pixel bounds after -/// applying grid fitting and hinting. -/// -struct DWRITE_OVERHANG_METRICS -{ - /// - /// The distance from the left-most visible DIP to its left alignment edge. - /// - FLOAT left; - - /// - /// The distance from the top-most visible DIP to its top alignment edge. - /// - FLOAT top; - - /// - /// The distance from the right-most visible DIP to its right alignment edge. - /// - FLOAT right; - - /// - /// The distance from the bottom-most visible DIP to its bottom alignment edge. - /// - FLOAT bottom; -}; - - -/// -/// Geometry enclosing of text positions. -/// -struct DWRITE_HIT_TEST_METRICS -{ - /// - /// First text position within the geometry. - /// - UINT32 textPosition; - - /// - /// Number of text positions within the geometry. - /// - UINT32 length; - - /// - /// Left position of the top-left coordinate of the geometry. - /// - FLOAT left; - - /// - /// Top position of the top-left coordinate of the geometry. - /// - FLOAT top; - - /// - /// Geometry's width. - /// - FLOAT width; - - /// - /// Geometry's height. - /// - FLOAT height; - - /// - /// Bidi level of text positions enclosed within the geometry. - /// - UINT32 bidiLevel; - - /// - /// Geometry encloses text? - /// - BOOL isText; - - /// - /// Range is trimmed. - /// - BOOL isTrimmed; -}; - - -interface IDWriteTextRenderer; - - -/// -/// The IDWriteInlineObject interface wraps an application defined inline graphic, -/// allowing DWrite to query metrics as if it was a glyph inline with the text. -/// -interface DWRITE_DECLARE_INTERFACE("8339FDE3-106F-47ab-8373-1C6295EB10B3") IDWriteInlineObject : public IUnknown -{ - /// - /// The application implemented rendering callback (IDWriteTextRenderer::DrawInlineObject) - /// can use this to draw the inline object without needing to cast or query the object - /// type. The text layout does not call this method directly. - /// - /// The context passed to IDWriteTextLayout::Draw. - /// The renderer passed to IDWriteTextLayout::Draw as the object's containing parent. - /// X-coordinate at the top-left corner of the inline object. - /// Y-coordinate at the top-left corner of the inline object. - /// The object should be drawn on its side. - /// The object is in an right-to-left context and should be drawn flipped. - /// The drawing effect set in IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(Draw)( - _In_opt_ void* clientDrawingContext, - _In_ IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY, - BOOL isSideways, - BOOL isRightToLeft, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// TextLayout calls this callback function to get the measurement of the inline object. - /// - /// Returned metrics - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetMetrics)( - _Out_ DWRITE_INLINE_OBJECT_METRICS* metrics - ) PURE; - - /// - /// TextLayout calls this callback function to get the visible extents (in DIPs) of the inline object. - /// In the case of a simple bitmap, with no padding and no overhang, all the overhangs will - /// simply be zeroes. - /// - /// Overshoot of visible extents (in DIPs) outside the object. - /// - /// Standard HRESULT error code. - /// - /// - /// The overhangs should be returned relative to the reported size of the object - /// (DWRITE_INLINE_OBJECT_METRICS::width/height), and should not be baseline - /// adjusted. If you have an image that is actually 100x100 DIPs, but you want it - /// slightly inset (perhaps it has a glow) by 20 DIPs on each side, you would - /// return a width/height of 60x60 and four overhangs of 20 DIPs. - /// - STDMETHOD(GetOverhangMetrics)( - _Out_ DWRITE_OVERHANG_METRICS* overhangs - ) PURE; - - /// - /// Layout uses this to determine the line breaking behavior of the inline object - /// amidst the text. - /// - /// Line-breaking condition between the object and the content immediately preceding it. - /// Line-breaking condition between the object and the content immediately following it. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetBreakConditions)( - _Out_ DWRITE_BREAK_CONDITION* breakConditionBefore, - _Out_ DWRITE_BREAK_CONDITION* breakConditionAfter - ) PURE; -}; - -/// -/// The IDWritePixelSnapping interface defines the pixel snapping properties of a text renderer. -/// -interface DWRITE_DECLARE_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") IDWritePixelSnapping : public IUnknown -{ - /// - /// Determines whether pixel snapping is disabled. The recommended default is FALSE, - /// unless doing animation that requires subpixel vertical placement. - /// - /// The context passed to IDWriteTextLayout::Draw. - /// Receives TRUE if pixel snapping is disabled or FALSE if it not. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(IsPixelSnappingDisabled)( - _In_opt_ void* clientDrawingContext, - _Out_ BOOL* isDisabled - ) PURE; - - /// - /// Gets the current transform that maps abstract coordinates to DIPs, - /// which may disable pixel snapping upon any rotation or shear. - /// - /// The context passed to IDWriteTextLayout::Draw. - /// Receives the transform. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetCurrentTransform)( - _In_opt_ void* clientDrawingContext, - _Out_ DWRITE_MATRIX* transform - ) PURE; - - /// - /// Gets the number of physical pixels per DIP. A DIP (device-independent pixel) is 1/96 inch, - /// so the pixelsPerDip value is the number of logical pixels per inch divided by 96 (yielding - /// a value of 1 for 96 DPI and 1.25 for 120). - /// - /// The context passed to IDWriteTextLayout::Draw. - /// Receives the number of physical pixels per DIP. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetPixelsPerDip)( - _In_opt_ void* clientDrawingContext, - _Out_ FLOAT* pixelsPerDip - ) PURE; -}; - -/// -/// The IDWriteTextRenderer interface represents a set of application-defined -/// callbacks that perform rendering of text, inline objects, and decorations -/// such as underlines. -/// -interface DWRITE_DECLARE_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") IDWriteTextRenderer : public IDWritePixelSnapping -{ - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to - /// render a run of glyphs. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Specifies measuring mode for glyphs in the run. - /// Renderer implementations may choose different rendering modes for given measuring modes, - /// but best results are seen when the rendering mode matches the corresponding measuring mode: - /// DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL for DWRITE_MEASURING_MODE_NATURAL - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC for DWRITE_MEASURING_MODE_GDI_CLASSIC - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL for DWRITE_MEASURING_MODE_GDI_NATURAL - /// - /// The glyph run to draw. - /// Properties of the characters - /// associated with this run. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(DrawGlyphRun)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuringMode, - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to draw - /// an underline. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Underline logical information. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// A single underline can be broken into multiple calls, depending on - /// how the formatting changes attributes. If font sizes/styles change - /// within an underline, the thickness and offset will be averaged - /// weighted according to characters. - /// To get the correct top coordinate of the underline rect, add underline::offset - /// to the baseline's Y. Otherwise the underline will be immediately under the text. - /// The x coordinate will always be passed as the left side, regardless - /// of text directionality. This simplifies drawing and reduces the - /// problem of round-off that could potentially cause gaps or a double - /// stamped alpha blend. To avoid alpha overlap, round the end points - /// to the nearest device pixel. - /// - STDMETHOD(DrawUnderline)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _In_ DWRITE_UNDERLINE const* underline, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to draw - /// a strikethrough. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Strikethrough logical information. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// A single strikethrough can be broken into multiple calls, depending on - /// how the formatting changes attributes. Strikethrough is not averaged - /// across font sizes/styles changes. - /// To get the correct top coordinate of the strikethrough rect, - /// add strikethrough::offset to the baseline's Y. - /// Like underlines, the x coordinate will always be passed as the left side, - /// regardless of text directionality. - /// - STDMETHOD(DrawStrikethrough)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _In_ DWRITE_STRIKETHROUGH const* strikethrough, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this application callback when it needs to - /// draw an inline object. - /// - /// The context passed to IDWriteTextLayout::Draw. - /// X-coordinate at the top-left corner of the inline object. - /// Y-coordinate at the top-left corner of the inline object. - /// The object set using IDWriteTextLayout::SetInlineObject. - /// The object should be drawn on its side. - /// The object is in an right-to-left context and should be drawn flipped. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// The right-to-left flag is a hint for those cases where it would look - /// strange for the image to be shown normally (like an arrow pointing to - /// right to indicate a submenu). - /// - STDMETHOD(DrawInlineObject)( - _In_opt_ void* clientDrawingContext, - FLOAT originX, - FLOAT originY, - _In_ IDWriteInlineObject* inlineObject, - BOOL isSideways, - BOOL isRightToLeft, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; -}; - -/// -/// The IDWriteTextLayout interface represents a block of text after it has -/// been fully analyzed and formatted. -/// -/// All coordinates are in device independent pixels (DIPs). -/// -interface DWRITE_DECLARE_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") IDWriteTextLayout : public IDWriteTextFormat -{ - /// - /// Set layout maximum width - /// - /// Layout maximum width - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetMaxWidth)( - FLOAT maxWidth - ) PURE; - - /// - /// Set layout maximum height - /// - /// Layout maximum height - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetMaxHeight)( - FLOAT maxHeight - ) PURE; - - /// - /// Set the font collection. - /// - /// The font collection to set - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontCollection)( - _In_ IDWriteFontCollection* fontCollection, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set null-terminated font family name. - /// - /// Font family name - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontFamilyName)( - _In_z_ WCHAR const* fontFamilyName, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set font weight. - /// - /// Font weight - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontWeight)( - DWRITE_FONT_WEIGHT fontWeight, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set font style. - /// - /// Font style - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontStyle)( - DWRITE_FONT_STYLE fontStyle, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set font stretch. - /// - /// font stretch - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontStretch)( - DWRITE_FONT_STRETCH fontStretch, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set font em height. - /// - /// Font em height - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontSize)( - FLOAT fontSize, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set underline. - /// - /// The Boolean flag indicates whether underline takes place - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetUnderline)( - BOOL hasUnderline, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set strikethrough. - /// - /// The Boolean flag indicates whether strikethrough takes place - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetStrikethrough)( - BOOL hasStrikethrough, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set application-defined drawing effect. - /// - /// Pointer to an application-defined drawing effect. - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - /// - /// This drawing effect is associated with the specified range and will be passed back - /// to the application via the callback when the range is drawn at drawing time. - /// - STDMETHOD(SetDrawingEffect)( - IUnknown* drawingEffect, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set inline object. - /// - /// Pointer to an application-implemented inline object. - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - /// - /// This inline object applies to the specified range and will be passed back - /// to the application via the DrawInlineObject callback when the range is drawn. - /// Any text in that range will be suppressed. - /// - STDMETHOD(SetInlineObject)( - _In_ IDWriteInlineObject* inlineObject, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set font typography features. - /// - /// Pointer to font typography setting. - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetTypography)( - _In_ IDWriteTypography* typography, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Set locale name. - /// - /// Locale name - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLocaleName)( - _In_z_ WCHAR const* localeName, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Get layout maximum width - /// - STDMETHOD_(FLOAT, GetMaxWidth)() PURE; - - /// - /// Get layout maximum height - /// - STDMETHOD_(FLOAT, GetMaxHeight)() PURE; - - /// - /// Get the font collection where the current position is at. - /// - /// The current text position. - /// The current font collection - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontCollection)( - UINT32 currentPosition, - _COM_Outptr_ IDWriteFontCollection** fontCollection, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the length of the font family name where the current position is at. - /// - /// The current text position. - /// Size of the character array in character count not including the terminated NULL character. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamilyNameLength)( - UINT32 currentPosition, - _Out_ UINT32* nameLength, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Copy the font family name where the current position is at. - /// - /// The current text position. - /// Character array that receives the current font family name - /// Size of the character array in character count including the terminated NULL character. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamilyName)( - UINT32 currentPosition, - _Out_writes_z_(nameSize) WCHAR* fontFamilyName, - UINT32 nameSize, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the font weight where the current position is at. - /// - /// The current text position. - /// The current font weight - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontWeight)( - UINT32 currentPosition, - _Out_ DWRITE_FONT_WEIGHT* fontWeight, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the font style where the current position is at. - /// - /// The current text position. - /// The current font style - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontStyle)( - UINT32 currentPosition, - _Out_ DWRITE_FONT_STYLE* fontStyle, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the font stretch where the current position is at. - /// - /// The current text position. - /// The current font stretch - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontStretch)( - UINT32 currentPosition, - _Out_ DWRITE_FONT_STRETCH* fontStretch, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the font em height where the current position is at. - /// - /// The current text position. - /// The current font em height - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontSize)( - UINT32 currentPosition, - _Out_ FLOAT* fontSize, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the underline presence where the current position is at. - /// - /// The current text position. - /// The Boolean flag indicates whether text is underlined. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetUnderline)( - UINT32 currentPosition, - _Out_ BOOL* hasUnderline, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the strikethrough presence where the current position is at. - /// - /// The current text position. - /// The Boolean flag indicates whether text has strikethrough. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetStrikethrough)( - UINT32 currentPosition, - _Out_ BOOL* hasStrikethrough, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the application-defined drawing effect where the current position is at. - /// - /// The current text position. - /// The current application-defined drawing effect. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetDrawingEffect)( - UINT32 currentPosition, - _COM_Outptr_ IUnknown** drawingEffect, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the inline object at the given position. - /// - /// The given text position. - /// The inline object. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetInlineObject)( - UINT32 currentPosition, - _COM_Outptr_ IDWriteInlineObject** inlineObject, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the typography setting where the current position is at. - /// - /// The current text position. - /// The current typography setting. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetTypography)( - UINT32 currentPosition, - _COM_Outptr_ IDWriteTypography** typography, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the length of the locale name where the current position is at. - /// - /// The current text position. - /// Size of the character array in character count not including the terminated NULL character. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleNameLength)( - UINT32 currentPosition, - _Out_ UINT32* nameLength, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Get the locale name where the current position is at. - /// - /// The current text position. - /// Character array that receives the current locale name - /// Size of the character array in character count including the terminated NULL character. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleName)( - UINT32 currentPosition, - _Out_writes_z_(nameSize) WCHAR* localeName, - UINT32 nameSize, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Initiate drawing of the text. - /// - /// An application defined value - /// included in rendering callbacks. - /// The set of application-defined callbacks that do - /// the actual rendering. - /// X-coordinate of the layout's left side. - /// Y-coordinate of the layout's top side. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(Draw)( - _In_opt_ void* clientDrawingContext, - _In_ IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY - ) PURE; - - /// - /// GetLineMetrics returns properties of each line. - /// - /// The array to fill with line information. - /// The maximum size of the lineMetrics array. - /// The actual size of the lineMetrics - /// array that is needed. - /// - /// Standard HRESULT error code. - /// - /// - /// If maxLineCount is not large enough E_NOT_SUFFICIENT_BUFFER, - /// which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), - /// is returned and *actualLineCount is set to the number of lines - /// needed. - /// - STDMETHOD(GetLineMetrics)( - _Out_writes_opt_(maxLineCount) DWRITE_LINE_METRICS* lineMetrics, - UINT32 maxLineCount, - _Out_ UINT32* actualLineCount - ) PURE; - - /// - /// GetMetrics retrieves overall metrics for the formatted string. - /// - /// The returned metrics. - /// - /// Standard HRESULT error code. - /// - /// - /// Drawing effects like underline and strikethrough do not contribute - /// to the text size, which is essentially the sum of advance widths and - /// line heights. Additionally, visible swashes and other graphic - /// adornments may extend outside the returned width and height. - /// - STDMETHOD(GetMetrics)( - _Out_ DWRITE_TEXT_METRICS* textMetrics - ) PURE; - - /// - /// GetOverhangMetrics returns the overhangs (in DIPs) of the layout and all - /// objects contained in it, including text glyphs and inline objects. - /// - /// Overshoots of visible extents (in DIPs) outside the layout. - /// - /// Standard HRESULT error code. - /// - /// - /// Any underline and strikethrough do not contribute to the black box - /// determination, since these are actually drawn by the renderer, which - /// is allowed to draw them in any variety of styles. - /// - STDMETHOD(GetOverhangMetrics)( - _Out_ DWRITE_OVERHANG_METRICS* overhangs - ) PURE; - - /// - /// Retrieve logical properties and measurement of each cluster. - /// - /// The array to fill with cluster information. - /// The maximum size of the clusterMetrics array. - /// The actual size of the clusterMetrics array that is needed. - /// - /// Standard HRESULT error code. - /// - /// - /// If maxClusterCount is not large enough E_NOT_SUFFICIENT_BUFFER, - /// which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), - /// is returned and *actualClusterCount is set to the number of clusters - /// needed. - /// - STDMETHOD(GetClusterMetrics)( - _Out_writes_opt_(maxClusterCount) DWRITE_CLUSTER_METRICS* clusterMetrics, - UINT32 maxClusterCount, - _Out_ UINT32* actualClusterCount - ) PURE; - - /// - /// Determines the minimum possible width the layout can be set to without - /// emergency breaking between the characters of whole words. - /// - /// Minimum width. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(DetermineMinWidth)( - _Out_ FLOAT* minWidth - ) PURE; - - /// - /// Given a coordinate (in DIPs) relative to the top-left of the layout box, - /// this returns the corresponding hit-test metrics of the text string where - /// the hit-test has occurred. This is useful for mapping mouse clicks to caret - /// positions. When the given coordinate is outside the text string, the function - /// sets the output value *isInside to false but returns the nearest character - /// position. - /// - /// X coordinate to hit-test, relative to the top-left location of the layout box. - /// Y coordinate to hit-test, relative to the top-left location of the layout box. - /// Output flag indicating whether the hit-test location is at the leading or the trailing - /// side of the character. When the output *isInside value is set to false, this value is set according to the output - /// *position value to represent the edge closest to the hit-test location. - /// Output flag indicating whether the hit-test location is inside the text string. - /// When false, the position nearest the text's edge is returned. - /// Output geometry fully enclosing the hit-test location. When the output *isInside value - /// is set to false, this structure represents the geometry enclosing the edge closest to the hit-test location. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(HitTestPoint)( - FLOAT pointX, - FLOAT pointY, - _Out_ BOOL* isTrailingHit, - _Out_ BOOL* isInside, - _Out_ DWRITE_HIT_TEST_METRICS* hitTestMetrics - ) PURE; - - /// - /// Given a text position and whether the caret is on the leading or trailing - /// edge of that position, this returns the corresponding coordinate (in DIPs) - /// relative to the top-left of the layout box. This is most useful for drawing - /// the caret's current position, but it could also be used to anchor an IME to the - /// typed text or attach a floating menu near the point of interest. It may also be - /// used to programmatically obtain the geometry of a particular text position - /// for UI automation. - /// - /// Text position to get the coordinate of. - /// Flag indicating whether the location is of the leading or the trailing side of the specified text position. - /// Output caret X, relative to the top-left of the layout box. - /// Output caret Y, relative to the top-left of the layout box. - /// Output geometry fully enclosing the specified text position. - /// - /// Standard HRESULT error code. - /// - /// - /// When drawing a caret at the returned X,Y, it should be centered on X - /// and drawn from the Y coordinate down. The height will be the size of the - /// hit-tested text (which can vary in size within a line). - /// Reading direction also affects which side of the character the caret is drawn. - /// However, the returned X coordinate will be correct for either case. - /// You can get a text length back that is larger than a single character. - /// This happens for complex scripts when multiple characters form a single cluster, - /// when diacritics join their base character, or when you test a surrogate pair. - /// - STDMETHOD(HitTestTextPosition)( - UINT32 textPosition, - BOOL isTrailingHit, - _Out_ FLOAT* pointX, - _Out_ FLOAT* pointY, - _Out_ DWRITE_HIT_TEST_METRICS* hitTestMetrics - ) PURE; - - /// - /// The application calls this function to get a set of hit-test metrics - /// corresponding to a range of text positions. The main usage for this - /// is to draw highlighted selection of the text string. - /// - /// The function returns E_NOT_SUFFICIENT_BUFFER, which is equivalent to - /// HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), when the buffer size of - /// hitTestMetrics is too small to hold all the regions calculated by the - /// function. In such situation, the function sets the output value - /// *actualHitTestMetricsCount to the number of geometries calculated. - /// The application is responsible to allocate a new buffer of greater - /// size and call the function again. - /// - /// A good value to use as an initial value for maxHitTestMetricsCount may - /// be calculated from the following equation: - /// maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth - /// - /// where lineCount is obtained from the value of the output argument - /// *actualLineCount from the function IDWriteTextLayout::GetLineMetrics, - /// and the maxBidiReorderingDepth value from the DWRITE_TEXT_METRICS - /// structure of the output argument *textMetrics from the function - /// IDWriteFactory::CreateTextLayout. - /// - /// First text position of the specified range. - /// Number of positions of the specified range. - /// Offset of the X origin (left of the layout box) which is added to each of the hit-test metrics returned. - /// Offset of the Y origin (top of the layout box) which is added to each of the hit-test metrics returned. - /// Pointer to a buffer of the output geometry fully enclosing the specified position range. - /// Maximum number of distinct metrics it could hold in its buffer memory. - /// Actual number of metrics returned or needed. - /// - /// Standard HRESULT error code. - /// - /// - /// There are no gaps in the returned metrics. While there could be visual gaps, - /// depending on bidi ordering, each range is contiguous and reports all the text, - /// including any hidden characters and trimmed text. - /// The height of each returned range will be the same within each line, regardless - /// of how the font sizes vary. - /// - STDMETHOD(HitTestTextRange)( - UINT32 textPosition, - UINT32 textLength, - FLOAT originX, - FLOAT originY, - _Out_writes_opt_(maxHitTestMetricsCount) DWRITE_HIT_TEST_METRICS* hitTestMetrics, - UINT32 maxHitTestMetricsCount, - _Out_ UINT32* actualHitTestMetricsCount - ) PURE; -}; - - -/// -/// Encapsulates a 32-bit device independent bitmap and device context, which can be used for rendering glyphs. -/// -interface DWRITE_DECLARE_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") IDWriteBitmapRenderTarget : public IUnknown -{ - /// - /// Draws a run of glyphs to the bitmap. - /// - /// Horizontal position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. - /// Vertical position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. - /// Specifies measuring mode for glyphs in the run. - /// Renderer implementations may choose different rendering modes for different measuring modes, for example - /// DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL for DWRITE_MEASURING_MODE_NATURAL, - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC for DWRITE_MEASURING_MODE_GDI_CLASSIC, and - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL for DWRITE_MEASURING_MODE_GDI_NATURAL. - /// - /// Structure containing the properties of the glyph run. - /// Object that controls rendering behavior. - /// Specifies the foreground color of the text. - /// Optional rectangle that receives the bounding box (in pixels not DIPs) of all the pixels affected by - /// drawing the glyph run. The black box rectangle may extend beyond the dimensions of the bitmap. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(DrawGlyphRun)( - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_MEASURING_MODE measuringMode, - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_ IDWriteRenderingParams* renderingParams, - COLORREF textColor, - _Out_opt_ RECT* blackBoxRect = NULL - ) PURE; - - /// - /// Gets a handle to the memory device context. - /// - /// - /// Returns the device context handle. - /// - /// - /// An application can use the device context to draw using GDI functions. An application can obtain the bitmap handle - /// (HBITMAP) by calling GetCurrentObject. An application that wants information about the underlying bitmap, including - /// a pointer to the pixel data, can call GetObject to fill in a DIBSECTION structure. The bitmap is always a 32-bit - /// top-down DIB. - /// - STDMETHOD_(HDC, GetMemoryDC)() PURE; - - /// - /// Gets the number of bitmap pixels per DIP. A DIP (device-independent pixel) is 1/96 inch so this value is the number - /// if pixels per inch divided by 96. - /// - /// - /// Returns the number of bitmap pixels per DIP. - /// - STDMETHOD_(FLOAT, GetPixelsPerDip)() PURE; - - /// - /// Sets the number of bitmap pixels per DIP. A DIP (device-independent pixel) is 1/96 inch so this value is the number - /// if pixels per inch divided by 96. - /// - /// Specifies the number of pixels per DIP. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetPixelsPerDip)( - FLOAT pixelsPerDip - ) PURE; - - /// - /// Gets the transform that maps abstract coordinate to DIPs. By default this is the identity - /// transform. Note that this is unrelated to the world transform of the underlying device - /// context. - /// - /// Receives the transform. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetCurrentTransform)( - _Out_ DWRITE_MATRIX* transform - ) PURE; - - /// - /// Sets the transform that maps abstract coordinate to DIPs. This does not affect the world - /// transform of the underlying device context. - /// - /// Specifies the new transform. This parameter can be NULL, in which - /// case the identity transform is implied. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetCurrentTransform)( - _In_opt_ DWRITE_MATRIX const* transform - ) PURE; - - /// - /// Gets the dimensions of the bitmap. - /// - /// Receives the size of the bitmap in pixels. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetSize)( - _Out_ SIZE* size - ) PURE; - - /// - /// Resizes the bitmap. - /// - /// New bitmap width, in pixels. - /// New bitmap height, in pixels. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(Resize)( - UINT32 width, - UINT32 height - ) PURE; -}; - -/// -/// The GDI interop interface provides interoperability with GDI. -/// -interface DWRITE_DECLARE_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") IDWriteGdiInterop : public IUnknown -{ - /// - /// Creates a font object that matches the properties specified by the LOGFONT structure - /// in the system font collection (GetSystemFontCollection). - /// - /// Structure containing a GDI-compatible font description. - /// Receives a newly created font object if successful, or NULL in case of error. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFromLOGFONT)( - _In_ LOGFONTW const* logFont, - _COM_Outptr_ IDWriteFont** font - ) PURE; - - /// - /// Initializes a LOGFONT structure based on the GDI-compatible properties of the specified font. - /// - /// Specifies a font. - /// Structure that receives a GDI-compatible font description. - /// Contains TRUE if the specified font object is part of the system font collection - /// or FALSE otherwise. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(ConvertFontToLOGFONT)( - _In_ IDWriteFont* font, - _Out_ LOGFONTW* logFont, - _Out_ BOOL* isSystemFont - ) PURE; - - /// - /// Initializes a LOGFONT structure based on the GDI-compatible properties of the specified font. - /// - /// Specifies a font face. - /// Structure that receives a GDI-compatible font description. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(ConvertFontFaceToLOGFONT)( - _In_ IDWriteFontFace* font, - _Out_ LOGFONTW* logFont - ) PURE; - - /// - /// Creates a font face object that corresponds to the currently selected HFONT. - /// - /// Handle to a device context into which a font has been selected. It is assumed that the client - /// has already performed font mapping and that the font selected into the DC is the actual font that would be used - /// for rendering glyphs. - /// Contains the newly created font face object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFaceFromHdc)( - HDC hdc, - _COM_Outptr_ IDWriteFontFace** fontFace - ) PURE; - - /// - /// Creates an object that encapsulates a bitmap and memory DC which can be used for rendering glyphs. - /// - /// Optional device context used to create a compatible memory DC. - /// Width of the bitmap. - /// Height of the bitmap. - /// Receives a pointer to the newly created render target. - STDMETHOD(CreateBitmapRenderTarget)( - _In_opt_ HDC hdc, - UINT32 width, - UINT32 height, - _COM_Outptr_ IDWriteBitmapRenderTarget** renderTarget - ) PURE; -}; - -/// -/// The DWRITE_TEXTURE_TYPE enumeration identifies a type of alpha texture. An alpha texture is a bitmap of alpha values, each -/// representing the darkness (i.e., opacity) of a pixel or subpixel. -/// -enum DWRITE_TEXTURE_TYPE -{ - /// - /// Specifies an alpha texture for aliased text rendering (i.e., bi-level, where each pixel is either fully opaque or fully transparent), - /// with one byte per pixel. - /// - DWRITE_TEXTURE_ALIASED_1x1, - - /// - /// Specifies an alpha texture for ClearType text rendering, with three bytes per pixel in the horizontal dimension and - /// one byte per pixel in the vertical dimension. - /// - DWRITE_TEXTURE_CLEARTYPE_3x1 -}; - -/// -/// Maximum alpha value in a texture returned by IDWriteGlyphRunAnalysis::CreateAlphaTexture. -/// -#define DWRITE_ALPHA_MAX 255 - -/// -/// Interface that encapsulates information used to render a glyph run. -/// -interface DWRITE_DECLARE_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") IDWriteGlyphRunAnalysis : public IUnknown -{ - /// - /// Gets the bounding rectangle of the physical pixels affected by the glyph run. - /// - /// Specifies the type of texture requested. If a bi-level texture is requested, the - /// bounding rectangle includes only bi-level glyphs. Otherwise, the bounding rectangle includes only anti-aliased - /// glyphs. - /// Receives the bounding rectangle, or an empty rectangle if there are no glyphs - /// if the specified type. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetAlphaTextureBounds)( - DWRITE_TEXTURE_TYPE textureType, - _Out_ RECT* textureBounds - ) PURE; - - /// - /// Creates an alpha texture of the specified type. - /// - /// Specifies the type of texture requested. If a bi-level texture is requested, the - /// texture contains only bi-level glyphs. Otherwise, the texture contains only anti-aliased glyphs. - /// Specifies the bounding rectangle of the texture, which can be different than - /// the bounding rectangle returned by GetAlphaTextureBounds. - /// Receives the array of alpha values. - /// Size of the alphaValues array. The minimum size depends on the dimensions of the - /// rectangle and the type of texture requested. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateAlphaTexture)( - DWRITE_TEXTURE_TYPE textureType, - _In_ RECT const* textureBounds, - _Out_writes_bytes_(bufferSize) BYTE* alphaValues, - UINT32 bufferSize - ) PURE; - - /// - /// Gets properties required for ClearType blending. - /// - /// Rendering parameters object. In most cases, the values returned in the output - /// parameters are based on the properties of this object. The exception is if a GDI-compatible rendering mode - /// is specified. - /// Receives the gamma value to use for gamma correction. - /// Receives the enhanced contrast value. - /// Receives the ClearType level. - STDMETHOD(GetAlphaBlendParams)( - _In_ IDWriteRenderingParams* renderingParams, - _Out_ FLOAT* blendGamma, - _Out_ FLOAT* blendEnhancedContrast, - _Out_ FLOAT* blendClearTypeLevel - ) PURE; -}; - -/// -/// The root factory interface for all DWrite objects. -/// -interface DWRITE_DECLARE_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") IDWriteFactory : public IUnknown -{ - /// - /// Gets a font collection representing the set of installed fonts. - /// - /// Receives a pointer to the system font collection object, or NULL in case of failure. - /// If this parameter is nonzero, the function performs an immediate check for changes to the set of - /// installed fonts. If this parameter is FALSE, the function will still detect changes if the font cache service is running, but - /// there may be some latency. For example, an application might specify TRUE if it has itself just installed a font and wants to - /// be sure the font collection contains that font. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetSystemFontCollection)( - _COM_Outptr_ IDWriteFontCollection** fontCollection, - BOOL checkForUpdates = FALSE - ) PURE; - - /// - /// Creates a font collection using a custom font collection loader. - /// - /// Application-defined font collection loader, which must have been previously - /// registered using RegisterFontCollectionLoader. - /// Key used by the loader to identify a collection of font files. - /// Size in bytes of the collection key. - /// Receives a pointer to the system font collection object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateCustomFontCollection)( - _In_ IDWriteFontCollectionLoader* collectionLoader, - _In_reads_bytes_(collectionKeySize) void const* collectionKey, - UINT32 collectionKeySize, - _COM_Outptr_ IDWriteFontCollection** fontCollection - ) PURE; - - /// - /// Registers a custom font collection loader with the factory object. - /// - /// Application-defined font collection loader. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(RegisterFontCollectionLoader)( - _In_ IDWriteFontCollectionLoader* fontCollectionLoader - ) PURE; - - /// - /// Unregisters a custom font collection loader that was previously registered using RegisterFontCollectionLoader. - /// - /// Application-defined font collection loader. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(UnregisterFontCollectionLoader)( - _In_ IDWriteFontCollectionLoader* fontCollectionLoader - ) PURE; - - /// - /// CreateFontFileReference creates a font file reference object from a local font file. - /// - /// Absolute file path. Subsequent operations on the constructed object may fail - /// if the user provided filePath doesn't correspond to a valid file on the disk. - /// Last modified time of the input file path. If the parameter is omitted, - /// the function will access the font file to obtain its last write time, so the clients are encouraged to specify this value - /// to avoid extra disk access. Subsequent operations on the constructed object may fail - /// if the user provided lastWriteTime doesn't match the file on the disk. - /// Contains newly created font file reference object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFileReference)( - _In_z_ WCHAR const* filePath, - _In_opt_ FILETIME const* lastWriteTime, - _COM_Outptr_ IDWriteFontFile** fontFile - ) PURE; - - /// - /// CreateCustomFontFileReference creates a reference to an application specific font file resource. - /// This function enables an application or a document to use a font without having to install it on the system. - /// The fontFileReferenceKey has to be unique only in the scope of the fontFileLoader used in this call. - /// - /// Font file reference key that uniquely identifies the font file resource - /// during the lifetime of fontFileLoader. - /// Size of font file reference key in bytes. - /// Font file loader that will be used by the font system to load data from the file identified by - /// fontFileReferenceKey. - /// Contains the newly created font file object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - /// - /// This function is provided for cases when an application or a document needs to use a font - /// without having to install it on the system. fontFileReferenceKey has to be unique only in the scope - /// of the fontFileLoader used in this call. - /// - STDMETHOD(CreateCustomFontFileReference)( - _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey, - UINT32 fontFileReferenceKeySize, - _In_ IDWriteFontFileLoader* fontFileLoader, - _COM_Outptr_ IDWriteFontFile** fontFile - ) PURE; - - /// - /// Creates a font face object. - /// - /// The file format of the font face. - /// The number of font files required to represent the font face. - /// Font files representing the font face. Since IDWriteFontFace maintains its own references - /// to the input font file objects, it's OK to release them after this call. - /// The zero based index of a font face in cases when the font files contain a collection of font faces. - /// If the font files contain a single face, this value should be zero. - /// Font face simulation flags for algorithmic emboldening and italicization. - /// Contains the newly created font face object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFace)( - DWRITE_FONT_FACE_TYPE fontFaceType, - UINT32 numberOfFiles, - _In_reads_(numberOfFiles) IDWriteFontFile* const* fontFiles, - UINT32 faceIndex, - DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, - _COM_Outptr_ IDWriteFontFace** fontFace - ) PURE; - - /// - /// Creates a rendering parameters object with default settings for the primary monitor. - /// - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateRenderingParams)( - _COM_Outptr_ IDWriteRenderingParams** renderingParams - ) PURE; - - /// - /// Creates a rendering parameters object with default settings for the specified monitor. - /// - /// The monitor to read the default values from. - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateMonitorRenderingParams)( - HMONITOR monitor, - _COM_Outptr_ IDWriteRenderingParams** renderingParams - ) PURE; - - /// - /// Creates a rendering parameters object with the specified properties. - /// - /// The gamma value used for gamma correction, which must be greater than zero and cannot exceed 256. - /// The amount of contrast enhancement, zero or greater. - /// The degree of ClearType level, from 0.0f (no ClearType) to 1.0f (full ClearType). - /// The geometry of a device pixel. - /// Method of rendering glyphs. In most cases, this should be DWRITE_RENDERING_MODE_DEFAULT to automatically use an appropriate mode. - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateCustomRenderingParams)( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT clearTypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - _COM_Outptr_ IDWriteRenderingParams** renderingParams - ) PURE; - - /// - /// Registers a font file loader with DirectWrite. - /// - /// Pointer to the implementation of the IDWriteFontFileLoader for a particular file resource type. - /// - /// Standard HRESULT error code. - /// - /// - /// This function registers a font file loader with DirectWrite. - /// Font file loader interface handles loading font file resources of a particular type from a key. - /// The font file loader interface is recommended to be implemented by a singleton object. - /// A given instance can only be registered once. - /// Succeeding attempts will return an error that it has already been registered. - /// IMPORTANT: font file loader implementations must not register themselves with DirectWrite - /// inside their constructors and must not unregister themselves in their destructors, because - /// registration and unregistration operations increment and decrement the object reference count respectively. - /// Instead, registration and unregistration of font file loaders with DirectWrite should be performed - /// outside of the font file loader implementation as a separate step. - /// - STDMETHOD(RegisterFontFileLoader)( - _In_ IDWriteFontFileLoader* fontFileLoader - ) PURE; - - /// - /// Unregisters a font file loader that was previously registered with the DirectWrite font system using RegisterFontFileLoader. - /// - /// Pointer to the file loader that was previously registered with the DirectWrite font system using RegisterFontFileLoader. - /// - /// This function will succeed if the user loader is requested to be removed. - /// It will fail if the pointer to the file loader identifies a standard DirectWrite loader, - /// or a loader that is never registered or has already been unregistered. - /// - /// - /// This function unregisters font file loader callbacks with the DirectWrite font system. - /// The font file loader interface is recommended to be implemented by a singleton object. - /// IMPORTANT: font file loader implementations must not register themselves with DirectWrite - /// inside their constructors and must not unregister themselves in their destructors, because - /// registration and unregistration operations increment and decrement the object reference count respectively. - /// Instead, registration and unregistration of font file loaders with DirectWrite should be performed - /// outside of the font file loader implementation as a separate step. - /// - STDMETHOD(UnregisterFontFileLoader)( - _In_ IDWriteFontFileLoader* fontFileLoader - ) PURE; - - /// - /// Create a text format object used for text layout. - /// - /// Name of the font family - /// Font collection. NULL indicates the system font collection. - /// Font weight - /// Font style - /// Font stretch - /// Logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. - /// Locale name - /// Contains newly created text format object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateTextFormat)( - _In_z_ WCHAR const* fontFamilyName, - _In_opt_ IDWriteFontCollection* fontCollection, - DWRITE_FONT_WEIGHT fontWeight, - DWRITE_FONT_STYLE fontStyle, - DWRITE_FONT_STRETCH fontStretch, - FLOAT fontSize, - _In_z_ WCHAR const* localeName, - _COM_Outptr_ IDWriteTextFormat** textFormat - ) PURE; - - /// - /// Create a typography object used in conjunction with text format for text layout. - /// - /// Contains newly created typography object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateTypography)( - _COM_Outptr_ IDWriteTypography** typography - ) PURE; - - /// - /// Create an object used for interoperability with GDI. - /// - /// Receives the GDI interop object if successful, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGdiInterop)( - _COM_Outptr_ IDWriteGdiInterop** gdiInterop - ) PURE; - - /// - /// CreateTextLayout takes a string, format, and associated constraints - /// and produces an object representing the fully analyzed - /// and formatted result. - /// - /// The string to layout. - /// The length of the string. - /// The format to apply to the string. - /// Width of the layout box. - /// Height of the layout box. - /// The resultant object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateTextLayout)( - _In_reads_(stringLength) WCHAR const* string, - UINT32 stringLength, - _In_ IDWriteTextFormat* textFormat, - FLOAT maxWidth, - FLOAT maxHeight, - _COM_Outptr_ IDWriteTextLayout** textLayout - ) PURE; - - /// - /// CreateGdiCompatibleTextLayout takes a string, format, and associated constraints - /// and produces and object representing the result formatted for a particular display resolution - /// and measuring mode. The resulting text layout should only be used for the intended resolution, - /// and for cases where text scalability is desired, CreateTextLayout should be used instead. - /// - /// The string to layout. - /// The length of the string. - /// The format to apply to the string. - /// Width of the layout box. - /// Height of the layout box. - /// Number of physical pixels per DIP. For example, if rendering onto a 96 DPI device then pixelsPerDip - /// is 1. If rendering onto a 120 DPI device then pixelsPerDip is 120/96. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified the font size and pixelsPerDip. - /// - /// When set to FALSE, instructs the text layout to use the same metrics as GDI aliased text. - /// When set to TRUE, instructs the text layout to use the same metrics as text measured by GDI using a font - /// created with CLEARTYPE_NATURAL_QUALITY. - /// - /// The resultant object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateGdiCompatibleTextLayout)( - _In_reads_(stringLength) WCHAR const* string, - UINT32 stringLength, - _In_ IDWriteTextFormat* textFormat, - FLOAT layoutWidth, - FLOAT layoutHeight, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL useGdiNatural, - _COM_Outptr_ IDWriteTextLayout** textLayout - ) PURE; - - /// - /// The application may call this function to create an inline object for trimming, using an ellipsis as the omission sign. - /// The ellipsis will be created using the current settings of the format, including base font, style, and any effects. - /// Alternate omission signs can be created by the application by implementing IDWriteInlineObject. - /// - /// Text format used as a template for the omission sign. - /// Created omission sign. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateEllipsisTrimmingSign)( - _In_ IDWriteTextFormat* textFormat, - _COM_Outptr_ IDWriteInlineObject** trimmingSign - ) PURE; - - /// - /// Return an interface to perform text analysis with. - /// - /// The resultant object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateTextAnalyzer)( - _COM_Outptr_ IDWriteTextAnalyzer** textAnalyzer - ) PURE; - - /// - /// Creates a number substitution object using a locale name, - /// substitution method, and whether to ignore user overrides (uses NLS - /// defaults for the given culture instead). - /// - /// Method of number substitution to use. - /// Which locale to obtain the digits from. - /// Ignore the user's settings and use the locale defaults - /// Receives a pointer to the newly created object. - STDMETHOD(CreateNumberSubstitution)( - _In_ DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, - _In_z_ WCHAR const* localeName, - _In_ BOOL ignoreUserOverride, - _COM_Outptr_ IDWriteNumberSubstitution** numberSubstitution - ) PURE; - - /// - /// Creates a glyph run analysis object, which encapsulates information - /// used to render a glyph run. - /// - /// Structure specifying the properties of the glyph run. - /// Number of physical pixels per DIP. For example, if rendering onto a 96 DPI bitmap then pixelsPerDip - /// is 1. If rendering onto a 120 DPI bitmap then pixelsPerDip is 120/96. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the emSize and pixelsPerDip. - /// Specifies the rendering mode, which must be one of the raster rendering modes (i.e., not default - /// and not outline). - /// Specifies the method to measure glyphs. - /// Horizontal position of the baseline origin, in DIPs. - /// Vertical position of the baseline origin, in DIPs. - /// Receives a pointer to the newly created object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateGlyphRunAnalysis)( - _In_ DWRITE_GLYPH_RUN const* glyphRun, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _COM_Outptr_ IDWriteGlyphRunAnalysis** glyphRunAnalysis - ) PURE; - -}; // interface IDWriteFactory - - -/// -/// Creates a DirectWrite factory object that is used for subsequent creation of individual DirectWrite objects. -/// -/// Identifies whether the factory object will be shared or isolated. -/// Identifies the DirectWrite factory interface, such as __uuidof(IDWriteFactory). -/// Receives the DirectWrite factory object. -/// -/// Standard HRESULT error code. -/// -/// -/// Obtains DirectWrite factory object that is used for subsequent creation of individual DirectWrite classes. -/// DirectWrite factory contains internal state such as font loader registration and cached font data. -/// In most cases it is recommended to use the shared factory object, because it allows multiple components -/// that use DirectWrite to share internal DirectWrite state and reduce memory usage. -/// However, there are cases when it is desirable to reduce the impact of a component, -/// such as a plug-in from an untrusted source, on the rest of the process by sandboxing and isolating it -/// from the rest of the process components. In such cases, it is recommended to use an isolated factory for the sandboxed -/// component. -/// -EXTERN_C HRESULT DWRITE_EXPORT DWriteCreateFactory( - _In_ DWRITE_FACTORY_TYPE factoryType, - _In_ REFIID iid, - _COM_Outptr_ IUnknown **factory - ); - -// Macros used to define DirectWrite error codes. -#define FACILITY_DWRITE 0x898 -#define DWRITE_ERR_BASE 0x5000 -#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)) -#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code) - -// DWrite errors have moved to winerror.h - - -#endif /* DWRITE_H_INCLUDED */ diff --git a/3rdparty/minidx12/Include/dwrite_1.h b/3rdparty/minidx12/Include/dwrite_1.h deleted file mode 100644 index 0939921337..0000000000 --- a/3rdparty/minidx12/Include/dwrite_1.h +++ /dev/null @@ -1,1922 +0,0 @@ -//+-------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Abstract: -// DirectX Typography Services public API definitions. -// -//---------------------------------------------------------------------------- - -#ifndef DWRITE_1_H_INCLUDED -#define DWRITE_1_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - - - -/// -/// The overall kind of family. -/// -enum DWRITE_PANOSE_FAMILY -{ - DWRITE_PANOSE_FAMILY_ANY = 0, - DWRITE_PANOSE_FAMILY_NO_FIT = 1, - DWRITE_PANOSE_FAMILY_TEXT_DISPLAY = 2, - DWRITE_PANOSE_FAMILY_SCRIPT = 3, // or hand written - DWRITE_PANOSE_FAMILY_DECORATIVE = 4, - DWRITE_PANOSE_FAMILY_SYMBOL = 5, // or symbol - DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY_SYMBOL -}; - -/// -/// Appearance of the serifs. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_SERIF_STYLE -{ - DWRITE_PANOSE_SERIF_STYLE_ANY = 0, - DWRITE_PANOSE_SERIF_STYLE_NO_FIT = 1, - DWRITE_PANOSE_SERIF_STYLE_COVE = 2, - DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE = 3, - DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE = 4, - DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE = 5, - DWRITE_PANOSE_SERIF_STYLE_SQUARE = 6, - DWRITE_PANOSE_SERIF_STYLE_THIN = 7, - DWRITE_PANOSE_SERIF_STYLE_OVAL = 8, - DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED = 9, - DWRITE_PANOSE_SERIF_STYLE_TRIANGLE = 10, - DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS = 11, - DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS = 12, - DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS = 13, - DWRITE_PANOSE_SERIF_STYLE_FLARED = 14, - DWRITE_PANOSE_SERIF_STYLE_ROUNDED = 15, - DWRITE_PANOSE_SERIF_STYLE_SCRIPT = 16, - DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS, - DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE_OVAL -}; - -/// -/// PANOSE font weights. These roughly correspond to the DWRITE_FONT_WEIGHT's -/// using (panose_weight - 2) * 100. -/// Present for families: 2-text, 3-script, 4-decorative, 5-symbol -/// -enum DWRITE_PANOSE_WEIGHT -{ - DWRITE_PANOSE_WEIGHT_ANY = 0, - DWRITE_PANOSE_WEIGHT_NO_FIT = 1, - DWRITE_PANOSE_WEIGHT_VERY_LIGHT = 2, - DWRITE_PANOSE_WEIGHT_LIGHT = 3, - DWRITE_PANOSE_WEIGHT_THIN = 4, - DWRITE_PANOSE_WEIGHT_BOOK = 5, - DWRITE_PANOSE_WEIGHT_MEDIUM = 6, - DWRITE_PANOSE_WEIGHT_DEMI = 7, - DWRITE_PANOSE_WEIGHT_BOLD = 8, - DWRITE_PANOSE_WEIGHT_HEAVY = 9, - DWRITE_PANOSE_WEIGHT_BLACK = 10, - DWRITE_PANOSE_WEIGHT_EXTRA_BLACK = 11, - DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT_EXTRA_BLACK -}; - -/// -/// Proportion of the glyph shape considering additional detail to standard -/// characters. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_PROPORTION -{ - DWRITE_PANOSE_PROPORTION_ANY = 0, - DWRITE_PANOSE_PROPORTION_NO_FIT = 1, - DWRITE_PANOSE_PROPORTION_OLD_STYLE = 2, - DWRITE_PANOSE_PROPORTION_MODERN = 3, - DWRITE_PANOSE_PROPORTION_EVEN_WIDTH = 4, - DWRITE_PANOSE_PROPORTION_EXPANDED = 5, - DWRITE_PANOSE_PROPORTION_CONDENSED = 6, - DWRITE_PANOSE_PROPORTION_VERY_EXPANDED = 7, - DWRITE_PANOSE_PROPORTION_VERY_CONDENSED = 8, - DWRITE_PANOSE_PROPORTION_MONOSPACED = 9 -}; - -/// -/// Ratio between thickest and thinnest point of the stroke for a letter such -/// as uppercase 'O'. -/// Present for families: 2-text, 3-script, 4-decorative -/// -enum DWRITE_PANOSE_CONTRAST -{ - DWRITE_PANOSE_CONTRAST_ANY = 0, - DWRITE_PANOSE_CONTRAST_NO_FIT = 1, - DWRITE_PANOSE_CONTRAST_NONE = 2, - DWRITE_PANOSE_CONTRAST_VERY_LOW = 3, - DWRITE_PANOSE_CONTRAST_LOW = 4, - DWRITE_PANOSE_CONTRAST_MEDIUM_LOW = 5, - DWRITE_PANOSE_CONTRAST_MEDIUM = 6, - DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH = 7, - DWRITE_PANOSE_CONTRAST_HIGH = 8, - DWRITE_PANOSE_CONTRAST_VERY_HIGH = 9, - DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW = 10, - DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM = 11, - DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH = 12, - DWRITE_PANOSE_CONTRAST_BROKEN = 13 -}; - -/// -/// Relationship between thin and thick stems. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_STROKE_VARIATION -{ - DWRITE_PANOSE_STROKE_VARIATION_ANY = 0, - DWRITE_PANOSE_STROKE_VARIATION_NO_FIT = 1, - DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION = 2, - DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL = 3, - DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL = 4, - DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL = 5, - DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL = 6, - DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL = 7, - DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL = 8, - DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL = 9, - DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL = 10 -}; - -/// -/// Style of termination of stems and rounded letterforms. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_ARM_STYLE -{ - DWRITE_PANOSE_ARM_STYLE_ANY = 0, - DWRITE_PANOSE_ARM_STYLE_NO_FIT = 1, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL = 2, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE = 3, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL = 4, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF = 5, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF = 6, - DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL = 7, - DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE = 8, - DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL = 9, - DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF = 10, - DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF = 11, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL, - DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL, - DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL, - DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE, - DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL, - DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF, - DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF -}; - -/// -/// Roundness of letterform. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_LETTERFORM -{ - DWRITE_PANOSE_LETTERFORM_ANY = 0, - DWRITE_PANOSE_LETTERFORM_NO_FIT = 1, - DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT = 2, - DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED = 3, - DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED = 4, - DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED = 5, - DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED = 6, - DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER = 7, - DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE = 8, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT = 9, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED = 10, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED = 11, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED = 12, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED = 13, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER = 14, - DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE = 15 -}; - -/// -/// Placement of midline across uppercase characters and treatment of diagonal -/// stem apexes. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_MIDLINE -{ - DWRITE_PANOSE_MIDLINE_ANY = 0, - DWRITE_PANOSE_MIDLINE_NO_FIT = 1, - DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED = 2, - DWRITE_PANOSE_MIDLINE_STANDARD_POINTED = 3, - DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED = 4, - DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED = 5, - DWRITE_PANOSE_MIDLINE_HIGH_POINTED = 6, - DWRITE_PANOSE_MIDLINE_HIGH_SERIFED = 7, - DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED = 8, - DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED = 9, - DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED = 10, - DWRITE_PANOSE_MIDLINE_LOW_TRIMMED = 11, - DWRITE_PANOSE_MIDLINE_LOW_POINTED = 12, - DWRITE_PANOSE_MIDLINE_LOW_SERIFED = 13 -}; - -/// -/// Relative size of lowercase letters and treament of diacritic marks -/// and uppercase glyphs. -/// Present for families: 2-text -/// -enum DWRITE_PANOSE_XHEIGHT -{ - DWRITE_PANOSE_XHEIGHT_ANY = 0, - DWRITE_PANOSE_XHEIGHT_NO_FIT = 1, - DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL = 2, - DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD = 3, - DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE = 4, - DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL = 5, - DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD = 6, - DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE = 7, - DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD, - DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD -}; - -/// -/// Kind of tool used to create character forms. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_TOOL_KIND -{ - DWRITE_PANOSE_TOOL_KIND_ANY = 0, - DWRITE_PANOSE_TOOL_KIND_NO_FIT = 1, - DWRITE_PANOSE_TOOL_KIND_FLAT_NIB = 2, - DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT = 3, - DWRITE_PANOSE_TOOL_KIND_ENGRAVED = 4, - DWRITE_PANOSE_TOOL_KIND_BALL = 5, - DWRITE_PANOSE_TOOL_KIND_BRUSH = 6, - DWRITE_PANOSE_TOOL_KIND_ROUGH = 7, - DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP = 8, - DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH = 9 -}; - -/// -/// Monospace vs proportional. -/// Present for families: 3-script, 5-symbol -/// -enum DWRITE_PANOSE_SPACING -{ - DWRITE_PANOSE_SPACING_ANY = 0, - DWRITE_PANOSE_SPACING_NO_FIT = 1, - DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED = 2, - DWRITE_PANOSE_SPACING_MONOSPACED = 3, -}; - -/// -/// Ratio between width and height of the face. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_ASPECT_RATIO -{ - DWRITE_PANOSE_ASPECT_RATIO_ANY = 0, - DWRITE_PANOSE_ASPECT_RATIO_NO_FIT = 1, - DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED = 2, - DWRITE_PANOSE_ASPECT_RATIO_CONDENSED = 3, - DWRITE_PANOSE_ASPECT_RATIO_NORMAL = 4, - DWRITE_PANOSE_ASPECT_RATIO_EXPANDED = 5, - DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED = 6 -}; - -/// -/// Topology of letterforms. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_SCRIPT_TOPOLOGY -{ - DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY = 0, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT = 1, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED = 2, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING = 3, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED = 4, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED = 5, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING = 6, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED = 7, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED = 8, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING = 9, - DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED = 10 -}; - -/// -/// General look of the face, considering slope and tails. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_SCRIPT_FORM -{ - DWRITE_PANOSE_SCRIPT_FORM_ANY = 0, - DWRITE_PANOSE_SCRIPT_FORM_NO_FIT = 1, - DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING = 2, - DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING = 3, - DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING = 4, - DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING = 5, - DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING = 6, - DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING = 7, - DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING = 8, - DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING = 9, - DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING = 10, - DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING = 11, - DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING = 12, - DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING = 13 -}; - -/// -/// How character ends and miniscule ascenders are treated. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_FINIALS -{ - DWRITE_PANOSE_FINIALS_ANY = 0, - DWRITE_PANOSE_FINIALS_NO_FIT = 1, - DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS = 2, - DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS = 3, - DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS = 4, - DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS = 5, - DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS = 6, - DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS = 7, - DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS = 8, - DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS = 9, - DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS = 10, - DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS = 11, - DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS = 12, - DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS = 13 -}; - -/// -/// Relative size of the lowercase letters. -/// Present for families: 3-script -/// -enum DWRITE_PANOSE_XASCENT -{ - DWRITE_PANOSE_XASCENT_ANY = 0, - DWRITE_PANOSE_XASCENT_NO_FIT = 1, - DWRITE_PANOSE_XASCENT_VERY_LOW = 2, - DWRITE_PANOSE_XASCENT_LOW = 3, - DWRITE_PANOSE_XASCENT_MEDIUM = 4, - DWRITE_PANOSE_XASCENT_HIGH = 5, - DWRITE_PANOSE_XASCENT_VERY_HIGH = 6 -}; - -/// -/// General look of the face. -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_DECORATIVE_CLASS -{ - DWRITE_PANOSE_DECORATIVE_CLASS_ANY = 0, - DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT = 1, - DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE = 2, - DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY = 3, - DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS = 4, - DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT = 5, - DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS = 6, - DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON = 7, - DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS = 8, - DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED = 9, - DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND = 10, - DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE = 11, - DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE = 12 -}; - -/// -/// Ratio between the width and height of the face. -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_ASPECT -{ - DWRITE_PANOSE_ASPECT_ANY = 0, - DWRITE_PANOSE_ASPECT_NO_FIT = 1, - DWRITE_PANOSE_ASPECT_SUPER_CONDENSED = 2, - DWRITE_PANOSE_ASPECT_VERY_CONDENSED = 3, - DWRITE_PANOSE_ASPECT_CONDENSED = 4, - DWRITE_PANOSE_ASPECT_NORMAL = 5, - DWRITE_PANOSE_ASPECT_EXTENDED = 6, - DWRITE_PANOSE_ASPECT_VERY_EXTENDED = 7, - DWRITE_PANOSE_ASPECT_SUPER_EXTENDED = 8, - DWRITE_PANOSE_ASPECT_MONOSPACED = 9 -}; - -/// -/// Type of fill/line (treatment). -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_FILL -{ - DWRITE_PANOSE_FILL_ANY = 0, - DWRITE_PANOSE_FILL_NO_FIT = 1, - DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL = 2, - DWRITE_PANOSE_FILL_NO_FILL = 3, - DWRITE_PANOSE_FILL_PATTERNED_FILL = 4, - DWRITE_PANOSE_FILL_COMPLEX_FILL = 5, - DWRITE_PANOSE_FILL_SHAPED_FILL = 6, - DWRITE_PANOSE_FILL_DRAWN_DISTRESSED = 7, -}; - -/// -/// Outline handling. -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_LINING -{ - DWRITE_PANOSE_LINING_ANY = 0, - DWRITE_PANOSE_LINING_NO_FIT = 1, - DWRITE_PANOSE_LINING_NONE = 2, - DWRITE_PANOSE_LINING_INLINE = 3, - DWRITE_PANOSE_LINING_OUTLINE = 4, - DWRITE_PANOSE_LINING_ENGRAVED = 5, - DWRITE_PANOSE_LINING_SHADOW = 6, - DWRITE_PANOSE_LINING_RELIEF = 7, - DWRITE_PANOSE_LINING_BACKDROP = 8 -}; - -/// -/// Overall shape characteristics of the font. -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY -{ - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY = 0, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT = 1, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD = 2, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE = 3, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT = 4, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO = 5, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING = 6, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS = 7, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS = 8, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS = 9, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE = 10, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY = 11, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A = 12, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE = 13, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER = 14, - DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE = 15 -}; - -/// -/// Type of characters available in the font. -/// Present for families: 4-decorative -/// -enum DWRITE_PANOSE_CHARACTER_RANGES -{ - DWRITE_PANOSE_CHARACTER_RANGES_ANY = 0, - DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT = 1, - DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION = 2, - DWRITE_PANOSE_CHARACTER_RANGES_LITERALS = 3, - DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE = 4, - DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS = 5 -}; - -/// -/// Kind of symbol set. -/// Present for families: 5-symbol -/// -enum DWRITE_PANOSE_SYMBOL_KIND -{ - DWRITE_PANOSE_SYMBOL_KIND_ANY = 0, - DWRITE_PANOSE_SYMBOL_KIND_NO_FIT = 1, - DWRITE_PANOSE_SYMBOL_KIND_MONTAGES = 2, - DWRITE_PANOSE_SYMBOL_KIND_PICTURES = 3, - DWRITE_PANOSE_SYMBOL_KIND_SHAPES = 4, - DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC = 5, - DWRITE_PANOSE_SYMBOL_KIND_MUSIC = 6, - DWRITE_PANOSE_SYMBOL_KIND_EXPERT = 7, - DWRITE_PANOSE_SYMBOL_KIND_PATTERNS = 8, - DWRITE_PANOSE_SYMBOL_KIND_BOARDERS = 9, - DWRITE_PANOSE_SYMBOL_KIND_ICONS = 10, - DWRITE_PANOSE_SYMBOL_KIND_LOGOS = 11, - DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC = 12 -}; - -/// -/// Aspect ratio of symbolic characters. -/// Present for families: 5-symbol -/// -enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO -{ - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY = 0, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT = 1, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH = 2, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE = 3, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE = 4, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE = 5, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE = 6, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL = 7, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW = 8, - DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW = 9 -}; - -/// -/// Specifies the policy used by GetRecommendedRenderingMode to determine whether to -/// render glyphs in outline mode. Glyphs are rendered in outline mode by default at -/// large sizes for performance reasons, but how large (i.e., the outline threshold) -/// depends on the quality of outline rendering. If the graphics system renders anti- -/// aliased outlines then a relatively low threshold is used, but if the graphics -/// system renders aliased outlines then a much higher threshold is used. -/// -enum DWRITE_OUTLINE_THRESHOLD -{ - DWRITE_OUTLINE_THRESHOLD_ANTIALIASED, - DWRITE_OUTLINE_THRESHOLD_ALIASED -}; - -/// -/// Baseline for text alignment. -/// -enum DWRITE_BASELINE -{ - /// - /// The Roman baseline for horizontal, Central baseline for vertical. - /// - DWRITE_BASELINE_DEFAULT, - - /// - /// The baseline used by alphabetic scripts such as Latin, Greek, Cyrillic. - /// - DWRITE_BASELINE_ROMAN, - - /// - /// Central baseline, generally used for vertical text. - /// - DWRITE_BASELINE_CENTRAL, - - /// - /// Mathematical baseline which math characters are centered on. - /// - DWRITE_BASELINE_MATH, - - /// - /// Hanging baseline, used in scripts like Devanagari. - /// - DWRITE_BASELINE_HANGING, - - /// - /// Ideographic bottom baseline for CJK, left in vertical. - /// - DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM, - - /// - /// Ideographic top baseline for CJK, right in vertical. - /// - DWRITE_BASELINE_IDEOGRAPHIC_TOP, - - /// - /// The bottom-most extent in horizontal, left-most in vertical. - /// - DWRITE_BASELINE_MINIMUM, - - /// - /// The top-most extent in horizontal, right-most in vertical. - /// - DWRITE_BASELINE_MAXIMUM, -}; - -/// -/// The desired kind of glyph orientation for the text. The client specifies -/// this to the analyzer as the desired orientation, but note this is the -/// client preference, and the constraints of the script will determine the -/// final presentation. -/// -enum DWRITE_VERTICAL_GLYPH_ORIENTATION -{ - /// - /// In vertical layout, naturally horizontal scripts (Latin, Thai, Arabic, - /// Devanagari) rotate 90 degrees clockwise, while ideographic scripts - /// (Chinese, Japanese, Korean) remain upright, 0 degrees. - /// - DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT, - - /// - /// Ideographic scripts and scripts that permit stacking - /// (Latin, Hebrew) are stacked in vertical reading layout. - /// Connected scripts (Arabic, Syriac, 'Phags-pa, Ogham), - /// which would otherwise look broken if glyphs were kept - /// at 0 degrees, remain connected and rotate. - /// - DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED, -}; - -/// -/// How the glyph is oriented to the x-axis. This is an output from the text -/// analyzer, dependent on the desired orientation, bidi level, and character -/// properties. -/// -enum DWRITE_GLYPH_ORIENTATION_ANGLE -{ - /// - /// Glyph orientation is upright. - /// - DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES, - - /// - /// Glyph orientation is rotated 90 clockwise. - /// - DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES, - - /// - /// Glyph orientation is upside-down. - /// - DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES, - - /// - /// Glyph orientation is rotated 270 clockwise. - /// - DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES, -}; - - -struct DWRITE_FONT_METRICS1 : public DWRITE_FONT_METRICS -{ - /// - /// Left edge of accumulated bounding blackbox of all glyphs in the font. - /// - INT16 glyphBoxLeft; - - /// - /// Top edge of accumulated bounding blackbox of all glyphs in the font. - /// - INT16 glyphBoxTop; - - /// - /// Right edge of accumulated bounding blackbox of all glyphs in the font. - /// - INT16 glyphBoxRight; - - /// - /// Bottom edge of accumulated bounding blackbox of all glyphs in the font. - /// - INT16 glyphBoxBottom; - - /// - /// Horizontal position of the subscript relative to the baseline origin. - /// This is typically negative (to the left) in italic/oblique fonts, and - /// zero in regular fonts. - /// - INT16 subscriptPositionX; - - /// - /// Vertical position of the subscript relative to the baseline. - /// This is typically negative. - /// - INT16 subscriptPositionY; - - /// - /// Horizontal size of the subscript em box in design units, used to - /// scale the simulated subscript relative to the full em box size. - /// This the numerator of the scaling ratio where denominator is the - /// design units per em. If this member is zero, the font does not specify - /// a scale factor, and the client should use its own policy. - /// - INT16 subscriptSizeX; - - /// - /// Vertical size of the subscript em box in design units, used to - /// scale the simulated subscript relative to the full em box size. - /// This the numerator of the scaling ratio where denominator is the - /// design units per em. If this member is zero, the font does not specify - /// a scale factor, and the client should use its own policy. - /// - INT16 subscriptSizeY; - - /// - /// Horizontal position of the superscript relative to the baseline origin. - /// This is typically positive (to the right) in italic/oblique fonts, and - /// zero in regular fonts. - /// - INT16 superscriptPositionX; - - /// - /// Vertical position of the superscript relative to the baseline. - /// This is typically positive. - /// - INT16 superscriptPositionY; - - /// - /// Horizontal size of the superscript em box in design units, used to - /// scale the simulated superscript relative to the full em box size. - /// This the numerator of the scaling ratio where denominator is the - /// design units per em. If this member is zero, the font does not specify - /// a scale factor, and the client should use its own policy. - /// - INT16 superscriptSizeX; - - /// - /// Vertical size of the superscript em box in design units, used to - /// scale the simulated superscript relative to the full em box size. - /// This the numerator of the scaling ratio where denominator is the - /// design units per em. If this member is zero, the font does not specify - /// a scale factor, and the client should use its own policy. - /// - INT16 superscriptSizeY; - - /// - /// Indicates that the ascent, descent, and lineGap are based on newer - /// 'typographic' values in the font, rather than legacy values. - /// - BOOL hasTypographicMetrics; -}; - - -/// -/// Metrics for caret placement in a font. -/// -struct DWRITE_CARET_METRICS -{ - /// - /// Vertical rise of the caret. Rise / Run yields the caret angle. - /// Rise = 1 for perfectly upright fonts (non-italic). - /// - INT16 slopeRise; - - /// - /// Horizontal run of th caret. Rise / Run yields the caret angle. - /// Run = 0 for perfectly upright fonts (non-italic). - /// - INT16 slopeRun; - - /// - /// Horizontal offset of the caret along the baseline for good appearance. - /// Offset = 0 for perfectly upright fonts (non-italic). - /// - INT16 offset; -}; - - -/// -/// Typeface classification values, used for font selection and matching. -/// -/// -/// Note the family type (index 0) is the only stable entry in the 10-byte -/// array, as all the following entries can change dynamically depending on -/// context of the first field. -/// -union DWRITE_PANOSE -{ - UINT8 values[10]; - - UINT8 familyKind; // this is the only field that never changes meaning - - struct - { - UINT8 familyKind; // = 2 for text - UINT8 serifStyle; - UINT8 weight; - UINT8 proportion; - UINT8 contrast; - UINT8 strokeVariation; - UINT8 armStyle; - UINT8 letterform; - UINT8 midline; - UINT8 xHeight; - } text; - - struct - { - UINT8 familyKind; // = 3 for script - UINT8 toolKind; - UINT8 weight; - UINT8 spacing; - UINT8 aspectRatio; - UINT8 contrast; - UINT8 scriptTopology; - UINT8 scriptForm; - UINT8 finials; - UINT8 xAscent; - } script; - - struct - { - UINT8 familyKind; // = 4 for decorative - UINT8 decorativeClass; - UINT8 weight; - UINT8 aspect; - UINT8 contrast; - UINT8 serifVariant; - UINT8 fill; // treatment - UINT8 lining; - UINT8 decorativeTopology; - UINT8 characterRange; - } decorative; - - struct - { - UINT8 familyKind; // = 5 for symbol - UINT8 symbolKind; - UINT8 weight; - UINT8 spacing; - UINT8 aspectRatioAndContrast; // hard coded to no-fit (1) - UINT8 aspectRatio94; - UINT8 aspectRatio119; - UINT8 aspectRatio157; - UINT8 aspectRatio163; - UINT8 aspectRatio211; - } symbol; -}; - - -/// -/// Range of Unicode codepoints. -/// -struct DWRITE_UNICODE_RANGE -{ - /// - /// The first codepoint in the Unicode range. - /// - UINT32 first; - - /// - /// The last codepoint in the Unicode range. - /// - UINT32 last; -}; - - -/// -/// Script-specific properties for caret navigation and justification. -/// -struct DWRITE_SCRIPT_PROPERTIES -{ - /// - /// The standardized four character code for the given script. - /// Note these only include the general Unicode scripts, not any - /// additional ISO 15924 scripts for bibliographic distinction - /// (for example, Fraktur Latin vs Gaelic Latin). - /// http://unicode.org/iso15924/iso15924-codes.html - /// - UINT32 isoScriptCode; - - /// - /// The standardized numeric code, ranging 0-999. - /// http://unicode.org/iso15924/iso15924-codes.html - /// - UINT32 isoScriptNumber; - - /// - /// Number of characters to estimate look-ahead for complex scripts. - /// Latin and all Kana are generally 1. Indic scripts are up to 15, - /// and most others are 8. Note that combining marks and variation - /// selectors can produce clusters longer than these look-aheads, - /// so this estimate is considered typical language use. Diacritics - /// must be tested explicitly separately. - /// - UINT32 clusterLookahead; - - /// - /// Appropriate character to elongate the given script for justification. - /// - /// Examples: - /// Arabic - U+0640 Tatweel - /// Ogham - U+1680 Ogham Space Mark - /// - UINT32 justificationCharacter; - - /// - /// Restrict the caret to whole clusters, like Thai and Devanagari. Scripts - /// such as Arabic by default allow navigation between clusters. Others - /// like Thai always navigate across whole clusters. - /// - UINT32 restrictCaretToClusters : 1; - - /// - /// The language uses dividers between words, such as spaces between Latin - /// or the Ethiopic wordspace. - /// - /// Examples: Latin, Greek, Devanagari, Ethiopic - /// Excludes: Chinese, Korean, Thai. - /// - UINT32 usesWordDividers : 1; - - /// - /// The characters are discrete units from each other. This includes both - /// block scripts and clustered scripts. - /// - /// Examples: Latin, Greek, Cyrillic, Hebrew, Chinese, Thai - /// - UINT32 isDiscreteWriting : 1; - - /// - /// The language is a block script, expanding between characters. - /// - /// Examples: Chinese, Japanese, Korean, Bopomofo. - /// - UINT32 isBlockWriting : 1; - - /// - /// The language is justified within glyph clusters, not just between glyph - /// clusters. One such as the character sequence is Thai Lu and Sara Am - /// (U+E026, U+E033) which form a single cluster but still expand between - /// them. - /// - /// Examples: Thai, Lao, Khmer - /// - UINT32 isDistributedWithinCluster : 1; - - /// - /// The script's clusters are connected to each other (such as the - /// baseline-linked Devanagari), and no separation should be added - /// between characters. Note that cursively linked scripts like Arabic - /// are also connected (but not all connected scripts are - /// cursive). - /// - /// Examples: Devanagari, Arabic, Syriac, Bengali, Gurmukhi, Ogham - /// Excludes: Latin, Chinese, Thaana - /// - UINT32 isConnectedWriting : 1; - - /// - /// The script is naturally cursive (Arabic/Syriac), meaning it uses other - /// justification methods like kashida extension rather than intercharacter - /// spacing. Note that although other scripts like Latin and Japanese may - /// actually support handwritten cursive forms, they are not considered - /// cursive scripts. - /// - /// Examples: Arabic, Syriac, Mongolian - /// Excludes: Thaana, Devanagari, Latin, Chinese - /// - UINT32 isCursiveWriting : 1; - - UINT32 reserved : 25; -}; - - -/// -/// Justification information per glyph. -/// -struct DWRITE_JUSTIFICATION_OPPORTUNITY -{ - /// - /// Minimum amount of expansion to apply to the side of the glyph. - /// This may vary from 0 to infinity, typically being zero except - /// for kashida. - /// - FLOAT expansionMinimum; - - /// - /// Maximum amount of expansion to apply to the side of the glyph. - /// This may vary from 0 to infinity, being zero for fixed-size characters - /// and connected scripts, and non-zero for discrete scripts, and non-zero - /// for cursive scripts at expansion points. - /// - FLOAT expansionMaximum; - - /// - /// Maximum amount of compression to apply to the side of the glyph. - /// This may vary from 0 up to the glyph cluster size. - /// - FLOAT compressionMaximum; - - /// - /// Priority of this expansion point. Larger priorities are applied later, - /// while priority zero does nothing. - /// - UINT32 expansionPriority : 8; - - /// - /// Priority of this compression point. Larger priorities are applied later, - /// while priority zero does nothing. - /// - UINT32 compressionPriority : 8; - - /// - /// Allow this expansion point to use up any remaining slack space even - /// after all expansion priorities have been used up. - /// - UINT32 allowResidualExpansion : 1; - - /// - /// Allow this compression point to use up any remaining space even after - /// all compression priorities have been used up. - /// - UINT32 allowResidualCompression : 1; - - /// - /// Apply expansion/compression to the leading edge of the glyph. This will - /// be false for connected scripts, fixed-size characters, and diacritics. - /// It is generally false within a multi-glyph cluster, unless the script - /// allows expansion of glyphs within a cluster, like Thai. - /// - UINT32 applyToLeadingEdge : 1; - - /// - /// Apply expansion/compression to the trailing edge of the glyph. This will - /// be false for connected scripts, fixed-size characters, and diacritics. - /// It is generally false within a multi-glyph cluster, unless the script - /// allows expansion of glyphs within a cluster, like Thai. - /// - UINT32 applyToTrailingEdge : 1; - - UINT32 reserved : 12; -}; - - -interface IDWriteTextAnalysisSource1; -interface IDWriteTextAnalysisSink1; -interface IDWriteRenderingParams1; - -/// -/// The root factory interface for all DWrite objects. -/// -interface DWRITE_DECLARE_INTERFACE("30572f99-dac6-41db-a16e-0486307e606a") IDWriteFactory1 : public IDWriteFactory -{ - /// - /// Gets a font collection representing the set of end-user defined - /// custom fonts. - /// - /// Receives a pointer to the EUDC font - /// collection object, or NULL in case of failure. - /// If this parameter is nonzero, the - /// function performs an immediate check for changes to the set of - /// EUDC fonts. If this parameter is FALSE, the function will still - /// detect changes, but there may be some latency. For example, an - /// application might specify TRUE if it has itself just modified a - /// font and wants to be sure the font collection contains that font. - /// - /// - /// Standard HRESULT error code. Note that if no EUDC is set on the system, - /// the returned collection will be empty, meaning it will return success - /// but GetFontFamilyCount will be zero. - /// - /// - /// Querying via IDWriteFontCollection::FindFamilyName for a specific - /// family (like MS Gothic) will return the matching family-specific EUDC - /// font if one exists. Querying for "" will return the global EUDC font. - /// For example, if you were matching an EUDC character within a run of - /// the base font PMingLiu, you would retrieve the corresponding EUDC font - /// face using GetEudcFontCollection, then FindFamilyName with "PMingLiu", - /// followed by GetFontFamily and CreateFontFace. - /// - /// Be aware that eudcedit.exe can create placeholder empty glyphs that - /// have zero advance width and no glyph outline. Although they are present - /// in the font (HasCharacter returns true), you are best to ignore - /// these and continue on with font fallback in your layout if the metrics - /// for the glyph are zero. - /// - STDMETHOD(GetEudcFontCollection)( - _COM_Outptr_ IDWriteFontCollection** fontCollection, - BOOL checkForUpdates = FALSE - ) PURE; - - /// - /// Creates a rendering parameters object with the specified properties. - /// - /// The gamma value used for gamma correction, which must be greater than zero and cannot exceed 256. - /// The amount of contrast enhancement, zero or greater. - /// The amount of contrast enhancement to use for grayscale antialiasing, zero or greater. - /// The degree of ClearType level, from 0.0f (no ClearType) to 1.0f (full ClearType). - /// The geometry of a device pixel. - /// Method of rendering glyphs. In most cases, this should be DWRITE_RENDERING_MODE_DEFAULT to automatically use an appropriate mode. - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateCustomRenderingParams)( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT enhancedContrastGrayscale, - FLOAT clearTypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - _COM_Outptr_ IDWriteRenderingParams1** renderingParams - ) PURE; - - using IDWriteFactory::CreateCustomRenderingParams; -}; - - -/// -/// 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("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf") IDWriteFontFace1 : public IDWriteFontFace -{ - /// - /// Gets common metrics for the font in design units. - /// These metrics are applicable to all the glyphs within a font, - /// and are used by applications for layout calculations. - /// - /// Metrics structure to fill in. - STDMETHOD_(void, GetMetrics)( - _Out_ DWRITE_FONT_METRICS1* fontMetrics - ) PURE; - - /// - /// Gets common metrics for the font in design units. - /// These metrics are applicable to all the glyphs within a font, - /// and are used by applications for layout calculations. - /// - /// Logical size of the font in DIP units. A DIP - /// ("device-independent pixel") equals 1/96 inch. - /// Number of physical pixels per DIP. For - /// example, if the DPI of the rendering surface is 96 this value is - /// 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Optional transform applied to the glyphs and - /// their positions. This transform is applied after the scaling - /// specified by the font size and pixelsPerDip. - /// Font metrics structure to fill in. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGdiCompatibleMetrics)( - FLOAT emSize, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - _Out_ DWRITE_FONT_METRICS1* fontMetrics - ) PURE; - - /// - /// Gets caret metrics for the font in design units. These are used by - /// text editors for drawing the correct caret placement/slant. - /// - /// Metrics structure to fill in. - STDMETHOD_(void, GetCaretMetrics)( - _Out_ DWRITE_CARET_METRICS* caretMetrics - ) PURE; - - /// - /// Returns the list of character ranges supported by the font, which is - /// useful for scenarios like character picking, glyph display, and - /// efficient font selection lookup. This is similar to GDI's - /// GetFontUnicodeRanges, except that it returns the full Unicode range, - /// not just 16-bit UCS-2. - /// - /// Maximum number of character ranges passed - /// in from the client. - /// Array of character ranges. - /// Actual number of character ranges, - /// regardless of the maximum count. - /// - /// These ranges are from the cmap, not the OS/2::ulCodePageRange1. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetUnicodeRanges)( - UINT32 maxRangeCount, - _Out_writes_to_opt_(maxRangeCount, *actualRangeCount) DWRITE_UNICODE_RANGE* unicodeRanges, - _Out_ UINT32* actualRangeCount - ) PURE; - - /// - /// Returns true if the font is monospaced, meaning its characters are the - /// same fixed-pitch width (non-proportional). - /// - STDMETHOD_(BOOL, IsMonospacedFont)() PURE; - - /// - /// Returns the advances in design units for a sequences of glyphs. - /// - /// Number of glyphs to retrieve advances for. - /// Array of glyph id's to retrieve advances for. - /// Returned advances in font design units for - /// each glyph. - /// Retrieve the glyph's vertical advance height - /// rather than horizontal advance widths. - /// - /// This is equivalent to calling GetGlyphMetrics and using only the - /// advance width/height. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetDesignGlyphAdvances)( - UINT32 glyphCount, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _Out_writes_(glyphCount) INT32* glyphAdvances, - BOOL isSideways = FALSE - ) PURE; - - /// - /// Returns the pixel-aligned advances for a sequences of glyphs, the same - /// as GetGdiCompatibleGlyphMetrics would return. - /// - /// Logical size of the font in DIP units. A DIP - /// ("device-independent pixel") equals 1/96 inch. - /// Number of physical pixels per DIP. For - /// example, if the DPI of the rendering surface is 96 this value is - /// 1.0f. If the DPI is 120, this value is 120.0f/96. - /// Optional transform applied to the glyphs and - /// their positions. This transform is applied after the scaling - /// specified by the font size and pixelsPerDip. - /// When FALSE, the metrics are the same as - /// GDI aliased text (DWRITE_MEASURING_MODE_GDI_CLASSIC). When TRUE, - /// the metrics are the same as those measured by GDI using a font - /// using CLEARTYPE_NATURAL_QUALITY (DWRITE_MEASURING_MODE_GDI_NATURAL). - /// Retrieve the glyph's vertical advances rather - /// than horizontal advances. - /// Total glyphs to retrieve adjustments for. - /// Array of glyph id's to retrieve advances. - /// Returned advances in font design units for - /// each glyph. - /// - /// This is equivalent to calling GetGdiCompatibleGlyphMetrics and using only - /// the advance width/height. Like GetGdiCompatibleGlyphMetrics, these are in - /// design units, meaning they must be scaled down by - /// DWRITE_FONT_METRICS::designUnitsPerEm. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetGdiCompatibleGlyphAdvances)( - FLOAT emSize, - FLOAT pixelsPerDip, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL useGdiNatural, - BOOL isSideways, - UINT32 glyphCount, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _Out_writes_(glyphCount) INT32* glyphAdvances - ) PURE; - - /// - /// Retrieves the kerning pair adjustments from the font's kern table. - /// - /// Number of glyphs to retrieve adjustments for. - /// Array of glyph id's to retrieve adjustments - /// for. - /// Returned advances in font design units for - /// each glyph. The last glyph adjustment is zero. - /// - /// This is not a direct replacement for GDI's character based - /// GetKerningPairs, but it serves the same role, without the client - /// needing to cache them locally. It also uses glyph id's directly - /// rather than UCS-2 characters (how the kern table actually stores - /// them) which avoids glyph collapse and ambiguity, such as the dash - /// and hyphen, or space and non-breaking space. - /// - /// - /// Newer fonts may have only GPOS kerning instead of the legacy pair - /// table kerning. Such fonts, like Gabriola, will only return 0's for - /// adjustments. This function does not virtualize and flatten these - /// GPOS entries into kerning pairs. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetKerningPairAdjustments)( - UINT32 glyphCount, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _Out_writes_(glyphCount) INT32* glyphAdvanceAdjustments - ) PURE; - - /// - /// Returns whether or not the font supports pair-kerning. - /// - /// - /// If the font does not support pair table kerning, there is no need to - /// call GetKerningPairAdjustments (it would be all zeroes). - /// - /// - /// Whether the font supports kerning pairs. - /// - STDMETHOD_(BOOL, HasKerningPairs)() PURE; - - /// - /// Determines the recommended text rendering mode to be used based on the - /// font, size, world transform, and measuring mode. - /// - /// Logical font size in DIPs. - /// Number of pixels per logical inch in the horizontal direction. - /// Number of pixels per logical inch in the vertical direction. - /// Specifies the world transform. - /// Specifies the quality of the graphics system's outline rendering, - /// affects the size threshold above which outline rendering is used. - /// Specifies the method used to measure during text layout. For proper - /// glyph spacing, the function returns a rendering mode that is compatible with the specified - /// measuring mode. - /// Receives the recommended rendering mode. - /// - /// This method should be used to determine the actual rendering mode in cases where the rendering - /// mode of the rendering params object is DWRITE_RENDERING_MODE_DEFAULT. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetRecommendedRenderingMode)( - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL isSideways, - DWRITE_OUTLINE_THRESHOLD outlineThreshold, - DWRITE_MEASURING_MODE measuringMode, - _Out_ DWRITE_RENDERING_MODE* renderingMode - ) PURE; - - /// - /// Retrieves the vertical forms of the nominal glyphs retrieved from - /// GetGlyphIndices, using the font's 'vert' table. This is used in - /// CJK vertical layout so the correct characters are shown. - /// - /// Number of glyphs to retrieve. - /// Original glyph indices from cmap. - /// The vertical form of glyph indices. - /// - /// Call GetGlyphIndices to get the nominal glyph indices, followed by - /// calling this to remap the to the substituted forms, when the run - /// is sideways, and the font has vertical glyph variants. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetVerticalGlyphVariants)( - UINT32 glyphCount, - _In_reads_(glyphCount) UINT16 const* nominalGlyphIndices, - _Out_writes_(glyphCount) UINT16* verticalGlyphIndices - ) PURE; - - /// - /// Returns whether or not the font has any vertical glyph variants. - /// - /// - /// For OpenType fonts, this will return true if the font contains a 'vert' - /// feature. - /// - /// - /// True if the font contains vertical glyph variants. - /// - STDMETHOD_(BOOL, HasVerticalGlyphVariants)() PURE; -}; - - -/// -/// The IDWriteFont interface represents a physical font in a font collection. -/// -interface DWRITE_DECLARE_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32738") IDWriteFont1 : public IDWriteFont -{ - /// - /// Gets common metrics for the font in design units. - /// These metrics are applicable to all the glyphs within a font, - /// and are used by applications for layout calculations. - /// - /// Metrics structure to fill in. - STDMETHOD_(void, GetMetrics)( - _Out_ DWRITE_FONT_METRICS1* fontMetrics - ) PURE; - - /// - /// Gets the PANOSE values from the font, used for font selection and - /// matching. - /// - /// PANOSE structure to fill in. - /// - /// The function does not simulate these, such as substituting a weight or - /// proportion inferred on other values. If the font does not specify them, - /// they are all set to 'any' (0). - /// - STDMETHOD_(void, GetPanose)( - _Out_ DWRITE_PANOSE* panose - ) PURE; - - /// - /// Returns the list of character ranges supported by the font, which is - /// useful for scenarios like character picking, glyph display, and - /// efficient font selection lookup. This is similar to GDI's - /// GetFontUnicodeRanges, except that it returns the full Unicode range, - /// not just 16-bit UCS-2. - /// - /// Maximum number of character ranges passed - /// in from the client. - /// Array of character ranges. - /// Actual number of character ranges, - /// regardless of the maximum count. - /// - /// These ranges are from the cmap, not the OS/2::ulCodePageRange1. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetUnicodeRanges)( - UINT32 maxRangeCount, - _Out_writes_to_opt_(maxRangeCount, *actualRangeCount) DWRITE_UNICODE_RANGE* unicodeRanges, - _Out_ UINT32* actualRangeCount - ) PURE; - - /// - /// Returns true if the font is monospaced, meaning its characters are the - /// same fixed-pitch width (non-proportional). - /// - STDMETHOD_(BOOL, IsMonospacedFont)() PURE; -}; - -/// -/// The interface that represents text rendering settings for glyph rasterization and filtering. -/// -interface DWRITE_DECLARE_INTERFACE("94413cf4-a6fc-4248-8b50-6674348fcad3") IDWriteRenderingParams1 : public IDWriteRenderingParams -{ - /// - /// Gets the amount of contrast enhancement to use for grayscale antialiasing. - /// Valid values are greater than or equal to zero. - /// - STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)() PURE; -}; - -/// -/// Analyzes various text properties for complex script processing. -/// -interface DWRITE_DECLARE_INTERFACE("80DAD800-E21F-4E83-96CE-BFCCE500DB7C") IDWriteTextAnalyzer1 : public IDWriteTextAnalyzer -{ - /// - /// Applies spacing between characters, properly adjusting glyph clusters - /// and diacritics. - /// - /// The spacing before each character, in reading order. - /// The spacing after each character, in reading order. - /// The minimum advance of each character, - /// to prevent characters from becoming too thin or zero-width. This - /// must be zero or greater. - /// The length of the clustermap and original text. - /// The number of glyphs. - /// Mapping from character ranges to glyph ranges. - /// The advance width of each glyph. - /// The offset of the origin of each glyph. - /// Properties of each glyph, from GetGlyphs. - /// The new advance width of each glyph. - /// The new offset of the origin of each glyph. - /// - /// The input and output advances/offsets are allowed to alias the same array. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(ApplyCharacterSpacing)( - FLOAT leadingSpacing, - FLOAT trailingSpacing, - FLOAT minimumAdvanceWidth, - UINT32 textLength, - UINT32 glyphCount, - _In_reads_(textLength) UINT16 const* clusterMap, - _In_reads_(glyphCount) FLOAT const* glyphAdvances, - _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets, - _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties, - _Out_writes_(glyphCount) FLOAT* modifiedGlyphAdvances, - _Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets - ) PURE; - - /// - /// Retrieves the given baseline from the font. - /// - /// The font face to read. - /// The baseline of interest. - /// Whether the baseline is vertical or horizontal. - /// Simulate the baseline if it is missing in the font. - /// Script analysis result from AnalyzeScript. - /// The language of the run. - /// The baseline coordinate value in design units. - /// Whether the returned baseline exists in the font. - /// - /// If the baseline does not exist in the font, it is not considered an - /// error, but the function will return exists = false. You may then use - /// heuristics to calculate the missing base, or, if the flag - /// simulationAllowed is true, the function will compute a reasonable - /// approximation for you. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetBaseline)( - _In_ IDWriteFontFace* fontFace, - DWRITE_BASELINE baseline, - BOOL isVertical, - BOOL isSimulationAllowed, - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - _Out_ INT32* baselineCoordinate, - _Out_ BOOL* exists - ) PURE; - - /// - /// Analyzes a text range for script orientation, reading text and - /// attributes from the source and reporting results to the sink. - /// - /// Source object to analyze. - /// Starting position within the source object. - /// Length to analyze. - /// Callback object. - /// - /// Standard HRESULT error code. - /// - /// - /// All bidi analysis should be resolved before calling this. - /// - STDMETHOD(AnalyzeVerticalGlyphOrientation)( - _In_ IDWriteTextAnalysisSource1* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_ IDWriteTextAnalysisSink1* analysisSink - ) PURE; - - /// - /// Returns 2x3 transform matrix for the respective angle to draw the - /// glyph run. - /// - /// The angle reported into - /// SetGlyphOrientation. - /// Whether the run's glyphs are sideways or not. - /// Returned transform. - /// - /// - /// Standard HRESULT error code. - /// - /// - /// The returned displacement is zero. - /// - STDMETHOD(GetGlyphOrientationTransform)( - DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle, - BOOL isSideways, - _Out_ DWRITE_MATRIX* transform - ) PURE; - - /// - /// Returns the properties for a given script. - /// - /// The script for a run of text returned - /// from IDWriteTextAnalyzer::AnalyzeScript. - /// Information for the script. - /// - /// Returns properties for the given script. If the script is invalid, - /// it returns generic properties for the unknown script and E_INVALIDARG. - /// - STDMETHOD(GetScriptProperties)( - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - _Out_ DWRITE_SCRIPT_PROPERTIES* scriptProperties - ) PURE; - - /// - /// Determines the complexity of text, and whether or not full script - /// shaping needs to be called (GetGlyphs). - /// - /// The font face to read. - /// Length of the text to check. - /// The text to check for complexity. This string - /// may be UTF-16, but any supplementary characters will be considered - /// complex. - /// If true, the text is simple, and the - /// glyphIndices array will already have the nominal glyphs for you. - /// Otherwise you need to call GetGlyphs to properly shape complex - /// scripts and OpenType features. - /// - /// The length read of the text run with the - /// same complexity, simple or complex. You may call again from that - /// point onward. - /// Optional glyph indices for the text. If the - /// function returned that the text was simple, you already have the - /// glyphs you need. Otherwise the glyph indices are not meaningful, - /// and you should call shaping instead. - /// - /// Text is not simple if the characters are part of a script that has - /// complex shaping requirements, require bidi analysis, combine with - /// other characters, reside in the supplementary planes, or have glyphs - /// which participate in standard OpenType features. The length returned - /// will not split combining marks from their base characters. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetTextComplexity)( - _In_reads_(textLength) WCHAR const* textString, - UINT32 textLength, - _In_ IDWriteFontFace* fontFace, - _Out_ BOOL* isTextSimple, - _Out_range_(0, textLength) UINT32* textLengthRead, - _Out_writes_to_opt_(textLength, *textLengthRead) UINT16* glyphIndices - ) PURE; - - /// - /// Retrieves justification opportunity information for each of the glyphs - /// given the text and shaping glyph properties. - /// - /// Font face that was used for shaping. This is - /// mainly important for returning correct results of the kashida - /// width. - /// Font em size used for the glyph run. - /// Script of the text from the itemizer. - /// Length of the text. - /// Number of glyphs. - /// Characters used to produce the glyphs. - /// Clustermap produced from shaping. - /// Glyph properties produced from shaping. - /// Receives information for the - /// allowed justification expansion/compression for each glyph. - /// - /// This function is called per-run, after shaping is done via GetGlyphs(). - /// Note this function only supports natural metrics (DWRITE_MEASURING_MODE_NATURAL). - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetJustificationOpportunities)( - _In_opt_ IDWriteFontFace* fontFace, - FLOAT fontEmSize, - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - UINT32 textLength, - UINT32 glyphCount, - _In_reads_(textLength) WCHAR const* textString, - _In_reads_(textLength) UINT16 const* clusterMap, - _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties, - _Out_writes_(glyphCount) DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities - ) PURE; - - /// - /// Justifies an array of glyph advances to fit the line width. - /// - /// Width of the line. - /// Number of glyphs. - /// Opportunities per glyph. Call - /// GetJustificationOpportunities() to get suitable opportunities - /// according to script. - /// Original glyph advances from shaping. - /// Original glyph offsets from shaping. - /// Justified glyph advances. - /// Justified glyph offsets. - /// - /// This is called after all the opportunities have been collected, and it - /// spans across the entire line. The input and output arrays are allowed - /// to alias each other, permitting in-place update. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(JustifyGlyphAdvances)( - FLOAT lineWidth, - UINT32 glyphCount, - _In_reads_(glyphCount) DWRITE_JUSTIFICATION_OPPORTUNITY const* justificationOpportunities, - _In_reads_(glyphCount) FLOAT const* glyphAdvances, - _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets, - _Out_writes_(glyphCount) FLOAT* justifiedGlyphAdvances, - _Out_writes_opt_(glyphCount) DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets - ) PURE; - - /// - /// Fills in new glyphs for complex scripts where justification increased - /// the advances of glyphs, such as Arabic with kashida. - /// - /// Font face used for shaping. - /// Font em size used for the glyph run. - /// Script of the text from the itemizer. - /// Length of the text. - /// Number of glyphs. - /// Maximum number of output glyphs allocated - /// by caller. - /// Clustermap produced from shaping. - /// Original glyphs produced from shaping. - /// Original glyph advances produced from shaping. - /// Justified glyph advances from - /// JustifyGlyphAdvances(). - /// Justified glyph offsets from - /// JustifyGlyphAdvances(). - /// Properties of each glyph, from GetGlyphs. - /// The new glyph count written to the - /// modified arrays, or the needed glyph count if the size is not - /// large enough. - /// Updated clustermap. - /// Updated glyphs with new glyphs - /// inserted where needed. - /// Updated glyph advances. - /// Updated glyph offsets. - /// - /// This is called after the line has been justified, and it is per-run. - /// It only needs to be called if the script has a specific justification - /// character via GetScriptProperties, and it is mainly for cursive scripts - /// like Arabic. If maxGlyphCount is not large enough, the error - /// E_NOT_SUFFICIENT_BUFFER will be returned, with actualGlyphCount holding - /// the final/needed glyph count. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetJustifiedGlyphs)( - _In_opt_ IDWriteFontFace* fontFace, - FLOAT fontEmSize, - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - UINT32 textLength, - UINT32 glyphCount, - UINT32 maxGlyphCount, - _In_reads_opt_(textLength) UINT16 const* clusterMap, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _In_reads_(glyphCount) FLOAT const* glyphAdvances, - _In_reads_(glyphCount) FLOAT const* justifiedGlyphAdvances, - _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* justifiedGlyphOffsets, - _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties, - _Out_range_(glyphCount, maxGlyphCount) UINT32* actualGlyphCount, - _Out_writes_opt_(textLength) UINT16* modifiedClusterMap, - _Out_writes_to_(maxGlyphCount, *actualGlyphCount) UINT16* modifiedGlyphIndices, - _Out_writes_to_(maxGlyphCount, *actualGlyphCount) FLOAT* modifiedGlyphAdvances, - _Out_writes_to_(maxGlyphCount, *actualGlyphCount) DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets - ) PURE; -}; - - -/// -/// The interface implemented by the client to provide needed information to -/// the text analyzer, such as the text and associated text properties. -/// 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 -{ - /// - /// The text analyzer calls back to this to get the desired glyph - /// orientation and resolved bidi level, which it uses along with the - /// script properties of the text to determine the actual orientation of - /// each character, which it reports back to the client via the sink - /// SetGlyphOrientation method. - /// - /// First position of the piece to obtain. All - /// positions are in UTF-16 code-units, not whole characters, which - /// matters when supplementary characters are used. - /// Number of UTF-16 units of the retrieved chunk. - /// The returned length is not the length of the block, but the length - /// remaining in the block, from the given position until its end. - /// So querying for a position that is 75 positions into a 100 - /// postition block would return 25. - /// The type of glyph orientation the - /// client wants for this range, up to the returned text length. - /// The bidi level for this range up to - /// the returned text length, which comes from an earlier - /// bidirectional analysis. - /// - /// Standard HRESULT error code. Returning an error will abort the - /// analysis. - /// - STDMETHOD(GetVerticalGlyphOrientation)( - UINT32 textPosition, - _Out_ UINT32* textLength, - _Out_ DWRITE_VERTICAL_GLYPH_ORIENTATION* glyphOrientation, - _Out_ UINT8* bidiLevel - ) PURE; -}; - - -/// -/// 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 -{ - /// - /// The text analyzer calls back to this to report the actual orientation - /// of each character for shaping and drawing. - /// - /// Starting position to report from. - /// Number of UTF-16 units of the reported range. - /// Angle of the glyphs within the text - /// range (pass to GetGlyphOrientationTransform to get the world - /// relative transform). - /// The adjusted bidi level to be used by - /// the client layout for reordering runs. This will differ from the - /// resolved bidi level retrieved from the source for cases such as - /// Arabic stacked top-to-bottom, where the glyphs are still shaped - /// as RTL, but the runs are TTB along with any CJK or Latin. - /// Whether the glyphs are rotated on their side, - /// which is the default case for CJK and the case stacked Latin - /// Whether the script should be shaped as - /// right-to-left. For Arabic stacked top-to-bottom, even when the - /// adjusted bidi level is coerced to an even level, this will still - /// be true. - /// - /// A successful code or error code to abort analysis. - /// - STDMETHOD(SetGlyphOrientation)( - UINT32 textPosition, - UINT32 textLength, - DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle, - UINT8 adjustedBidiLevel, - BOOL isSideways, - BOOL isRightToLeft - ) PURE; -}; - - -/// -/// The IDWriteTextLayout1 interface represents a block of text after it has -/// been fully analyzed and formatted. -/// -/// All coordinates are in device independent pixels (DIPs). -/// -interface DWRITE_DECLARE_INTERFACE("9064D822-80A7-465C-A986-DF65F78B8FEB") IDWriteTextLayout1 : public IDWriteTextLayout -{ - /// - /// Enables/disables pair-kerning on the given range. - /// - /// The Boolean flag indicates whether text is pair-kerned. - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetPairKerning)( - BOOL isPairKerningEnabled, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Get whether or not pair-kerning is enabled at given position. - /// - /// The current text position. - /// The Boolean flag indicates whether text is pair-kerned. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetPairKerning)( - UINT32 currentPosition, - _Out_ BOOL* isPairKerningEnabled, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; - - /// - /// Sets the spacing between characters. - /// - /// The spacing before each character, in reading order. - /// The spacing after each character, in reading order. - /// The minimum advance of each character, - /// to prevent characters from becoming too thin or zero-width. This - /// must be zero or greater. - /// Text range to which this change applies. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetCharacterSpacing)( - FLOAT leadingSpacing, - FLOAT trailingSpacing, - FLOAT minimumAdvanceWidth, - DWRITE_TEXT_RANGE textRange - ) PURE; - - /// - /// Gets the spacing between characters. - /// - /// The current text position. - /// The spacing before each character, in reading order. - /// The spacing after each character, in reading order. - /// The minimum advance of each character, - /// to prevent characters from becoming too thin or zero-width. This - /// must be zero or greater. - /// The position range of the current format. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetCharacterSpacing)( - UINT32 currentPosition, - _Out_ FLOAT* leadingSpacing, - _Out_ FLOAT* trailingSpacing, - _Out_ FLOAT* minimumAdvanceWidth, - _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL - ) PURE; -}; - -/// -/// Represents the type of antialiasing to use for text when the rendering mode calls for -/// antialiasing. -/// -enum DWRITE_TEXT_ANTIALIAS_MODE -{ - /// - /// ClearType antialiasing computes coverage independently for the red, green, and blue - /// color elements of each pixel. This allows for more detail than conventional antialiasing. - /// However, because there is no one alpha value for each pixel, ClearType is not suitable - /// rendering text onto a transparent intermediate bitmap. - /// - DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE, - - /// - /// Grayscale antialiasing computes one coverage value for each pixel. Because the alpha - /// value of each pixel is well-defined, text can be rendered onto a transparent bitmap, - /// which can then be composited with other content. Note that grayscale rendering with - /// IDWriteBitmapRenderTarget1 uses premultiplied alpha. - /// - DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE -}; - -/// -/// Encapsulates a 32-bit device independent bitmap and device context, which can be used for rendering glyphs. -/// -interface DWRITE_DECLARE_INTERFACE("791e8298-3ef3-4230-9880-c9bdecc42064") IDWriteBitmapRenderTarget1 : public IDWriteBitmapRenderTarget -{ - /// - /// Gets the current text antialiasing mode of the bitmap render target. - /// - /// - /// Returns the antialiasing mode. - /// - STDMETHOD_(DWRITE_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)() PURE; - - /// - /// Sets the current text antialiasing mode of the bitmap render target. - /// - /// - /// Returns S_OK if successful, or E_INVALIDARG if the argument is not valid. - /// - /// - /// The antialiasing mode of a newly-created bitmap render target defaults to - /// DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE. An application can change the antialiasing - /// mode by calling SetTextAntialiasMode. For example, an application might specify - /// grayscale antialiasing when rendering text onto a transparent bitmap. - /// - STDMETHOD(SetTextAntialiasMode)( - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode - ) PURE; -}; - -#endif /* DWRITE_1_H_INCLUDED */ diff --git a/3rdparty/minidx12/Include/dwrite_2.h b/3rdparty/minidx12/Include/dwrite_2.h deleted file mode 100644 index d833b25d6a..0000000000 --- a/3rdparty/minidx12/Include/dwrite_2.h +++ /dev/null @@ -1,965 +0,0 @@ -//+-------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Abstract: -// DirectX Typography Services public API definitions. -// -//---------------------------------------------------------------------------- - -#ifndef DWRITE_2_H_INCLUDED -#define DWRITE_2_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - - -interface IDWriteFontFallback; - - -/// -/// How to align glyphs to the margin. -/// -enum DWRITE_OPTICAL_ALIGNMENT -{ - /// - /// Align to the default metrics of the glyph. - /// - DWRITE_OPTICAL_ALIGNMENT_NONE, - - /// - /// Align glyphs to the margins. Without this, some small whitespace - /// may be present between the text and the margin from the glyph's side - /// bearing values. Note that glyphs may still overhang outside the - /// margin, such as flourishes or italic slants. - /// - DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS, -}; - - -/// -/// Whether to enable grid-fitting of glyph outlines (a.k.a. hinting). -/// -enum DWRITE_GRID_FIT_MODE -{ - /// - /// Choose grid fitting base on the font's gasp table information. - /// - DWRITE_GRID_FIT_MODE_DEFAULT, - - /// - /// Always disable grid fitting, using the ideal glyph outlines. - /// - DWRITE_GRID_FIT_MODE_DISABLED, - - /// - /// Enable grid fitting, adjusting glyph outlines for device pixel display. - /// - DWRITE_GRID_FIT_MODE_ENABLED -}; - - -/// -/// Overall metrics associated with text after layout. -/// All coordinates are in device independent pixels (DIPs). -/// -struct DWRITE_TEXT_METRICS1 : DWRITE_TEXT_METRICS -{ - /// - /// The height of the formatted text taking into account the - /// trailing whitespace at the end of each line, which will - /// matter for vertical reading directions. - /// - FLOAT heightIncludingTrailingWhitespace; -}; - - -/// -/// The text renderer interface represents a set of application-defined -/// callbacks that perform rendering of text, inline objects, and decorations -/// such as underlines. -/// -interface DWRITE_DECLARE_INTERFACE("D3E0E934-22A0-427E-AAE4-7D9574B59DB1") IDWriteTextRenderer1 : public IDWriteTextRenderer -{ - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to - /// render a run of glyphs. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Orientation of the glyph run. - /// Specifies measuring method for glyphs in - /// the run. Renderer implementations may choose different rendering - /// modes for given measuring methods, but best results are seen when - /// the rendering mode matches the corresponding measuring mode: - /// DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL for DWRITE_MEASURING_MODE_NATURAL - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC for DWRITE_MEASURING_MODE_GDI_CLASSIC - /// DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL for DWRITE_MEASURING_MODE_GDI_NATURAL - /// - /// The glyph run to draw. - /// Properties of the characters - /// associated with this run. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// If a non-identity orientation is passed, the glyph run should be - /// rotated around the given baseline x and y coordinates. The function - /// IDWriteAnalyzer2::GetGlyphOrientationTransform will return the - /// necessary transform for you, which can be combined with any existing - /// world transform on the drawing context. - /// - STDMETHOD(DrawGlyphRun)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle, - DWRITE_MEASURING_MODE measuringMode, - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to draw - /// an underline. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Orientation of the underline. - /// Underline logical information. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// A single underline can be broken into multiple calls, depending on - /// how the formatting changes attributes. If font sizes/styles change - /// within an underline, the thickness and offset will be averaged - /// weighted according to characters. - /// - /// To get the correct top coordinate of the underline rect, add - /// underline::offset to the baseline's Y. Otherwise the underline will - /// be immediately under the text. The x coordinate will always be passed - /// as the left side, regardless of text directionality. This simplifies - /// drawing and reduces the problem of round-off that could potentially - /// cause gaps or a double stamped alpha blend. To avoid alpha overlap, - /// round the end points to the nearest device pixel. - /// - STDMETHOD(DrawUnderline)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle, - _In_ DWRITE_UNDERLINE const* underline, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this function to instruct the client to draw - /// a strikethrough. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate of the baseline. - /// Y-coordinate of the baseline. - /// Orientation of the strikethrough. - /// Strikethrough logical information. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// A single strikethrough can be broken into multiple calls, depending on - /// how the formatting changes attributes. Strikethrough is not averaged - /// across font sizes/styles changes. - /// To get the correct top coordinate of the strikethrough rect, - /// add strikethrough::offset to the baseline's Y. - /// Like underlines, the x coordinate will always be passed as the left side, - /// regardless of text directionality. - /// - STDMETHOD(DrawStrikethrough)( - _In_opt_ void* clientDrawingContext, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle, - _In_ DWRITE_STRIKETHROUGH const* strikethrough, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; - - /// - /// IDWriteTextLayout::Draw calls this application callback when it needs to - /// draw an inline object. - /// - /// The context passed to - /// IDWriteTextLayout::Draw. - /// X-coordinate at the top-left corner of the - /// inline object. - /// Y-coordinate at the top-left corner of the - /// inline object. - /// Orientation of the inline object. - /// The object set using IDWriteTextLayout::SetInlineObject. - /// The object should be drawn on its side. - /// The object is in an right-to-left context - /// and should be drawn flipped. - /// The drawing effect set in - /// IDWriteTextLayout::SetDrawingEffect. - /// - /// Standard HRESULT error code. - /// - /// - /// The right-to-left flag is a hint to draw the appropriate visual for - /// that reading direction. For example, it would look strange to draw an - /// arrow pointing to the right to indicate a submenu. The sideways flag - /// similarly hints that the object is drawn in a different orientation. - /// If a non-identity orientation is passed, the top left of the inline - /// object should be rotated around the given x and y coordinates. - /// IDWriteAnalyzer2::GetGlyphOrientationTransform returns the necessary - /// transform for this. - /// - STDMETHOD(DrawInlineObject)( - _In_opt_ void* clientDrawingContext, - FLOAT originX, - FLOAT originY, - DWRITE_GLYPH_ORIENTATION_ANGLE orientationAngle, - _In_ IDWriteInlineObject* inlineObject, - BOOL isSideways, - BOOL isRightToLeft, - _In_opt_ IUnknown* clientDrawingEffect - ) PURE; -}; - - -/// -/// The format of text used for text layout. -/// -/// -/// This object may not be thread-safe and it may carry the state of text format change. -/// -interface DWRITE_DECLARE_INTERFACE("5F174B49-0D8B-4CFB-8BCA-F1CCE9D06C67") IDWriteTextFormat1 : public IDWriteTextFormat -{ - /// - /// Set the preferred orientation of glyphs when using a vertical reading direction. - /// - /// Preferred glyph orientation. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetVerticalGlyphOrientation)( - DWRITE_VERTICAL_GLYPH_ORIENTATION glyphOrientation - ) PURE; - - /// - /// Get the preferred orientation of glyphs when using a vertical reading - /// direction. - /// - STDMETHOD_(DWRITE_VERTICAL_GLYPH_ORIENTATION, GetVerticalGlyphOrientation)() PURE; - - /// - /// Set whether or not the last word on the last line is wrapped. - /// - /// Line wrapping option. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLastLineWrapping)( - BOOL isLastLineWrappingEnabled - ) PURE; - - /// - /// Get whether or not the last word on the last line is wrapped. - /// - STDMETHOD_(BOOL, GetLastLineWrapping)() PURE; - - /// - /// Set how the glyphs align to the edges the margin. Default behavior is - /// to align glyphs using their default glyphs metrics which include side - /// bearings. - /// - /// Optical alignment option. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetOpticalAlignment)( - DWRITE_OPTICAL_ALIGNMENT opticalAlignment - ) PURE; - - /// - /// Get how the glyphs align to the edges the margin. - /// - STDMETHOD_(DWRITE_OPTICAL_ALIGNMENT, GetOpticalAlignment)() PURE; - - /// - /// Apply a custom font fallback onto layout. If none is specified, - /// layout uses the system fallback list. - /// - /// Custom font fallback created from - /// IDWriteFontFallbackBuilder::CreateFontFallback or from - /// IDWriteFactory2::GetSystemFontFallback. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontFallback)( - IDWriteFontFallback* fontFallback - ) PURE; - - /// - /// Get the current font fallback object. - /// - STDMETHOD(GetFontFallback)( - __out IDWriteFontFallback** fontFallback - ) PURE; -}; - - -/// -/// The text layout interface represents a block of text after it has -/// been fully analyzed and formatted. -/// -/// All coordinates are in device independent pixels (DIPs). -/// -interface DWRITE_DECLARE_INTERFACE("1093C18F-8D5E-43F0-B064-0917311B525E") IDWriteTextLayout2 : public IDWriteTextLayout1 -{ - /// - /// GetMetrics retrieves overall metrics for the formatted string. - /// - /// The returned metrics. - /// - /// Standard HRESULT error code. - /// - /// - /// Drawing effects like underline and strikethrough do not contribute - /// to the text size, which is essentially the sum of advance widths and - /// line heights. Additionally, visible swashes and other graphic - /// adornments may extend outside the returned width and height. - /// - STDMETHOD(GetMetrics)( - _Out_ DWRITE_TEXT_METRICS1* textMetrics - ) PURE; - - using IDWriteTextLayout::GetMetrics; - - /// - /// Set the preferred orientation of glyphs when using a vertical reading direction. - /// - /// Preferred glyph orientation. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetVerticalGlyphOrientation)( - DWRITE_VERTICAL_GLYPH_ORIENTATION glyphOrientation - ) PURE; - - /// - /// Get the preferred orientation of glyphs when using a vertical reading - /// direction. - /// - STDMETHOD_(DWRITE_VERTICAL_GLYPH_ORIENTATION, GetVerticalGlyphOrientation)() PURE; - - /// - /// Set whether or not the last word on the last line is wrapped. - /// - /// Line wrapping option. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLastLineWrapping)( - BOOL isLastLineWrappingEnabled - ) PURE; - - /// - /// Get whether or not the last word on the last line is wrapped. - /// - STDMETHOD_(BOOL, GetLastLineWrapping)() PURE; - - /// - /// Set how the glyphs align to the edges the margin. Default behavior is - /// to align glyphs using their default glyphs metrics which include side - /// bearings. - /// - /// Optical alignment option. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetOpticalAlignment)( - DWRITE_OPTICAL_ALIGNMENT opticalAlignment - ) PURE; - - /// - /// Get how the glyphs align to the edges the margin. - /// - STDMETHOD_(DWRITE_OPTICAL_ALIGNMENT, GetOpticalAlignment)() PURE; - - /// - /// Apply a custom font fallback onto layout. If none is specified, - /// layout uses the system fallback list. - /// - /// Custom font fallback created from - /// IDWriteFontFallbackBuilder::CreateFontFallback or - /// IDWriteFactory2::GetSystemFontFallback. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetFontFallback)( - IDWriteFontFallback* fontFallback - ) PURE; - - /// - /// Get the current font fallback object. - /// - STDMETHOD(GetFontFallback)( - __out IDWriteFontFallback** fontFallback - ) PURE; -}; - - -/// -/// The text analyzer interface represents a set of application-defined -/// callbacks that perform rendering of text, inline objects, and decorations -/// such as underlines. -/// -interface DWRITE_DECLARE_INTERFACE("553A9FF3-5693-4DF7-B52B-74806F7F2EB9") IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 -{ - /// - /// Returns 2x3 transform matrix for the respective angle to draw the - /// glyph run or other object. - /// - /// The angle reported to one of the application callbacks, - /// including IDWriteTextAnalysisSink1::SetGlyphOrientation and IDWriteTextRenderer1::Draw*. - /// Whether the run's glyphs are sideways or not. - /// X origin of the element, be it a glyph run or underline or other. - /// Y origin of the element, be it a glyph run or underline or other. - /// Returned transform. - /// - /// Standard HRESULT error code. - /// - /// - /// This rotates around the given origin x and y, returning a translation component - /// such that the glyph run, text decoration, or inline object is drawn with the - /// right orientation at the expected coordinate. - /// - STDMETHOD(GetGlyphOrientationTransform)( - DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle, - BOOL isSideways, - FLOAT originX, - FLOAT originY, - _Out_ DWRITE_MATRIX* transform - ) PURE; - - /// - /// Returns a list of typographic feature tags for the given script and language. - /// - /// The font face to get features from. - /// Script analysis result from AnalyzeScript. - /// The locale to use when selecting the feature, - /// such en-us or ja-jp. - /// Maximum tag count. - /// Actual tag count. If greater than - /// maxTagCount, E_NOT_SUFFICIENT_BUFFER is returned, and the call - /// should be retried with a larger buffer. - /// Feature tag list. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetTypographicFeatures)( - IDWriteFontFace* fontFace, - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - UINT32 maxTagCount, - _Out_ UINT32* actualTagCount, - _Out_writes_(maxTagCount) DWRITE_FONT_FEATURE_TAG* tags - ) PURE; - - /// - /// Returns an array of which glyphs are affected by a given feature. - /// - /// The font face to read glyph information from. - /// Script analysis result from AnalyzeScript. - /// The locale to use when selecting the feature, - /// such en-us or ja-jp. - /// OpenType feature name to use, which may be one - /// of the DWRITE_FONT_FEATURE_TAG values or a custom feature using - /// DWRITE_MAKE_OPENTYPE_TAG. - /// Number of glyph indices to check. - /// Glyph indices to check for feature application. - /// Output of which glyphs are affected by the - /// feature, where for each glyph affected, the respective array index - /// will be 1. The result is returned per-glyph without regard to - /// neighboring context of adjacent glyphs. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CheckTypographicFeature)( - IDWriteFontFace* fontFace, - DWRITE_SCRIPT_ANALYSIS scriptAnalysis, - _In_opt_z_ WCHAR const* localeName, - DWRITE_FONT_FEATURE_TAG featureTag, - UINT32 glyphCount, - _In_reads_(glyphCount) UINT16 const* glyphIndices, - _Out_writes_(glyphCount) UINT8* featureApplies - ) PURE; -}; - - -/// -/// A font fallback definition used for mapping characters to fonts capable of -/// supporting them. -/// -interface DWRITE_DECLARE_INTERFACE("EFA008F9-F7A1-48BF-B05C-F224713CC0FF") IDWriteFontFallback : public IUnknown -{ - /// - /// Determines an appropriate font to use to render the range of text. - /// - /// The text source implementation holds the text and - /// locale. - /// Length of the text to analyze. - /// Default font collection to use. - /// Base font to check (optional). - /// Family name of the base font. If you pass - /// null, no matching will be done against the family. - /// Desired weight. - /// Desired style. - /// Desired stretch. - /// Length of text mapped to the mapped font. - /// This will always be less or equal to the input text length and - /// greater than zero (if the text length is non-zero) so that the - /// caller advances at least one character each call. - /// The font that should be used to render the - /// first mappedLength characters of the text. If it returns NULL, - /// then no known font can render the text, and mappedLength is the - /// number of unsupported characters to skip. - /// Scale factor to multiply the em size of the - /// returned font by. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(MapCharacters)( - IDWriteTextAnalysisSource* analysisSource, - UINT32 textPosition, - UINT32 textLength, - _In_opt_ IDWriteFontCollection* baseFontCollection, - _In_opt_z_ wchar_t const* baseFamilyName, - DWRITE_FONT_WEIGHT baseWeight, - DWRITE_FONT_STYLE baseStyle, - DWRITE_FONT_STRETCH baseStretch, - _Deref_out_range_(0, textLength) UINT32* mappedLength, - _COM_Outptr_ IDWriteFont** mappedFont, - _Out_ FLOAT* scale - ) PURE; -}; - - -/// -/// Builder used to create a font fallback definition by appending a series of -/// fallback mappings, followed by a creation call. -/// -/// -/// This object may not be thread-safe. -/// -interface DWRITE_DECLARE_INTERFACE("FD882D06-8ABA-4FB8-B849-8BE8B73E14DE") IDWriteFontFallbackBuilder : public IUnknown -{ - /// - /// Appends a single mapping to the list. Call this once for each additional mapping. - /// - /// Unicode ranges that apply to this mapping. - /// Number of Unicode ranges. - /// Locale of the context (e.g. document locale). - /// Base family name to match against, if applicable. - /// Explicit font collection for this mapping (optional). - /// List of target family name strings. - /// Number of target family names. - /// Scale factor to multiply the result target font by. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddMapping)( - _In_reads_(rangesCount) DWRITE_UNICODE_RANGE const* ranges, - UINT32 rangesCount, - _In_reads_(targetFamilyNamesCount) WCHAR const** targetFamilyNames, - UINT32 targetFamilyNamesCount, - _In_opt_ IDWriteFontCollection* fontCollection = NULL, - _In_opt_z_ WCHAR const* localeName = NULL, - _In_opt_z_ WCHAR const* baseFamilyName = NULL, - FLOAT scale = 1.0f - ) PURE; - - /// - /// Appends all the mappings from an existing font fallback object. - /// - /// Font fallback to read mappings from. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddMappings)( - IDWriteFontFallback* fontFallback - ) PURE; - - /// - /// Creates the finalized fallback object from the mappings added. - /// - /// Created fallback list. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFallback)( - _COM_Outptr_ IDWriteFontFallback** fontFallback - ) PURE; -}; - -/// -/// DWRITE_COLOR_F -/// -#ifndef D3DCOLORVALUE_DEFINED - -typedef struct _D3DCOLORVALUE { - union { - FLOAT r; - FLOAT dvR; - }; - union { - FLOAT g; - FLOAT dvG; - }; - union { - FLOAT b; - FLOAT dvB; - }; - union { - FLOAT a; - FLOAT dvA; - }; -} D3DCOLORVALUE; - -#define D3DCOLORVALUE_DEFINED -#endif D3DCOLORVALUE_DEFINED - -typedef D3DCOLORVALUE DWRITE_COLOR_F; - -/// -/// The IDWriteFont interface represents a physical font in a font collection. -/// -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. - /// - STDMETHOD_(BOOL, IsColorFont)() PURE; -}; - -/// -/// 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("d8b768ff-64bc-4e66-982b-ec8e87f693f7") IDWriteFontFace2 : public IDWriteFontFace1 -{ - /// - /// Returns TRUE if the font contains color information (COLR and CPAL tables), - /// or FALSE if not. - /// - STDMETHOD_(BOOL, IsColorFont)() PURE; - - /// - /// Returns the number of color palettes defined by the font. The return - /// value is zero if the font has no color information. Color fonts must - /// have at least one palette, with palette index zero being the default. - /// - STDMETHOD_(UINT32, GetColorPaletteCount)() PURE; - - /// - /// Returns the number of entries in each color palette. All color palettes - /// in a font have the same number of palette entries. The return value is - /// zero if the font has no color information. - /// - STDMETHOD_(UINT32, GetPaletteEntryCount)() PURE; - - /// - /// Reads color values from the font's color palette. - /// - /// Zero-based index of the color palette. If the - /// font does not have a palette with the specified index, the method returns - /// DWRITE_E_NOCOLOR. - /// Zero-based index of the first palette entry - /// to read. - /// Number of palette entries to read. - /// Array that receives the color values. - /// - /// Standard HRESULT error code. - /// The return value is E_INVALIDARG if firstEntryIndex + entryCount is greater - /// than the actual number of palette entries as returned by GetPaletteEntryCount. - /// The return value is DWRITE_E_NOCOLOR if the font does not have a palette - /// with the specified palette index. - /// - STDMETHOD(GetPaletteEntries)( - UINT32 colorPaletteIndex, - UINT32 firstEntryIndex, - UINT32 entryCount, - _Out_writes_(entryCount) DWRITE_COLOR_F* paletteEntries - ) PURE; - - /// - /// Determines the recommended text rendering and grid-fit mode to be used based on the - /// font, size, world transform, and measuring mode. - /// - /// Logical font size in DIPs. - /// Number of pixels per logical inch in the horizontal direction. - /// Number of pixels per logical inch in the vertical direction. - /// Specifies the world transform. - /// Specifies the quality of the graphics system's outline rendering, - /// affects the size threshold above which outline rendering is used. - /// Specifies the method used to measure during text layout. For proper - /// glyph spacing, the function returns a rendering mode that is compatible with the specified - /// measuring mode. - /// Rendering parameters object. This parameter is necessary in case the rendering parameters - /// object overrides the rendering mode. - /// Receives the recommended rendering mode. - /// Receives the recommended grid-fit mode. - /// - /// This method should be used to determine the actual rendering mode in cases where the rendering - /// mode of the rendering params object is DWRITE_RENDERING_MODE_DEFAULT, and the actual grid-fit - /// mode when the rendering params object is DWRITE_GRID_FIT_MODE_DEFAULT. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetRecommendedRenderingMode)( - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL isSideways, - DWRITE_OUTLINE_THRESHOLD outlineThreshold, - DWRITE_MEASURING_MODE measuringMode, - _In_opt_ IDWriteRenderingParams* renderingParams, - _Out_ DWRITE_RENDERING_MODE* renderingMode, - _Out_ DWRITE_GRID_FIT_MODE* gridFitMode - ) PURE; -}; - -/// -/// Represents a color glyph run. The IDWriteFactory2::TranslateColorGlyphRun -/// method returns an ordered collection of color glyph runs, which can be -/// layered on top of each other to produce a color representation of the -/// given base glyph run. -/// -struct DWRITE_COLOR_GLYPH_RUN -{ - /// - /// Glyph run to render. - /// - DWRITE_GLYPH_RUN glyphRun; - - /// - /// Optional glyph run description. - /// - _Maybenull_ DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; - - /// - /// Location at which to draw this glyph run. - /// - FLOAT baselineOriginX; - FLOAT baselineOriginY; - - /// - /// Color to use for this layer, if any. This is the same color that - /// IDWriteFontFace2::GetPaletteEntries would return for the current - /// palette index if the paletteIndex member is less than 0xFFFF. If - /// the paletteIndex member is 0xFFFF then there is no associated - /// palette entry, this member is set to { 0, 0, 0, 0 }, and the client - /// should use the current foreground brush. - /// - DWRITE_COLOR_F runColor; - - /// - /// Zero-based index of this layer's color entry in the current color - /// palette, or 0xFFFF if this layer is to be rendered using - /// the current foreground brush. - /// - UINT16 paletteIndex; -}; - -/// -/// Enumerator for an ordered collection of color glyph runs. -/// -interface DWRITE_DECLARE_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") IDWriteColorGlyphRunEnumerator : public IUnknown -{ - /// - /// Advances to the first or next color run. The runs are enumerated - /// in order from back to front. - /// - /// Receives TRUE if there is a current run or - /// FALSE if the end of the sequence has been reached. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(MoveNext)( - _Out_ BOOL* hasRun - ) PURE; - - /// - /// 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_RUN const** colorGlyphRun - ) PURE; -}; - -/// -/// The interface that represents text rendering settings for glyph rasterization and filtering. -/// -interface DWRITE_DECLARE_INTERFACE("F9D711C3-9777-40AE-87E8-3E5AF9BF0948") IDWriteRenderingParams2 : public IDWriteRenderingParams1 -{ - /// - /// Gets the grid fitting mode. - /// - STDMETHOD_(DWRITE_GRID_FIT_MODE, GetGridFitMode)() PURE; -}; - -/// -/// The root factory interface for all DWrite objects. -/// -interface DWRITE_DECLARE_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") IDWriteFactory2 : public IDWriteFactory1 -{ - /// - /// Get the system-appropriate font fallback mapping list. - /// - /// The system fallback list. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetSystemFontFallback)( - _COM_Outptr_ IDWriteFontFallback** fontFallback - ) PURE; - - /// - /// Create a custom font fallback builder. - /// - /// Empty font fallback builder. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFallbackBuilder)( - _COM_Outptr_ IDWriteFontFallbackBuilder** fontFallbackBuilder - ) PURE; - - /// - /// 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 origin of the base glyph run in - /// pre-transform coordinates. - /// Vertical origin of the base glyph run in - /// pre-transform coordinates. - /// Pointer to the original "base" glyph run. - /// Optional glyph run description. - /// 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 base - /// 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 base glyph - /// run. Otherwise, returns a standard HRESULT error code. - /// - STDMETHOD(TranslateColorGlyphRun)( - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_opt_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, - DWRITE_MEASURING_MODE measuringMode, - _In_opt_ DWRITE_MATRIX const* worldToDeviceTransform, - UINT32 colorPaletteIndex, - _COM_Outptr_ IDWriteColorGlyphRunEnumerator** colorLayers - ) PURE; - - /// - /// Creates a rendering parameters object with the specified properties. - /// - /// The gamma value used for gamma correction, which must be greater than zero and cannot exceed 256. - /// The amount of contrast enhancement, zero or greater. - /// The degree of ClearType level, from 0.0f (no ClearType) to 1.0f (full ClearType). - /// The geometry of a device pixel. - /// Method of rendering glyphs. In most cases, this should be DWRITE_RENDERING_MODE_DEFAULT to automatically use an appropriate mode. - /// How to grid fit glyph outlines. In most cases, this should be DWRITE_GRID_FIT_DEFAULT to automatically choose an appropriate mode. - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateCustomRenderingParams)( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT grayscaleEnhancedContrast, - FLOAT clearTypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - _COM_Outptr_ IDWriteRenderingParams2** renderingParams - ) PURE; - - using IDWriteFactory::CreateCustomRenderingParams; - using IDWriteFactory1::CreateCustomRenderingParams; - - /// - /// Creates a glyph run analysis object, which encapsulates information - /// used to render a glyph run. - /// - /// Structure specifying the properties of the glyph run. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the emSize and pixelsPerDip. - /// Specifies the rendering mode, which must be one of the raster rendering modes (i.e., not default - /// and not outline). - /// Specifies the method to measure glyphs. - /// How to grid-fit glyph outlines. This must be non-default. - /// Horizontal position of the baseline origin, in DIPs. - /// Vertical position of the baseline origin, in DIPs. - /// Receives a pointer to the newly created object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateGlyphRunAnalysis)( - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_opt_ DWRITE_MATRIX const* transform, - DWRITE_RENDERING_MODE renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _COM_Outptr_ IDWriteGlyphRunAnalysis** glyphRunAnalysis - ) PURE; - - using IDWriteFactory::CreateGlyphRunAnalysis; -}; - - -#endif /* DWRITE_2_H_INCLUDED */ diff --git a/3rdparty/minidx12/Include/dwrite_3.h b/3rdparty/minidx12/Include/dwrite_3.h deleted file mode 100644 index 7119347b58..0000000000 --- a/3rdparty/minidx12/Include/dwrite_3.h +++ /dev/null @@ -1,1743 +0,0 @@ -//+-------------------------------------------------------------------------- -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// Abstract: -// DirectX Typography Services public API definitions. -// -//---------------------------------------------------------------------------- - -#ifndef DWRITE_3_H_INCLUDED -#define DWRITE_3_H_INCLUDED - -#if _MSC_VER > 1000 -#pragma once -#endif - -#include - -interface IDWriteFontFaceReference; -interface IDWriteFont3; -interface IDWriteFontFace3; -interface IDWriteFontFaceReference; -interface IDWriteFontSet; -interface IDWriteFontSetBuilder; -interface IDWriteFontCollection1; -interface IDWriteFontFamily1; -interface IDWriteStringList; -interface IDWriteFontDownloadQueue; - - -/// -/// A font resource could not be accessed because it was remote. This can happen -/// when calling CreateFontFace on a non-local font or trying to measure/draw -/// glyphs that are not downloaded yet. -/// -#ifndef DWRITE_E_REMOTEFONT -#define DWRITE_E_REMOTEFONT _HRESULT_TYPEDEF_(0x8898500DL) -#endif - -/// -/// The download was canceled, which happens if the application calls -/// IDWriteFontDownloadQueue::CancelDownload before they finish. -/// -#ifndef DWRITE_E_DOWNLOADCANCELLED -#define DWRITE_E_DOWNLOADCANCELLED _HRESULT_TYPEDEF_(0x8898500EL) -#endif - -/// -/// The download failed to complete because the remote resource is missing -/// or the network is down. -/// -#ifndef DWRITE_E_DOWNLOADFAILED -#define DWRITE_E_DOWNLOADFAILED _HRESULT_TYPEDEF_(0x8898500FL) -#endif - -/// -/// A download request was not added or a download failed because there -/// are too many active downloads. -/// -#ifndef DWRITE_E_TOOMANYDOWNLOADS -#define DWRITE_E_TOOMANYDOWNLOADS _HRESULT_TYPEDEF_(0x88985010L) -#endif - -/// -/// The font property enumeration identifies a string in a font. -/// -enum DWRITE_FONT_PROPERTY_ID -{ - /// - /// Unspecified font property identifier. - /// - DWRITE_FONT_PROPERTY_ID_NONE, - - /// - /// Family name for the weight-width-slope model. - /// - DWRITE_FONT_PROPERTY_ID_FAMILY_NAME, - - /// - /// Family name preferred by the designer. This enables font designers to group more than four fonts in a single family without losing compatibility with - /// GDI. This name is typically only present if it differs from the GDI-compatible family name. - /// - DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME, - - /// - /// Face name of the (e.g., Regular or Bold). - /// - DWRITE_FONT_PROPERTY_ID_FACE_NAME, - - /// - /// The full name of the font, e.g. "Arial Bold", from name id 4 in the name table. - /// - DWRITE_FONT_PROPERTY_ID_FULL_NAME, - - /// - /// GDI-compatible family name. Because GDI allows a maximum of four fonts per family, fonts in the same family may have different GDI-compatible family names - /// (e.g., "Arial", "Arial Narrow", "Arial Black"). - /// - DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME, - - /// - /// The postscript name of the font, e.g. "GillSans-Bold" from name id 6 in the name table. - /// - DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME, - - /// - /// Script/language tag to identify the scripts or languages that the font was - /// primarily designed to support. - /// - /// - /// The design script/language tag is meant to be understood from the perspective of - /// users. For example, a font is considered designed for English if it is considered - /// useful for English users. Note that this is different from what a font might be - /// capable of supporting. For example, the Meiryo font was primarily designed for - /// Japanese users. While it is capable of displaying English well, it was not - /// meant to be offered for the benefit of non-Japanese-speaking English users. - /// - /// As another example, a font designed for Chinese may be capable of displaying - /// Japanese text, but would likely look incorrect to Japanese users. - /// - /// The valid values for this property are "ScriptLangTag" values. These are adapted - /// from the IETF BCP 47 specification, "Tags for Identifying Languages" (see - /// http://tools.ietf.org/html/bcp47). In a BCP 47 language tag, a language subtag - /// element is mandatory and other subtags are optional. In a ScriptLangTag, a - /// script subtag is mandatory and other subtags are option. The following - /// augmented BNF syntax, adapted from BCP 47, is used: - /// - /// ScriptLangTag = [language "-"] - /// script - /// ["-" region] - /// *("-" variant) - /// *("-" extension) - /// ["-" privateuse] - /// - /// The expansion of the elements and the intended semantics associated with each - /// are as defined in BCP 47. Script subtags are taken from ISO 15924. At present, - /// no extensions are defined, and any extension should be ignored. Private use - /// subtags are defined by private agreement between the source and recipient and - /// may be ignored. - /// - /// Subtags must be valid for use in BCP 47 and contained in the Language Subtag - /// Registry maintained by IANA. (See - /// http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry - /// and section 3 of BCP 47 for details. - /// - /// Any ScriptLangTag value not conforming to these specifications is ignored. - /// - /// Examples: - /// "Latn" denotes Latin script (and any language or writing system using Latin) - /// "Cyrl" denotes Cyrillic script - /// "sr-Cyrl" denotes Cyrillic script as used for writing the Serbian language; - /// a font that has this property value may not be suitable for displaying - /// text in Russian or other languages written using Cyrillic script - /// "Jpan" denotes Japanese writing (Han + Hiragana + Katakana) - /// - /// When passing this property to GetPropertyValues, use the overload which does - /// not take a language parameter, since this property has no specific language. - /// - DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG, - - /// - /// Script/language tag to identify the scripts or languages that the font declares - /// it is able to support. - /// - DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG, - - /// - /// Semantic tag to describe the font (e.g. Fancy, Decorative, Handmade, Sans-serif, Swiss, Pixel, Futuristic). - /// - DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG, - - /// - /// Weight of the font represented as a decimal string in the range 1-999. - /// - DWRITE_FONT_PROPERTY_ID_WEIGHT, - - /// - /// Stretch of the font represented as a decimal string in the range 1-9. - /// - DWRITE_FONT_PROPERTY_ID_STRETCH, - - /// - /// Stretch of the font represented as a decimal string in the range 0-2. - /// - DWRITE_FONT_PROPERTY_ID_STYLE, - - /// - /// Total number of properties. - /// - /// - /// DWRITE_FONT_PROPERTY_ID_TOTAL cannot be used as a property ID. - /// - DWRITE_FONT_PROPERTY_ID_TOTAL, -}; - - -/// -/// Font property used for filtering font sets and -/// building a font set with explicit properties. -/// -struct DWRITE_FONT_PROPERTY -{ - /// - /// Specifies the requested font property, such as DWRITE_FONT_PROPERTY_ID_FAMILY_NAME. - /// - DWRITE_FONT_PROPERTY_ID propertyId; - - /// - /// Specifies the property value, such as "Segoe UI". - /// - _Field_z_ WCHAR const* propertyValue; - - /// - /// Specifies the language / locale to use, such as "en-US". - /// - /// - /// When passing property information to AddFontFaceReference, localeName indicates - /// the language of the property value. BCP 47 language tags should be used. If a - /// property value is inherently non-linguistic, this can be left empty. - /// - /// When used for font set filtering, leave this empty: a match will be found - /// regardless of language associated with property values. - /// - _Field_z_ _Maybenull_ WCHAR const* localeName; -}; - - -/// -/// Specifies the locality of a resource. -/// -enum DWRITE_LOCALITY -{ - /// - /// The resource is remote, and information is unknown yet, including the file size and date. - /// Attempting to create a font or file stream will fail until locality becomes at least partial. - /// - DWRITE_LOCALITY_REMOTE, - - /// - /// The resource is partially local, meaning you can query the size and date of the file - /// stream, and you may be able to create a font face and retrieve the particular glyphs - /// for metrics and drawing, but not all the glyphs will be present. - /// - DWRITE_LOCALITY_PARTIAL, - - /// - /// The resource is completely local, and all font functions can be called - /// without concern of missing data or errors related to network connectivity. - /// - DWRITE_LOCALITY_LOCAL, -}; - - -/// -/// Represents a method of rendering glyphs. -/// -enum DWRITE_RENDERING_MODE1 -{ - /// - /// Specifies that the rendering mode is determined automatically based on the font and size. - /// - DWRITE_RENDERING_MODE1_DEFAULT = DWRITE_RENDERING_MODE_DEFAULT, - - /// - /// Specifies that no antialiasing is performed. Each pixel is either set to the foreground - /// color of the text or retains the color of the background. - /// - DWRITE_RENDERING_MODE1_ALIASED = DWRITE_RENDERING_MODE_ALIASED, - - /// - /// Specifies that antialiasing is performed in the horizontal direction and the appearance - /// of glyphs is layout-compatible with GDI using CLEARTYPE_QUALITY. Use DWRITE_MEASURING_MODE_GDI_CLASSIC - /// to get glyph advances. The antialiasing may be either ClearType or grayscale depending on - /// the text antialiasing mode. - /// - DWRITE_RENDERING_MODE1_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, - - /// - /// Specifies that antialiasing is performed in the horizontal direction and the appearance - /// of glyphs is layout-compatible with GDI using CLEARTYPE_NATURAL_QUALITY. Glyph advances - /// are close to the font design advances, but are still rounded to whole pixels. Use - /// DWRITE_MEASURING_MODE_GDI_NATURAL to get glyph advances. The antialiasing may be either - /// ClearType or grayscale depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE1_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, - - /// - /// Specifies that antialiasing is performed in the horizontal direction. This rendering - /// mode allows glyphs to be positioned with subpixel precision and is therefore suitable - /// for natural (i.e., resolution-independent) layout. The antialiasing may be either - /// ClearType or grayscale depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE1_NATURAL = DWRITE_RENDERING_MODE_NATURAL, - - /// - /// Similar to natural mode except that antialiasing is performed in both the horizontal - /// and vertical directions. This is typically used at larger sizes to make curves and - /// diagonal lines look smoother. The antialiasing may be either ClearType or grayscale - /// depending on the text antialiasing mode. - /// - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC, - - /// - /// Specifies that rendering should bypass the rasterizer and use the outlines directly. - /// This is typically used at very large sizes. - /// - DWRITE_RENDERING_MODE1_OUTLINE = DWRITE_RENDERING_MODE_OUTLINE, - - /// - /// Similar to natural symmetric mode except that when possible, text should be rasterized - /// in a downsampled form. - /// - DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED, -}; - - -/// -/// The interface that represents text rendering settings for glyph rasterization and filtering. -/// -interface DWRITE_DECLARE_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc") IDWriteRenderingParams3 : public IDWriteRenderingParams2 -{ - /// - /// Gets the rendering mode. - /// - STDMETHOD_(DWRITE_RENDERING_MODE1, GetRenderingMode1)() PURE; -}; - - -/// -/// The root factory interface for all DWrite objects. -/// -interface DWRITE_DECLARE_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65") IDWriteFactory3 : public IDWriteFactory2 -{ - /// - /// Creates a glyph run analysis object, which encapsulates information - /// used to render a glyph run. - /// - /// Structure specifying the properties of the glyph run. - /// Optional transform applied to the glyphs and their positions. This transform is applied after the - /// scaling specified by the emSize. - /// Specifies the rendering mode, which must be one of the raster rendering modes (i.e., not default - /// and not outline). - /// Specifies the method to measure glyphs. - /// How to grid-fit glyph outlines. This must be non-default. - /// Horizontal position of the baseline origin, in DIPs. - /// Vertical position of the baseline origin, in DIPs. - /// Receives a pointer to the newly created object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateGlyphRunAnalysis)( - _In_ DWRITE_GLYPH_RUN const* glyphRun, - _In_opt_ DWRITE_MATRIX const* transform, - DWRITE_RENDERING_MODE1 renderingMode, - DWRITE_MEASURING_MODE measuringMode, - DWRITE_GRID_FIT_MODE gridFitMode, - DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, - FLOAT baselineOriginX, - FLOAT baselineOriginY, - _COM_Outptr_ IDWriteGlyphRunAnalysis** glyphRunAnalysis - ) PURE; - - using IDWriteFactory::CreateGlyphRunAnalysis; - using IDWriteFactory2::CreateGlyphRunAnalysis; - - /// - /// Creates a rendering parameters object with the specified properties. - /// - /// The gamma value used for gamma correction, which must be greater than zero and cannot exceed 256. - /// The amount of contrast enhancement, zero or greater. - /// The amount of contrast enhancement to use for grayscale antialiasing, zero or greater. - /// The degree of ClearType level, from 0.0f (no ClearType) to 1.0f (full ClearType). - /// The geometry of a device pixel. - /// Method of rendering glyphs. In most cases, this should be DWRITE_RENDERING_MODE_DEFAULT to automatically use an appropriate mode. - /// How to grid fit glyph outlines. In most cases, this should be DWRITE_GRID_FIT_DEFAULT to automatically choose an appropriate mode. - /// Holds the newly created rendering parameters object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateCustomRenderingParams)( - FLOAT gamma, - FLOAT enhancedContrast, - FLOAT grayscaleEnhancedContrast, - FLOAT clearTypeLevel, - DWRITE_PIXEL_GEOMETRY pixelGeometry, - DWRITE_RENDERING_MODE1 renderingMode, - DWRITE_GRID_FIT_MODE gridFitMode, - _COM_Outptr_ IDWriteRenderingParams3** renderingParams - ) PURE; - - using IDWriteFactory::CreateCustomRenderingParams; - using IDWriteFactory1::CreateCustomRenderingParams; - using IDWriteFactory2::CreateCustomRenderingParams; - - /// - /// Creates a reference to a font given a full path. - /// - /// Absolute file path. Subsequent operations on the constructed object may fail - /// if the user provided filePath doesn't correspond to a valid file on the disk. - /// Last modified time of the input file path. If the parameter is omitted, - /// the function will access the font file to obtain its last write time, so the clients are encouraged to specify this value - /// to avoid extra disk access. Subsequent operations on the constructed object may fail - /// if the user provided lastWriteTime doesn't match the file on the disk. - /// The zero based index of a font face in cases when the font files contain a collection of font faces. - /// If the font files contain a single face, this value should be zero. - /// Font face simulation flags for algorithmic emboldening and italicization. - /// Contains newly created font face reference object, or nullptr in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFaceReference)( - _In_z_ WCHAR const* filePath, - _In_opt_ FILETIME const* lastWriteTime, - UINT32 faceIndex, - DWRITE_FONT_SIMULATIONS fontSimulations, - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; - - /// - /// Creates a reference to a font given a file. - /// - /// User provided font file representing the font face. - /// The zero based index of a font face in cases when the font files contain a collection of font faces. - /// If the font files contain a single face, this value should be zero. - /// Font face simulation flags for algorithmic emboldening and italicization. - /// Contains newly created font face reference object, or nullptr in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontFaceReference)( - _In_ IDWriteFontFile* fontFile, - UINT32 faceIndex, - DWRITE_FONT_SIMULATIONS fontSimulations, - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; - - /// - /// Retrieves the list of system fonts. - /// - /// Holds the newly created font set object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetSystemFontSet)( - _COM_Outptr_ IDWriteFontSet** fontSet - ) PURE; - - /// - /// 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_ IDWriteFontSetBuilder** fontSetBuilder - ) PURE; - - /// - /// Create a weight/width/slope tree from a set of fonts. - /// - /// A set of fonts to use to build the collection. - /// Holds the newly created font collection object, or NULL in case of failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CreateFontCollectionFromFontSet)( - IDWriteFontSet* fontSet, - _COM_Outptr_ IDWriteFontCollection1** fontCollection - ) PURE; - - /// - /// Retrieves a weight/width/slope tree of system fonts. - /// - /// Include cloud fonts or only locally installed ones. - /// Holds the newly created font collection object, or NULL in - /// case of failure. - /// If this parameter is nonzero, the function performs an immediate check for changes - /// to the set of system fonts. If this parameter is FALSE, the function will still detect changes if the font - /// cache service is running, but there may be some latency. For example, an application might specify TRUE if - /// it has itself just installed a font and wants to be sure the font collection contains that font. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetSystemFontCollection)( - BOOL includeDownloadableFonts, - _COM_Outptr_ IDWriteFontCollection1** fontCollection, - BOOL checkForUpdates = FALSE - ) PURE; - - using IDWriteFactory2::GetSystemFontCollection; - - /// - /// Gets the font download queue associated with this factory object. - /// - /// Receives a pointer to the font download queue interface. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontDownloadQueue)( - _COM_Outptr_ IDWriteFontDownloadQueue** fontDownloadQueue - ) PURE; -}; - - -interface DWRITE_DECLARE_INTERFACE("53585141-D9F8-4095-8321-D73CF6BD116B") IDWriteFontSet : public IUnknown -{ - /// - /// Get the number of total fonts in the set. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD_(UINT32, GetFontCount)() PURE; - - /// - /// Get a reference to the font at this index, which may be local or remote. - /// - /// Zero-based index of the font. - /// Receives a pointer the font face reference object, or nullptr on failure. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFaceReference)( - UINT32 listIndex, - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; - - /// - /// Gets the index of the matching font face reference in the font set, with the same file, face index, and simulations. - /// - /// Font face reference object that specifies the physical font. - /// Receives the zero-based index of the matching font if the font was found, or UINT_MAX otherwise. - /// Receives TRUE if the font exists or FALSE otherwise. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(FindFontFaceReference)( - IDWriteFontFaceReference* fontFaceReference, - _Out_ UINT32* listIndex, - _Out_ BOOL* exists - ) PURE; - - /// - /// Gets the index of the matching font face reference in the font set, with the same file, face index, and simulations. - /// - /// Font face object that specifies the physical font. - /// Receives the zero-based index of the matching font if the font was found, or UINT_MAX otherwise. - /// Receives TRUE if the font exists or FALSE otherwise. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(FindFontFace)( - IDWriteFontFace* fontFace, - _Out_ UINT32* listIndex, - _Out_ BOOL* exists - ) PURE; - - /// - /// Returns the property values of a specific font item index. - /// - /// Zero-based index of the font. - /// Font property of interest. - /// Receives the value TRUE if the font contains the specified property identifier or FALSE if not. - /// Receives a pointer to the newly created localized strings object, or nullptr on failure or non-existent property. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetPropertyValues)( - UINT32 listIndex, - DWRITE_FONT_PROPERTY_ID propertyId, - _Out_ BOOL* exists, - _COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** values - ) PURE; - - /// - /// Returns all unique property values in the set, which can be used - /// for purposes such as displaying a family list or tag cloud. Values are - /// returned in priority order according to the language list, such that if - /// a font contains more than one localized name, the preferred one will be - /// returned. - /// - /// Font property of interest. - /// List of semicolon delimited language names in preferred - /// order. When a particular string like font family has more than one localized name, - /// the first match is returned. - /// Receives a pointer to the newly created strings list. - /// - /// Standard HRESULT error code. - /// - /// - /// For example, suppose the font set includes the Meiryo family, which has both Japanese and English family names. - /// The returned list of distinct family names would include either the Japanese name (if "ja-jp" was specified as - /// a preferred locale) or the English name (in all other cases). - /// - STDMETHOD(GetPropertyValues)( - DWRITE_FONT_PROPERTY_ID propertyID, - _In_z_ WCHAR const* preferredLocaleNames, - _COM_Outptr_ IDWriteStringList** values - ) PURE; - - /// - /// Returns all unique property values in the set, which can be used - /// for purposes such as displaying a family list or tag cloud. All values - /// are returned regardless of language, including all localized names. - /// - /// Font property of interest. - /// Receives a pointer to the newly created strings list. - /// - /// Standard HRESULT error code. - /// - /// - /// For example, suppose the font set includes the Meiryo family, which has both Japanese and English family names. - /// The returned list of distinct family names would include both the Japanese and English names. - /// - STDMETHOD(GetPropertyValues)( - DWRITE_FONT_PROPERTY_ID propertyID, - _COM_Outptr_ IDWriteStringList** values - ) PURE; - - /// - /// Returns how many times a given property value occurs in the set. - /// - /// Font property of interest. - /// How many times that property occurs. - /// - /// Standard HRESULT error code. - /// - /// - /// For example, the family name "Segoe UI" may return a count of 12, - /// whereas Harrington only has 1. - /// - STDMETHOD(GetPropertyOccurrenceCount)( - _In_ DWRITE_FONT_PROPERTY const* property, - _Out_ UINT32* propertyOccurrenceCount - ) PURE; - - /// - /// Returns a subset of fonts filtered by the given properties. - /// - /// List of properties to filter using. - /// How many properties to filter. - /// Subset of fonts that match the properties, - /// or nullptr on failure. - /// - /// Standard HRESULT error code. - /// - /// - /// If no fonts matched the filter, the subset will be empty (GetFontCount - /// returns 0), but the function does not return an error. The subset will - /// always be equal to or less than the original set. - /// - STDMETHOD(GetMatchingFonts)( - _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties, - UINT32 propertyCount, - _COM_Outptr_ IDWriteFontSet** filteredSet - ) PURE; - - /// - /// Returns a list of fonts within the given WWS family prioritized by - /// WWS distance. - /// - /// Neutral or localized family name of font. - /// Weight of font. - /// Stretch of font. - /// Slope of font. - /// Subset of fonts that match the properties, - /// or nullptr on failure. - /// - /// Standard HRESULT error code. - /// - /// - /// The returned list can include simulated bold and oblique variants, - /// which would be useful for font fallback selection. - /// - STDMETHOD(GetMatchingFonts)( - _In_z_ WCHAR const* familyName, - DWRITE_FONT_WEIGHT fontWeight, - DWRITE_FONT_STRETCH fontStretch, - DWRITE_FONT_STYLE fontStyle, - _COM_Outptr_ IDWriteFontSet** filteredSet - ) PURE; -}; - - -interface DWRITE_DECLARE_INTERFACE("2F642AFE-9C68-4F40-B8BE-457401AFCB3D") IDWriteFontSetBuilder : public IUnknown -{ - /// - /// Adds a reference to a font to the set being built. The necessary - /// metadata will automatically be extracted from the font upon calling - /// CreateFontSet. - /// - /// Font face reference object to add to the set. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddFontFaceReference)( - _In_ IDWriteFontFaceReference* fontFaceReference - ) PURE; - - /// - /// Adds a reference to a font to the set being built. The caller - /// supplies enough information to search on, avoiding the need to open - /// the potentially non-local font. Any properties not supplied by the - /// caller will be missing, and those properties will not be available as - /// filters in GetMatchingFonts. GetPropertyValues for missing properties - /// will return an empty string list. The properties passed should generally - /// be consistent with the actual font contents, but they need not be. You - /// could, for example, alias a font using a different name or unique - /// identifier, or you could set custom tags not present in the actual - /// font. - /// - /// Reference to the font. - /// List of properties to associate with the reference. - /// How many properties are defined. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddFontFaceReference)( - _In_ IDWriteFontFaceReference* fontFaceReference, - _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties, - UINT32 propertyCount - ) PURE; - - /// - /// Appends an existing font set to the one being built, allowing - /// one to aggregate two sets or to essentially extend an existing one. - /// - /// Font set to append font face references from. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AddFontSet)( - _In_ IDWriteFontSet* fontSet - ) PURE; - - /// - /// Creates a font set from all the font face references added so - /// far via AddFontFaceReference. - /// - /// Contains newly created font set object, - /// or nullptr in case of failure. - /// - /// Standard HRESULT error code. - /// - /// - /// Creating a font set takes less time if the references were added - /// with metadata rather than needing to extract the metadata from the - /// font file. - /// - STDMETHOD(CreateFontSet)( - _COM_Outptr_ IDWriteFontSet** fontSet - ) PURE; -}; - - -interface DWRITE_DECLARE_INTERFACE("53585141-D9F8-4095-8321-D73CF6BD116C") IDWriteFontCollection1 : public IDWriteFontCollection -{ - /// - /// Get the underlying font set used by this collection. - /// - /// Contains font set used by the collection. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontSet)( - _COM_Outptr_ IDWriteFontSet** fontSet - ) PURE; - - /// - /// Creates a font family object given a zero-based font family index. - /// - /// Zero-based index of the font family. - /// Receives a pointer the newly created font family object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFamily)( - UINT32 index, - _COM_Outptr_ IDWriteFontFamily1** fontFamily - ) PURE; - - using IDWriteFontCollection::GetFontFamily; -}; - - -/// -/// The IDWriteFontFamily interface represents a set of fonts that share the same design but are differentiated -/// by weight, stretch, and style. -/// -interface DWRITE_DECLARE_INTERFACE("DA20D8EF-812A-4C43-9802-62EC4ABD7ADF") IDWriteFontFamily1 : public IDWriteFontFamily -{ - /// - /// Gets the current locality of a font given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// - /// The locality enumeration. For fully local files, the result will always - /// be DWRITE_LOCALITY_LOCAL. For downloadable files, the result depends on how - /// much of the file has been downloaded, and GetFont() fails if the locality - /// is REMOTE and potentially fails if PARTIAL. The application can explicitly - /// ask for the font to be enqueued for download via EnqueueFontDownloadRequest - /// followed by BeginDownload(). - /// - /// - /// The locality enumeration. - /// - STDMETHOD_(DWRITE_LOCALITY, GetFontLocality)(UINT32 listIndex) PURE; - - /// - /// Gets a font given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// Receives a pointer to the newly created font object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFont)( - UINT32 listIndex, - _COM_Outptr_ IDWriteFont3** font - ) PURE; - - using IDWriteFontFamily::GetFont; - - /// - /// Gets a font face reference given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// Receives a pointer to the newly created font face reference object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFaceReference)( - UINT32 listIndex, - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; -}; - - -/// -/// The IDWriteFontList interface represents a list of fonts. -/// -interface DWRITE_DECLARE_INTERFACE("DA20D8EF-812A-4C43-9802-62EC4ABD7ADE") IDWriteFontList1 : public IDWriteFontList -{ - /// - /// Gets the current locality of a font given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// - /// The locality enumeration. For fully local files, the result will always - /// be DWRITE_LOCALITY_LOCAL. For downloadable files, the result depends on how - /// much of the file has been downloaded, and GetFont() fails if the locality - /// is REMOTE and potentially fails if PARTIAL. The application can explicitly - /// ask for the font to be enqueued for download via EnqueueFontDownloadRequest - /// followed by BeginDownload(). - /// - /// - /// The locality enumeration. - /// - STDMETHOD_(DWRITE_LOCALITY, GetFontLocality)(UINT32 listIndex) PURE; - - /// - /// Gets a font given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// Receives a pointer to the newly created font object. - /// - /// Standard HRESULT error code. The function returns DWRITE_E_REMOTEFONT if it could not construct a remote font. - /// - STDMETHOD(GetFont)( - UINT32 listIndex, - _COM_Outptr_ IDWriteFont3** font - ) PURE; - - using IDWriteFontList::GetFont; - - /// - /// Gets a font face reference given its zero-based index. - /// - /// Zero-based index of the font in the font list. - /// Receives a pointer to the newly created font face reference object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFaceReference)( - UINT32 listIndex, - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; -}; - - -/// -/// A uniquely identifying reference to a font, from which you can create a font -/// face to query font metrics and use for rendering. A font face reference -/// consists of a font file, font face index, and font face simulation. The file -/// data may or may not be physically present on the local machine yet. -/// -interface DWRITE_DECLARE_INTERFACE("5E7FA7CA-DDE3-424C-89F0-9FCD6FED58CD") IDWriteFontFaceReference : public IUnknown -{ - /// - /// Creates a font face from the reference for use with layout, - /// shaping, or rendering. - /// - /// Newly created font face object, or nullptr in the case of failure. - /// - /// Standard HRESULT error code. - /// - /// - /// This function can fail with DWRITE_E_REMOTEFONT if the font is not local. - /// - STDMETHOD(CreateFontFace)( - _COM_Outptr_ IDWriteFontFace3** fontFace - ) PURE; - - /// - /// Creates a font face with alternate font simulations, for example, to - /// explicitly simulate a bold font face out of a regular variant. - /// - /// Font face simulation flags for algorithmic emboldening and italicization. - /// Newly created font face object, or nullptr in the case of failure. - /// - /// Standard HRESULT error code. - /// - /// - /// This function can fail with DWRITE_E_REMOTEFONT if the font is not local. - /// - STDMETHOD(CreateFontFaceWithSimulations)( - DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, - _COM_Outptr_ IDWriteFontFace3** fontFace - ) PURE; - - /// - /// Compares two instances of a font face references for equality. - /// - STDMETHOD_(BOOL, Equals)(IDWriteFontFaceReference* fontFaceReference) PURE; - - /// - /// Obtains the zero-based index of the font face in its font file or files. If the font files contain a single face, - /// the return value is zero. - /// - STDMETHOD_(UINT32, GetFontFaceIndex)() PURE; - - /// - /// Obtains the algorithmic style simulation flags of a font face. - /// - STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE; - - /// - /// Obtains the font file representing a font face. - /// - STDMETHOD(GetFontFile)( - _COM_Outptr_ IDWriteFontFile** fontFile - ) PURE; - - /// - /// Get the local size of the font face in bytes. - /// - /// - /// The value returned by GetLocalFileSize will always be less than or - /// equal to the value returned by GetFullSize. If the locality is remote, - /// the GetLocalFileSize value is zero. If the locality is local, this - /// value will equal the value returned by GetFileSize. If the locality is - /// partial, this value will equal the size of the portions of the font - /// data that have been downloaded, which will be greater than zero and - /// less than or equal to the GetFileSize value. - /// - STDMETHOD_(UINT64, GetLocalFileSize)() PURE; - - /// - /// Get the total size of the font face in bytes. - /// - /// - /// If the locality is remote, this value is unknown and will be zero. - /// If the locality is partial or local, the value is the full size of - /// the font face. - /// - STDMETHOD_(UINT64, GetFileSize)() PURE; - - /// - /// Get the last modified date. - /// - /// - /// The time may be zero if the font file loader does not expose file time. - /// - STDMETHOD(GetFileTime)(_Out_ FILETIME* lastWriteTime) PURE; - - /// - /// Get the locality of this font face reference. You can always successfully - /// create a font face from a fully local font. Attempting to create a font - /// face on a remote or partially local font may fail with DWRITE_E_REMOTEFONT. - /// This function may change between calls depending on background downloads - /// and whether cached data expires. - /// - STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE; - - /// - /// Adds a request to the font download queue (IDWriteFontDownloadQueue). - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(EnqueueFontDownloadRequest)() PURE; - - /// - /// Adds a request to the font download queue (IDWriteFontDownloadQueue). - /// - /// Array of characters to download. - /// The number of elements in the character array. - /// - /// Standard HRESULT error code. - /// - /// - /// Downloading a character involves downloading every glyph it depends on - /// directly or indirectly, via font tables (cmap, GSUB, COLR, glyf). - /// - STDMETHOD(EnqueueCharacterDownloadRequest)( - _In_reads_(characterCount) WCHAR const* characters, - UINT32 characterCount - ) PURE; - - /// - /// Adds a request to the font download queue (IDWriteFontDownloadQueue). - /// - /// Array of glyph indices to download. - /// The number of elements in the glyph index array. - /// - /// Standard HRESULT error code. - /// - /// - /// Downloading a glyph involves downloading any other glyphs it depends on - /// from the font tables (GSUB, COLR, glyf). - /// - STDMETHOD(EnqueueGlyphDownloadRequest)( - _In_reads_(glyphCount) UINT16 const* glyphIndices, - UINT32 glyphCount - ) PURE; - - /// - /// Adds a request to the font download queue (IDWriteFontDownloadQueue). - /// - /// Offset of the fragment from the beginning of the font file. - /// Size of the fragment in bytes. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(EnqueueFileFragmentDownloadRequest)( - UINT64 fileOffset, - UINT64 fragmentSize - ) PURE; -}; - - -/// -/// The IDWriteFont interface represents a font in a font collection. -/// -interface DWRITE_DECLARE_INTERFACE("29748ED6-8C9C-4A6A-BE0B-D912E8538944") IDWriteFont3 : public IDWriteFont2 -{ - /// - /// Creates a font face object for the font. - /// - /// Receives a pointer to the newly created font face object. - /// - /// Standard HRESULT error code. The function returns DWRITE_E_REMOTEFONT if it could not construct a remote font. - /// - STDMETHOD(CreateFontFace)( - _COM_Outptr_ IDWriteFontFace3** fontFace - ) PURE; - - using IDWriteFont::CreateFontFace; - - /// - /// Compares two instances of a font references for equality. - /// - STDMETHOD_(BOOL, Equals)(IDWriteFont* font) PURE; - - /// - /// Return a font face reference identifying this font. - /// - /// A uniquely identifying reference to a font face. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFaceReference)( - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; - - /// - /// Determines whether the font supports the specified character. - /// - /// Unicode (UCS-4) character value. - /// - /// Returns TRUE if the font has the specified character, FALSE if not. - /// - STDMETHOD_(BOOL, HasCharacter)( - UINT32 unicodeValue - ) PURE; - - using IDWriteFont::HasCharacter; - - /// - /// Gets the current locality of the font. - /// - /// - /// The locality enumeration. For fully local files, the result will always - /// be DWRITE_LOCALITY_LOCAL. A downloadable file may be any of the states, - /// and this function may change between calls. - /// - /// - /// The locality enumeration. - /// - STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE; -}; - - -/// -/// 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("D37D7598-09BE-4222-A236-2081341CC1F2") IDWriteFontFace3 : public IDWriteFontFace2 -{ - /// - /// Return a font face reference identifying this font. - /// - /// A uniquely identifying reference to a font face. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontFaceReference)( - _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference - ) PURE; - - /// - /// Gets the PANOSE values from the font, used for font selection and - /// matching. - /// - /// PANOSE structure to fill in. - /// - /// The function does not simulate these, such as substituting a weight or - /// proportion inferred on other values. If the font does not specify them, - /// they are all set to 'any' (0). - /// - STDMETHOD_(void, GetPanose)( - _Out_ DWRITE_PANOSE* panose - ) PURE; - - /// - /// Gets the weight of the specified font. - /// - STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)() PURE; - - /// - /// Gets the stretch (aka. width) of the specified font. - /// - STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)() PURE; - - /// - /// Gets the style (aka. slope) of the specified font. - /// - STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)() PURE; - - /// - /// Creates an localized strings object that contains the family names for the font family, indexed by locale name. - /// - /// Receives a pointer to the newly created localized strings object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFamilyNames)( - _COM_Outptr_ IDWriteLocalizedStrings** names - ) PURE; - - /// - /// Gets a localized strings collection containing the face names for the font (e.g., Regular or Bold), indexed by locale name. - /// - /// Receives a pointer to the newly created localized strings object. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFaceNames)( - _COM_Outptr_ IDWriteLocalizedStrings** names - ) PURE; - - /// - /// Gets a localized strings collection containing the specified informational strings, indexed by locale name. - /// - /// Identifies the string to get. - /// Receives a pointer to the newly created localized strings object. - /// Receives the value TRUE if the font contains the specified string ID or FALSE if not. - /// - /// Standard HRESULT error code. If the font does not contain the specified string, the return value is S_OK but - /// informationalStrings receives a NULL pointer and exists receives the value FALSE. - /// - STDMETHOD(GetInformationalStrings)( - DWRITE_INFORMATIONAL_STRING_ID informationalStringID, - _COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** informationalStrings, - _Out_ BOOL* exists - ) PURE; - - /// - /// Determines whether the font supports the specified character. - /// - /// Unicode (UCS-4) character value. - /// - /// Returns TRUE if the font has the specified character, FALSE if not. - /// - STDMETHOD_(BOOL, HasCharacter)( - UINT32 unicodeValue - ) PURE; - - /// - /// Determines the recommended text rendering and grid-fit mode to be used based on the - /// font, size, world transform, and measuring mode. - /// - /// Logical font size in DIPs. - /// Number of pixels per logical inch in the horizontal direction. - /// Number of pixels per logical inch in the vertical direction. - /// Specifies the world transform. - /// Specifies the quality of the graphics system's outline rendering, - /// affects the size threshold above which outline rendering is used. - /// Specifies the method used to measure during text layout. For proper - /// glyph spacing, the function returns a rendering mode that is compatible with the specified - /// measuring mode. - /// Rendering parameters object. This parameter is necessary in case the rendering parameters - /// object overrides the rendering mode. - /// Receives the recommended rendering mode. - /// Receives the recommended grid-fit mode. - /// - /// This method should be used to determine the actual rendering mode in cases where the rendering - /// mode of the rendering params object is DWRITE_RENDERING_MODE_DEFAULT, and the actual grid-fit - /// mode when the rendering params object is DWRITE_GRID_FIT_MODE_DEFAULT. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetRecommendedRenderingMode)( - FLOAT fontEmSize, - FLOAT dpiX, - FLOAT dpiY, - _In_opt_ DWRITE_MATRIX const* transform, - BOOL isSideways, - DWRITE_OUTLINE_THRESHOLD outlineThreshold, - DWRITE_MEASURING_MODE measuringMode, - _In_opt_ IDWriteRenderingParams* renderingParams, - _Out_ DWRITE_RENDERING_MODE1* renderingMode, - _Out_ DWRITE_GRID_FIT_MODE* gridFitMode - ) PURE; - - /// - /// Determines whether the character is locally downloaded from the font. - /// - /// Unicode (UCS-4) character value. - /// - /// Returns TRUE if the font has the specified character locally available, - /// FALSE if not or if the font does not support that character. - /// - STDMETHOD_(BOOL, IsCharacterLocal)( - UINT32 unicodeValue - ) PURE; - - /// - /// Determines whether the glyph is locally downloaded from the font. - /// - /// Glyph identifier. - /// - /// Returns TRUE if the font has the specified glyph locally available. - /// - STDMETHOD_(BOOL, IsGlyphLocal)( - UINT16 glyphId - ) PURE; - - /// - /// Determines whether the specified characters are local. - /// - /// Array of characters. - /// The number of elements in the character array. - /// Specifies whether to enqueue a download request - /// if any of the specified characters are not local. - /// Receives TRUE if all of the specified characters are local, - /// FALSE if any of the specified characters are remote. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AreCharactersLocal)( - _In_reads_(characterCount) WCHAR const* characters, - UINT32 characterCount, - BOOL enqueueIfNotLocal, - _Out_ BOOL* isLocal - ) PURE; - - /// - /// Determines whether the specified glyphs are local. - /// - /// Array of glyph indices. - /// The number of elements in the glyph index array. - /// Specifies whether to enqueue a download request - /// if any of the specified glyphs are not local. - /// Receives TRUE if all of the specified glyphs are local, - /// FALSE if any of the specified glyphs are remote. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(AreGlyphsLocal)( - _In_reads_(glyphCount) UINT16 const* glyphIndices, - UINT32 glyphCount, - BOOL enqueueIfNotLocal, - _Out_ BOOL* isLocal - ) PURE; -}; - - -/// -/// Represents a collection of strings indexed by number. -/// An IDWriteStringList is otherwise identical to IDWriteLocalizedStrings except -/// for the semantics, where localized strings are indexed on language (each -/// language has one string property) whereas a string list may contain multiple -/// strings of the same language, such as a string list of family names from a -/// font set. You can QueryInterface from an IDWriteLocalizedStrings to an -/// IDWriteStringList. -/// -interface DWRITE_DECLARE_INTERFACE("CFEE3140-1157-47CA-8B85-31BFCF3F2D0E") IDWriteStringList : public IUnknown -{ - /// - /// Gets the number of strings. - /// - STDMETHOD_(UINT32, GetCount)() PURE; - - /// - /// Gets the length in characters (not including the null terminator) of the locale name with the specified index. - /// - /// Zero-based index of the locale name. - /// Receives the length in characters, not including the null terminator. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleNameLength)( - UINT32 listIndex, - _Out_ UINT32* length - ) PURE; - - /// - /// Copies the locale name with the specified index to the specified array. - /// - /// Zero-based index of the locale name. - /// Character array that receives the locale name. - /// Size of the array in characters. The size must include space for the terminating - /// null character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLocaleName)( - UINT32 listIndex, - _Out_writes_z_(size) WCHAR* localeName, - UINT32 size - ) PURE; - - /// - /// Gets the length in characters (not including the null terminator) of the string with the specified index. - /// - /// Zero-based index of the string. - /// Receives the length in characters, not including the null terminator. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetStringLength)( - UINT32 listIndex, - _Out_ UINT32* length - ) PURE; - - /// - /// Copies the string with the specified index to the specified array. - /// - /// Zero-based index of the string. - /// Character array that receives the string. - /// Size of the array in characters. The size must include space for the terminating - /// null character. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetString)( - UINT32 listIndex, - _Out_writes_z_(stringBufferSize) WCHAR* stringBuffer, - UINT32 stringBufferSize - ) PURE; -}; - - -/// -/// Application-defined callback interface that receives notifications from the font -/// download queue (IDWriteFontDownloadQueue interface). Callbacks will occur on the -/// downloading thread, and objects must be prepared to handle calls on their methods -/// from other threads at any time. -/// -interface DWRITE_DECLARE_INTERFACE("B06FE5B9-43EC-4393-881B-DBE4DC72FDA7") IDWriteFontDownloadListener : public IUnknown -{ - /// - /// The DownloadCompleted method is called back on an arbitrary thread when a - /// download operation ends. - /// - /// Pointer to the download queue interface on which - /// the BeginDownload method was called. - /// Optional context object that was passed to BeginDownload. - /// AddRef is called on the context object by BeginDownload and Release is called - /// after the DownloadCompleted method returns. - /// Result of the download operation. - STDMETHOD_(void, DownloadCompleted)( - _In_ IDWriteFontDownloadQueue* downloadQueue, - _In_opt_ IUnknown* context, - HRESULT downloadResult - ) PURE; -}; - - -/// -/// Interface that enqueues download requests for remote fonts, characters, glyphs, and font fragments. -/// Provides methods to asynchronously execute a download, cancel pending downloads, and be notified of -/// download completion. Callbacks to listeners will occur on the downloading thread, and objects must -/// be must be able to handle calls on their methods from other threads at any time. -/// -interface DWRITE_DECLARE_INTERFACE("B71E6052-5AEA-4FA3-832E-F60D431F7E91") IDWriteFontDownloadQueue : public IUnknown -{ - /// - /// Registers a client-defined listener object that receives download notifications. - /// All registered listener's DownloadCompleted will be called after BeginDownload - /// completes. - /// - /// Listener object to add. - /// Receives a token value, which the caller must subsequently - /// pass to RemoveListener. - /// - /// Standard HRESULT error code. - /// - /// - /// An IDWriteFontDownloadListener can also be passed to BeginDownload via the - /// context parameter, rather than globally registered to the queue. - /// - STDMETHOD(AddListener)( - IDWriteFontDownloadListener* listener, - _Out_ UINT32* token - ) PURE; - - /// - /// Unregisters a notification handler that was previously registered using - /// AddListener. - /// - /// Token value previously returned by AddListener. - /// - /// Returns S_OK if successful or E_INVALIDARG if the specified token does not - /// correspond to a registered listener. - /// - STDMETHOD(RemoveListener)( - UINT32 token - ) PURE; - - /// - /// Determines whether the download queue is empty. Note that the queue does not - /// include requests that are already being downloaded. In other words, BeginDownload - /// clears the queue. - /// - /// - /// TRUE if the queue is empty, FALSE if there are requests pending for BeginDownload. - /// - STDMETHOD_(BOOL, IsEmpty)() PURE; - - /// - /// Begins an asynchronous download operation. The download operation executes - /// in the background until it completes or is cancelled by a CancelDownload call. - /// - /// Optional context object that is passed back to the - /// download notification handler's DownloadCompleted method. If the context object - /// implements IDWriteFontDownloadListener, its DownloadCompleted will be called - /// when done. - /// - /// Returns S_OK if a download was successfully begun, S_FALSE if the queue was - /// empty, or a standard HRESULT error code. - /// - /// - /// BeginDownload removes all download requests from the queue, transferring them - /// to a background download operation. If any previous downloads are still ongoing - /// when BeginDownload is called again, the new download does not complete until - /// the previous downloads have finished. If the queue is empty and no active - /// downloads are pending, the DownloadCompleted callback is called immediately with - /// DWRITE_DOWNLOAD_RESULT_NONE. - /// - STDMETHOD(BeginDownload)( - _In_opt_ IUnknown* context = nullptr - ) PURE; - - /// - /// Removes all download requests from the queue and cancels any active download - /// operations. This calls DownloadCompleted with DWRITE_E_DOWNLOADCANCELLED. - /// Applications should call this when shutting down if they started any - /// downloads that have not finished yet with a call to DownloadCompleted. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(CancelDownload)() PURE; - - /// - /// Get the current generation number of the download queue, which is incremented - /// every time after a download completes, whether failed or successful. This cookie - /// comparison value may be used to compared against cached data to know when it is - /// stale. - /// - /// - /// The number of download queue generations. - /// - STDMETHOD_(UINT64, GetGenerationCount)() PURE; -}; - - -/// -/// The GDI interop interface provides interoperability with GDI. -/// -interface DWRITE_DECLARE_INTERFACE("4556BE70-3ABD-4F70-90BE-421780A6F515") IDWriteGdiInterop1 : public IDWriteGdiInterop -{ - /// - /// Creates a font object that matches the properties specified by the LOGFONT structure. - /// - /// Structure containing a GDI-compatible font description. - /// The font collection to search. If NULL, the local system font collection is used. - /// Receives a newly created font object if successful, or NULL in case of error. - /// - /// Standard HRESULT error code. - /// - /// - /// The only fields that matter include: lfFaceName, lfCharSet, lfWeight, lfItalic. - /// Font size and rendering mode are a rendering time property, not a font property, - /// and text decorations like underline are drawn separately from the text. If no - /// font matches the given weight, slope, and character set, the best match within - /// the given GDI family name will be returned. DWRITE_E_NOFONT is returned if there - /// is no matching font name using either the GDI family name (e.g. Arial) or the - /// full font name (e.g. Arial Bold Italic). - /// - STDMETHOD(CreateFontFromLOGFONT)( - _In_ LOGFONTW const* logFont, - _In_opt_ IDWriteFontCollection* fontCollection, - _COM_Outptr_ IDWriteFont** font - ) PURE; - - /// - /// Reads the font signature from the given font. - /// - /// Font to read font signature from. - /// Font signature from the OS/2 table, ulUnicodeRange and ulCodePageRange. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontSignature)( - _In_ IDWriteFont* font, - _Out_ FONTSIGNATURE* fontSignature - ) PURE; - - /// - /// Reads the font signature from the given font. - /// - /// Font to read font signature from. - /// Font signature from the OS/2 table, ulUnicodeRange and ulCodePageRange. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetFontSignature)( - _In_ IDWriteFontFace* fontFace, - _Out_ FONTSIGNATURE* fontSignature - ) PURE; - - /// - /// Get a list of matching fonts based on the LOGFONT values. Only fonts - /// of that family name will be returned. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetMatchingFontsByLOGFONT)( - _In_ LOGFONT const* logFont, - _In_ IDWriteFontSet* fontSet, - _COM_Outptr_ IDWriteFontSet** filteredSet - ) PURE; -}; - -/// -/// Information about a formatted line of text. -/// -struct DWRITE_LINE_METRICS1 : DWRITE_LINE_METRICS -{ - /// - /// White space before the content of the line. This is included in the line height and baseline distances. - /// If the line is formatted horizontally either with a uniform line spacing or with proportional - /// line spacing, this value represents the extra space above the content. - /// - FLOAT leadingBefore; - - /// - /// White space after the content of the line. This is included in the height of the line. - /// If the line is formatted horizontally either with a uniform line spacing or with proportional - /// line spacing, this value represents the extra space below the content. - /// - FLOAT leadingAfter; -}; - -/// -/// Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics. -/// -enum DWRITE_FONT_LINE_GAP_USAGE -{ - /// - /// The usage of the font line gap depends on the method used for text layout. - /// - DWRITE_FONT_LINE_GAP_USAGE_DEFAULT, - - /// - /// The font line gap is excluded from line spacing - /// - DWRITE_FONT_LINE_GAP_USAGE_DISABLED, - - /// - /// The font line gap is included in line spacing - /// - DWRITE_FONT_LINE_GAP_USAGE_ENABLED -}; - -/// -/// The DWRITE_LINE_SPACING structure specifies the parameters used to specify how to manage space between lines. -/// -struct DWRITE_LINE_SPACING -{ - /// - /// Method used to determine line spacing. - /// - DWRITE_LINE_SPACING_METHOD method; - - /// - /// Spacing between lines. - /// The interpretation of this parameter depends upon the line spacing method, as follows: - /// - default line spacing: ignored - /// - uniform line spacing: explicit distance in DIPs between lines - /// - proportional line spacing: a scaling factor to be applied to the computed line height; - /// for each line, the height of the line is computed as for default line spacing, and the scaling factor is applied to that value. - /// - FLOAT height; - - /// - /// Distance from top of line to baseline. - /// The interpretation of this parameter depends upon the line spacing method, as follows: - /// - default line spacing: ignored - /// - uniform line spacing: explicit distance in DIPs from the top of the line to the baseline - /// - proportional line spacing: a scaling factor applied to the computed baseline; for each line, - /// the baseline distance is computed as for default line spacing, and the scaling factor is applied to that value. - /// - FLOAT baseline; - - /// - /// Proportion of the entire leading distributed before the line. The allowed value is between 0 and 1.0. The remaining - /// leading is distributed after the line. It is ignored for the default and uniform line spacing methods. - /// The leading that is available to distribute before or after the line depends on the values of the height and - /// baseline parameters. - /// - FLOAT leadingBefore; - - /// - /// Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics. - /// - DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; -}; - -interface DWRITE_DECLARE_INTERFACE("F67E0EDD-9E3D-4ECC-8C32-4183253DFE70") IDWriteTextFormat2 : public IDWriteTextFormat1 -{ - /// - /// Set line spacing. - /// - /// How to manage space between lines. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLineSpacing)(_In_ DWRITE_LINE_SPACING const* lineSpacingOptions) PURE; - - /// - /// Get line spacing. - /// - /// How to manage space between lines. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLineSpacing)(_Out_ DWRITE_LINE_SPACING* lineSpacingOptions) PURE; -}; - -interface DWRITE_DECLARE_INTERFACE("07DDCD52-020E-4DE8-AC33-6C953D83F92D") IDWriteTextLayout3 : public IDWriteTextLayout2 -{ - /// - /// Invalidates the layout, forcing layout to remeasure before calling the - /// metrics or drawing functions. This is useful if the locality of a font - /// changes, and layout should be redrawn, or if the size of a client - /// implemented IDWriteInlineObject changes. - /// - /// - /// Standard HRESULT error code. - /// - STDMETHOD(InvalidateLayout)() PURE; - - /// - /// Set line spacing. - /// - /// How to manage space between lines. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(SetLineSpacing)(_In_ DWRITE_LINE_SPACING const* lineSpacingOptions) PURE; - - /// - /// Get line spacing. - /// - /// How to manage space between lines. - /// - /// Standard HRESULT error code. - /// - STDMETHOD(GetLineSpacing)(_Out_ DWRITE_LINE_SPACING* lineSpacingOptions) PURE; - - /// - /// GetLineMetrics returns properties of each line. - /// - /// The array to fill with line information. - /// The maximum size of the lineMetrics array. - /// The actual size of the lineMetrics - /// array that is needed. - /// - /// Standard HRESULT error code. - /// - /// - /// If maxLineCount is not large enough E_NOT_SUFFICIENT_BUFFER, - /// which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), - /// is returned and *actualLineCount is set to the number of lines - /// needed. - /// - STDMETHOD(GetLineMetrics)( - _Out_writes_to_opt_(maxLineCount, *actualLineCount) DWRITE_LINE_METRICS1* lineMetrics, - UINT32 maxLineCount, - _Out_ UINT32* actualLineCount - ) PURE; -}; - -#endif /* DWRITE_3_H_INCLUDED */ diff --git a/3rdparty/minidx12/Include/dxgi.h b/3rdparty/minidx12/Include/dxgi.h deleted file mode 100644 index 32e4631622..0000000000 --- a/3rdparty/minidx12/Include/dxgi.h +++ /dev/null @@ -1,2951 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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 __dxgi_h__ -#define __dxgi_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDXGIObject_FWD_DEFINED__ -#define __IDXGIObject_FWD_DEFINED__ -typedef interface IDXGIObject IDXGIObject; - -#endif /* __IDXGIObject_FWD_DEFINED__ */ - - -#ifndef __IDXGIDeviceSubObject_FWD_DEFINED__ -#define __IDXGIDeviceSubObject_FWD_DEFINED__ -typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject; - -#endif /* __IDXGIDeviceSubObject_FWD_DEFINED__ */ - - -#ifndef __IDXGIResource_FWD_DEFINED__ -#define __IDXGIResource_FWD_DEFINED__ -typedef interface IDXGIResource IDXGIResource; - -#endif /* __IDXGIResource_FWD_DEFINED__ */ - - -#ifndef __IDXGIKeyedMutex_FWD_DEFINED__ -#define __IDXGIKeyedMutex_FWD_DEFINED__ -typedef interface IDXGIKeyedMutex IDXGIKeyedMutex; - -#endif /* __IDXGIKeyedMutex_FWD_DEFINED__ */ - - -#ifndef __IDXGISurface_FWD_DEFINED__ -#define __IDXGISurface_FWD_DEFINED__ -typedef interface IDXGISurface IDXGISurface; - -#endif /* __IDXGISurface_FWD_DEFINED__ */ - - -#ifndef __IDXGISurface1_FWD_DEFINED__ -#define __IDXGISurface1_FWD_DEFINED__ -typedef interface IDXGISurface1 IDXGISurface1; - -#endif /* __IDXGISurface1_FWD_DEFINED__ */ - - -#ifndef __IDXGIAdapter_FWD_DEFINED__ -#define __IDXGIAdapter_FWD_DEFINED__ -typedef interface IDXGIAdapter IDXGIAdapter; - -#endif /* __IDXGIAdapter_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutput_FWD_DEFINED__ -#define __IDXGIOutput_FWD_DEFINED__ -typedef interface IDXGIOutput IDXGIOutput; - -#endif /* __IDXGIOutput_FWD_DEFINED__ */ - - -#ifndef __IDXGISwapChain_FWD_DEFINED__ -#define __IDXGISwapChain_FWD_DEFINED__ -typedef interface IDXGISwapChain IDXGISwapChain; - -#endif /* __IDXGISwapChain_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactory_FWD_DEFINED__ -#define __IDXGIFactory_FWD_DEFINED__ -typedef interface IDXGIFactory IDXGIFactory; - -#endif /* __IDXGIFactory_FWD_DEFINED__ */ - - -#ifndef __IDXGIDevice_FWD_DEFINED__ -#define __IDXGIDevice_FWD_DEFINED__ -typedef interface IDXGIDevice IDXGIDevice; - -#endif /* __IDXGIDevice_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactory1_FWD_DEFINED__ -#define __IDXGIFactory1_FWD_DEFINED__ -typedef interface IDXGIFactory1 IDXGIFactory1; - -#endif /* __IDXGIFactory1_FWD_DEFINED__ */ - - -#ifndef __IDXGIAdapter1_FWD_DEFINED__ -#define __IDXGIAdapter1_FWD_DEFINED__ -typedef interface IDXGIAdapter1 IDXGIAdapter1; - -#endif /* __IDXGIAdapter1_FWD_DEFINED__ */ - - -#ifndef __IDXGIDevice1_FWD_DEFINED__ -#define __IDXGIDevice1_FWD_DEFINED__ -typedef interface IDXGIDevice1 IDXGIDevice1; - -#endif /* __IDXGIDevice1_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "oaidl.h" -#include "ocidl.h" -#include "dxgitype.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dxgi_0000_0000 */ -/* [local] */ - -#include -#define DXGI_CPU_ACCESS_NONE ( 0 ) -#define DXGI_CPU_ACCESS_DYNAMIC ( 1 ) -#define DXGI_CPU_ACCESS_READ_WRITE ( 2 ) -#define DXGI_CPU_ACCESS_SCRATCH ( 3 ) -#define DXGI_CPU_ACCESS_FIELD 15 -#define DXGI_USAGE_SHADER_INPUT 0x00000010UL -#define DXGI_USAGE_RENDER_TARGET_OUTPUT 0x00000020UL -#define DXGI_USAGE_BACK_BUFFER 0x00000040UL -#define DXGI_USAGE_SHARED 0x00000080UL -#define DXGI_USAGE_READ_ONLY 0x00000100UL -#define DXGI_USAGE_DISCARD_ON_PRESENT 0x00000200UL -#define DXGI_USAGE_UNORDERED_ACCESS 0x00000400UL -typedef UINT DXGI_USAGE; - -typedef struct DXGI_FRAME_STATISTICS - { - UINT PresentCount; - UINT PresentRefreshCount; - UINT SyncRefreshCount; - LARGE_INTEGER SyncQPCTime; - LARGE_INTEGER SyncGPUTime; - } DXGI_FRAME_STATISTICS; - -typedef struct DXGI_MAPPED_RECT - { - INT Pitch; - BYTE *pBits; - } DXGI_MAPPED_RECT; - -#ifdef __midl -typedef struct _LUID - { - DWORD LowPart; - LONG HighPart; - } LUID; - -typedef struct _LUID *PLUID; - -#endif -typedef struct DXGI_ADAPTER_DESC - { - WCHAR Description[ 128 ]; - UINT VendorId; - UINT DeviceId; - UINT SubSysId; - UINT Revision; - SIZE_T DedicatedVideoMemory; - SIZE_T DedicatedSystemMemory; - SIZE_T SharedSystemMemory; - LUID AdapterLuid; - } DXGI_ADAPTER_DESC; - -#if !defined(HMONITOR_DECLARED) && !defined(HMONITOR) && (WINVER < 0x0500) -#define HMONITOR_DECLARED -#if 0 -typedef HANDLE HMONITOR; - -#endif -DECLARE_HANDLE(HMONITOR); -#endif -typedef struct DXGI_OUTPUT_DESC - { - WCHAR DeviceName[ 32 ]; - RECT DesktopCoordinates; - BOOL AttachedToDesktop; - DXGI_MODE_ROTATION Rotation; - HMONITOR Monitor; - } DXGI_OUTPUT_DESC; - -typedef struct DXGI_SHARED_RESOURCE - { - HANDLE Handle; - } DXGI_SHARED_RESOURCE; - -#define DXGI_RESOURCE_PRIORITY_MINIMUM ( 0x28000000 ) - -#define DXGI_RESOURCE_PRIORITY_LOW ( 0x50000000 ) - -#define DXGI_RESOURCE_PRIORITY_NORMAL ( 0x78000000 ) - -#define DXGI_RESOURCE_PRIORITY_HIGH ( 0xa0000000 ) - -#define DXGI_RESOURCE_PRIORITY_MAXIMUM ( 0xc8000000 ) - -typedef -enum DXGI_RESIDENCY - { - DXGI_RESIDENCY_FULLY_RESIDENT = 1, - DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2, - DXGI_RESIDENCY_EVICTED_TO_DISK = 3 - } DXGI_RESIDENCY; - -typedef struct DXGI_SURFACE_DESC - { - UINT Width; - UINT Height; - DXGI_FORMAT Format; - DXGI_SAMPLE_DESC SampleDesc; - } DXGI_SURFACE_DESC; - -typedef -enum DXGI_SWAP_EFFECT - { - DXGI_SWAP_EFFECT_DISCARD = 0, - DXGI_SWAP_EFFECT_SEQUENTIAL = 1, - DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3, - DXGI_SWAP_EFFECT_FLIP_DISCARD = 4 - } DXGI_SWAP_EFFECT; - -typedef -enum DXGI_SWAP_CHAIN_FLAG - { - DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1, - DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2, - DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4, - DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8, - DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16, - DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32, - DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64, - 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; - -typedef struct DXGI_SWAP_CHAIN_DESC - { - DXGI_MODE_DESC BufferDesc; - DXGI_SAMPLE_DESC SampleDesc; - DXGI_USAGE BufferUsage; - UINT BufferCount; - HWND OutputWindow; - BOOL Windowed; - DXGI_SWAP_EFFECT SwapEffect; - UINT Flags; - } DXGI_SWAP_CHAIN_DESC; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_s_ifspec; - -#ifndef __IDXGIObject_INTERFACE_DEFINED__ -#define __IDXGIObject_INTERFACE_DEFINED__ - -/* interface IDXGIObject */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e") - IDXGIObject : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetPrivateData( - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrivateData( - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetParent( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIObject * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIObject * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - END_INTERFACE - } IDXGIObjectVtbl; - - interface IDXGIObject - { - CONST_VTBL struct IDXGIObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIObject_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIObject_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIObject_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIObject_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIObject_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__ -#define __IDXGIDeviceSubObject_INTERFACE_DEFINED__ - -/* interface IDXGIDeviceSubObject */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDeviceSubObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6") - IDXGIDeviceSubObject : public IDXGIObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDevice( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDeviceSubObjectVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDeviceSubObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDeviceSubObject * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDeviceSubObject * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIDeviceSubObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIDeviceSubObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIDeviceSubObject * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIDeviceSubObject * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGIDeviceSubObject * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - END_INTERFACE - } IDXGIDeviceSubObjectVtbl; - - interface IDXGIDeviceSubObject - { - CONST_VTBL struct IDXGIDeviceSubObjectVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDeviceSubObject_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDeviceSubObject_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDeviceSubObject_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIDeviceSubObject_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIDeviceSubObject_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIDeviceSubObject_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIDeviceSubObject_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIResource_INTERFACE_DEFINED__ -#define __IDXGIResource_INTERFACE_DEFINED__ - -/* interface IDXGIResource */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIResource; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b") - IDXGIResource : public IDXGIDeviceSubObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetSharedHandle( - /* [annotation][out] */ - _Out_ HANDLE *pSharedHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUsage( - /* [out] */ DXGI_USAGE *pUsage) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority( - /* [in] */ UINT EvictionPriority) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority( - /* [annotation][retval][out] */ - _Out_ UINT *pEvictionPriority) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIResourceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIResource * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIResource * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIResource * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIResource * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIResource * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIResource * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIResource * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGIResource * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetSharedHandle )( - IDXGIResource * This, - /* [annotation][out] */ - _Out_ HANDLE *pSharedHandle); - - HRESULT ( STDMETHODCALLTYPE *GetUsage )( - IDXGIResource * This, - /* [out] */ DXGI_USAGE *pUsage); - - HRESULT ( STDMETHODCALLTYPE *SetEvictionPriority )( - IDXGIResource * This, - /* [in] */ UINT EvictionPriority); - - HRESULT ( STDMETHODCALLTYPE *GetEvictionPriority )( - IDXGIResource * This, - /* [annotation][retval][out] */ - _Out_ UINT *pEvictionPriority); - - END_INTERFACE - } IDXGIResourceVtbl; - - interface IDXGIResource - { - CONST_VTBL struct IDXGIResourceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIResource_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIResource_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIResource_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIResource_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIResource_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIResource_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIResource_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIResource_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGIResource_GetSharedHandle(This,pSharedHandle) \ - ( (This)->lpVtbl -> GetSharedHandle(This,pSharedHandle) ) - -#define IDXGIResource_GetUsage(This,pUsage) \ - ( (This)->lpVtbl -> GetUsage(This,pUsage) ) - -#define IDXGIResource_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define IDXGIResource_GetEvictionPriority(This,pEvictionPriority) \ - ( (This)->lpVtbl -> GetEvictionPriority(This,pEvictionPriority) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIResource_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__ -#define __IDXGIKeyedMutex_INTERFACE_DEFINED__ - -/* interface IDXGIKeyedMutex */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIKeyedMutex; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d") - IDXGIKeyedMutex : public IDXGIDeviceSubObject - { - public: - virtual HRESULT STDMETHODCALLTYPE AcquireSync( - /* [in] */ UINT64 Key, - /* [in] */ DWORD dwMilliseconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseSync( - /* [in] */ UINT64 Key) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIKeyedMutexVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIKeyedMutex * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIKeyedMutex * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIKeyedMutex * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIKeyedMutex * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIKeyedMutex * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIKeyedMutex * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIKeyedMutex * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGIKeyedMutex * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *AcquireSync )( - IDXGIKeyedMutex * This, - /* [in] */ UINT64 Key, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *ReleaseSync )( - IDXGIKeyedMutex * This, - /* [in] */ UINT64 Key); - - END_INTERFACE - } IDXGIKeyedMutexVtbl; - - interface IDXGIKeyedMutex - { - CONST_VTBL struct IDXGIKeyedMutexVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIKeyedMutex_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIKeyedMutex_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIKeyedMutex_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIKeyedMutex_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIKeyedMutex_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIKeyedMutex_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIKeyedMutex_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds) \ - ( (This)->lpVtbl -> AcquireSync(This,Key,dwMilliseconds) ) - -#define IDXGIKeyedMutex_ReleaseSync(This,Key) \ - ( (This)->lpVtbl -> ReleaseSync(This,Key) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0004 */ -/* [local] */ - -#define DXGI_MAP_READ ( 1UL ) - -#define DXGI_MAP_WRITE ( 2UL ) - -#define DXGI_MAP_DISCARD ( 4UL ) - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_s_ifspec; - -#ifndef __IDXGISurface_INTERFACE_DEFINED__ -#define __IDXGISurface_INTERFACE_DEFINED__ - -/* interface IDXGISurface */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISurface; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec") - IDXGISurface : public IDXGIDeviceSubObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDesc( - /* [annotation][out] */ - _Out_ DXGI_SURFACE_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE Map( - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect, - /* [in] */ UINT MapFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Unmap( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISurfaceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISurface * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISurface * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISurface * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISurface * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISurface * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISurface * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISurface * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISurface * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISurface * This, - /* [annotation][out] */ - _Out_ DXGI_SURFACE_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *Map )( - IDXGISurface * This, - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect, - /* [in] */ UINT MapFlags); - - HRESULT ( STDMETHODCALLTYPE *Unmap )( - IDXGISurface * This); - - END_INTERFACE - } IDXGISurfaceVtbl; - - interface IDXGISurface - { - CONST_VTBL struct IDXGISurfaceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISurface_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISurface_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISurface_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISurface_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISurface_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISurface_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISurface_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISurface_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISurface_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISurface_Map(This,pLockedRect,MapFlags) \ - ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) ) - -#define IDXGISurface_Unmap(This) \ - ( (This)->lpVtbl -> Unmap(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISurface_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGISurface1_INTERFACE_DEFINED__ -#define __IDXGISurface1_INTERFACE_DEFINED__ - -/* interface IDXGISurface1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISurface1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("4AE63092-6327-4c1b-80AE-BFE12EA32B86") - IDXGISurface1 : public IDXGISurface - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDC( - /* [in] */ BOOL Discard, - /* [annotation][out] */ - _Out_ HDC *phdc) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseDC( - /* [annotation][in] */ - _In_opt_ RECT *pDirtyRect) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISurface1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISurface1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISurface1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISurface1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISurface1 * This, - /* [annotation][out] */ - _Out_ DXGI_SURFACE_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *Map )( - IDXGISurface1 * This, - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect, - /* [in] */ UINT MapFlags); - - HRESULT ( STDMETHODCALLTYPE *Unmap )( - IDXGISurface1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetDC )( - IDXGISurface1 * This, - /* [in] */ BOOL Discard, - /* [annotation][out] */ - _Out_ HDC *phdc); - - HRESULT ( STDMETHODCALLTYPE *ReleaseDC )( - IDXGISurface1 * This, - /* [annotation][in] */ - _In_opt_ RECT *pDirtyRect); - - END_INTERFACE - } IDXGISurface1Vtbl; - - interface IDXGISurface1 - { - CONST_VTBL struct IDXGISurface1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISurface1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISurface1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISurface1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISurface1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISurface1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISurface1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISurface1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISurface1_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISurface1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISurface1_Map(This,pLockedRect,MapFlags) \ - ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) ) - -#define IDXGISurface1_Unmap(This) \ - ( (This)->lpVtbl -> Unmap(This) ) - - -#define IDXGISurface1_GetDC(This,Discard,phdc) \ - ( (This)->lpVtbl -> GetDC(This,Discard,phdc) ) - -#define IDXGISurface1_ReleaseDC(This,pDirtyRect) \ - ( (This)->lpVtbl -> ReleaseDC(This,pDirtyRect) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISurface1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0006 */ -/* [local] */ - - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_s_ifspec; - -#ifndef __IDXGIAdapter_INTERFACE_DEFINED__ -#define __IDXGIAdapter_INTERFACE_DEFINED__ - -/* interface IDXGIAdapter */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIAdapter; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0") - IDXGIAdapter : public IDXGIObject - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumOutputs( - /* [in] */ UINT Output, - /* [annotation][out][in] */ - _COM_Outptr_ IDXGIOutput **ppOutput) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesc( - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport( - /* [annotation][in] */ - _In_ REFGUID InterfaceName, - /* [annotation][out] */ - _Out_ LARGE_INTEGER *pUMDVersion) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIAdapterVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIAdapter * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIAdapter * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIAdapter * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIAdapter * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIAdapter * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIAdapter * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIAdapter * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( - IDXGIAdapter * This, - /* [in] */ UINT Output, - /* [annotation][out][in] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIAdapter * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( - IDXGIAdapter * This, - /* [annotation][in] */ - _In_ REFGUID InterfaceName, - /* [annotation][out] */ - _Out_ LARGE_INTEGER *pUMDVersion); - - END_INTERFACE - } IDXGIAdapterVtbl; - - interface IDXGIAdapter - { - CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIAdapter_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIAdapter_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIAdapter_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIAdapter_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIAdapter_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIAdapter_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIAdapter_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIAdapter_EnumOutputs(This,Output,ppOutput) \ - ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) - -#define IDXGIAdapter_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIAdapter_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ - ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIAdapter_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0007 */ -/* [local] */ - -#define DXGI_ENUM_MODES_INTERLACED ( 1UL ) - -#define DXGI_ENUM_MODES_SCALING ( 2UL ) - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_s_ifspec; - -#ifndef __IDXGIOutput_INTERFACE_DEFINED__ -#define __IDXGIOutput_INTERFACE_DEFINED__ - -/* interface IDXGIOutput */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutput; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa") - IDXGIOutput : public IDXGIObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDesc( - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode( - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pModeToMatch, - /* [annotation][out] */ - _Out_ DXGI_MODE_DESC *pClosestMatch, - /* [annotation][in] */ - _In_opt_ IUnknown *pConcernedDevice) = 0; - - virtual HRESULT STDMETHODCALLTYPE WaitForVBlank( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE TakeOwnership( - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive) = 0; - - virtual void STDMETHODCALLTYPE ReleaseOwnership( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities( - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetGammaControl( - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGammaControl( - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface( - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData( - /* [annotation][in] */ - _In_ IDXGISurface *pDestination) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutputVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutput * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutput * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutput * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutput * This, - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( - IDXGIOutput * 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 )( - IDXGIOutput * 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 )( - IDXGIOutput * This); - - HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive); - - void ( STDMETHODCALLTYPE *ReleaseOwnership )( - IDXGIOutput * This); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( - IDXGIOutput * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); - - HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( - IDXGIOutput * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface); - - HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( - IDXGIOutput * This, - /* [annotation][in] */ - _In_ IDXGISurface *pDestination); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGIOutput * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - END_INTERFACE - } IDXGIOutputVtbl; - - interface IDXGIOutput - { - CONST_VTBL struct IDXGIOutputVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutput_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutput_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutput_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutput_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutput_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutput_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutput_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutput_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutput_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput_WaitForVBlank(This) \ - ( (This)->lpVtbl -> WaitForVBlank(This) ) - -#define IDXGIOutput_TakeOwnership(This,pDevice,Exclusive) \ - ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) - -#define IDXGIOutput_ReleaseOwnership(This) \ - ( (This)->lpVtbl -> ReleaseOwnership(This) ) - -#define IDXGIOutput_GetGammaControlCapabilities(This,pGammaCaps) \ - ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) - -#define IDXGIOutput_SetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) - -#define IDXGIOutput_GetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) - -#define IDXGIOutput_SetDisplaySurface(This,pScanoutSurface) \ - ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) - -#define IDXGIOutput_GetDisplaySurfaceData(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) - -#define IDXGIOutput_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutput_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0008 */ -/* [local] */ - -#define DXGI_MAX_SWAP_CHAIN_BUFFERS ( 16 ) -#define DXGI_PRESENT_TEST 0x00000001UL -#define DXGI_PRESENT_DO_NOT_SEQUENCE 0x00000002UL -#define DXGI_PRESENT_RESTART 0x00000004UL -#define DXGI_PRESENT_DO_NOT_WAIT 0x00000008UL -#define DXGI_PRESENT_STEREO_PREFER_RIGHT 0x00000010UL -#define DXGI_PRESENT_STEREO_TEMPORARY_MONO 0x00000020UL -#define DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x00000040UL -#define DXGI_PRESENT_USE_DURATION 0x00000100UL - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_s_ifspec; - -#ifndef __IDXGISwapChain_INTERFACE_DEFINED__ -#define __IDXGISwapChain_INTERFACE_DEFINED__ - -/* interface IDXGISwapChain */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISwapChain; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a") - IDXGISwapChain : public IDXGIDeviceSubObject - { - public: - virtual HRESULT STDMETHODCALLTYPE Present( - /* [in] */ UINT SyncInterval, - /* [in] */ UINT Flags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBuffer( - /* [in] */ UINT Buffer, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _COM_Outptr_ void **ppSurface) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFullscreenState( - /* [in] */ BOOL Fullscreen, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pTarget) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFullscreenState( - /* [annotation][out] */ - _Out_opt_ BOOL *pFullscreen, - /* [annotation][out] */ - _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesc( - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResizeBuffers( - /* [in] */ UINT BufferCount, - /* [in] */ UINT Width, - /* [in] */ UINT Height, - /* [in] */ DXGI_FORMAT NewFormat, - /* [in] */ UINT SwapChainFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResizeTarget( - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pNewTargetParameters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContainingOutput( - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutput **ppOutput) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount( - /* [annotation][out] */ - _Out_ UINT *pLastPresentCount) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISwapChainVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISwapChain * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISwapChain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISwapChain * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *Present )( - IDXGISwapChain * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IDXGISwapChain * This, - /* [in] */ UINT Buffer, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _COM_Outptr_ void **ppSurface); - - HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( - IDXGISwapChain * This, - /* [in] */ BOOL Fullscreen, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pTarget); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( - IDXGISwapChain * This, - /* [annotation][out] */ - _Out_opt_ BOOL *pFullscreen, - /* [annotation][out] */ - _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISwapChain * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( - IDXGISwapChain * This, - /* [in] */ UINT BufferCount, - /* [in] */ UINT Width, - /* [in] */ UINT Height, - /* [in] */ DXGI_FORMAT NewFormat, - /* [in] */ UINT SwapChainFlags); - - HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( - IDXGISwapChain * This, - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pNewTargetParameters); - - HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( - IDXGISwapChain * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGISwapChain * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( - IDXGISwapChain * This, - /* [annotation][out] */ - _Out_ UINT *pLastPresentCount); - - END_INTERFACE - } IDXGISwapChainVtbl; - - interface IDXGISwapChain - { - CONST_VTBL struct IDXGISwapChainVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISwapChain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISwapChain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISwapChain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISwapChain_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISwapChain_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISwapChain_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISwapChain_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISwapChain_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISwapChain_Present(This,SyncInterval,Flags) \ - ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) - -#define IDXGISwapChain_GetBuffer(This,Buffer,riid,ppSurface) \ - ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) - -#define IDXGISwapChain_SetFullscreenState(This,Fullscreen,pTarget) \ - ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) - -#define IDXGISwapChain_GetFullscreenState(This,pFullscreen,ppTarget) \ - ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) - -#define IDXGISwapChain_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISwapChain_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ - ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) - -#define IDXGISwapChain_ResizeTarget(This,pNewTargetParameters) \ - ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) - -#define IDXGISwapChain_GetContainingOutput(This,ppOutput) \ - ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) - -#define IDXGISwapChain_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - -#define IDXGISwapChain_GetLastPresentCount(This,pLastPresentCount) \ - ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISwapChain_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0009 */ -/* [local] */ - -#define DXGI_MWA_NO_WINDOW_CHANGES ( 1 << 0 ) -#define DXGI_MWA_NO_ALT_ENTER ( 1 << 1 ) -#define DXGI_MWA_NO_PRINT_SCREEN ( 1 << 2 ) -#define DXGI_MWA_VALID ( 0x7 ) - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_s_ifspec; - -#ifndef __IDXGIFactory_INTERFACE_DEFINED__ -#define __IDXGIFactory_INTERFACE_DEFINED__ - -/* interface IDXGIFactory */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactory; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369") - IDXGIFactory : public IDXGIObject - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumAdapters( - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter) = 0; - - virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation( - HWND WindowHandle, - UINT Flags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation( - /* [annotation][out] */ - _Out_ HWND *pWindowHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSwapChain( - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter( - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactoryVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory * This, - /* [annotation][out] */ - _Out_ HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory * This, - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - END_INTERFACE - } IDXGIFactoryVtbl; - - interface IDXGIFactory - { - CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactory_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIFactory_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIFactory_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIFactory_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIFactory_EnumAdapters(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) - -#define IDXGIFactory_MakeWindowAssociation(This,WindowHandle,Flags) \ - ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) - -#define IDXGIFactory_GetWindowAssociation(This,pWindowHandle) \ - ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) - -#define IDXGIFactory_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) - -#define IDXGIFactory_CreateSoftwareAdapter(This,Module,ppAdapter) \ - ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactory_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0010 */ -/* [local] */ - -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -HRESULT WINAPI CreateDXGIFactory(REFIID riid, _COM_Outptr_ void **ppFactory); -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -HRESULT WINAPI CreateDXGIFactory1(REFIID riid, _COM_Outptr_ void **ppFactory); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_s_ifspec; - -#ifndef __IDXGIDevice_INTERFACE_DEFINED__ -#define __IDXGIDevice_INTERFACE_DEFINED__ - -/* interface IDXGIDevice */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDevice; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c") - IDXGIDevice : public IDXGIObject - { - public: - virtual HRESULT STDMETHODCALLTYPE GetAdapter( - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **pAdapter) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSurface( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency( - /* [annotation][size_is][in] */ - _In_reads_(NumResources) IUnknown *const *ppResources, - /* [annotation][size_is][out] */ - _Out_writes_(NumResources) DXGI_RESIDENCY *pResidencyStatus, - /* [in] */ UINT NumResources) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority( - /* [in] */ INT Priority) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority( - /* [annotation][retval][out] */ - _Out_ INT *pPriority) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDeviceVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDevice * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDevice * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDevice * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIDevice * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIDevice * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIDevice * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIDevice * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetAdapter )( - IDXGIDevice * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **pAdapter); - - HRESULT ( STDMETHODCALLTYPE *CreateSurface )( - IDXGIDevice * 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 )( - IDXGIDevice * 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 )( - IDXGIDevice * This, - /* [in] */ INT Priority); - - HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( - IDXGIDevice * This, - /* [annotation][retval][out] */ - _Out_ INT *pPriority); - - END_INTERFACE - } IDXGIDeviceVtbl; - - interface IDXGIDevice - { - CONST_VTBL struct IDXGIDeviceVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDevice_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDevice_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDevice_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDevice_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIDevice_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIDevice_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIDevice_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIDevice_GetAdapter(This,pAdapter) \ - ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) - -#define IDXGIDevice_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \ - ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) - -#define IDXGIDevice_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \ - ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) - -#define IDXGIDevice_SetGPUThreadPriority(This,Priority) \ - ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) - -#define IDXGIDevice_GetGPUThreadPriority(This,pPriority) \ - ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDevice_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0011 */ -/* [local] */ - -typedef -enum DXGI_ADAPTER_FLAG - { - DXGI_ADAPTER_FLAG_NONE = 0, - DXGI_ADAPTER_FLAG_REMOTE = 1, - DXGI_ADAPTER_FLAG_SOFTWARE = 2, - DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff - } DXGI_ADAPTER_FLAG; - -typedef struct DXGI_ADAPTER_DESC1 - { - WCHAR Description[ 128 ]; - UINT VendorId; - UINT DeviceId; - UINT SubSysId; - UINT Revision; - SIZE_T DedicatedVideoMemory; - SIZE_T DedicatedSystemMemory; - SIZE_T SharedSystemMemory; - LUID AdapterLuid; - UINT Flags; - } DXGI_ADAPTER_DESC1; - -typedef struct DXGI_DISPLAY_COLOR_SPACE - { - FLOAT PrimaryCoordinates[ 8 ][ 2 ]; - FLOAT WhitePoints[ 16 ][ 2 ]; - } DXGI_DISPLAY_COLOR_SPACE; - - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_s_ifspec; - -#ifndef __IDXGIFactory1_INTERFACE_DEFINED__ -#define __IDXGIFactory1_INTERFACE_DEFINED__ - -/* interface IDXGIFactory1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactory1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387") - IDXGIFactory1 : public IDXGIFactory - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumAdapters1( - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter1 **ppAdapter) = 0; - - virtual BOOL STDMETHODCALLTYPE IsCurrent( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactory1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory1 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory1 * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory1 * This, - /* [annotation][out] */ - _Out_ HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory1 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory1 * This, - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( - IDXGIFactory1 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter1 **ppAdapter); - - BOOL ( STDMETHODCALLTYPE *IsCurrent )( - IDXGIFactory1 * This); - - END_INTERFACE - } IDXGIFactory1Vtbl; - - interface IDXGIFactory1 - { - CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactory1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactory1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactory1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactory1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIFactory1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIFactory1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIFactory1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIFactory1_EnumAdapters(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) - -#define IDXGIFactory1_MakeWindowAssociation(This,WindowHandle,Flags) \ - ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) - -#define IDXGIFactory1_GetWindowAssociation(This,pWindowHandle) \ - ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) - -#define IDXGIFactory1_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) - -#define IDXGIFactory1_CreateSoftwareAdapter(This,Module,ppAdapter) \ - ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) - - -#define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) - -#define IDXGIFactory1_IsCurrent(This) \ - ( (This)->lpVtbl -> IsCurrent(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactory1_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIAdapter1_INTERFACE_DEFINED__ -#define __IDXGIAdapter1_INTERFACE_DEFINED__ - -/* interface IDXGIAdapter1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIAdapter1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05") - IDXGIAdapter1 : public IDXGIAdapter - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDesc1( - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC1 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIAdapter1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIAdapter1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIAdapter1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIAdapter1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIAdapter1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIAdapter1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIAdapter1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIAdapter1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( - IDXGIAdapter1 * This, - /* [in] */ UINT Output, - /* [annotation][out][in] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIAdapter1 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( - IDXGIAdapter1 * This, - /* [annotation][in] */ - _In_ REFGUID InterfaceName, - /* [annotation][out] */ - _Out_ LARGE_INTEGER *pUMDVersion); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGIAdapter1 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC1 *pDesc); - - END_INTERFACE - } IDXGIAdapter1Vtbl; - - interface IDXGIAdapter1 - { - CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIAdapter1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIAdapter1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIAdapter1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIAdapter1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIAdapter1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIAdapter1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIAdapter1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIAdapter1_EnumOutputs(This,Output,ppOutput) \ - ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) - -#define IDXGIAdapter1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIAdapter1_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ - ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) - - -#define IDXGIAdapter1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIAdapter1_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIDevice1_INTERFACE_DEFINED__ -#define __IDXGIDevice1_INTERFACE_DEFINED__ - -/* interface IDXGIDevice1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDevice1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c") - IDXGIDevice1 : public IDXGIDevice - { - public: - virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency( - /* [in] */ UINT MaxLatency) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency( - /* [annotation][out] */ - _Out_ UINT *pMaxLatency) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDevice1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDevice1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDevice1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDevice1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIDevice1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIDevice1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIDevice1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIDevice1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetAdapter )( - IDXGIDevice1 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **pAdapter); - - HRESULT ( STDMETHODCALLTYPE *CreateSurface )( - IDXGIDevice1 * 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 )( - IDXGIDevice1 * 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 )( - IDXGIDevice1 * This, - /* [in] */ INT Priority); - - HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( - IDXGIDevice1 * This, - /* [annotation][retval][out] */ - _Out_ INT *pPriority); - - HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( - IDXGIDevice1 * This, - /* [in] */ UINT MaxLatency); - - HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( - IDXGIDevice1 * This, - /* [annotation][out] */ - _Out_ UINT *pMaxLatency); - - END_INTERFACE - } IDXGIDevice1Vtbl; - - interface IDXGIDevice1 - { - CONST_VTBL struct IDXGIDevice1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDevice1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDevice1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDevice1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDevice1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIDevice1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIDevice1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIDevice1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIDevice1_GetAdapter(This,pAdapter) \ - ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) - -#define IDXGIDevice1_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \ - ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) - -#define IDXGIDevice1_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \ - ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) - -#define IDXGIDevice1_SetGPUThreadPriority(This,Priority) \ - ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) - -#define IDXGIDevice1_GetGPUThreadPriority(This,pPriority) \ - ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) - - -#define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency) \ - ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) - -#define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency) \ - ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDevice1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi_0000_0014 */ -/* [local] */ - -#ifdef __cplusplus -#endif /*__cplusplus*/ -DEFINE_GUID(IID_IDXGIObject,0xaec22fb8,0x76f3,0x4639,0x9b,0xe0,0x28,0xeb,0x43,0xa6,0x7a,0x2e); -DEFINE_GUID(IID_IDXGIDeviceSubObject,0x3d3e0379,0xf9de,0x4d58,0xbb,0x6c,0x18,0xd6,0x29,0x92,0xf1,0xa6); -DEFINE_GUID(IID_IDXGIResource,0x035f3ab4,0x482e,0x4e50,0xb4,0x1f,0x8a,0x7f,0x8b,0xd8,0x96,0x0b); -DEFINE_GUID(IID_IDXGIKeyedMutex,0x9d8e1289,0xd7b3,0x465f,0x81,0x26,0x25,0x0e,0x34,0x9a,0xf8,0x5d); -DEFINE_GUID(IID_IDXGISurface,0xcafcb56c,0x6ac3,0x4889,0xbf,0x47,0x9e,0x23,0xbb,0xd2,0x60,0xec); -DEFINE_GUID(IID_IDXGISurface1,0x4AE63092,0x6327,0x4c1b,0x80,0xAE,0xBF,0xE1,0x2E,0xA3,0x2B,0x86); -DEFINE_GUID(IID_IDXGIAdapter,0x2411e7e1,0x12ac,0x4ccf,0xbd,0x14,0x97,0x98,0xe8,0x53,0x4d,0xc0); -DEFINE_GUID(IID_IDXGIOutput,0xae02eedb,0xc735,0x4690,0x8d,0x52,0x5a,0x8d,0xc2,0x02,0x13,0xaa); -DEFINE_GUID(IID_IDXGISwapChain,0x310d36a0,0xd2e7,0x4c0a,0xaa,0x04,0x6a,0x9d,0x23,0xb8,0x88,0x6a); -DEFINE_GUID(IID_IDXGIFactory,0x7b7166ec,0x21c7,0x44ae,0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69); -DEFINE_GUID(IID_IDXGIDevice,0x54ec77fa,0x1377,0x44e6,0x8c,0x32,0x88,0xfd,0x5f,0x44,0xc8,0x4c); -DEFINE_GUID(IID_IDXGIFactory1,0x770aae78,0xf26f,0x4dba,0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87); -DEFINE_GUID(IID_IDXGIAdapter1,0x29038f61,0x3839,0x4626,0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05); -DEFINE_GUID(IID_IDXGIDevice1,0x77db970f,0x6276,0x48ba,0xba,0x28,0x07,0x01,0x43,0xb4,0x39,0x2c); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/dxgi1_2.h b/3rdparty/minidx12/Include/dxgi1_2.h deleted file mode 100644 index 8a8a3cc99a..0000000000 --- a/3rdparty/minidx12/Include/dxgi1_2.h +++ /dev/null @@ -1,2474 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_2_h__ -#define __dxgi1_2_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDXGIDisplayControl_FWD_DEFINED__ -#define __IDXGIDisplayControl_FWD_DEFINED__ -typedef interface IDXGIDisplayControl IDXGIDisplayControl; - -#endif /* __IDXGIDisplayControl_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutputDuplication_FWD_DEFINED__ -#define __IDXGIOutputDuplication_FWD_DEFINED__ -typedef interface IDXGIOutputDuplication IDXGIOutputDuplication; - -#endif /* __IDXGIOutputDuplication_FWD_DEFINED__ */ - - -#ifndef __IDXGISurface2_FWD_DEFINED__ -#define __IDXGISurface2_FWD_DEFINED__ -typedef interface IDXGISurface2 IDXGISurface2; - -#endif /* __IDXGISurface2_FWD_DEFINED__ */ - - -#ifndef __IDXGIResource1_FWD_DEFINED__ -#define __IDXGIResource1_FWD_DEFINED__ -typedef interface IDXGIResource1 IDXGIResource1; - -#endif /* __IDXGIResource1_FWD_DEFINED__ */ - - -#ifndef __IDXGIDevice2_FWD_DEFINED__ -#define __IDXGIDevice2_FWD_DEFINED__ -typedef interface IDXGIDevice2 IDXGIDevice2; - -#endif /* __IDXGIDevice2_FWD_DEFINED__ */ - - -#ifndef __IDXGISwapChain1_FWD_DEFINED__ -#define __IDXGISwapChain1_FWD_DEFINED__ -typedef interface IDXGISwapChain1 IDXGISwapChain1; - -#endif /* __IDXGISwapChain1_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactory2_FWD_DEFINED__ -#define __IDXGIFactory2_FWD_DEFINED__ -typedef interface IDXGIFactory2 IDXGIFactory2; - -#endif /* __IDXGIFactory2_FWD_DEFINED__ */ - - -#ifndef __IDXGIAdapter2_FWD_DEFINED__ -#define __IDXGIAdapter2_FWD_DEFINED__ -typedef interface IDXGIAdapter2 IDXGIAdapter2; - -#endif /* __IDXGIAdapter2_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutput1_FWD_DEFINED__ -#define __IDXGIOutput1_FWD_DEFINED__ -typedef interface IDXGIOutput1 IDXGIOutput1; - -#endif /* __IDXGIOutput1_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "dxgi.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dxgi1_2_0000_0000 */ -/* [local] */ - -#include -#pragma region Desktop Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0000_v0_0_s_ifspec; - -#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__ -#define __IDXGIDisplayControl_INTERFACE_DEFINED__ - -/* interface IDXGIDisplayControl */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDisplayControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c") - IDXGIDisplayControl : public IUnknown - { - public: - virtual BOOL STDMETHODCALLTYPE IsStereoEnabled( void) = 0; - - virtual void STDMETHODCALLTYPE SetStereoEnabled( - BOOL enabled) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDisplayControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDisplayControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDisplayControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDisplayControl * This); - - BOOL ( STDMETHODCALLTYPE *IsStereoEnabled )( - IDXGIDisplayControl * This); - - void ( STDMETHODCALLTYPE *SetStereoEnabled )( - IDXGIDisplayControl * This, - BOOL enabled); - - END_INTERFACE - } IDXGIDisplayControlVtbl; - - interface IDXGIDisplayControl - { - CONST_VTBL struct IDXGIDisplayControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDisplayControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDisplayControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDisplayControl_IsStereoEnabled(This) \ - ( (This)->lpVtbl -> IsStereoEnabled(This) ) - -#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) \ - ( (This)->lpVtbl -> SetStereoEnabled(This,enabled) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0001 */ -/* [local] */ - -typedef struct DXGI_OUTDUPL_MOVE_RECT - { - POINT SourcePoint; - RECT DestinationRect; - } DXGI_OUTDUPL_MOVE_RECT; - -typedef struct DXGI_OUTDUPL_DESC - { - DXGI_MODE_DESC ModeDesc; - DXGI_MODE_ROTATION Rotation; - BOOL DesktopImageInSystemMemory; - } DXGI_OUTDUPL_DESC; - -typedef struct DXGI_OUTDUPL_POINTER_POSITION - { - POINT Position; - BOOL Visible; - } DXGI_OUTDUPL_POINTER_POSITION; - -typedef -enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE - { - DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1, - DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2, - DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4 - } DXGI_OUTDUPL_POINTER_SHAPE_TYPE; - -typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO - { - UINT Type; - UINT Width; - UINT Height; - UINT Pitch; - POINT HotSpot; - } DXGI_OUTDUPL_POINTER_SHAPE_INFO; - -typedef struct DXGI_OUTDUPL_FRAME_INFO - { - LARGE_INTEGER LastPresentTime; - LARGE_INTEGER LastMouseUpdateTime; - UINT AccumulatedFrames; - BOOL RectsCoalesced; - BOOL ProtectedContentMaskedOut; - DXGI_OUTDUPL_POINTER_POSITION PointerPosition; - UINT TotalMetadataBufferSize; - UINT PointerShapeBufferSize; - } DXGI_OUTDUPL_FRAME_INFO; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0001_v0_0_s_ifspec; - -#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__ -#define __IDXGIOutputDuplication_INTERFACE_DEFINED__ - -/* interface IDXGIOutputDuplication */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutputDuplication; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c") - IDXGIOutputDuplication : public IDXGIObject - { - public: - virtual void STDMETHODCALLTYPE GetDesc( - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame( - /* [annotation][in] */ - _In_ UINT TimeoutInMilliseconds, - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_FRAME_INFO *pFrameInfo, - /* [annotation][out] */ - _COM_Outptr_ IDXGIResource **ppDesktopResource) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects( - /* [annotation][in] */ - _In_ UINT DirtyRectsBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(DirtyRectsBufferSize, *pDirtyRectsBufferSizeRequired) RECT *pDirtyRectsBuffer, - /* [annotation][out] */ - _Out_ UINT *pDirtyRectsBufferSizeRequired) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects( - /* [annotation][in] */ - _In_ UINT MoveRectsBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(MoveRectsBufferSize, *pMoveRectsBufferSizeRequired) DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer, - /* [annotation][out] */ - _Out_ UINT *pMoveRectsBufferSizeRequired) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape( - /* [annotation][in] */ - _In_ UINT PointerShapeBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(PointerShapeBufferSize, *pPointerShapeBufferSizeRequired) void *pPointerShapeBuffer, - /* [annotation][out] */ - _Out_ UINT *pPointerShapeBufferSizeRequired, - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pPointerShapeInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface( - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseFrame( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutputDuplicationVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutputDuplication * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutputDuplication * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutputDuplication * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - void ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutputDuplication * This, - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *AcquireNextFrame )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ UINT TimeoutInMilliseconds, - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_FRAME_INFO *pFrameInfo, - /* [annotation][out] */ - _COM_Outptr_ IDXGIResource **ppDesktopResource); - - HRESULT ( STDMETHODCALLTYPE *GetFrameDirtyRects )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ UINT DirtyRectsBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(DirtyRectsBufferSize, *pDirtyRectsBufferSizeRequired) RECT *pDirtyRectsBuffer, - /* [annotation][out] */ - _Out_ UINT *pDirtyRectsBufferSizeRequired); - - HRESULT ( STDMETHODCALLTYPE *GetFrameMoveRects )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ UINT MoveRectsBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(MoveRectsBufferSize, *pMoveRectsBufferSizeRequired) DXGI_OUTDUPL_MOVE_RECT *pMoveRectBuffer, - /* [annotation][out] */ - _Out_ UINT *pMoveRectsBufferSizeRequired); - - HRESULT ( STDMETHODCALLTYPE *GetFramePointerShape )( - IDXGIOutputDuplication * This, - /* [annotation][in] */ - _In_ UINT PointerShapeBufferSize, - /* [annotation][out] */ - _Out_writes_bytes_to_(PointerShapeBufferSize, *pPointerShapeBufferSizeRequired) void *pPointerShapeBuffer, - /* [annotation][out] */ - _Out_ UINT *pPointerShapeBufferSizeRequired, - /* [annotation][out] */ - _Out_ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pPointerShapeInfo); - - HRESULT ( STDMETHODCALLTYPE *MapDesktopSurface )( - IDXGIOutputDuplication * This, - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect); - - HRESULT ( STDMETHODCALLTYPE *UnMapDesktopSurface )( - IDXGIOutputDuplication * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseFrame )( - IDXGIOutputDuplication * This); - - END_INTERFACE - } IDXGIOutputDuplicationVtbl; - - interface IDXGIOutputDuplication - { - CONST_VTBL struct IDXGIOutputDuplicationVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutputDuplication_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutputDuplication_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutputDuplication_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutputDuplication_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutputDuplication_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutputDuplication_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutputDuplication_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutputDuplication_AcquireNextFrame(This,TimeoutInMilliseconds,pFrameInfo,ppDesktopResource) \ - ( (This)->lpVtbl -> AcquireNextFrame(This,TimeoutInMilliseconds,pFrameInfo,ppDesktopResource) ) - -#define IDXGIOutputDuplication_GetFrameDirtyRects(This,DirtyRectsBufferSize,pDirtyRectsBuffer,pDirtyRectsBufferSizeRequired) \ - ( (This)->lpVtbl -> GetFrameDirtyRects(This,DirtyRectsBufferSize,pDirtyRectsBuffer,pDirtyRectsBufferSizeRequired) ) - -#define IDXGIOutputDuplication_GetFrameMoveRects(This,MoveRectsBufferSize,pMoveRectBuffer,pMoveRectsBufferSizeRequired) \ - ( (This)->lpVtbl -> GetFrameMoveRects(This,MoveRectsBufferSize,pMoveRectBuffer,pMoveRectsBufferSizeRequired) ) - -#define IDXGIOutputDuplication_GetFramePointerShape(This,PointerShapeBufferSize,pPointerShapeBuffer,pPointerShapeBufferSizeRequired,pPointerShapeInfo) \ - ( (This)->lpVtbl -> GetFramePointerShape(This,PointerShapeBufferSize,pPointerShapeBuffer,pPointerShapeBufferSizeRequired,pPointerShapeInfo) ) - -#define IDXGIOutputDuplication_MapDesktopSurface(This,pLockedRect) \ - ( (This)->lpVtbl -> MapDesktopSurface(This,pLockedRect) ) - -#define IDXGIOutputDuplication_UnMapDesktopSurface(This) \ - ( (This)->lpVtbl -> UnMapDesktopSurface(This) ) - -#define IDXGIOutputDuplication_ReleaseFrame(This) \ - ( (This)->lpVtbl -> ReleaseFrame(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0002 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -typedef -enum DXGI_ALPHA_MODE - { - DXGI_ALPHA_MODE_UNSPECIFIED = 0, - DXGI_ALPHA_MODE_PREMULTIPLIED = 1, - DXGI_ALPHA_MODE_STRAIGHT = 2, - DXGI_ALPHA_MODE_IGNORE = 3, - DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff - } DXGI_ALPHA_MODE; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0002_v0_0_s_ifspec; - -#ifndef __IDXGISurface2_INTERFACE_DEFINED__ -#define __IDXGISurface2_INTERFACE_DEFINED__ - -/* interface IDXGISurface2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISurface2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("aba496dd-b617-4cb8-a866-bc44d7eb1fa2") - IDXGISurface2 : public IDXGISurface1 - { - public: - virtual HRESULT STDMETHODCALLTYPE GetResource( - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _COM_Outptr_ void **ppParentResource, - /* [annotation][out] */ - _Out_ UINT *pSubresourceIndex) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISurface2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISurface2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISurface2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISurface2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISurface2 * This, - /* [annotation][out] */ - _Out_ DXGI_SURFACE_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *Map )( - IDXGISurface2 * This, - /* [annotation][out] */ - _Out_ DXGI_MAPPED_RECT *pLockedRect, - /* [in] */ UINT MapFlags); - - HRESULT ( STDMETHODCALLTYPE *Unmap )( - IDXGISurface2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetDC )( - IDXGISurface2 * This, - /* [in] */ BOOL Discard, - /* [annotation][out] */ - _Out_ HDC *phdc); - - HRESULT ( STDMETHODCALLTYPE *ReleaseDC )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_opt_ RECT *pDirtyRect); - - HRESULT ( STDMETHODCALLTYPE *GetResource )( - IDXGISurface2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out] */ - _COM_Outptr_ void **ppParentResource, - /* [annotation][out] */ - _Out_ UINT *pSubresourceIndex); - - END_INTERFACE - } IDXGISurface2Vtbl; - - interface IDXGISurface2 - { - CONST_VTBL struct IDXGISurface2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISurface2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISurface2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISurface2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISurface2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISurface2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISurface2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISurface2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISurface2_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISurface2_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISurface2_Map(This,pLockedRect,MapFlags) \ - ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) ) - -#define IDXGISurface2_Unmap(This) \ - ( (This)->lpVtbl -> Unmap(This) ) - - -#define IDXGISurface2_GetDC(This,Discard,phdc) \ - ( (This)->lpVtbl -> GetDC(This,Discard,phdc) ) - -#define IDXGISurface2_ReleaseDC(This,pDirtyRect) \ - ( (This)->lpVtbl -> ReleaseDC(This,pDirtyRect) ) - - -#define IDXGISurface2_GetResource(This,riid,ppParentResource,pSubresourceIndex) \ - ( (This)->lpVtbl -> GetResource(This,riid,ppParentResource,pSubresourceIndex) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISurface2_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIResource1_INTERFACE_DEFINED__ -#define __IDXGIResource1_INTERFACE_DEFINED__ - -/* interface IDXGIResource1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIResource1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("30961379-4609-4a41-998e-54fe567ee0c1") - IDXGIResource1 : public IDXGIResource - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateSubresourceSurface( - UINT index, - /* [annotation][out] */ - _COM_Outptr_ IDXGISurface2 **ppSurface) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( - /* [annotation][in] */ - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - /* [annotation][in] */ - _In_ DWORD dwAccess, - /* [annotation][in] */ - _In_opt_ LPCWSTR lpName, - /* [annotation][out] */ - _Out_ HANDLE *pHandle) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIResource1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIResource1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIResource1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIResource1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *GetSharedHandle )( - IDXGIResource1 * This, - /* [annotation][out] */ - _Out_ HANDLE *pSharedHandle); - - HRESULT ( STDMETHODCALLTYPE *GetUsage )( - IDXGIResource1 * This, - /* [out] */ DXGI_USAGE *pUsage); - - HRESULT ( STDMETHODCALLTYPE *SetEvictionPriority )( - IDXGIResource1 * This, - /* [in] */ UINT EvictionPriority); - - HRESULT ( STDMETHODCALLTYPE *GetEvictionPriority )( - IDXGIResource1 * This, - /* [annotation][retval][out] */ - _Out_ UINT *pEvictionPriority); - - HRESULT ( STDMETHODCALLTYPE *CreateSubresourceSurface )( - IDXGIResource1 * This, - UINT index, - /* [annotation][out] */ - _COM_Outptr_ IDXGISurface2 **ppSurface); - - HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( - IDXGIResource1 * This, - /* [annotation][in] */ - _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, - /* [annotation][in] */ - _In_ DWORD dwAccess, - /* [annotation][in] */ - _In_opt_ LPCWSTR lpName, - /* [annotation][out] */ - _Out_ HANDLE *pHandle); - - END_INTERFACE - } IDXGIResource1Vtbl; - - interface IDXGIResource1 - { - CONST_VTBL struct IDXGIResource1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIResource1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIResource1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIResource1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIResource1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIResource1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIResource1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIResource1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIResource1_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGIResource1_GetSharedHandle(This,pSharedHandle) \ - ( (This)->lpVtbl -> GetSharedHandle(This,pSharedHandle) ) - -#define IDXGIResource1_GetUsage(This,pUsage) \ - ( (This)->lpVtbl -> GetUsage(This,pUsage) ) - -#define IDXGIResource1_SetEvictionPriority(This,EvictionPriority) \ - ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) - -#define IDXGIResource1_GetEvictionPriority(This,pEvictionPriority) \ - ( (This)->lpVtbl -> GetEvictionPriority(This,pEvictionPriority) ) - - -#define IDXGIResource1_CreateSubresourceSurface(This,index,ppSurface) \ - ( (This)->lpVtbl -> CreateSubresourceSurface(This,index,ppSurface) ) - -#define IDXGIResource1_CreateSharedHandle(This,pAttributes,dwAccess,lpName,pHandle) \ - ( (This)->lpVtbl -> CreateSharedHandle(This,pAttributes,dwAccess,lpName,pHandle) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIResource1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0004 */ -/* [local] */ - -typedef -enum _DXGI_OFFER_RESOURCE_PRIORITY - { - DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1, - DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = ( DXGI_OFFER_RESOURCE_PRIORITY_LOW + 1 ) , - DXGI_OFFER_RESOURCE_PRIORITY_HIGH = ( DXGI_OFFER_RESOURCE_PRIORITY_NORMAL + 1 ) - } DXGI_OFFER_RESOURCE_PRIORITY; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0004_v0_0_s_ifspec; - -#ifndef __IDXGIDevice2_INTERFACE_DEFINED__ -#define __IDXGIDevice2_INTERFACE_DEFINED__ - -/* interface IDXGIDevice2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDevice2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("05008617-fbfd-4051-a790-144884b4f6a9") - IDXGIDevice2 : public IDXGIDevice1 - { - public: - virtual HRESULT STDMETHODCALLTYPE OfferResources( - /* [annotation][in] */ - _In_ UINT NumResources, - /* [annotation][size_is][in] */ - _In_reads_(NumResources) IDXGIResource *const *ppResources, - /* [annotation][in] */ - _In_ DXGI_OFFER_RESOURCE_PRIORITY Priority) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReclaimResources( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnqueueSetEvent( - /* [annotation][in] */ - _In_ HANDLE hEvent) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDevice2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDevice2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDevice2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDevice2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIDevice2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIDevice2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIDevice2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIDevice2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetAdapter )( - IDXGIDevice2 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **pAdapter); - - HRESULT ( STDMETHODCALLTYPE *CreateSurface )( - IDXGIDevice2 * 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 )( - IDXGIDevice2 * 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 )( - IDXGIDevice2 * This, - /* [in] */ INT Priority); - - HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( - IDXGIDevice2 * This, - /* [annotation][retval][out] */ - _Out_ INT *pPriority); - - HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( - IDXGIDevice2 * This, - /* [in] */ UINT MaxLatency); - - HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( - IDXGIDevice2 * This, - /* [annotation][out] */ - _Out_ UINT *pMaxLatency); - - HRESULT ( STDMETHODCALLTYPE *OfferResources )( - IDXGIDevice2 * 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 )( - IDXGIDevice2 * 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 )( - IDXGIDevice2 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent); - - END_INTERFACE - } IDXGIDevice2Vtbl; - - interface IDXGIDevice2 - { - CONST_VTBL struct IDXGIDevice2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDevice2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDevice2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDevice2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDevice2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIDevice2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIDevice2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIDevice2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIDevice2_GetAdapter(This,pAdapter) \ - ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) - -#define IDXGIDevice2_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \ - ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) - -#define IDXGIDevice2_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \ - ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) - -#define IDXGIDevice2_SetGPUThreadPriority(This,Priority) \ - ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) - -#define IDXGIDevice2_GetGPUThreadPriority(This,pPriority) \ - ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) - - -#define IDXGIDevice2_SetMaximumFrameLatency(This,MaxLatency) \ - ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) - -#define IDXGIDevice2_GetMaximumFrameLatency(This,pMaxLatency) \ - ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) - - -#define IDXGIDevice2_OfferResources(This,NumResources,ppResources,Priority) \ - ( (This)->lpVtbl -> OfferResources(This,NumResources,ppResources,Priority) ) - -#define IDXGIDevice2_ReclaimResources(This,NumResources,ppResources,pDiscarded) \ - ( (This)->lpVtbl -> ReclaimResources(This,NumResources,ppResources,pDiscarded) ) - -#define IDXGIDevice2_EnqueueSetEvent(This,hEvent) \ - ( (This)->lpVtbl -> EnqueueSetEvent(This,hEvent) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDevice2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0005 */ -/* [local] */ - -#define DXGI_ENUM_MODES_STEREO ( 4UL ) - -#define DXGI_ENUM_MODES_DISABLED_STEREO ( 8UL ) - -#define DXGI_SHARED_RESOURCE_READ ( 0x80000000L ) - -#define DXGI_SHARED_RESOURCE_WRITE ( 1 ) - -typedef struct DXGI_MODE_DESC1 - { - UINT Width; - UINT Height; - DXGI_RATIONAL RefreshRate; - DXGI_FORMAT Format; - DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; - DXGI_MODE_SCALING Scaling; - BOOL Stereo; - } DXGI_MODE_DESC1; - -typedef -enum DXGI_SCALING - { - DXGI_SCALING_STRETCH = 0, - DXGI_SCALING_NONE = 1, - DXGI_SCALING_ASPECT_RATIO_STRETCH = 2 - } DXGI_SCALING; - -typedef struct DXGI_SWAP_CHAIN_DESC1 - { - UINT Width; - UINT Height; - DXGI_FORMAT Format; - BOOL Stereo; - DXGI_SAMPLE_DESC SampleDesc; - DXGI_USAGE BufferUsage; - UINT BufferCount; - DXGI_SCALING Scaling; - DXGI_SWAP_EFFECT SwapEffect; - DXGI_ALPHA_MODE AlphaMode; - UINT Flags; - } DXGI_SWAP_CHAIN_DESC1; - -typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC - { - DXGI_RATIONAL RefreshRate; - DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; - DXGI_MODE_SCALING Scaling; - BOOL Windowed; - } DXGI_SWAP_CHAIN_FULLSCREEN_DESC; - -typedef struct DXGI_PRESENT_PARAMETERS - { - UINT DirtyRectsCount; - RECT *pDirtyRects; - RECT *pScrollRect; - POINT *pScrollOffset; - } DXGI_PRESENT_PARAMETERS; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0005_v0_0_s_ifspec; - -#ifndef __IDXGISwapChain1_INTERFACE_DEFINED__ -#define __IDXGISwapChain1_INTERFACE_DEFINED__ - -/* interface IDXGISwapChain1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISwapChain1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("790a45f7-0d42-4876-983a-0a55cfe6f4aa") - IDXGISwapChain1 : public IDXGISwapChain - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDesc1( - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFullscreenDesc( - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHwnd( - /* [annotation][out] */ - _Out_ HWND *pHwnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCoreWindow( - /* [annotation][in] */ - _In_ REFIID refiid, - /* [annotation][out] */ - _COM_Outptr_ void **ppUnk) = 0; - - virtual HRESULT STDMETHODCALLTYPE Present1( - /* [in] */ UINT SyncInterval, - /* [in] */ UINT PresentFlags, - /* [annotation][in] */ - _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters) = 0; - - virtual BOOL STDMETHODCALLTYPE IsTemporaryMonoSupported( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRestrictToOutput( - /* [annotation][out] */ - _Out_ IDXGIOutput **ppRestrictToOutput) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor( - /* [annotation][in] */ - _In_ const DXGI_RGBA *pColor) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor( - /* [annotation][out] */ - _Out_ DXGI_RGBA *pColor) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRotation( - /* [annotation][in] */ - _In_ DXGI_MODE_ROTATION Rotation) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRotation( - /* [annotation][out] */ - _Out_ DXGI_MODE_ROTATION *pRotation) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISwapChain1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISwapChain1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISwapChain1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISwapChain1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *Present )( - IDXGISwapChain1 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IDXGISwapChain1 * This, - /* [in] */ UINT Buffer, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _COM_Outptr_ void **ppSurface); - - HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( - IDXGISwapChain1 * This, - /* [in] */ BOOL Fullscreen, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pTarget); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_opt_ BOOL *pFullscreen, - /* [annotation][out] */ - _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( - IDXGISwapChain1 * This, - /* [in] */ UINT BufferCount, - /* [in] */ UINT Width, - /* [in] */ UINT Height, - /* [in] */ DXGI_FORMAT NewFormat, - /* [in] */ UINT SwapChainFlags); - - HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pNewTargetParameters); - - HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ UINT *pLastPresentCount); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetHwnd )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ HWND *pHwnd); - - HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ REFIID refiid, - /* [annotation][out] */ - _COM_Outptr_ void **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *Present1 )( - IDXGISwapChain1 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT PresentFlags, - /* [annotation][in] */ - _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters); - - BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )( - IDXGISwapChain1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ IDXGIOutput **ppRestrictToOutput); - - HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ const DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *SetRotation )( - IDXGISwapChain1 * This, - /* [annotation][in] */ - _In_ DXGI_MODE_ROTATION Rotation); - - HRESULT ( STDMETHODCALLTYPE *GetRotation )( - IDXGISwapChain1 * This, - /* [annotation][out] */ - _Out_ DXGI_MODE_ROTATION *pRotation); - - END_INTERFACE - } IDXGISwapChain1Vtbl; - - interface IDXGISwapChain1 - { - CONST_VTBL struct IDXGISwapChain1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISwapChain1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISwapChain1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISwapChain1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISwapChain1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISwapChain1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISwapChain1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISwapChain1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISwapChain1_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISwapChain1_Present(This,SyncInterval,Flags) \ - ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) - -#define IDXGISwapChain1_GetBuffer(This,Buffer,riid,ppSurface) \ - ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) - -#define IDXGISwapChain1_SetFullscreenState(This,Fullscreen,pTarget) \ - ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) - -#define IDXGISwapChain1_GetFullscreenState(This,pFullscreen,ppTarget) \ - ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) - -#define IDXGISwapChain1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISwapChain1_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ - ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) - -#define IDXGISwapChain1_ResizeTarget(This,pNewTargetParameters) \ - ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) - -#define IDXGISwapChain1_GetContainingOutput(This,ppOutput) \ - ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) - -#define IDXGISwapChain1_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - -#define IDXGISwapChain1_GetLastPresentCount(This,pLastPresentCount) \ - ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) - - -#define IDXGISwapChain1_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#define IDXGISwapChain1_GetFullscreenDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) ) - -#define IDXGISwapChain1_GetHwnd(This,pHwnd) \ - ( (This)->lpVtbl -> GetHwnd(This,pHwnd) ) - -#define IDXGISwapChain1_GetCoreWindow(This,refiid,ppUnk) \ - ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) ) - -#define IDXGISwapChain1_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \ - ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) ) - -#define IDXGISwapChain1_IsTemporaryMonoSupported(This) \ - ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) ) - -#define IDXGISwapChain1_GetRestrictToOutput(This,ppRestrictToOutput) \ - ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) ) - -#define IDXGISwapChain1_SetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain1_GetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain1_SetRotation(This,Rotation) \ - ( (This)->lpVtbl -> SetRotation(This,Rotation) ) - -#define IDXGISwapChain1_GetRotation(This,pRotation) \ - ( (This)->lpVtbl -> GetRotation(This,pRotation) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISwapChain1_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIFactory2_INTERFACE_DEFINED__ -#define __IDXGIFactory2_INTERFACE_DEFINED__ - -/* interface IDXGIFactory2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactory2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("50c83a1c-e072-4c48-87b0-3630fa36a6d0") - IDXGIFactory2 : public IDXGIFactory1 - { - public: - virtual BOOL STDMETHODCALLTYPE IsWindowedStereoEnabled( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForHwnd( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCoreWindow( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSharedResourceAdapterLuid( - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _Out_ LUID *pLuid) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusWindow( - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterStereoStatusEvent( - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual void STDMETHODCALLTYPE UnregisterStereoStatus( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusWindow( - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterOcclusionStatusEvent( - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual void STDMETHODCALLTYPE UnregisterOcclusionStatus( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForComposition( - /* [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) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactory2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory2 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory2 * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory2 * This, - /* [annotation][out] */ - _Out_ HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory2 * This, - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( - IDXGIFactory2 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter1 **ppAdapter); - - BOOL ( STDMETHODCALLTYPE *IsCurrent )( - IDXGIFactory2 * This); - - BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( - IDXGIFactory2 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( - IDXGIFactory2 * 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 )( - IDXGIFactory2 * 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 )( - IDXGIFactory2 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _Out_ LUID *pLuid); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( - IDXGIFactory2 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( - IDXGIFactory2 * 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); - - END_INTERFACE - } IDXGIFactory2Vtbl; - - interface IDXGIFactory2 - { - CONST_VTBL struct IDXGIFactory2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactory2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactory2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactory2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactory2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIFactory2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIFactory2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIFactory2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIFactory2_EnumAdapters(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) - -#define IDXGIFactory2_MakeWindowAssociation(This,WindowHandle,Flags) \ - ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) - -#define IDXGIFactory2_GetWindowAssociation(This,pWindowHandle) \ - ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) - -#define IDXGIFactory2_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) - -#define IDXGIFactory2_CreateSoftwareAdapter(This,Module,ppAdapter) \ - ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) - - -#define IDXGIFactory2_EnumAdapters1(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) - -#define IDXGIFactory2_IsCurrent(This) \ - ( (This)->lpVtbl -> IsCurrent(This) ) - - -#define IDXGIFactory2_IsWindowedStereoEnabled(This) \ - ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) ) - -#define IDXGIFactory2_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory2_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory2_GetSharedResourceAdapterLuid(This,hResource,pLuid) \ - ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) ) - -#define IDXGIFactory2_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory2_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory2_UnregisterStereoStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) ) - -#define IDXGIFactory2_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory2_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory2_UnregisterOcclusionStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) ) - -#define IDXGIFactory2_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactory2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0007 */ -/* [local] */ - -typedef -enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY - { - DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, - DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1, - DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2, - DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3, - DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4 - } DXGI_GRAPHICS_PREEMPTION_GRANULARITY; - -typedef -enum DXGI_COMPUTE_PREEMPTION_GRANULARITY - { - DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0, - DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1, - DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2, - DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3, - DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4 - } DXGI_COMPUTE_PREEMPTION_GRANULARITY; - -typedef struct DXGI_ADAPTER_DESC2 - { - WCHAR Description[ 128 ]; - UINT VendorId; - UINT DeviceId; - UINT SubSysId; - UINT Revision; - SIZE_T DedicatedVideoMemory; - SIZE_T DedicatedSystemMemory; - SIZE_T SharedSystemMemory; - LUID AdapterLuid; - UINT Flags; - DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity; - DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity; - } DXGI_ADAPTER_DESC2; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0007_v0_0_s_ifspec; - -#ifndef __IDXGIAdapter2_INTERFACE_DEFINED__ -#define __IDXGIAdapter2_INTERFACE_DEFINED__ - -/* interface IDXGIAdapter2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIAdapter2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0AA1AE0A-FA0E-4B84-8644-E05FF8E5ACB5") - IDXGIAdapter2 : public IDXGIAdapter1 - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDesc2( - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC2 *pDesc) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIAdapter2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIAdapter2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIAdapter2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIAdapter2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIAdapter2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIAdapter2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIAdapter2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIAdapter2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( - IDXGIAdapter2 * This, - /* [in] */ UINT Output, - /* [annotation][out][in] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIAdapter2 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( - IDXGIAdapter2 * This, - /* [annotation][in] */ - _In_ REFGUID InterfaceName, - /* [annotation][out] */ - _Out_ LARGE_INTEGER *pUMDVersion); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGIAdapter2 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC1 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDesc2 )( - IDXGIAdapter2 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC2 *pDesc); - - END_INTERFACE - } IDXGIAdapter2Vtbl; - - interface IDXGIAdapter2 - { - CONST_VTBL struct IDXGIAdapter2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIAdapter2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIAdapter2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIAdapter2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIAdapter2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIAdapter2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIAdapter2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIAdapter2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIAdapter2_EnumOutputs(This,Output,ppOutput) \ - ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) - -#define IDXGIAdapter2_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIAdapter2_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ - ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) - - -#define IDXGIAdapter2_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - - -#define IDXGIAdapter2_GetDesc2(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc2(This,pDesc) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIOutput1_INTERFACE_DEFINED__ -#define __IDXGIOutput1_INTERFACE_DEFINED__ - -/* interface IDXGIOutput1 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutput1; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc") - IDXGIOutput1 : public IDXGIOutput - { - public: - virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1( - /* [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) = 0; - - virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1( - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC1 *pModeToMatch, - /* [annotation][out] */ - _Out_ DXGI_MODE_DESC1 *pClosestMatch, - /* [annotation][in] */ - _In_opt_ IUnknown *pConcernedDevice) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1( - /* [annotation][in] */ - _In_ IDXGIResource *pDestination) = 0; - - virtual HRESULT STDMETHODCALLTYPE DuplicateOutput( - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutput1Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutput1 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutput1 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutput1 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutput1 * This, - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( - IDXGIOutput1 * 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 )( - IDXGIOutput1 * 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 )( - IDXGIOutput1 * This); - - HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive); - - void ( STDMETHODCALLTYPE *ReleaseOwnership )( - IDXGIOutput1 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( - IDXGIOutput1 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); - - HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( - IDXGIOutput1 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface); - - HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pDestination); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGIOutput1 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( - IDXGIOutput1 * 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 )( - IDXGIOutput1 * 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 )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ IDXGIResource *pDestination); - - HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( - IDXGIOutput1 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); - - END_INTERFACE - } IDXGIOutput1Vtbl; - - interface IDXGIOutput1 - { - CONST_VTBL struct IDXGIOutput1Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutput1_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutput1_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutput1_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutput1_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutput1_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutput1_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutput1_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutput1_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput1_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput1_WaitForVBlank(This) \ - ( (This)->lpVtbl -> WaitForVBlank(This) ) - -#define IDXGIOutput1_TakeOwnership(This,pDevice,Exclusive) \ - ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) - -#define IDXGIOutput1_ReleaseOwnership(This) \ - ( (This)->lpVtbl -> ReleaseOwnership(This) ) - -#define IDXGIOutput1_GetGammaControlCapabilities(This,pGammaCaps) \ - ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) - -#define IDXGIOutput1_SetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) - -#define IDXGIOutput1_GetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) - -#define IDXGIOutput1_SetDisplaySurface(This,pScanoutSurface) \ - ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) - -#define IDXGIOutput1_GetDisplaySurfaceData(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) - -#define IDXGIOutput1_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - - -#define IDXGIOutput1_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput1_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput1_GetDisplaySurfaceData1(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) - -#define IDXGIOutput1_DuplicateOutput(This,pDevice,ppOutputDuplication) \ - ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_2_0000_0009 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -DEFINE_GUID(IID_IDXGIDisplayControl,0xea9dbf1a,0xc88e,0x4486,0x85,0x4a,0x98,0xaa,0x01,0x38,0xf3,0x0c); -DEFINE_GUID(IID_IDXGIOutputDuplication,0x191cfac3,0xa341,0x470d,0xb2,0x6e,0xa8,0x64,0xf4,0x28,0x31,0x9c); -DEFINE_GUID(IID_IDXGISurface2,0xaba496dd,0xb617,0x4cb8,0xa8,0x66,0xbc,0x44,0xd7,0xeb,0x1f,0xa2); -DEFINE_GUID(IID_IDXGIResource1,0x30961379,0x4609,0x4a41,0x99,0x8e,0x54,0xfe,0x56,0x7e,0xe0,0xc1); -DEFINE_GUID(IID_IDXGIDevice2,0x05008617,0xfbfd,0x4051,0xa7,0x90,0x14,0x48,0x84,0xb4,0xf6,0xa9); -DEFINE_GUID(IID_IDXGISwapChain1,0x790a45f7,0x0d42,0x4876,0x98,0x3a,0x0a,0x55,0xcf,0xe6,0xf4,0xaa); -DEFINE_GUID(IID_IDXGIFactory2,0x50c83a1c,0xe072,0x4c48,0x87,0xb0,0x36,0x30,0xfa,0x36,0xa6,0xd0); -DEFINE_GUID(IID_IDXGIAdapter2,0x0AA1AE0A,0xFA0E,0x4B84,0x86,0x44,0xE0,0x5F,0xF8,0xE5,0xAC,0xB5); -DEFINE_GUID(IID_IDXGIOutput1,0x00cddea8,0x939b,0x4b83,0xa3,0x40,0xa6,0x85,0x22,0x66,0x66,0xcc); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0009_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_2_0000_0009_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/dxgi1_3.h b/3rdparty/minidx12/Include/dxgi1_3.h deleted file mode 100644 index fb53fafddb..0000000000 --- a/3rdparty/minidx12/Include/dxgi1_3.h +++ /dev/null @@ -1,2121 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_3_h__ -#define __dxgi1_3_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDXGIDevice3_FWD_DEFINED__ -#define __IDXGIDevice3_FWD_DEFINED__ -typedef interface IDXGIDevice3 IDXGIDevice3; - -#endif /* __IDXGIDevice3_FWD_DEFINED__ */ - - -#ifndef __IDXGISwapChain2_FWD_DEFINED__ -#define __IDXGISwapChain2_FWD_DEFINED__ -typedef interface IDXGISwapChain2 IDXGISwapChain2; - -#endif /* __IDXGISwapChain2_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutput2_FWD_DEFINED__ -#define __IDXGIOutput2_FWD_DEFINED__ -typedef interface IDXGIOutput2 IDXGIOutput2; - -#endif /* __IDXGIOutput2_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactory3_FWD_DEFINED__ -#define __IDXGIFactory3_FWD_DEFINED__ -typedef interface IDXGIFactory3 IDXGIFactory3; - -#endif /* __IDXGIFactory3_FWD_DEFINED__ */ - - -#ifndef __IDXGIDecodeSwapChain_FWD_DEFINED__ -#define __IDXGIDecodeSwapChain_FWD_DEFINED__ -typedef interface IDXGIDecodeSwapChain IDXGIDecodeSwapChain; - -#endif /* __IDXGIDecodeSwapChain_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactoryMedia_FWD_DEFINED__ -#define __IDXGIFactoryMedia_FWD_DEFINED__ -typedef interface IDXGIFactoryMedia IDXGIFactoryMedia; - -#endif /* __IDXGIFactoryMedia_FWD_DEFINED__ */ - - -#ifndef __IDXGISwapChainMedia_FWD_DEFINED__ -#define __IDXGISwapChainMedia_FWD_DEFINED__ -typedef interface IDXGISwapChainMedia IDXGISwapChainMedia; - -#endif /* __IDXGISwapChainMedia_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutput3_FWD_DEFINED__ -#define __IDXGIOutput3_FWD_DEFINED__ -typedef interface IDXGIOutput3 IDXGIOutput3; - -#endif /* __IDXGIOutput3_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "dxgi1_2.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dxgi1_3_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -#define DXGI_CREATE_FACTORY_DEBUG 0x1 -HRESULT WINAPI CreateDXGIFactory2(UINT Flags, REFIID riid, _COM_Outptr_ void **ppFactory); -HRESULT WINAPI DXGIGetDebugInterface1(UINT Flags, REFIID riid, _COM_Outptr_ void **pDebug); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0000_v0_0_s_ifspec; - -#ifndef __IDXGIDevice3_INTERFACE_DEFINED__ -#define __IDXGIDevice3_INTERFACE_DEFINED__ - -/* interface IDXGIDevice3 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDevice3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("6007896c-3244-4afd-bf18-a6d3beda5023") - IDXGIDevice3 : public IDXGIDevice2 - { - public: - virtual void STDMETHODCALLTYPE Trim( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDevice3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDevice3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDevice3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDevice3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIDevice3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIDevice3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIDevice3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIDevice3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetAdapter )( - IDXGIDevice3 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **pAdapter); - - HRESULT ( STDMETHODCALLTYPE *CreateSurface )( - IDXGIDevice3 * 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 )( - IDXGIDevice3 * 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 )( - IDXGIDevice3 * This, - /* [in] */ INT Priority); - - HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( - IDXGIDevice3 * This, - /* [annotation][retval][out] */ - _Out_ INT *pPriority); - - HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( - IDXGIDevice3 * This, - /* [in] */ UINT MaxLatency); - - HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( - IDXGIDevice3 * This, - /* [annotation][out] */ - _Out_ UINT *pMaxLatency); - - HRESULT ( STDMETHODCALLTYPE *OfferResources )( - IDXGIDevice3 * 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 )( - IDXGIDevice3 * 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 )( - IDXGIDevice3 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent); - - void ( STDMETHODCALLTYPE *Trim )( - IDXGIDevice3 * This); - - END_INTERFACE - } IDXGIDevice3Vtbl; - - interface IDXGIDevice3 - { - CONST_VTBL struct IDXGIDevice3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDevice3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDevice3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDevice3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDevice3_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIDevice3_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIDevice3_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIDevice3_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIDevice3_GetAdapter(This,pAdapter) \ - ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) - -#define IDXGIDevice3_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) \ - ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) - -#define IDXGIDevice3_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) \ - ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) - -#define IDXGIDevice3_SetGPUThreadPriority(This,Priority) \ - ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) - -#define IDXGIDevice3_GetGPUThreadPriority(This,pPriority) \ - ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) - - -#define IDXGIDevice3_SetMaximumFrameLatency(This,MaxLatency) \ - ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) - -#define IDXGIDevice3_GetMaximumFrameLatency(This,pMaxLatency) \ - ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) - - -#define IDXGIDevice3_OfferResources(This,NumResources,ppResources,Priority) \ - ( (This)->lpVtbl -> OfferResources(This,NumResources,ppResources,Priority) ) - -#define IDXGIDevice3_ReclaimResources(This,NumResources,ppResources,pDiscarded) \ - ( (This)->lpVtbl -> ReclaimResources(This,NumResources,ppResources,pDiscarded) ) - -#define IDXGIDevice3_EnqueueSetEvent(This,hEvent) \ - ( (This)->lpVtbl -> EnqueueSetEvent(This,hEvent) ) - - -#define IDXGIDevice3_Trim(This) \ - ( (This)->lpVtbl -> Trim(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDevice3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_3_0000_0001 */ -/* [local] */ - -typedef struct DXGI_MATRIX_3X2_F - { - FLOAT _11; - FLOAT _12; - FLOAT _21; - FLOAT _22; - FLOAT _31; - FLOAT _32; - } DXGI_MATRIX_3X2_F; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0001_v0_0_s_ifspec; - -#ifndef __IDXGISwapChain2_INTERFACE_DEFINED__ -#define __IDXGISwapChain2_INTERFACE_DEFINED__ - -/* interface IDXGISwapChain2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISwapChain2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("a8be2ac4-199f-4946-b331-79599fb98de7") - IDXGISwapChain2 : public IDXGISwapChain1 - { - public: - virtual HRESULT STDMETHODCALLTYPE SetSourceSize( - UINT Width, - UINT Height) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSourceSize( - /* [annotation][out] */ - _Out_ UINT *pWidth, - /* [annotation][out] */ - _Out_ UINT *pHeight) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency( - UINT MaxLatency) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency( - /* [annotation][out] */ - _Out_ UINT *pMaxLatency) = 0; - - virtual HANDLE STDMETHODCALLTYPE GetFrameLatencyWaitableObject( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetMatrixTransform( - const DXGI_MATRIX_3X2_F *pMatrix) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMatrixTransform( - /* [annotation][out] */ - _Out_ DXGI_MATRIX_3X2_F *pMatrix) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISwapChain2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISwapChain2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISwapChain2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISwapChain2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *Present )( - IDXGISwapChain2 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IDXGISwapChain2 * This, - /* [in] */ UINT Buffer, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _COM_Outptr_ void **ppSurface); - - HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( - IDXGISwapChain2 * This, - /* [in] */ BOOL Fullscreen, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pTarget); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_opt_ BOOL *pFullscreen, - /* [annotation][out] */ - _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( - IDXGISwapChain2 * This, - /* [in] */ UINT BufferCount, - /* [in] */ UINT Width, - /* [in] */ UINT Height, - /* [in] */ DXGI_FORMAT NewFormat, - /* [in] */ UINT SwapChainFlags); - - HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pNewTargetParameters); - - HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ UINT *pLastPresentCount); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetHwnd )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ HWND *pHwnd); - - HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ REFIID refiid, - /* [annotation][out] */ - _COM_Outptr_ void **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *Present1 )( - IDXGISwapChain2 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT PresentFlags, - /* [annotation][in] */ - _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters); - - BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )( - IDXGISwapChain2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ IDXGIOutput **ppRestrictToOutput); - - HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ const DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *SetRotation )( - IDXGISwapChain2 * This, - /* [annotation][in] */ - _In_ DXGI_MODE_ROTATION Rotation); - - HRESULT ( STDMETHODCALLTYPE *GetRotation )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_MODE_ROTATION *pRotation); - - HRESULT ( STDMETHODCALLTYPE *SetSourceSize )( - IDXGISwapChain2 * This, - UINT Width, - UINT Height); - - HRESULT ( STDMETHODCALLTYPE *GetSourceSize )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ UINT *pWidth, - /* [annotation][out] */ - _Out_ UINT *pHeight); - - HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( - IDXGISwapChain2 * This, - UINT MaxLatency); - - HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ UINT *pMaxLatency); - - HANDLE ( STDMETHODCALLTYPE *GetFrameLatencyWaitableObject )( - IDXGISwapChain2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetMatrixTransform )( - IDXGISwapChain2 * This, - const DXGI_MATRIX_3X2_F *pMatrix); - - HRESULT ( STDMETHODCALLTYPE *GetMatrixTransform )( - IDXGISwapChain2 * This, - /* [annotation][out] */ - _Out_ DXGI_MATRIX_3X2_F *pMatrix); - - END_INTERFACE - } IDXGISwapChain2Vtbl; - - interface IDXGISwapChain2 - { - CONST_VTBL struct IDXGISwapChain2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISwapChain2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISwapChain2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISwapChain2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISwapChain2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISwapChain2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISwapChain2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISwapChain2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISwapChain2_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISwapChain2_Present(This,SyncInterval,Flags) \ - ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) - -#define IDXGISwapChain2_GetBuffer(This,Buffer,riid,ppSurface) \ - ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) - -#define IDXGISwapChain2_SetFullscreenState(This,Fullscreen,pTarget) \ - ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) - -#define IDXGISwapChain2_GetFullscreenState(This,pFullscreen,ppTarget) \ - ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) - -#define IDXGISwapChain2_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISwapChain2_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ - ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) - -#define IDXGISwapChain2_ResizeTarget(This,pNewTargetParameters) \ - ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) - -#define IDXGISwapChain2_GetContainingOutput(This,ppOutput) \ - ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) - -#define IDXGISwapChain2_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - -#define IDXGISwapChain2_GetLastPresentCount(This,pLastPresentCount) \ - ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) - - -#define IDXGISwapChain2_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#define IDXGISwapChain2_GetFullscreenDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) ) - -#define IDXGISwapChain2_GetHwnd(This,pHwnd) \ - ( (This)->lpVtbl -> GetHwnd(This,pHwnd) ) - -#define IDXGISwapChain2_GetCoreWindow(This,refiid,ppUnk) \ - ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) ) - -#define IDXGISwapChain2_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \ - ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) ) - -#define IDXGISwapChain2_IsTemporaryMonoSupported(This) \ - ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) ) - -#define IDXGISwapChain2_GetRestrictToOutput(This,ppRestrictToOutput) \ - ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) ) - -#define IDXGISwapChain2_SetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain2_GetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain2_SetRotation(This,Rotation) \ - ( (This)->lpVtbl -> SetRotation(This,Rotation) ) - -#define IDXGISwapChain2_GetRotation(This,pRotation) \ - ( (This)->lpVtbl -> GetRotation(This,pRotation) ) - - -#define IDXGISwapChain2_SetSourceSize(This,Width,Height) \ - ( (This)->lpVtbl -> SetSourceSize(This,Width,Height) ) - -#define IDXGISwapChain2_GetSourceSize(This,pWidth,pHeight) \ - ( (This)->lpVtbl -> GetSourceSize(This,pWidth,pHeight) ) - -#define IDXGISwapChain2_SetMaximumFrameLatency(This,MaxLatency) \ - ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) - -#define IDXGISwapChain2_GetMaximumFrameLatency(This,pMaxLatency) \ - ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) - -#define IDXGISwapChain2_GetFrameLatencyWaitableObject(This) \ - ( (This)->lpVtbl -> GetFrameLatencyWaitableObject(This) ) - -#define IDXGISwapChain2_SetMatrixTransform(This,pMatrix) \ - ( (This)->lpVtbl -> SetMatrixTransform(This,pMatrix) ) - -#define IDXGISwapChain2_GetMatrixTransform(This,pMatrix) \ - ( (This)->lpVtbl -> GetMatrixTransform(This,pMatrix) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISwapChain2_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIOutput2_INTERFACE_DEFINED__ -#define __IDXGIOutput2_INTERFACE_DEFINED__ - -/* interface IDXGIOutput2 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutput2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("595e39d1-2724-4663-99b1-da969de28364") - IDXGIOutput2 : public IDXGIOutput1 - { - public: - virtual BOOL STDMETHODCALLTYPE SupportsOverlays( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutput2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutput2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutput2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutput2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutput2 * This, - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( - IDXGIOutput2 * 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 )( - IDXGIOutput2 * 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 )( - IDXGIOutput2 * This); - - HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive); - - void ( STDMETHODCALLTYPE *ReleaseOwnership )( - IDXGIOutput2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( - IDXGIOutput2 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); - - HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( - IDXGIOutput2 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface); - - HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pDestination); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGIOutput2 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( - IDXGIOutput2 * 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 )( - IDXGIOutput2 * 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 )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ IDXGIResource *pDestination); - - HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( - IDXGIOutput2 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); - - BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( - IDXGIOutput2 * This); - - END_INTERFACE - } IDXGIOutput2Vtbl; - - interface IDXGIOutput2 - { - CONST_VTBL struct IDXGIOutput2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutput2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutput2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutput2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutput2_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutput2_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutput2_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutput2_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutput2_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutput2_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput2_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput2_WaitForVBlank(This) \ - ( (This)->lpVtbl -> WaitForVBlank(This) ) - -#define IDXGIOutput2_TakeOwnership(This,pDevice,Exclusive) \ - ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) - -#define IDXGIOutput2_ReleaseOwnership(This) \ - ( (This)->lpVtbl -> ReleaseOwnership(This) ) - -#define IDXGIOutput2_GetGammaControlCapabilities(This,pGammaCaps) \ - ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) - -#define IDXGIOutput2_SetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) - -#define IDXGIOutput2_GetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) - -#define IDXGIOutput2_SetDisplaySurface(This,pScanoutSurface) \ - ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) - -#define IDXGIOutput2_GetDisplaySurfaceData(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) - -#define IDXGIOutput2_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - - -#define IDXGIOutput2_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput2_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput2_GetDisplaySurfaceData1(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) - -#define IDXGIOutput2_DuplicateOutput(This,pDevice,ppOutputDuplication) \ - ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) - - -#define IDXGIOutput2_SupportsOverlays(This) \ - ( (This)->lpVtbl -> SupportsOverlays(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutput2_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIFactory3_INTERFACE_DEFINED__ -#define __IDXGIFactory3_INTERFACE_DEFINED__ - -/* interface IDXGIFactory3 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactory3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("25483823-cd46-4c7d-86ca-47aa95b837bd") - IDXGIFactory3 : public IDXGIFactory2 - { - public: - virtual UINT STDMETHODCALLTYPE GetCreationFlags( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactory3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory3 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory3 * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory3 * This, - /* [annotation][out] */ - _Out_ HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory3 * This, - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( - IDXGIFactory3 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter1 **ppAdapter); - - BOOL ( STDMETHODCALLTYPE *IsCurrent )( - IDXGIFactory3 * This); - - BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( - IDXGIFactory3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( - IDXGIFactory3 * 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 )( - IDXGIFactory3 * 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 )( - IDXGIFactory3 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _Out_ LUID *pLuid); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( - IDXGIFactory3 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( - IDXGIFactory3 * 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 )( - IDXGIFactory3 * This); - - END_INTERFACE - } IDXGIFactory3Vtbl; - - interface IDXGIFactory3 - { - CONST_VTBL struct IDXGIFactory3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactory3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactory3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactory3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactory3_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIFactory3_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIFactory3_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIFactory3_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIFactory3_EnumAdapters(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) - -#define IDXGIFactory3_MakeWindowAssociation(This,WindowHandle,Flags) \ - ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) - -#define IDXGIFactory3_GetWindowAssociation(This,pWindowHandle) \ - ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) - -#define IDXGIFactory3_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) - -#define IDXGIFactory3_CreateSoftwareAdapter(This,Module,ppAdapter) \ - ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) - - -#define IDXGIFactory3_EnumAdapters1(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) - -#define IDXGIFactory3_IsCurrent(This) \ - ( (This)->lpVtbl -> IsCurrent(This) ) - - -#define IDXGIFactory3_IsWindowedStereoEnabled(This) \ - ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) ) - -#define IDXGIFactory3_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory3_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory3_GetSharedResourceAdapterLuid(This,hResource,pLuid) \ - ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) ) - -#define IDXGIFactory3_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory3_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory3_UnregisterStereoStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) ) - -#define IDXGIFactory3_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory3_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory3_UnregisterOcclusionStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) ) - -#define IDXGIFactory3_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) ) - - -#define IDXGIFactory3_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactory3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_3_0000_0004 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -typedef struct DXGI_DECODE_SWAP_CHAIN_DESC - { - UINT Flags; - } DXGI_DECODE_SWAP_CHAIN_DESC; - -typedef -enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS - { - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4 - } DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0004_v0_0_s_ifspec; - -#ifndef __IDXGIDecodeSwapChain_INTERFACE_DEFINED__ -#define __IDXGIDecodeSwapChain_INTERFACE_DEFINED__ - -/* interface IDXGIDecodeSwapChain */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIDecodeSwapChain; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("2633066b-4514-4c7a-8fd8-12ea98059d18") - IDXGIDecodeSwapChain : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE PresentBuffer( - UINT BufferToPresent, - UINT SyncInterval, - UINT Flags) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetSourceRect( - const RECT *pRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTargetRect( - const RECT *pRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDestSize( - UINT Width, - UINT Height) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSourceRect( - /* [annotation][out] */ - _Out_ RECT *pRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTargetRect( - /* [annotation][out] */ - _Out_ RECT *pRect) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDestSize( - /* [annotation][out] */ - _Out_ UINT *pWidth, - /* [annotation][out] */ - _Out_ UINT *pHeight) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetColorSpace( - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace) = 0; - - virtual DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS STDMETHODCALLTYPE GetColorSpace( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIDecodeSwapChainVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIDecodeSwapChain * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIDecodeSwapChain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIDecodeSwapChain * This); - - HRESULT ( STDMETHODCALLTYPE *PresentBuffer )( - IDXGIDecodeSwapChain * This, - UINT BufferToPresent, - UINT SyncInterval, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *SetSourceRect )( - IDXGIDecodeSwapChain * This, - const RECT *pRect); - - HRESULT ( STDMETHODCALLTYPE *SetTargetRect )( - IDXGIDecodeSwapChain * This, - const RECT *pRect); - - HRESULT ( STDMETHODCALLTYPE *SetDestSize )( - IDXGIDecodeSwapChain * This, - UINT Width, - UINT Height); - - HRESULT ( STDMETHODCALLTYPE *GetSourceRect )( - IDXGIDecodeSwapChain * This, - /* [annotation][out] */ - _Out_ RECT *pRect); - - HRESULT ( STDMETHODCALLTYPE *GetTargetRect )( - IDXGIDecodeSwapChain * This, - /* [annotation][out] */ - _Out_ RECT *pRect); - - HRESULT ( STDMETHODCALLTYPE *GetDestSize )( - IDXGIDecodeSwapChain * This, - /* [annotation][out] */ - _Out_ UINT *pWidth, - /* [annotation][out] */ - _Out_ UINT *pHeight); - - HRESULT ( STDMETHODCALLTYPE *SetColorSpace )( - IDXGIDecodeSwapChain * This, - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ColorSpace); - - DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS ( STDMETHODCALLTYPE *GetColorSpace )( - IDXGIDecodeSwapChain * This); - - END_INTERFACE - } IDXGIDecodeSwapChainVtbl; - - interface IDXGIDecodeSwapChain - { - CONST_VTBL struct IDXGIDecodeSwapChainVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIDecodeSwapChain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIDecodeSwapChain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIDecodeSwapChain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIDecodeSwapChain_PresentBuffer(This,BufferToPresent,SyncInterval,Flags) \ - ( (This)->lpVtbl -> PresentBuffer(This,BufferToPresent,SyncInterval,Flags) ) - -#define IDXGIDecodeSwapChain_SetSourceRect(This,pRect) \ - ( (This)->lpVtbl -> SetSourceRect(This,pRect) ) - -#define IDXGIDecodeSwapChain_SetTargetRect(This,pRect) \ - ( (This)->lpVtbl -> SetTargetRect(This,pRect) ) - -#define IDXGIDecodeSwapChain_SetDestSize(This,Width,Height) \ - ( (This)->lpVtbl -> SetDestSize(This,Width,Height) ) - -#define IDXGIDecodeSwapChain_GetSourceRect(This,pRect) \ - ( (This)->lpVtbl -> GetSourceRect(This,pRect) ) - -#define IDXGIDecodeSwapChain_GetTargetRect(This,pRect) \ - ( (This)->lpVtbl -> GetTargetRect(This,pRect) ) - -#define IDXGIDecodeSwapChain_GetDestSize(This,pWidth,pHeight) \ - ( (This)->lpVtbl -> GetDestSize(This,pWidth,pHeight) ) - -#define IDXGIDecodeSwapChain_SetColorSpace(This,ColorSpace) \ - ( (This)->lpVtbl -> SetColorSpace(This,ColorSpace) ) - -#define IDXGIDecodeSwapChain_GetColorSpace(This) \ - ( (This)->lpVtbl -> GetColorSpace(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIDecodeSwapChain_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIFactoryMedia_INTERFACE_DEFINED__ -#define __IDXGIFactoryMedia_INTERFACE_DEFINED__ - -/* interface IDXGIFactoryMedia */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactoryMedia; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12") - IDXGIFactoryMedia : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateSwapChainForCompositionSurfaceHandle( - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_opt_ HANDLE hSurface, - /* [annotation][in] */ - _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pRestrictToOutput, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain1 **ppSwapChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDecodeSwapChainForCompositionSurfaceHandle( - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_opt_ HANDLE hSurface, - /* [annotation][in] */ - _In_ DXGI_DECODE_SWAP_CHAIN_DESC *pDesc, - /* [annotation][in] */ - _In_ IDXGIResource *pYuvDecodeBuffers, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pRestrictToOutput, - /* [annotation][out] */ - _COM_Outptr_ IDXGIDecodeSwapChain **ppSwapChain) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactoryMediaVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactoryMedia * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactoryMedia * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactoryMedia * This); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCompositionSurfaceHandle )( - IDXGIFactoryMedia * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_opt_ HANDLE hSurface, - /* [annotation][in] */ - _In_ const DXGI_SWAP_CHAIN_DESC1 *pDesc, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pRestrictToOutput, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain1 **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateDecodeSwapChainForCompositionSurfaceHandle )( - IDXGIFactoryMedia * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_opt_ HANDLE hSurface, - /* [annotation][in] */ - _In_ DXGI_DECODE_SWAP_CHAIN_DESC *pDesc, - /* [annotation][in] */ - _In_ IDXGIResource *pYuvDecodeBuffers, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pRestrictToOutput, - /* [annotation][out] */ - _COM_Outptr_ IDXGIDecodeSwapChain **ppSwapChain); - - END_INTERFACE - } IDXGIFactoryMediaVtbl; - - interface IDXGIFactoryMedia - { - CONST_VTBL struct IDXGIFactoryMediaVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactoryMedia_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactoryMedia_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactoryMedia_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactoryMedia_CreateSwapChainForCompositionSurfaceHandle(This,pDevice,hSurface,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForCompositionSurfaceHandle(This,pDevice,hSurface,pDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactoryMedia_CreateDecodeSwapChainForCompositionSurfaceHandle(This,pDevice,hSurface,pDesc,pYuvDecodeBuffers,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateDecodeSwapChainForCompositionSurfaceHandle(This,pDevice,hSurface,pDesc,pYuvDecodeBuffers,pRestrictToOutput,ppSwapChain) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactoryMedia_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_3_0000_0006 */ -/* [local] */ - -typedef -enum DXGI_FRAME_PRESENTATION_MODE - { - DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0, - DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1, - DXGI_FRAME_PRESENTATION_MODE_NONE = 2, - DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3 - } DXGI_FRAME_PRESENTATION_MODE; - -typedef struct DXGI_FRAME_STATISTICS_MEDIA - { - UINT PresentCount; - UINT PresentRefreshCount; - UINT SyncRefreshCount; - LARGE_INTEGER SyncQPCTime; - LARGE_INTEGER SyncGPUTime; - DXGI_FRAME_PRESENTATION_MODE CompositionMode; - UINT ApprovedPresentDuration; - } DXGI_FRAME_STATISTICS_MEDIA; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0006_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0006_v0_0_s_ifspec; - -#ifndef __IDXGISwapChainMedia_INTERFACE_DEFINED__ -#define __IDXGISwapChainMedia_INTERFACE_DEFINED__ - -/* interface IDXGISwapChainMedia */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISwapChainMedia; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("dd95b90b-f05f-4f6a-bd65-25bfb264bd84") - IDXGISwapChainMedia : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetFrameStatisticsMedia( - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS_MEDIA *pStats) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPresentDuration( - UINT Duration) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckPresentDurationSupport( - UINT DesiredPresentDuration, - /* [annotation][out] */ - _Out_ UINT *pClosestSmallerPresentDuration, - /* [annotation][out] */ - _Out_ UINT *pClosestLargerPresentDuration) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISwapChainMediaVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISwapChainMedia * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISwapChainMedia * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISwapChainMedia * This); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatisticsMedia )( - IDXGISwapChainMedia * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS_MEDIA *pStats); - - HRESULT ( STDMETHODCALLTYPE *SetPresentDuration )( - IDXGISwapChainMedia * This, - UINT Duration); - - HRESULT ( STDMETHODCALLTYPE *CheckPresentDurationSupport )( - IDXGISwapChainMedia * This, - UINT DesiredPresentDuration, - /* [annotation][out] */ - _Out_ UINT *pClosestSmallerPresentDuration, - /* [annotation][out] */ - _Out_ UINT *pClosestLargerPresentDuration); - - END_INTERFACE - } IDXGISwapChainMediaVtbl; - - interface IDXGISwapChainMedia - { - CONST_VTBL struct IDXGISwapChainMediaVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISwapChainMedia_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISwapChainMedia_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISwapChainMedia_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISwapChainMedia_GetFrameStatisticsMedia(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatisticsMedia(This,pStats) ) - -#define IDXGISwapChainMedia_SetPresentDuration(This,Duration) \ - ( (This)->lpVtbl -> SetPresentDuration(This,Duration) ) - -#define IDXGISwapChainMedia_CheckPresentDurationSupport(This,DesiredPresentDuration,pClosestSmallerPresentDuration,pClosestLargerPresentDuration) \ - ( (This)->lpVtbl -> CheckPresentDurationSupport(This,DesiredPresentDuration,pClosestSmallerPresentDuration,pClosestLargerPresentDuration) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISwapChainMedia_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_3_0000_0007 */ -/* [local] */ - -typedef -enum DXGI_OVERLAY_SUPPORT_FLAG - { - DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1, - DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2 - } DXGI_OVERLAY_SUPPORT_FLAG; - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ -#pragma endregion -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0007_v0_0_s_ifspec; - -#ifndef __IDXGIOutput3_INTERFACE_DEFINED__ -#define __IDXGIOutput3_INTERFACE_DEFINED__ - -/* interface IDXGIOutput3 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutput3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("8a6bb301-7e7e-41F4-a8e0-5b32f7f99b18") - IDXGIOutput3 : public IDXGIOutput2 - { - public: - virtual HRESULT STDMETHODCALLTYPE CheckOverlaySupport( - /* [annotation][in] */ - _In_ DXGI_FORMAT EnumFormat, - /* [annotation][out] */ - _In_ IUnknown *pConcernedDevice, - /* [annotation][out] */ - _Out_ UINT *pFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutput3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutput3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutput3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutput3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutput3 * This, - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( - IDXGIOutput3 * 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 )( - IDXGIOutput3 * 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 )( - IDXGIOutput3 * This); - - HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive); - - void ( STDMETHODCALLTYPE *ReleaseOwnership )( - IDXGIOutput3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( - IDXGIOutput3 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); - - HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( - IDXGIOutput3 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface); - - HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pDestination); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGIOutput3 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( - IDXGIOutput3 * 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 )( - IDXGIOutput3 * 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 )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ IDXGIResource *pDestination); - - HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); - - BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( - IDXGIOutput3 * This); - - HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )( - IDXGIOutput3 * This, - /* [annotation][in] */ - _In_ DXGI_FORMAT EnumFormat, - /* [annotation][out] */ - _In_ IUnknown *pConcernedDevice, - /* [annotation][out] */ - _Out_ UINT *pFlags); - - END_INTERFACE - } IDXGIOutput3Vtbl; - - interface IDXGIOutput3 - { - CONST_VTBL struct IDXGIOutput3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutput3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutput3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutput3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutput3_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutput3_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutput3_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutput3_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutput3_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutput3_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput3_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput3_WaitForVBlank(This) \ - ( (This)->lpVtbl -> WaitForVBlank(This) ) - -#define IDXGIOutput3_TakeOwnership(This,pDevice,Exclusive) \ - ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) - -#define IDXGIOutput3_ReleaseOwnership(This) \ - ( (This)->lpVtbl -> ReleaseOwnership(This) ) - -#define IDXGIOutput3_GetGammaControlCapabilities(This,pGammaCaps) \ - ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) - -#define IDXGIOutput3_SetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) - -#define IDXGIOutput3_GetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) - -#define IDXGIOutput3_SetDisplaySurface(This,pScanoutSurface) \ - ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) - -#define IDXGIOutput3_GetDisplaySurfaceData(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) - -#define IDXGIOutput3_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - - -#define IDXGIOutput3_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput3_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput3_GetDisplaySurfaceData1(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) - -#define IDXGIOutput3_DuplicateOutput(This,pDevice,ppOutputDuplication) \ - ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) - - -#define IDXGIOutput3_SupportsOverlays(This) \ - ( (This)->lpVtbl -> SupportsOverlays(This) ) - - -#define IDXGIOutput3_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \ - ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutput3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_3_0000_0008 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -DEFINE_GUID(IID_IDXGIDevice3,0x6007896c,0x3244,0x4afd,0xbf,0x18,0xa6,0xd3,0xbe,0xda,0x50,0x23); -DEFINE_GUID(IID_IDXGISwapChain2,0xa8be2ac4,0x199f,0x4946,0xb3,0x31,0x79,0x59,0x9f,0xb9,0x8d,0xe7); -DEFINE_GUID(IID_IDXGIOutput2,0x595e39d1,0x2724,0x4663,0x99,0xb1,0xda,0x96,0x9d,0xe2,0x83,0x64); -DEFINE_GUID(IID_IDXGIFactory3,0x25483823,0xcd46,0x4c7d,0x86,0xca,0x47,0xaa,0x95,0xb8,0x37,0xbd); -DEFINE_GUID(IID_IDXGIDecodeSwapChain,0x2633066b,0x4514,0x4c7a,0x8f,0xd8,0x12,0xea,0x98,0x05,0x9d,0x18); -DEFINE_GUID(IID_IDXGIFactoryMedia,0x41e7d1f2,0xa591,0x4f7b,0xa2,0xe5,0xfa,0x9c,0x84,0x3e,0x1c,0x12); -DEFINE_GUID(IID_IDXGISwapChainMedia,0xdd95b90b,0xf05f,0x4f6a,0xbd,0x65,0x25,0xbf,0xb2,0x64,0xbd,0x84); -DEFINE_GUID(IID_IDXGIOutput3,0x8a6bb301,0x7e7e,0x41F4,0xa8,0xe0,0x5b,0x32,0xf7,0xf9,0x9b,0x18); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_3_0000_0008_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/3rdparty/minidx12/Include/dxgi1_4.h b/3rdparty/minidx12/Include/dxgi1_4.h deleted file mode 100644 index 8bb48d5c56..0000000000 --- a/3rdparty/minidx12/Include/dxgi1_4.h +++ /dev/null @@ -1,1494 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0613 */ -/* @@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_4_h__ -#define __dxgi1_4_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDXGISwapChain3_FWD_DEFINED__ -#define __IDXGISwapChain3_FWD_DEFINED__ -typedef interface IDXGISwapChain3 IDXGISwapChain3; - -#endif /* __IDXGISwapChain3_FWD_DEFINED__ */ - - -#ifndef __IDXGIOutput4_FWD_DEFINED__ -#define __IDXGIOutput4_FWD_DEFINED__ -typedef interface IDXGIOutput4 IDXGIOutput4; - -#endif /* __IDXGIOutput4_FWD_DEFINED__ */ - - -#ifndef __IDXGIFactory4_FWD_DEFINED__ -#define __IDXGIFactory4_FWD_DEFINED__ -typedef interface IDXGIFactory4 IDXGIFactory4; - -#endif /* __IDXGIFactory4_FWD_DEFINED__ */ - - -#ifndef __IDXGIAdapter3_FWD_DEFINED__ -#define __IDXGIAdapter3_FWD_DEFINED__ -typedef interface IDXGIAdapter3 IDXGIAdapter3; - -#endif /* __IDXGIAdapter3_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "dxgi1_3.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dxgi1_4_0000_0000 */ -/* [local] */ - -#include -#pragma region App Family -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) -typedef -enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG - { - DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1, - DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2 - } DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0000_v0_0_s_ifspec; - -#ifndef __IDXGISwapChain3_INTERFACE_DEFINED__ -#define __IDXGISwapChain3_INTERFACE_DEFINED__ - -/* interface IDXGISwapChain3 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGISwapChain3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("94d99bdb-f1f8-4ab0-b236-7da0170edab1") - IDXGISwapChain3 : public IDXGISwapChain2 - { - public: - virtual UINT STDMETHODCALLTYPE GetCurrentBackBufferIndex( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CheckColorSpaceSupport( - /* [annotation][in] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, - /* [annotation][out] */ - _Out_ UINT *pColorSpaceSupport) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetColorSpace1( - /* [annotation][in] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResizeBuffers1( - /* [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) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGISwapChain3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGISwapChain3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGISwapChain3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGISwapChain3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDevice )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppDevice); - - HRESULT ( STDMETHODCALLTYPE *Present )( - IDXGISwapChain3 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetBuffer )( - IDXGISwapChain3 * This, - /* [in] */ UINT Buffer, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][out][in] */ - _COM_Outptr_ void **ppSurface); - - HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( - IDXGISwapChain3 * This, - /* [in] */ BOOL Fullscreen, - /* [annotation][in] */ - _In_opt_ IDXGIOutput *pTarget); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_opt_ BOOL *pFullscreen, - /* [annotation][out] */ - _COM_Outptr_opt_result_maybenull_ IDXGIOutput **ppTarget); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( - IDXGISwapChain3 * This, - /* [in] */ UINT BufferCount, - /* [in] */ UINT Width, - /* [in] */ UINT Height, - /* [in] */ DXGI_FORMAT NewFormat, - /* [in] */ UINT SwapChainFlags); - - HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ const DXGI_MODE_DESC *pNewTargetParameters); - - HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ UINT *pLastPresentCount); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_DESC1 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetFullscreenDesc )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetHwnd )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ HWND *pHwnd); - - HRESULT ( STDMETHODCALLTYPE *GetCoreWindow )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ REFIID refiid, - /* [annotation][out] */ - _COM_Outptr_ void **ppUnk); - - HRESULT ( STDMETHODCALLTYPE *Present1 )( - IDXGISwapChain3 * This, - /* [in] */ UINT SyncInterval, - /* [in] */ UINT PresentFlags, - /* [annotation][in] */ - _In_ const DXGI_PRESENT_PARAMETERS *pPresentParameters); - - BOOL ( STDMETHODCALLTYPE *IsTemporaryMonoSupported )( - IDXGISwapChain3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetRestrictToOutput )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ IDXGIOutput **ppRestrictToOutput); - - HRESULT ( STDMETHODCALLTYPE *SetBackgroundColor )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ const DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *GetBackgroundColor )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_RGBA *pColor); - - HRESULT ( STDMETHODCALLTYPE *SetRotation )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ DXGI_MODE_ROTATION Rotation); - - HRESULT ( STDMETHODCALLTYPE *GetRotation )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_MODE_ROTATION *pRotation); - - HRESULT ( STDMETHODCALLTYPE *SetSourceSize )( - IDXGISwapChain3 * This, - UINT Width, - UINT Height); - - HRESULT ( STDMETHODCALLTYPE *GetSourceSize )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ UINT *pWidth, - /* [annotation][out] */ - _Out_ UINT *pHeight); - - HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( - IDXGISwapChain3 * This, - UINT MaxLatency); - - HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ UINT *pMaxLatency); - - HANDLE ( STDMETHODCALLTYPE *GetFrameLatencyWaitableObject )( - IDXGISwapChain3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetMatrixTransform )( - IDXGISwapChain3 * This, - const DXGI_MATRIX_3X2_F *pMatrix); - - HRESULT ( STDMETHODCALLTYPE *GetMatrixTransform )( - IDXGISwapChain3 * This, - /* [annotation][out] */ - _Out_ DXGI_MATRIX_3X2_F *pMatrix); - - UINT ( STDMETHODCALLTYPE *GetCurrentBackBufferIndex )( - IDXGISwapChain3 * This); - - HRESULT ( STDMETHODCALLTYPE *CheckColorSpaceSupport )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, - /* [annotation][out] */ - _Out_ UINT *pColorSpaceSupport); - - HRESULT ( STDMETHODCALLTYPE *SetColorSpace1 )( - IDXGISwapChain3 * This, - /* [annotation][in] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace); - - HRESULT ( STDMETHODCALLTYPE *ResizeBuffers1 )( - IDXGISwapChain3 * 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); - - END_INTERFACE - } IDXGISwapChain3Vtbl; - - interface IDXGISwapChain3 - { - CONST_VTBL struct IDXGISwapChain3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGISwapChain3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGISwapChain3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGISwapChain3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGISwapChain3_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGISwapChain3_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGISwapChain3_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGISwapChain3_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGISwapChain3_GetDevice(This,riid,ppDevice) \ - ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) - - -#define IDXGISwapChain3_Present(This,SyncInterval,Flags) \ - ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) - -#define IDXGISwapChain3_GetBuffer(This,Buffer,riid,ppSurface) \ - ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) - -#define IDXGISwapChain3_SetFullscreenState(This,Fullscreen,pTarget) \ - ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) - -#define IDXGISwapChain3_GetFullscreenState(This,pFullscreen,ppTarget) \ - ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) - -#define IDXGISwapChain3_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGISwapChain3_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) \ - ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) - -#define IDXGISwapChain3_ResizeTarget(This,pNewTargetParameters) \ - ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) - -#define IDXGISwapChain3_GetContainingOutput(This,ppOutput) \ - ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) - -#define IDXGISwapChain3_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - -#define IDXGISwapChain3_GetLastPresentCount(This,pLastPresentCount) \ - ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) - - -#define IDXGISwapChain3_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - -#define IDXGISwapChain3_GetFullscreenDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetFullscreenDesc(This,pDesc) ) - -#define IDXGISwapChain3_GetHwnd(This,pHwnd) \ - ( (This)->lpVtbl -> GetHwnd(This,pHwnd) ) - -#define IDXGISwapChain3_GetCoreWindow(This,refiid,ppUnk) \ - ( (This)->lpVtbl -> GetCoreWindow(This,refiid,ppUnk) ) - -#define IDXGISwapChain3_Present1(This,SyncInterval,PresentFlags,pPresentParameters) \ - ( (This)->lpVtbl -> Present1(This,SyncInterval,PresentFlags,pPresentParameters) ) - -#define IDXGISwapChain3_IsTemporaryMonoSupported(This) \ - ( (This)->lpVtbl -> IsTemporaryMonoSupported(This) ) - -#define IDXGISwapChain3_GetRestrictToOutput(This,ppRestrictToOutput) \ - ( (This)->lpVtbl -> GetRestrictToOutput(This,ppRestrictToOutput) ) - -#define IDXGISwapChain3_SetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> SetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain3_GetBackgroundColor(This,pColor) \ - ( (This)->lpVtbl -> GetBackgroundColor(This,pColor) ) - -#define IDXGISwapChain3_SetRotation(This,Rotation) \ - ( (This)->lpVtbl -> SetRotation(This,Rotation) ) - -#define IDXGISwapChain3_GetRotation(This,pRotation) \ - ( (This)->lpVtbl -> GetRotation(This,pRotation) ) - - -#define IDXGISwapChain3_SetSourceSize(This,Width,Height) \ - ( (This)->lpVtbl -> SetSourceSize(This,Width,Height) ) - -#define IDXGISwapChain3_GetSourceSize(This,pWidth,pHeight) \ - ( (This)->lpVtbl -> GetSourceSize(This,pWidth,pHeight) ) - -#define IDXGISwapChain3_SetMaximumFrameLatency(This,MaxLatency) \ - ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) - -#define IDXGISwapChain3_GetMaximumFrameLatency(This,pMaxLatency) \ - ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) - -#define IDXGISwapChain3_GetFrameLatencyWaitableObject(This) \ - ( (This)->lpVtbl -> GetFrameLatencyWaitableObject(This) ) - -#define IDXGISwapChain3_SetMatrixTransform(This,pMatrix) \ - ( (This)->lpVtbl -> SetMatrixTransform(This,pMatrix) ) - -#define IDXGISwapChain3_GetMatrixTransform(This,pMatrix) \ - ( (This)->lpVtbl -> GetMatrixTransform(This,pMatrix) ) - - -#define IDXGISwapChain3_GetCurrentBackBufferIndex(This) \ - ( (This)->lpVtbl -> GetCurrentBackBufferIndex(This) ) - -#define IDXGISwapChain3_CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) \ - ( (This)->lpVtbl -> CheckColorSpaceSupport(This,ColorSpace,pColorSpaceSupport) ) - -#define IDXGISwapChain3_SetColorSpace1(This,ColorSpace) \ - ( (This)->lpVtbl -> SetColorSpace1(This,ColorSpace) ) - -#define IDXGISwapChain3_ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) \ - ( (This)->lpVtbl -> ResizeBuffers1(This,BufferCount,Width,Height,Format,SwapChainFlags,pCreationNodeMask,ppPresentQueue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGISwapChain3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_4_0000_0001 */ -/* [local] */ - -typedef -enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG - { - DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1 - } DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0001_v0_0_s_ifspec; - -#ifndef __IDXGIOutput4_INTERFACE_DEFINED__ -#define __IDXGIOutput4_INTERFACE_DEFINED__ - -/* interface IDXGIOutput4 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIOutput4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("dc7dca35-2196-414d-9F53-617884032a60") - IDXGIOutput4 : public IDXGIOutput3 - { - public: - virtual HRESULT STDMETHODCALLTYPE CheckOverlayColorSpaceSupport( - /* [annotation][in] */ - _In_ DXGI_FORMAT Format, - /* [annotation][in] */ - _In_ DXGI_COLOR_SPACE_TYPE ColorSpace, - /* [annotation][in] */ - _In_ IUnknown *pConcernedDevice, - /* [annotation][out] */ - _Out_ UINT *pFlags) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIOutput4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIOutput4 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIOutput4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIOutput4 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIOutput4 * This, - /* [annotation][out] */ - _Out_ DXGI_OUTPUT_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( - IDXGIOutput4 * 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 )( - IDXGIOutput4 * 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 )( - IDXGIOutput4 * This); - - HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - BOOL Exclusive); - - void ( STDMETHODCALLTYPE *ReleaseOwnership )( - IDXGIOutput4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( - IDXGIOutput4 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps); - - HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ const DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( - IDXGIOutput4 * This, - /* [annotation][out] */ - _Out_ DXGI_GAMMA_CONTROL *pArray); - - HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pScanoutSurface); - - HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ IDXGISurface *pDestination); - - HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( - IDXGIOutput4 * This, - /* [annotation][out] */ - _Out_ DXGI_FRAME_STATISTICS *pStats); - - HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList1 )( - IDXGIOutput4 * 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 )( - IDXGIOutput4 * 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 )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ IDXGIResource *pDestination); - - HRESULT ( STDMETHODCALLTYPE *DuplicateOutput )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][out] */ - _COM_Outptr_ IDXGIOutputDuplication **ppOutputDuplication); - - BOOL ( STDMETHODCALLTYPE *SupportsOverlays )( - IDXGIOutput4 * This); - - HRESULT ( STDMETHODCALLTYPE *CheckOverlaySupport )( - IDXGIOutput4 * This, - /* [annotation][in] */ - _In_ DXGI_FORMAT EnumFormat, - /* [annotation][out] */ - _In_ IUnknown *pConcernedDevice, - /* [annotation][out] */ - _Out_ UINT *pFlags); - - HRESULT ( STDMETHODCALLTYPE *CheckOverlayColorSpaceSupport )( - IDXGIOutput4 * 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); - - END_INTERFACE - } IDXGIOutput4Vtbl; - - interface IDXGIOutput4 - { - CONST_VTBL struct IDXGIOutput4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIOutput4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIOutput4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIOutput4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIOutput4_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIOutput4_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIOutput4_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIOutput4_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIOutput4_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIOutput4_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput4_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput4_WaitForVBlank(This) \ - ( (This)->lpVtbl -> WaitForVBlank(This) ) - -#define IDXGIOutput4_TakeOwnership(This,pDevice,Exclusive) \ - ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) - -#define IDXGIOutput4_ReleaseOwnership(This) \ - ( (This)->lpVtbl -> ReleaseOwnership(This) ) - -#define IDXGIOutput4_GetGammaControlCapabilities(This,pGammaCaps) \ - ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) - -#define IDXGIOutput4_SetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) - -#define IDXGIOutput4_GetGammaControl(This,pArray) \ - ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) - -#define IDXGIOutput4_SetDisplaySurface(This,pScanoutSurface) \ - ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) - -#define IDXGIOutput4_GetDisplaySurfaceData(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) - -#define IDXGIOutput4_GetFrameStatistics(This,pStats) \ - ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) - - -#define IDXGIOutput4_GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) \ - ( (This)->lpVtbl -> GetDisplayModeList1(This,EnumFormat,Flags,pNumModes,pDesc) ) - -#define IDXGIOutput4_FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) \ - ( (This)->lpVtbl -> FindClosestMatchingMode1(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) - -#define IDXGIOutput4_GetDisplaySurfaceData1(This,pDestination) \ - ( (This)->lpVtbl -> GetDisplaySurfaceData1(This,pDestination) ) - -#define IDXGIOutput4_DuplicateOutput(This,pDevice,ppOutputDuplication) \ - ( (This)->lpVtbl -> DuplicateOutput(This,pDevice,ppOutputDuplication) ) - - -#define IDXGIOutput4_SupportsOverlays(This) \ - ( (This)->lpVtbl -> SupportsOverlays(This) ) - - -#define IDXGIOutput4_CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) \ - ( (This)->lpVtbl -> CheckOverlaySupport(This,EnumFormat,pConcernedDevice,pFlags) ) - - -#define IDXGIOutput4_CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) \ - ( (This)->lpVtbl -> CheckOverlayColorSpaceSupport(This,Format,ColorSpace,pConcernedDevice,pFlags) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIOutput4_INTERFACE_DEFINED__ */ - - -#ifndef __IDXGIFactory4_INTERFACE_DEFINED__ -#define __IDXGIFactory4_INTERFACE_DEFINED__ - -/* interface IDXGIFactory4 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIFactory4; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1bc6ea02-ef36-464f-bf0c-21ca39e5168a") - IDXGIFactory4 : public IDXGIFactory3 - { - public: - virtual HRESULT STDMETHODCALLTYPE EnumAdapterByLuid( - /* [annotation] */ - _In_ LUID AdapterLuid, - /* [annotation] */ - _In_ REFIID riid, - /* [annotation] */ - _COM_Outptr_ void **ppvAdapter) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumWarpAdapter( - /* [annotation] */ - _In_ REFIID riid, - /* [annotation] */ - _COM_Outptr_ void **ppvAdapter) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIFactory4Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory4 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory4 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory4 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory4 * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory4 * This, - /* [annotation][out] */ - _Out_ HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ IUnknown *pDevice, - /* [annotation][in] */ - _In_ DXGI_SWAP_CHAIN_DESC *pDesc, - /* [annotation][out] */ - _COM_Outptr_ IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory4 * This, - /* [in] */ HMODULE Module, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( - IDXGIFactory4 * This, - /* [in] */ UINT Adapter, - /* [annotation][out] */ - _COM_Outptr_ IDXGIAdapter1 **ppAdapter); - - BOOL ( STDMETHODCALLTYPE *IsCurrent )( - IDXGIFactory4 * This); - - BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( - IDXGIFactory4 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( - IDXGIFactory4 * 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 )( - IDXGIFactory4 * 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 )( - IDXGIFactory4 * This, - /* [annotation] */ - _In_ HANDLE hResource, - /* [annotation] */ - _Out_ LUID *pLuid); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ HWND WindowHandle, - /* [annotation][in] */ - _In_ UINT wMsg, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( - IDXGIFactory4 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( - IDXGIFactory4 * 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 )( - IDXGIFactory4 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )( - IDXGIFactory4 * This, - /* [annotation] */ - _In_ LUID AdapterLuid, - /* [annotation] */ - _In_ REFIID riid, - /* [annotation] */ - _COM_Outptr_ void **ppvAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )( - IDXGIFactory4 * This, - /* [annotation] */ - _In_ REFIID riid, - /* [annotation] */ - _COM_Outptr_ void **ppvAdapter); - - END_INTERFACE - } IDXGIFactory4Vtbl; - - interface IDXGIFactory4 - { - CONST_VTBL struct IDXGIFactory4Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIFactory4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIFactory4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIFactory4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIFactory4_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIFactory4_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIFactory4_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIFactory4_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIFactory4_EnumAdapters(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) - -#define IDXGIFactory4_MakeWindowAssociation(This,WindowHandle,Flags) \ - ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) - -#define IDXGIFactory4_GetWindowAssociation(This,pWindowHandle) \ - ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) - -#define IDXGIFactory4_CreateSwapChain(This,pDevice,pDesc,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) - -#define IDXGIFactory4_CreateSoftwareAdapter(This,Module,ppAdapter) \ - ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) - - -#define IDXGIFactory4_EnumAdapters1(This,Adapter,ppAdapter) \ - ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) - -#define IDXGIFactory4_IsCurrent(This) \ - ( (This)->lpVtbl -> IsCurrent(This) ) - - -#define IDXGIFactory4_IsWindowedStereoEnabled(This) \ - ( (This)->lpVtbl -> IsWindowedStereoEnabled(This) ) - -#define IDXGIFactory4_CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForHwnd(This,pDevice,hWnd,pDesc,pFullscreenDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory4_CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForCoreWindow(This,pDevice,pWindow,pDesc,pRestrictToOutput,ppSwapChain) ) - -#define IDXGIFactory4_GetSharedResourceAdapterLuid(This,hResource,pLuid) \ - ( (This)->lpVtbl -> GetSharedResourceAdapterLuid(This,hResource,pLuid) ) - -#define IDXGIFactory4_RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory4_RegisterStereoStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterStereoStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory4_UnregisterStereoStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterStereoStatus(This,dwCookie) ) - -#define IDXGIFactory4_RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusWindow(This,WindowHandle,wMsg,pdwCookie) ) - -#define IDXGIFactory4_RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterOcclusionStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIFactory4_UnregisterOcclusionStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterOcclusionStatus(This,dwCookie) ) - -#define IDXGIFactory4_CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) \ - ( (This)->lpVtbl -> CreateSwapChainForComposition(This,pDevice,pDesc,pRestrictToOutput,ppSwapChain) ) - - -#define IDXGIFactory4_GetCreationFlags(This) \ - ( (This)->lpVtbl -> GetCreationFlags(This) ) - - -#define IDXGIFactory4_EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) \ - ( (This)->lpVtbl -> EnumAdapterByLuid(This,AdapterLuid,riid,ppvAdapter) ) - -#define IDXGIFactory4_EnumWarpAdapter(This,riid,ppvAdapter) \ - ( (This)->lpVtbl -> EnumWarpAdapter(This,riid,ppvAdapter) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIFactory4_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_4_0000_0003 */ -/* [local] */ - -typedef -enum DXGI_MEMORY_SEGMENT_GROUP - { - DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0, - DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1 - } DXGI_MEMORY_SEGMENT_GROUP; - -typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO - { - UINT64 Budget; - UINT64 CurrentUsage; - UINT64 AvailableForReservation; - UINT64 CurrentReservation; - } DXGI_QUERY_VIDEO_MEMORY_INFO; - - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0003_v0_0_s_ifspec; - -#ifndef __IDXGIAdapter3_INTERFACE_DEFINED__ -#define __IDXGIAdapter3_INTERFACE_DEFINED__ - -/* interface IDXGIAdapter3 */ -/* [unique][local][uuid][object] */ - - -EXTERN_C const IID IID_IDXGIAdapter3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("645967A4-1392-4310-A798-8053CE3E93FD") - IDXGIAdapter3 : public IDXGIAdapter2 - { - public: - virtual HRESULT STDMETHODCALLTYPE RegisterHardwareContentProtectionTeardownStatusEvent( - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual void STDMETHODCALLTYPE UnregisterHardwareContentProtectionTeardownStatus( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE QueryVideoMemoryInfo( - /* [annotation][in] */ - _In_ UINT NodeIndex, - /* [annotation][in] */ - _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - /* [annotation][out] */ - _Out_ DXGI_QUERY_VIDEO_MEMORY_INFO *pVideoMemoryInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetVideoMemoryReservation( - /* [annotation][in] */ - _In_ UINT NodeIndex, - /* [annotation][in] */ - _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - /* [annotation][in] */ - _In_ UINT64 Reservation) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterVideoMemoryBudgetChangeNotificationEvent( - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie) = 0; - - virtual void STDMETHODCALLTYPE UnregisterVideoMemoryBudgetChangeNotification( - /* [annotation][in] */ - _In_ DWORD dwCookie) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDXGIAdapter3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIAdapter3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIAdapter3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIAdapter3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [in] */ UINT DataSize, - /* [annotation][in] */ - _In_reads_bytes_(DataSize) const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][in] */ - _In_ const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ REFGUID Name, - /* [annotation][out][in] */ - _Inout_ UINT *pDataSize, - /* [annotation][out] */ - _Out_writes_bytes_(*pDataSize) void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][retval][out] */ - _COM_Outptr_ void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( - IDXGIAdapter3 * This, - /* [in] */ UINT Output, - /* [annotation][out][in] */ - _COM_Outptr_ IDXGIOutput **ppOutput); - - HRESULT ( STDMETHODCALLTYPE *GetDesc )( - IDXGIAdapter3 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC *pDesc); - - HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ REFGUID InterfaceName, - /* [annotation][out] */ - _Out_ LARGE_INTEGER *pUMDVersion); - - HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( - IDXGIAdapter3 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC1 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *GetDesc2 )( - IDXGIAdapter3 * This, - /* [annotation][out] */ - _Out_ DXGI_ADAPTER_DESC2 *pDesc); - - HRESULT ( STDMETHODCALLTYPE *RegisterHardwareContentProtectionTeardownStatusEvent )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterHardwareContentProtectionTeardownStatus )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *QueryVideoMemoryInfo )( - IDXGIAdapter3 * 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 )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ UINT NodeIndex, - /* [annotation][in] */ - _In_ DXGI_MEMORY_SEGMENT_GROUP MemorySegmentGroup, - /* [annotation][in] */ - _In_ UINT64 Reservation); - - HRESULT ( STDMETHODCALLTYPE *RegisterVideoMemoryBudgetChangeNotificationEvent )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ HANDLE hEvent, - /* [annotation][out] */ - _Out_ DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterVideoMemoryBudgetChangeNotification )( - IDXGIAdapter3 * This, - /* [annotation][in] */ - _In_ DWORD dwCookie); - - END_INTERFACE - } IDXGIAdapter3Vtbl; - - interface IDXGIAdapter3 - { - CONST_VTBL struct IDXGIAdapter3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDXGIAdapter3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDXGIAdapter3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDXGIAdapter3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDXGIAdapter3_SetPrivateData(This,Name,DataSize,pData) \ - ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) - -#define IDXGIAdapter3_SetPrivateDataInterface(This,Name,pUnknown) \ - ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) - -#define IDXGIAdapter3_GetPrivateData(This,Name,pDataSize,pData) \ - ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) - -#define IDXGIAdapter3_GetParent(This,riid,ppParent) \ - ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) - - -#define IDXGIAdapter3_EnumOutputs(This,Output,ppOutput) \ - ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) - -#define IDXGIAdapter3_GetDesc(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc(This,pDesc) ) - -#define IDXGIAdapter3_CheckInterfaceSupport(This,InterfaceName,pUMDVersion) \ - ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) - - -#define IDXGIAdapter3_GetDesc1(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) - - -#define IDXGIAdapter3_GetDesc2(This,pDesc) \ - ( (This)->lpVtbl -> GetDesc2(This,pDesc) ) - - -#define IDXGIAdapter3_RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterHardwareContentProtectionTeardownStatusEvent(This,hEvent,pdwCookie) ) - -#define IDXGIAdapter3_UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterHardwareContentProtectionTeardownStatus(This,dwCookie) ) - -#define IDXGIAdapter3_QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) \ - ( (This)->lpVtbl -> QueryVideoMemoryInfo(This,NodeIndex,MemorySegmentGroup,pVideoMemoryInfo) ) - -#define IDXGIAdapter3_SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) \ - ( (This)->lpVtbl -> SetVideoMemoryReservation(This,NodeIndex,MemorySegmentGroup,Reservation) ) - -#define IDXGIAdapter3_RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) \ - ( (This)->lpVtbl -> RegisterVideoMemoryBudgetChangeNotificationEvent(This,hEvent,pdwCookie) ) - -#define IDXGIAdapter3_UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) \ - ( (This)->lpVtbl -> UnregisterVideoMemoryBudgetChangeNotification(This,dwCookie) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDXGIAdapter3_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_dxgi1_4_0000_0004 */ -/* [local] */ - -#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ -#pragma endregion -DEFINE_GUID(IID_IDXGISwapChain3,0x94d99bdb,0xf1f8,0x4ab0,0xb2,0x36,0x7d,0xa0,0x17,0x0e,0xda,0xb1); -DEFINE_GUID(IID_IDXGIOutput4,0xdc7dca35,0x2196,0x414d,0x9F,0x53,0x61,0x78,0x84,0x03,0x2a,0x60); -DEFINE_GUID(IID_IDXGIFactory4,0x1bc6ea02,0xef36,0x464f,0xbf,0x0c,0x21,0xca,0x39,0xe5,0x16,0x8a); -DEFINE_GUID(IID_IDXGIAdapter3,0x645967A4,0x1392,0x4310,0xA7,0x98,0x80,0x53,0xCE,0x3E,0x93,0xFD); - - -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_4_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dxgi1_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/dxgiformat.h b/3rdparty/minidx12/Include/dxgiformat.h deleted file mode 100644 index 4159caba4b..0000000000 --- a/3rdparty/minidx12/Include/dxgiformat.h +++ /dev/null @@ -1,137 +0,0 @@ -// -// Copyright (C) Microsoft. All rights reserved. -// - -#ifndef __dxgiformat_h__ -#define __dxgiformat_h__ - -#define DXGI_FORMAT_DEFINED 1 - -typedef enum DXGI_FORMAT -{ - DXGI_FORMAT_UNKNOWN = 0, - DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, - DXGI_FORMAT_R32G32B32A32_FLOAT = 2, - DXGI_FORMAT_R32G32B32A32_UINT = 3, - DXGI_FORMAT_R32G32B32A32_SINT = 4, - DXGI_FORMAT_R32G32B32_TYPELESS = 5, - DXGI_FORMAT_R32G32B32_FLOAT = 6, - DXGI_FORMAT_R32G32B32_UINT = 7, - DXGI_FORMAT_R32G32B32_SINT = 8, - DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, - DXGI_FORMAT_R16G16B16A16_FLOAT = 10, - DXGI_FORMAT_R16G16B16A16_UNORM = 11, - DXGI_FORMAT_R16G16B16A16_UINT = 12, - DXGI_FORMAT_R16G16B16A16_SNORM = 13, - DXGI_FORMAT_R16G16B16A16_SINT = 14, - DXGI_FORMAT_R32G32_TYPELESS = 15, - DXGI_FORMAT_R32G32_FLOAT = 16, - DXGI_FORMAT_R32G32_UINT = 17, - DXGI_FORMAT_R32G32_SINT = 18, - DXGI_FORMAT_R32G8X24_TYPELESS = 19, - DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, - DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, - DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, - DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, - DXGI_FORMAT_R10G10B10A2_UNORM = 24, - DXGI_FORMAT_R10G10B10A2_UINT = 25, - DXGI_FORMAT_R11G11B10_FLOAT = 26, - DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, - DXGI_FORMAT_R8G8B8A8_UNORM = 28, - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, - DXGI_FORMAT_R8G8B8A8_UINT = 30, - DXGI_FORMAT_R8G8B8A8_SNORM = 31, - DXGI_FORMAT_R8G8B8A8_SINT = 32, - DXGI_FORMAT_R16G16_TYPELESS = 33, - DXGI_FORMAT_R16G16_FLOAT = 34, - DXGI_FORMAT_R16G16_UNORM = 35, - DXGI_FORMAT_R16G16_UINT = 36, - DXGI_FORMAT_R16G16_SNORM = 37, - DXGI_FORMAT_R16G16_SINT = 38, - DXGI_FORMAT_R32_TYPELESS = 39, - DXGI_FORMAT_D32_FLOAT = 40, - DXGI_FORMAT_R32_FLOAT = 41, - DXGI_FORMAT_R32_UINT = 42, - DXGI_FORMAT_R32_SINT = 43, - DXGI_FORMAT_R24G8_TYPELESS = 44, - DXGI_FORMAT_D24_UNORM_S8_UINT = 45, - DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, - DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, - DXGI_FORMAT_R8G8_TYPELESS = 48, - DXGI_FORMAT_R8G8_UNORM = 49, - DXGI_FORMAT_R8G8_UINT = 50, - DXGI_FORMAT_R8G8_SNORM = 51, - DXGI_FORMAT_R8G8_SINT = 52, - DXGI_FORMAT_R16_TYPELESS = 53, - DXGI_FORMAT_R16_FLOAT = 54, - DXGI_FORMAT_D16_UNORM = 55, - DXGI_FORMAT_R16_UNORM = 56, - DXGI_FORMAT_R16_UINT = 57, - DXGI_FORMAT_R16_SNORM = 58, - DXGI_FORMAT_R16_SINT = 59, - DXGI_FORMAT_R8_TYPELESS = 60, - DXGI_FORMAT_R8_UNORM = 61, - DXGI_FORMAT_R8_UINT = 62, - DXGI_FORMAT_R8_SNORM = 63, - DXGI_FORMAT_R8_SINT = 64, - DXGI_FORMAT_A8_UNORM = 65, - DXGI_FORMAT_R1_UNORM = 66, - DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, - DXGI_FORMAT_R8G8_B8G8_UNORM = 68, - DXGI_FORMAT_G8R8_G8B8_UNORM = 69, - DXGI_FORMAT_BC1_TYPELESS = 70, - DXGI_FORMAT_BC1_UNORM = 71, - DXGI_FORMAT_BC1_UNORM_SRGB = 72, - DXGI_FORMAT_BC2_TYPELESS = 73, - DXGI_FORMAT_BC2_UNORM = 74, - DXGI_FORMAT_BC2_UNORM_SRGB = 75, - DXGI_FORMAT_BC3_TYPELESS = 76, - DXGI_FORMAT_BC3_UNORM = 77, - DXGI_FORMAT_BC3_UNORM_SRGB = 78, - DXGI_FORMAT_BC4_TYPELESS = 79, - DXGI_FORMAT_BC4_UNORM = 80, - DXGI_FORMAT_BC4_SNORM = 81, - DXGI_FORMAT_BC5_TYPELESS = 82, - DXGI_FORMAT_BC5_UNORM = 83, - DXGI_FORMAT_BC5_SNORM = 84, - DXGI_FORMAT_B5G6R5_UNORM = 85, - DXGI_FORMAT_B5G5R5A1_UNORM = 86, - DXGI_FORMAT_B8G8R8A8_UNORM = 87, - DXGI_FORMAT_B8G8R8X8_UNORM = 88, - DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, - DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, - DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, - DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, - DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, - DXGI_FORMAT_BC6H_TYPELESS = 94, - DXGI_FORMAT_BC6H_UF16 = 95, - DXGI_FORMAT_BC6H_SF16 = 96, - DXGI_FORMAT_BC7_TYPELESS = 97, - DXGI_FORMAT_BC7_UNORM = 98, - DXGI_FORMAT_BC7_UNORM_SRGB = 99, - DXGI_FORMAT_AYUV = 100, - DXGI_FORMAT_Y410 = 101, - DXGI_FORMAT_Y416 = 102, - DXGI_FORMAT_NV12 = 103, - DXGI_FORMAT_P010 = 104, - DXGI_FORMAT_P016 = 105, - DXGI_FORMAT_420_OPAQUE = 106, - DXGI_FORMAT_YUY2 = 107, - DXGI_FORMAT_Y210 = 108, - DXGI_FORMAT_Y216 = 109, - DXGI_FORMAT_NV11 = 110, - DXGI_FORMAT_AI44 = 111, - DXGI_FORMAT_IA44 = 112, - DXGI_FORMAT_P8 = 113, - DXGI_FORMAT_A8P8 = 114, - DXGI_FORMAT_B4G4R4A4_UNORM = 115, - - DXGI_FORMAT_P208 = 130, - DXGI_FORMAT_V208 = 131, - DXGI_FORMAT_V408 = 132, - - - DXGI_FORMAT_FORCE_UINT = 0xffffffff -} DXGI_FORMAT; - -#endif // __dxgiformat_h__ diff --git a/3rdparty/minidx12/Include/dxgitype.h b/3rdparty/minidx12/Include/dxgitype.h deleted file mode 100644 index 066fafd53a..0000000000 --- a/3rdparty/minidx12/Include/dxgitype.h +++ /dev/null @@ -1,143 +0,0 @@ -// -// Copyright (C) Microsoft. All rights reserved. -// -#ifndef __dxgitype_h__ -#define __dxgitype_h__ - -#include "dxgiformat.h" - -#define _FACDXGI 0x87a -#define MAKE_DXGI_HRESULT(code) MAKE_HRESULT(1, _FACDXGI, code) -#define MAKE_DXGI_STATUS(code) MAKE_HRESULT(0, _FACDXGI, code) - -// DXGI error messages have moved to winerror.h - -#define DXGI_CPU_ACCESS_NONE ( 0 ) -#define DXGI_CPU_ACCESS_DYNAMIC ( 1 ) -#define DXGI_CPU_ACCESS_READ_WRITE ( 2 ) -#define DXGI_CPU_ACCESS_SCRATCH ( 3 ) -#define DXGI_CPU_ACCESS_FIELD 15 - - -typedef struct DXGI_RGB -{ - float Red; - float Green; - float Blue; -} DXGI_RGB; - -#ifndef D3DCOLORVALUE_DEFINED -typedef struct _D3DCOLORVALUE { - float r; - float g; - float b; - float a; -} D3DCOLORVALUE; - -#define D3DCOLORVALUE_DEFINED -#endif - -typedef D3DCOLORVALUE DXGI_RGBA; - -typedef struct DXGI_GAMMA_CONTROL -{ - DXGI_RGB Scale; - DXGI_RGB Offset; - DXGI_RGB GammaCurve[ 1025 ]; -} DXGI_GAMMA_CONTROL; - -typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES -{ - BOOL ScaleAndOffsetSupported; - float MaxConvertedValue; - float MinConvertedValue; - UINT NumGammaControlPoints; - 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, - DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, - DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, - DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 -} DXGI_MODE_SCANLINE_ORDER; - -typedef enum DXGI_MODE_SCALING -{ - DXGI_MODE_SCALING_UNSPECIFIED = 0, - DXGI_MODE_SCALING_CENTERED = 1, - DXGI_MODE_SCALING_STRETCHED = 2 -} DXGI_MODE_SCALING; - -typedef enum DXGI_MODE_ROTATION -{ - DXGI_MODE_ROTATION_UNSPECIFIED = 0, - DXGI_MODE_ROTATION_IDENTITY = 1, - DXGI_MODE_ROTATION_ROTATE90 = 2, - DXGI_MODE_ROTATION_ROTATE180 = 3, - DXGI_MODE_ROTATION_ROTATE270 = 4 -} DXGI_MODE_ROTATION; - -typedef struct DXGI_MODE_DESC -{ - UINT Width; - UINT Height; - DXGI_RATIONAL RefreshRate; - DXGI_FORMAT Format; - DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; - 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]; - BYTE CodeValues[12]; -} DXGI_JPEG_DC_HUFFMAN_TABLE; - -typedef struct DXGI_JPEG_AC_HUFFMAN_TABLE -{ - BYTE CodeCounts[16]; - BYTE CodeValues[162]; -} DXGI_JPEG_AC_HUFFMAN_TABLE; - -typedef struct DXGI_JPEG_QUANTIZATION_TABLE -{ - BYTE Elements[64]; -} DXGI_JPEG_QUANTIZATION_TABLE; - -#endif // __dxgitype_h__ - diff --git a/3rdparty/minidx12/Lib/d2d1.lib b/3rdparty/minidx12/Lib/d2d1.lib deleted file mode 100644 index e584cf6665..0000000000 Binary files a/3rdparty/minidx12/Lib/d2d1.lib and /dev/null differ diff --git a/3rdparty/minidx12/Lib/dwrite.lib b/3rdparty/minidx12/Lib/dwrite.lib deleted file mode 100644 index 75d18cecbe..0000000000 Binary files a/3rdparty/minidx12/Lib/dwrite.lib and /dev/null differ diff --git a/3rdparty/minidx12/Lib/dxgi.lib b/3rdparty/minidx12/Lib/dxgi.lib deleted file mode 100644 index 8dfdb2dd72..0000000000 Binary files a/3rdparty/minidx12/Lib/dxgi.lib and /dev/null differ diff --git a/rpcs3.sln b/rpcs3.sln index a3f3e3fead..07ac32c760 100644 --- a/rpcs3.sln +++ b/rpcs3.sln @@ -13,8 +13,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emucore", "rpcs3\emucore.vc EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llvm_build", "llvm_build\llvm_build.vcxproj", "{8BC303AB-25BE-4276-8E57-73F171B2D672}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D12GSRender", "rpcs3\D3D12GSRender.vcxproj", "{FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLGSRender", "rpcs3\GLGSRender.vcxproj", "{3384223A-6D97-4799-9862-359F85312892}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "rpcs3.emu", "rpcs3.emu", "{10FBF193-D532-4CCF-B875-4C7091A7F6C2}" @@ -61,7 +59,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rpcs3", "rpcs3\rpcs3.vcxpro {60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF} {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D} = {3EE5F075-B546-42C4-B6A8-E3CCEF38B78D} {D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E} - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078} = {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078} {FDC361C5-7734-493B-8CFB-037308B35122} = {FDC361C5-7734-493B-8CFB-037308B35122} {8F85B6CC-250F-4ACA-A617-E820A74E3E3C} = {8F85B6CC-250F-4ACA-A617-E820A74E3E3C} {349EE8F9-7D25-4909-AAF5-FF3FADE72187} = {349EE8F9-7D25-4909-AAF5-FF3FADE72187} @@ -117,16 +114,6 @@ Global {8BC303AB-25BE-4276-8E57-73F171B2D672}.Debug|x64.ActiveCfg = Debug|x64 {8BC303AB-25BE-4276-8E57-73F171B2D672}.Release - LLVM|x64.ActiveCfg = Release|x64 {8BC303AB-25BE-4276-8E57-73F171B2D672}.Release|x64.ActiveCfg = Release|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug - LLVM|x64.ActiveCfg = Debug - LLVM|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug - LLVM|x64.Build.0 = Debug - LLVM|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug - MemLeak|x64.ActiveCfg = Debug - MemLeak|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug - MemLeak|x64.Build.0 = Debug - MemLeak|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug|x64.ActiveCfg = Debug|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Debug|x64.Build.0 = Debug|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Release - LLVM|x64.ActiveCfg = Release - LLVM|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Release - LLVM|x64.Build.0 = Release - LLVM|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Release|x64.ActiveCfg = Release|x64 - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078}.Release|x64.Build.0 = Release|x64 {3384223A-6D97-4799-9862-359F85312892}.Debug - LLVM|x64.ActiveCfg = Debug - LLVM|x64 {3384223A-6D97-4799-9862-359F85312892}.Debug - LLVM|x64.Build.0 = Debug - LLVM|x64 {3384223A-6D97-4799-9862-359F85312892}.Debug - MemLeak|x64.ActiveCfg = Debug - MemLeak|x64 @@ -269,7 +256,6 @@ Global {AC40FF01-426E-4838-A317-66354CEFAE88} = {E2A982F2-4B1A-48B1-8D77-A17A589C58D7} {C4A10229-4712-4BD2-B63E-50D93C67A038} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2} {8BC303AB-25BE-4276-8E57-73F171B2D672} = {B0AC29FD-7B01-4B5E-9C8D-0A081E4C5668} - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2} {3384223A-6D97-4799-9862-359F85312892} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2} {78CB2F39-B809-4A06-8329-8C0A19119D3D} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2} {30A05C4D-F5FD-421C-A864-17A64BDEAA75} = {10FBF193-D532-4CCF-B875-4C7091A7F6C2} diff --git a/rpcs3/D3D12GSRender.vcxproj b/rpcs3/D3D12GSRender.vcxproj deleted file mode 100644 index 4e6d64b58c..0000000000 --- a/rpcs3/D3D12GSRender.vcxproj +++ /dev/null @@ -1,99 +0,0 @@ - - - - - Debug - LLVM - x64 - - - Debug - MemLeak - x64 - - - Debug - x64 - - - Release - LLVM - x64 - - - Release - x64 - - - - {FAC9B17B-F4B8-4B75-8AEB-C8C7CB92B078} - D3D12GSRender - - - - - - StaticLibrary - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {c4a10229-4712-4bd2-b63e-50d93c67a038} - - - - - - \ No newline at end of file diff --git a/rpcs3/D3D12GSRender.vcxproj.filters b/rpcs3/D3D12GSRender.vcxproj.filters deleted file mode 100644 index 52d361d921..0000000000 --- a/rpcs3/D3D12GSRender.vcxproj.filters +++ /dev/null @@ -1,83 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - - - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/rpcs3/Emu/CMakeLists.txt b/rpcs3/Emu/CMakeLists.txt index 23d5677da7..2b20181294 100644 --- a/rpcs3/Emu/CMakeLists.txt +++ b/rpcs3/Emu/CMakeLists.txt @@ -380,23 +380,6 @@ if(TARGET 3rdparty_vulkan) ) endif() -if (WIN32) - target_sources(rpcs3_emu PRIVATE - RSX/D3D12/D3D12Buffer.cpp - RSX/D3D12/D3D12CommonDecompiler.cpp - RSX/D3D12/D3D12Formats.cpp - RSX/D3D12/D3D12FragmentProgramDecompiler.cpp - RSX/D3D12/D3D12GSRender.cpp - RSX/D3D12/D3D12MemoryHelpers.cpp - RSX/D3D12/D3D12Overlay.cpp - RSX/D3D12/D3D12PipelineState.cpp - RSX/D3D12/D3D12RenderTargetSets.cpp - RSX/D3D12/D3D12Texture.cpp - RSX/D3D12/D3D12Utils.cpp - RSX/D3D12/D3D12VertexProgramDecompiler.cpp - ) -endif() - target_link_libraries(rpcs3_emu PUBLIC 3rdparty::ffmpeg 3rdparty::cereal @@ -405,7 +388,7 @@ target_link_libraries(rpcs3_emu 3rdparty::libusb PRIVATE 3rdparty::gsl 3rdparty::xxhash - 3rdparty::dx12) +) # Setup cotire diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp deleted file mode 100644 index 7d0025f511..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp +++ /dev/null @@ -1,452 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" - -#include - -#include "D3D12GSRender.h" -#include "d3dx12.h" -#include "../Common/BufferUtils.h" -#include "D3D12Formats.h" -#include "../rsx_methods.h" - -namespace -{ - UINT get_component_mapping_from_vector_size(rsx::vertex_base_type type, u8 size) - { - if (type == rsx::vertex_base_type::cmp) return D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - switch (size) - { - case 1: - return D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1); - case 2: - return D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1); - case 3: - return D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1); - case 4: - return D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - } - fmt::throw_exception("Wrong vector size %d" HERE, size); - } - - D3D12_SHADER_RESOURCE_VIEW_DESC get_vertex_attribute_srv(const rsx::data_array_format_info &info, UINT64 offset_in_vertex_buffers_buffer, UINT buffer_size) - { - u32 element_size = rsx::get_vertex_type_size_on_host(info.type(), info.size()); - D3D12_SHADER_RESOURCE_VIEW_DESC vertex_buffer_view = { - get_vertex_attribute_format(info.type(), info.size()), D3D12_SRV_DIMENSION_BUFFER, - get_component_mapping_from_vector_size(info.type(), info.size())}; - vertex_buffer_view.Buffer.FirstElement = offset_in_vertex_buffers_buffer / element_size; - vertex_buffer_view.Buffer.NumElements = buffer_size / element_size; - return vertex_buffer_view; - } - - D3D12_SHADER_RESOURCE_VIEW_DESC get_vertex_attribute_srv(const rsx::vertex_base_type type, u8 size, UINT64 offset_in_vertex_buffers_buffer, UINT buffer_size) - { - u32 element_size = rsx::get_vertex_type_size_on_host(type, size); - D3D12_SHADER_RESOURCE_VIEW_DESC vertex_buffer_view = {get_vertex_attribute_format(type, size), - D3D12_SRV_DIMENSION_BUFFER, get_component_mapping_from_vector_size(type, size)}; - vertex_buffer_view.Buffer.FirstElement = offset_in_vertex_buffers_buffer / element_size; - vertex_buffer_view.Buffer.NumElements = buffer_size / element_size; - return vertex_buffer_view; - } - - template - UINT64 get_next_multiple_of(UINT64 val) - { - UINT64 divided_val = (val + N - 1) / N; - return divided_val * N; - } -} - - -void D3D12GSRender::upload_and_bind_scale_offset_matrix(size_t descriptorIndex) -{ - size_t heap_offset = m_buffer_data.alloc(512); - - // Scale offset buffer - // Separate constant buffer - void *mapped_buffer = m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + 512)); - fill_scale_offset_data(mapped_buffer, true); - fill_user_clip_data((char*)mapped_buffer + 64); - fill_fragment_state_buffer((char *)mapped_buffer + 128, current_fragment_program); - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + 512)); - - D3D12_CONSTANT_BUFFER_VIEW_DESC constant_buffer_view_desc = { - m_buffer_data.get_heap()->GetGPUVirtualAddress() + heap_offset, - 512 - }; - m_device->CreateConstantBufferView(&constant_buffer_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((INT)descriptorIndex, m_descriptor_stride_srv_cbv_uav)); -} - -void D3D12GSRender::upload_and_bind_vertex_shader_constants(size_t descriptor_index) -{ - size_t buffer_size = 512 * 4 * sizeof(float); - - size_t heap_offset = m_buffer_data.alloc(buffer_size); - - void *mapped_buffer = m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - fill_vertex_program_constants_data(mapped_buffer); - *(reinterpret_cast((char *)mapped_buffer + (468 * 4 * sizeof(float)))) = rsx::method_registers.transform_branch_bits(); - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - D3D12_CONSTANT_BUFFER_VIEW_DESC constant_buffer_view_desc = { - m_buffer_data.get_heap()->GetGPUVirtualAddress() + heap_offset, - (UINT)buffer_size - }; - m_device->CreateConstantBufferView(&constant_buffer_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((INT)descriptor_index, m_descriptor_stride_srv_cbv_uav)); -} - -D3D12_CONSTANT_BUFFER_VIEW_DESC D3D12GSRender::upload_fragment_shader_constants() -{ - // Get constant from fragment program - size_t buffer_size = m_pso_cache.get_fragment_constants_buffer_size(current_fragment_program); - // Multiple of 256 never 0 - buffer_size = (buffer_size + 255) & ~255; - - size_t heap_offset = m_buffer_data.alloc(buffer_size); - - size_t offset = 0; - float *mapped_buffer = m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - m_pso_cache.fill_fragment_constants_buffer({ mapped_buffer, ::narrow(buffer_size) }, current_fragment_program); - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - return { - m_buffer_data.get_heap()->GetGPUVirtualAddress() + heap_offset, - (UINT)buffer_size - }; -} - -namespace -{ - - struct vertex_buffer_visitor - { - std::vector vertex_buffer_views; - - vertex_buffer_visitor(u32 vtx_cnt, ID3D12GraphicsCommandList* cmdlst, - ID3D12Resource* write_vertex_buffer, d3d12_data_heap& heap) - : vertex_count(vtx_cnt), offset_in_vertex_buffers_buffer(0), m_buffer_data(heap), - command_list(cmdlst), m_vertex_buffer_data(write_vertex_buffer) - { - } - - void operator()(const rsx::vertex_array_buffer& vertex_array) - { - u32 element_size = - rsx::get_vertex_type_size_on_host(vertex_array.type, vertex_array.attribute_size); - UINT buffer_size = element_size * vertex_count; - size_t heap_offset = - m_buffer_data.alloc(buffer_size); - - void* mapped_buffer = - m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - gsl::span mapped_buffer_span = { - (gsl::byte*)mapped_buffer, gsl::narrow_cast(buffer_size)}; - write_vertex_array_data_to_buffer(mapped_buffer_span, vertex_array.data, vertex_count, - vertex_array.type, vertex_array.attribute_size, vertex_array.stride, element_size, vertex_array.is_be); - - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - command_list->CopyBufferRegion(m_vertex_buffer_data, offset_in_vertex_buffers_buffer, - m_buffer_data.get_heap(), heap_offset, buffer_size); - - vertex_buffer_views.emplace_back(get_vertex_attribute_srv(vertex_array.type, - vertex_array.attribute_size, offset_in_vertex_buffers_buffer, buffer_size)); - offset_in_vertex_buffers_buffer = - get_next_multiple_of<48>(offset_in_vertex_buffers_buffer + - buffer_size); // 48 is multiple of 2, 4, 6, 8, 12, 16 - - // m_timers.buffer_upload_size += buffer_size; - } - - void operator()(const rsx::vertex_array_register& vertex_register) - { - u32 element_size = rsx::get_vertex_type_size_on_host( - vertex_register.type, vertex_register.attribute_size); - UINT buffer_size = element_size; - size_t heap_offset = - m_buffer_data.alloc(buffer_size); - - void* mapped_buffer = - m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - memcpy(mapped_buffer, vertex_register.data.data(), buffer_size); - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - command_list->CopyBufferRegion(m_vertex_buffer_data, offset_in_vertex_buffers_buffer, - m_buffer_data.get_heap(), heap_offset, buffer_size); - - vertex_buffer_views.emplace_back(get_vertex_attribute_srv(vertex_register.type, - vertex_register.attribute_size, offset_in_vertex_buffers_buffer, buffer_size)); - offset_in_vertex_buffers_buffer = - get_next_multiple_of<48>(offset_in_vertex_buffers_buffer + - buffer_size); // 48 is multiple of 2, 4, 6, 8, 12, 16 - } - - void operator()(const rsx::empty_vertex_array& vbo) - { - } - - protected: - u32 vertex_count; - ID3D12GraphicsCommandList* command_list; - ID3D12Resource* m_vertex_buffer_data; - size_t offset_in_vertex_buffers_buffer; - d3d12_data_heap& m_buffer_data; - }; - - std::tuple generate_index_buffer_for_emulated_primitives_array( - u32 vertex_count, d3d12_data_heap& m_buffer_data) - { - size_t index_count = get_index_count(rsx::method_registers.current_draw_clause.primitive, vertex_count); - - // Alloc - size_t buffer_size = align(index_count * sizeof(u16), 64); - size_t heap_offset = - m_buffer_data.alloc(buffer_size); - - void* mapped_buffer = - m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - write_index_array_for_non_indexed_non_native_primitive_to_buffer((char *)mapped_buffer, rsx::method_registers.current_draw_clause.primitive, vertex_count); - - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - D3D12_INDEX_BUFFER_VIEW index_buffer_view = { - m_buffer_data.get_heap()->GetGPUVirtualAddress() + heap_offset, (UINT)buffer_size, - DXGI_FORMAT_R16_UINT}; - - return std::make_tuple(index_buffer_view, index_count); - } - - using attribute_storage = std::vector>; - - /** - * Upload all enabled vertex attributes for vertex in ranges described by vertex_ranges. - * A range in vertex_range is a pair whose first element is the index of the beginning of the - * range, and whose second element is the number of vertex in this range. - */ - std::vector upload_vertex_attributes( - u32 vertex_count, - std::function get_vertex_buffers, - ID3D12Resource* m_vertex_buffer_data, d3d12_data_heap& m_buffer_data, - ID3D12GraphicsCommandList* command_list) - { - command_list->ResourceBarrier(1, - &CD3DX12_RESOURCE_BARRIER::Transition(m_vertex_buffer_data, - D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER, D3D12_RESOURCE_STATE_COPY_DEST)); - - vertex_buffer_visitor visitor( - vertex_count, command_list, m_vertex_buffer_data, m_buffer_data); - const auto& vertex_buffers = get_vertex_buffers(); - - for (const auto& vbo : vertex_buffers) std::visit(visitor, vbo); - - command_list->ResourceBarrier(1, - &CD3DX12_RESOURCE_BARRIER::Transition(m_vertex_buffer_data, - D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER)); - return visitor.vertex_buffer_views; - } - - std::tuple, size_t> upload_inlined_vertex_array( - gsl::span vertex_attribute_infos, - gsl::span inlined_array_raw_data, d3d12_data_heap& ring_buffer_data, - ID3D12Resource* vertex_buffer_placement, ID3D12GraphicsCommandList* command_list) - { - // We can't rely on vertex_attribute_infos strides here so compute it - // assuming all attributes are packed - u32 stride = 0; - u32 initial_offsets[rsx::limits::vertex_count]; - u8 index = 0; - for (const auto& info : vertex_attribute_infos) { - initial_offsets[index++] = stride; - - if (!info.size()) // disabled - continue; - - stride += rsx::get_vertex_type_size_on_host(info.type(), info.size()); - } - - u32 element_count = ::narrow(inlined_array_raw_data.size_bytes()) / stride; - std::vector result; - - UINT64 vertex_buffer_offset = 0; - index = 0; - for (const auto& info : vertex_attribute_infos) { - if (!info.size()) { - index++; - continue; - } - - u32 element_size = rsx::get_vertex_type_size_on_host(info.type(), info.size()); - UINT buffer_size = element_size * element_count; - size_t heap_offset = - ring_buffer_data.alloc(buffer_size); - - void* mapped_buffer = - ring_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - gsl::span dst = {(gsl::byte*)mapped_buffer, buffer_size}; - - for (u32 i = 0; i < element_count; i++) { - auto subdst = dst.subspan(i * element_size, element_size); - auto subsrc = inlined_array_raw_data.subspan( - initial_offsets[index] + (i * stride), element_size); - if (info.type() == rsx::vertex_base_type::ub && info.size() == 4) { - subdst[0] = subsrc[3]; - subdst[1] = subsrc[2]; - subdst[2] = subsrc[1]; - subdst[3] = subsrc[0]; - } - else - { - std::copy(subsrc.begin(), subsrc.end(), subdst.begin()); - } - } - - ring_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - command_list->CopyBufferRegion(vertex_buffer_placement, vertex_buffer_offset, - ring_buffer_data.get_heap(), heap_offset, buffer_size); - - result.emplace_back(get_vertex_attribute_srv(info, vertex_buffer_offset, buffer_size)); - vertex_buffer_offset = get_next_multiple_of<48>( - vertex_buffer_offset + buffer_size); // 48 is multiple of 2, 4, 6, 8, 12, 16 - index++; - } - - return std::make_tuple(result, element_count); - } - - struct draw_command_visitor - { - draw_command_visitor(ID3D12GraphicsCommandList* cmd_list, d3d12_data_heap& buffer_data, - ID3D12Resource* vertex_buffer_data, - std::function get_vertex_info_lambda) - : command_list(cmd_list), m_buffer_data(buffer_data), - m_vertex_buffer_data(vertex_buffer_data), get_vertex_buffers(get_vertex_info_lambda) - { - } - - std::tuple> operator()( - const rsx::draw_array_command& command) - { - const auto vertex_count = rsx::method_registers.current_draw_clause.get_elements_count(); - if (is_primitive_native(rsx::method_registers.current_draw_clause.primitive)) { - return std::make_tuple(false, vertex_count, - upload_vertex_attributes(vertex_count, - get_vertex_buffers, - m_vertex_buffer_data, m_buffer_data, command_list)); - } - - D3D12_INDEX_BUFFER_VIEW index_buffer_view; - size_t index_count; - std::tie(index_buffer_view, index_count) = - generate_index_buffer_for_emulated_primitives_array( - vertex_count, m_buffer_data); - command_list->IASetIndexBuffer(&index_buffer_view); - return std::make_tuple(true, index_count, - upload_vertex_attributes(vertex_count, - get_vertex_buffers, - m_vertex_buffer_data, m_buffer_data, command_list)); - } - - std::tuple> operator()( - const rsx::draw_indexed_array_command& command) - { - // Index count - size_t index_count = - get_index_count(rsx::method_registers.current_draw_clause.primitive, - rsx::method_registers.current_draw_clause.get_elements_count()); - - rsx::index_array_type indexed_type = rsx::method_registers.current_draw_clause.is_immediate_draw? - rsx::index_array_type::u32: - rsx::method_registers.index_type(); - - size_t index_size = get_index_type_size(indexed_type); - - // Alloc - size_t buffer_size = align(index_count * index_size, 64); - size_t heap_offset = - m_buffer_data.alloc(buffer_size); - - void* mapped_buffer = - m_buffer_data.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - u32 min_index, max_index; - gsl::span dst{ - reinterpret_cast(mapped_buffer), ::narrow(buffer_size)}; - - std::tie(min_index, max_index, index_count) = - write_index_array_data_to_buffer(dst, command.raw_index_buffer, indexed_type, - rsx::method_registers.current_draw_clause.primitive, - rsx::method_registers.restart_index_enabled(), - rsx::method_registers.restart_index(), - [](auto prim) { return !is_primitive_native(prim); }); - - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - D3D12_INDEX_BUFFER_VIEW index_buffer_view = { - m_buffer_data.get_heap()->GetGPUVirtualAddress() + heap_offset, (UINT)buffer_size, - get_index_type(indexed_type)}; - // m_timers.buffer_upload_size += buffer_size; - command_list->IASetIndexBuffer(&index_buffer_view); - - return std::make_tuple(true, index_count, - upload_vertex_attributes(max_index + 1, get_vertex_buffers, - m_vertex_buffer_data, m_buffer_data, command_list)); - } - - std::tuple> operator()( - const rsx::draw_inlined_array& command) - { - size_t vertex_count; - std::vector vertex_buffer_view; - std::tie(vertex_buffer_view, vertex_count) = - upload_inlined_vertex_array(rsx::method_registers.vertex_arrays_info, - {(const gsl::byte*)rsx::method_registers.current_draw_clause.inline_vertex_array.data(), - ::narrow(rsx::method_registers.current_draw_clause.inline_vertex_array.size() * sizeof(uint))}, - m_buffer_data, m_vertex_buffer_data, command_list); - - if (is_primitive_native(rsx::method_registers.current_draw_clause.primitive)) - return std::make_tuple(false, vertex_count, vertex_buffer_view); - - D3D12_INDEX_BUFFER_VIEW index_buffer_view; - size_t index_count; - std::tie(index_buffer_view, index_count) = - generate_index_buffer_for_emulated_primitives_array( - vertex_count, m_buffer_data); - command_list->IASetIndexBuffer(&index_buffer_view); - return std::make_tuple(true, index_count, vertex_buffer_view); - } - - private: - ID3D12GraphicsCommandList* command_list; - d3d12_data_heap& m_buffer_data; - std::function get_vertex_buffers; - ID3D12Resource* m_vertex_buffer_data; - }; -} // End anonymous namespace - -std::tuple> -D3D12GSRender::upload_and_set_vertex_index_data(ID3D12GraphicsCommandList* command_list) -{ - return std::visit( - draw_command_visitor(command_list, m_buffer_data, m_vertex_buffer_data.Get(), - [this]() { return get_vertex_buffers(rsx::method_registers, 0); }), - get_draw_command(rsx::method_registers)); -} - -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.cpp b/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.cpp deleted file mode 100644 index 7ca92801c7..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.cpp +++ /dev/null @@ -1,233 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12CommonDecompiler.h" - -std::string getFloatTypeNameImp(size_t elementCount) -{ - switch (elementCount) - { - default: - abort(); - case 1: - return "float"; - case 2: - return "float2"; - case 3: - return "float3"; - case 4: - return "float4"; - } -} - -std::string getFunctionImp(FUNCTION f) -{ - switch (f) - { - default: - fmt::throw_exception("Unsupported program function %d", (u32)f); - case FUNCTION::FUNCTION_DP2: - return "dot($0.xy, $1.xy).xxxx"; - case FUNCTION::FUNCTION_DP2A: - return "(dot($0.xy, $1.xy) + $2.x).xxxx"; - case FUNCTION::FUNCTION_DP3: - return "dot($0.xyz, $1.xyz).xxxx"; - case FUNCTION::FUNCTION_DP4: - return "dot($0, $1).xxxx"; - case FUNCTION::FUNCTION_DPH: - return "dot(float4($0.xyz, 1.0), $1).xxxx"; - case FUNCTION::FUNCTION_SFL: - return "float4(0., 0., 0., 0.)"; - case FUNCTION::FUNCTION_STR: - return "float4(1., 1., 1., 1.)"; - case FUNCTION::FUNCTION_FRACT: - return "frac($0)"; - case FUNCTION::FUNCTION_REFL: - return "($0 - 2.0 * (dot($0, $1)) * $1)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE1D: - return "$t.Sample($tsampler, $0.x)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE1D_PROJ: - return "$t.Sample($tsampler, ($0.x / $0.w))"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE1D_BIAS: - case FUNCTION::FUNCTION_TEXTURE_SAMPLE1D_LOD: - return "$t.SampleLevel($tsampler, $0.x, $1)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE1D_GRAD: - return "$t.SampleGrad($tsampler, $0.x, $1, $2)"; - case FUNCTION::FUNCTION_TEXTURE_SHADOW2D: //TODO - case FUNCTION::FUNCTION_TEXTURE_SHADOW2D_PROJ: - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D: - return "$t.Sample($tsampler, $0.xy * $t_scale)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D_PROJ: - return "$t.Sample($tsampler, ($0.xy / $0.w) * $t_scale)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D_BIAS: - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D_LOD: - return "$t.SampleLevel($tsampler, $0.xy * $t_scale, $1)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D_GRAD: - return "$t.SampleGrad($tsampler, $0.xy, $1, $2)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLECUBE: - return "$t.Sample($tsampler, $0.xyz)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLECUBE_PROJ: - return "$t.Sample($tsampler, ($0.xyz / $0.w))"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLECUBE_BIAS: - case FUNCTION::FUNCTION_TEXTURE_SAMPLECUBE_LOD: - return "$t.SampleLevel($tsampler, $0.xyz, $1)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLECUBE_GRAD: - return "$t.SampleGrad($tsampler, $0.xyz, $1, $2)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE3D: - return "$t.Sample($tsampler, $0.xyz)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE3D_PROJ: - return "$t.Sample($tsampler, ($0.xyz / $0.w))"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE3D_BIAS: - case FUNCTION::FUNCTION_TEXTURE_SAMPLE3D_LOD: - return "$t.SampleLevel($tsampler, $0.xyz, $1)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE3D_GRAD: - return "$t.SampleGrad($tsampler, $0.xyz, $1, $2)"; - case FUNCTION::FUNCTION_DFDX: - return "ddx($0)"; - case FUNCTION::FUNCTION_DFDY: - return "ddy($0)"; - case FUNCTION::FUNCTION_TEXTURE_SAMPLE2D_DEPTH_RGBA: - return "texture2DReconstruct($t.Sample($tsampler, $0.xy * $t_scale), texture_parameters[$_i].z)"; - } -} - -std::string compareFunctionImp(COMPARE f, const std::string &Op0, const std::string &Op1) -{ - switch (f) - { - default: - abort(); - case COMPARE::FUNCTION_SEQ: - return "(" + Op0 + " == " + Op1 + ")"; - case COMPARE::FUNCTION_SGE: - return "(" + Op0 + " >= " + Op1 + ")"; - case COMPARE::FUNCTION_SGT: - return "(" + Op0 + " > " + Op1 + ")"; - case COMPARE::FUNCTION_SLE: - return "(" + Op0 + " <= " + Op1 + ")"; - case COMPARE::FUNCTION_SLT: - return "(" + Op0 + " < " + Op1 + ")"; - case COMPARE::FUNCTION_SNE: - return "(" + Op0 + " != " + Op1 + ")"; - } -} - -void insert_d3d12_legacy_function(std::ostream& OS, bool is_fragment_program) -{ - OS << "#define _select lerp\n\n"; - - OS << "float4 lit_legacy(float4 val)"; - OS << "{\n"; - OS << " float4 clamped_val = val;\n"; - OS << " clamped_val.x = max(val.x, 0);\n"; - OS << " clamped_val.y = max(val.y, 0);\n"; - OS << " float4 result;\n"; - OS << " result.x = 1.0;\n"; - OS << " result.w = 1.;\n"; - OS << " result.y = clamped_val.x;\n"; - OS << " result.z = clamped_val.x > 0.0 ? exp(clamped_val.w * log(max(clamped_val.y, 1.E-10))) : 0.0;\n"; - OS << " return result;\n"; - OS << "}\n\n"; - - if (!is_fragment_program) - return; - - program_common::insert_compare_op(OS, false); - - OS << "uint packSnorm2x16(float2 val)"; - OS << "{\n"; - OS << " uint high_bits = round(clamp(val.x, -1., 1.) * 32767.);\n"; - OS << " uint low_bits = round(clamp(val.y, -1., 1.) * 32767.);\n"; - OS << " return (high_bits << 16)|low_bits;\n"; - OS << "}\n\n"; - - OS << "uint packSnorm4x8(float4 val)"; - OS << "{\n"; - OS << " uint high_bits_a = round(clamp(val.x, -1., 1.) * 127.);\n"; - OS << " uint high_bits_b = round(clamp(val.y, -1., 1.) * 127.);\n"; - OS << " uint low_bits_a = round(clamp(val.z, -1., 1.) * 127.);\n"; - OS << " uint low_bits_b = round(clamp(val.z, -1., 1.) * 127.);\n"; - OS << " return (high_bits_a << 24)|(high_bits_b << 16)|(low_bits_a << 8)|low_bits_b;\n"; - OS << "}\n\n"; - - OS << "float2 unpackSnorm2x16(uint val)"; - OS << "{\n"; - OS << " float high = clamp((val >> 16) / 32767., -1., 1.);\n"; - OS << " float low = clamp((val & 0x0000FFFF) / 32767., -1., 1.);\n"; - OS << " return float2(high, low);\n"; - OS << "}\n\n"; - - OS << "float4 unpackSnorm4x8(uint val)"; - OS << "{\n"; - OS << " float high_a = clamp((val >> 24) / 127., -1., 1.);\n"; - OS << " float high_b = clamp(((val >> 16) & 0xFF) / 127., -1., 1.);\n"; - OS << " float low_a = clamp(((val >> 8) & 0xFF) / 127., -1., 1.);\n"; - OS << " float low_b = clamp((val & 0xFF) / 127., -1., 1.);\n"; - OS << " return float4(high_a, high_b, low_a, low_b);\n"; - OS << "}\n\n"; - - OS << "uint packUnorm4x8(float4 val)"; - OS << "{\n"; - OS << " uint high_bits_a = round(clamp(val.x, -1., 1.) * 255.);\n"; - OS << " uint high_bits_b = round(clamp(val.y, -1., 1.) * 255.);\n"; - OS << " uint low_bits_a = round(clamp(val.z, -1., 1.) * 255.);\n"; - OS << " uint low_bits_b = round(clamp(val.z, -1., 1.) * 255.);\n"; - OS << " return (high_bits_a << 24)|(high_bits_b << 16)|(low_bits_a << 8)|low_bits_b;\n"; - OS << "}\n\n"; - - OS << "float4 unpackUnorm4x8(uint val)"; - OS << "{\n"; - OS << " float high_a = clamp((val >> 24) / 255., -1., 1.);\n"; - OS << " float high_b = clamp(((val >> 16) & 0xFF) / 255., -1., 1.);\n"; - OS << " float low_a = clamp(((val >> 8) & 0xFF) / 255., -1., 1.);\n"; - OS << " float low_b = clamp((val & 0xFF) / 255., -1., 1.);\n"; - OS << " return float4(high_a, high_b, low_a, low_b);\n"; - OS << "}\n\n"; - - /** - * There is no easy way to do this in a shader since we cant recast the f16 blocks to u16 - * Fake it and hope the program requests the corresponding f16 unpack - **/ - OS << "uint packHalf2x16(float2 val)"; - OS << "{\n"; - OS << " return packSnorm2x16(val / 65504.);\n"; - OS << "}\n\n"; - - OS << "float2 unpackHalf2x16(uint val)"; - OS << "{\n"; - OS << " return unpackSnorm2x16(val) * 65504.;\n"; - OS << "}\n\n"; - - OS << "float read_value(float4 src, uint remap_index)\n"; - OS << "{\n"; - OS << " switch (remap_index)\n"; - OS << " {\n"; - OS << " case 0: return src.a;\n"; - OS << " case 1: return src.r;\n"; - OS << " case 2: return src.g;\n"; - OS << " case 3: return src.b;\n"; - OS << " }\n"; - OS << "}\n\n"; - - OS << "float4 texture2DReconstruct(float depth_value, float remap)\n"; - OS << "{\n"; - OS << " uint value = round(depth_value * 16777215);\n"; - OS << " uint b = (value & 0xff);\n"; - OS << " uint g = (value >> 8) & 0xff;\n"; - OS << " uint r = (value >> 16) & 0xff;\n"; - OS << " float4 result = float4(g/255., b/255., 1., r/255.);\n\n"; - OS << " uint remap_vector = asuint(remap) & 0xFF;\n"; - OS << " if (remap_vector == 0xE4) return result;\n\n"; - OS << " float4 tmp;\n"; - OS << " uint remap_a = remap_vector & 0x3;\n"; - OS << " uint remap_r = (remap_vector >> 2) & 0x3;\n"; - OS << " uint remap_g = (remap_vector >> 4) & 0x3;\n"; - OS << " uint remap_b = (remap_vector >> 6) & 0x3;\n"; - OS << " tmp.a = read_value(result, remap_a);\n"; - OS << " tmp.r = read_value(result, remap_r);\n"; - OS << " tmp.g = read_value(result, remap_g);\n"; - OS << " tmp.b = read_value(result, remap_b);\n"; - OS << " return tmp;\n"; - OS << "}\n\n"; -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.h b/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.h deleted file mode 100644 index 9ea7141a5a..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12CommonDecompiler.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include "../Common/ShaderParam.h" -#include "../Common/GLSLCommon.h" - -std::string getFloatTypeNameImp(size_t elementCount); -std::string getFunctionImp(FUNCTION f); -std::string compareFunctionImp(COMPARE f, const std::string &Op0, const std::string &Op1); - -void insert_d3d12_legacy_function(std::ostream&, bool is_fragment_program); diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp deleted file mode 100644 index 1dd1d54c3a..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp +++ /dev/null @@ -1,513 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12Formats.h" -#include "D3D12Utils.h" -#include "Emu/RSX/GCM.h" - - -D3D12_BLEND_OP get_blend_op(rsx::blend_equation op) -{ - switch (op) - { - case rsx::blend_equation::add: return D3D12_BLEND_OP_ADD; - case rsx::blend_equation::substract: return D3D12_BLEND_OP_SUBTRACT; - case rsx::blend_equation::reverse_substract: return D3D12_BLEND_OP_REV_SUBTRACT; - case rsx::blend_equation::min: return D3D12_BLEND_OP_MIN; - case rsx::blend_equation::max: return D3D12_BLEND_OP_MAX; - case rsx::blend_equation::add_signed: - case rsx::blend_equation::reverse_add_signed: - case rsx::blend_equation::reverse_substract_signed: - break; - } - fmt::throw_exception("Invalid or unsupported blend op (0x%x)" HERE, (u32)op); -} - -D3D12_BLEND get_blend_factor(rsx::blend_factor factor) -{ - switch (factor) - { - case rsx::blend_factor::zero: return D3D12_BLEND_ZERO; - case rsx::blend_factor::one: return D3D12_BLEND_ONE; - case rsx::blend_factor::src_color: return D3D12_BLEND_SRC_COLOR; - case rsx::blend_factor::one_minus_src_color: return D3D12_BLEND_INV_SRC_COLOR; - case rsx::blend_factor::src_alpha: return D3D12_BLEND_SRC_ALPHA; - case rsx::blend_factor::one_minus_src_alpha: return D3D12_BLEND_INV_SRC_ALPHA; - case rsx::blend_factor::dst_alpha: return D3D12_BLEND_DEST_ALPHA; - case rsx::blend_factor::one_minus_dst_alpha: return D3D12_BLEND_INV_DEST_ALPHA; - case rsx::blend_factor::dst_color: return D3D12_BLEND_DEST_COLOR; - case rsx::blend_factor::one_minus_dst_color: return D3D12_BLEND_INV_DEST_COLOR; - case rsx::blend_factor::src_alpha_saturate: return D3D12_BLEND_SRC_ALPHA_SAT; - case rsx::blend_factor::constant_color: - case rsx::blend_factor::constant_alpha: - return D3D12_BLEND_BLEND_FACTOR; - case rsx::blend_factor::one_minus_constant_color: - case rsx::blend_factor::one_minus_constant_alpha: - return D3D12_BLEND_INV_BLEND_FACTOR; - } - fmt::throw_exception("Invalid blend factor (0x%x)" HERE, (u32)factor); -} - -D3D12_BLEND get_blend_factor_alpha(rsx::blend_factor factor) -{ - switch (factor) - { - case rsx::blend_factor::zero: return D3D12_BLEND_ZERO; - case rsx::blend_factor::one: return D3D12_BLEND_ONE; - case rsx::blend_factor::src_color: return D3D12_BLEND_SRC_ALPHA; - case rsx::blend_factor::one_minus_src_color: return D3D12_BLEND_INV_SRC_ALPHA; - case rsx::blend_factor::src_alpha: return D3D12_BLEND_SRC_ALPHA; - case rsx::blend_factor::one_minus_src_alpha: return D3D12_BLEND_INV_SRC_ALPHA; - case rsx::blend_factor::dst_alpha: return D3D12_BLEND_DEST_ALPHA; - case rsx::blend_factor::one_minus_dst_alpha: return D3D12_BLEND_INV_DEST_ALPHA; - case rsx::blend_factor::dst_color: return D3D12_BLEND_DEST_ALPHA; - case rsx::blend_factor::one_minus_dst_color: return D3D12_BLEND_INV_DEST_ALPHA; - case rsx::blend_factor::src_alpha_saturate: return D3D12_BLEND_SRC_ALPHA_SAT; - case rsx::blend_factor::constant_color: - case rsx::blend_factor::constant_alpha: - return D3D12_BLEND_BLEND_FACTOR; - case rsx::blend_factor::one_minus_constant_color: - case rsx::blend_factor::one_minus_constant_alpha: - return D3D12_BLEND_INV_BLEND_FACTOR; - } - fmt::throw_exception("Invalid blend alpha factor (0x%x)" HERE, (u32)factor); -} - -/** -* Convert GCM logic op code to D3D12 one -*/ -D3D12_LOGIC_OP get_logic_op(rsx::logic_op op) -{ - switch (op) - { - case rsx::logic_op::logic_clear: return D3D12_LOGIC_OP_CLEAR; - case rsx::logic_op::logic_and: return D3D12_LOGIC_OP_AND; - case rsx::logic_op::logic_and_reverse: return D3D12_LOGIC_OP_AND_REVERSE; - case rsx::logic_op::logic_copy: return D3D12_LOGIC_OP_COPY; - case rsx::logic_op::logic_and_inverted: return D3D12_LOGIC_OP_AND_INVERTED; - case rsx::logic_op::logic_noop: return D3D12_LOGIC_OP_NOOP; - case rsx::logic_op::logic_xor: return D3D12_LOGIC_OP_XOR; - case rsx::logic_op::logic_or: return D3D12_LOGIC_OP_OR; - case rsx::logic_op::logic_nor: return D3D12_LOGIC_OP_NOR; - case rsx::logic_op::logic_equiv: return D3D12_LOGIC_OP_EQUIV; - case rsx::logic_op::logic_invert: return D3D12_LOGIC_OP_INVERT; - case rsx::logic_op::logic_or_reverse: return D3D12_LOGIC_OP_OR_REVERSE; - case rsx::logic_op::logic_copy_inverted: return D3D12_LOGIC_OP_COPY_INVERTED; - case rsx::logic_op::logic_or_inverted: return D3D12_LOGIC_OP_OR_INVERTED; - case rsx::logic_op::logic_nand: return D3D12_LOGIC_OP_NAND; - case rsx::logic_op::logic_set: return D3D12_LOGIC_OP_SET; - } - fmt::throw_exception("Invalid logic op (0x%x)" HERE, (u32)op); -} - -/** -* Convert GCM stencil op code to D3D12 one -*/ -D3D12_STENCIL_OP get_stencil_op(rsx::stencil_op op) -{ - switch (op) - { - case rsx::stencil_op::keep: return D3D12_STENCIL_OP_KEEP; - case rsx::stencil_op::zero: return D3D12_STENCIL_OP_ZERO; - case rsx::stencil_op::replace: return D3D12_STENCIL_OP_REPLACE; - case rsx::stencil_op::incr: return D3D12_STENCIL_OP_INCR_SAT; - case rsx::stencil_op::decr: return D3D12_STENCIL_OP_DECR_SAT; - case rsx::stencil_op::invert: return D3D12_STENCIL_OP_INVERT; - case rsx::stencil_op::incr_wrap: return D3D12_STENCIL_OP_INCR; - case rsx::stencil_op::decr_wrap: return D3D12_STENCIL_OP_DECR; - } - fmt::throw_exception("Invalid stencil op (0x%x)" HERE, (u32)op); -} - -D3D12_COMPARISON_FUNC get_compare_func(rsx::comparison_function op) -{ - switch (op) - { - case rsx::comparison_function::never: return D3D12_COMPARISON_FUNC_NEVER; - case rsx::comparison_function::less: return D3D12_COMPARISON_FUNC_LESS; - case rsx::comparison_function::equal: return D3D12_COMPARISON_FUNC_EQUAL; - case rsx::comparison_function::less_or_equal: return D3D12_COMPARISON_FUNC_LESS_EQUAL; - case rsx::comparison_function::greater: return D3D12_COMPARISON_FUNC_GREATER; - case rsx::comparison_function::not_equal: return D3D12_COMPARISON_FUNC_NOT_EQUAL; - case rsx::comparison_function::greater_or_equal: return D3D12_COMPARISON_FUNC_GREATER_EQUAL; - case rsx::comparison_function::always: return D3D12_COMPARISON_FUNC_ALWAYS; - } - fmt::throw_exception("Invalid compare func (0x%x)" HERE, (u32)op); -} - -DXGI_FORMAT get_texture_format(u8 format) -{ - switch (format) - { - case CELL_GCM_TEXTURE_B8: return DXGI_FORMAT_R8_UNORM; - case CELL_GCM_TEXTURE_A1R5G5B5: return DXGI_FORMAT_B5G5R5A1_UNORM; - case CELL_GCM_TEXTURE_A4R4G4B4: return DXGI_FORMAT_B4G4R4A4_UNORM; - case CELL_GCM_TEXTURE_R5G6B5: return DXGI_FORMAT_B5G6R5_UNORM; - case CELL_GCM_TEXTURE_A8R8G8B8: return DXGI_FORMAT_R8G8B8A8_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_DXT1: return DXGI_FORMAT_BC1_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_DXT23: return DXGI_FORMAT_BC2_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_DXT45: return DXGI_FORMAT_BC3_UNORM; - case CELL_GCM_TEXTURE_G8B8: return DXGI_FORMAT_G8R8_G8B8_UNORM; - case CELL_GCM_TEXTURE_R6G5B5: return DXGI_FORMAT_B5G6R5_UNORM; - case CELL_GCM_TEXTURE_DEPTH24_D8: return DXGI_FORMAT_R32_UINT; // Untested - case CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT: return DXGI_FORMAT_R32_FLOAT; // Untested - case CELL_GCM_TEXTURE_DEPTH16: return DXGI_FORMAT_R16_UINT; // Untested - case CELL_GCM_TEXTURE_DEPTH16_FLOAT: return DXGI_FORMAT_R16_FLOAT; // Untested - case CELL_GCM_TEXTURE_X16: return DXGI_FORMAT_R16_UNORM; - case CELL_GCM_TEXTURE_Y16_X16: return DXGI_FORMAT_R16G16_UNORM; - case CELL_GCM_TEXTURE_Y16_X16_FLOAT: return DXGI_FORMAT_R16G16_FLOAT; - case CELL_GCM_TEXTURE_X32_FLOAT: return DXGI_FORMAT_R32_FLOAT; - case CELL_GCM_TEXTURE_R5G5B5A1: return DXGI_FORMAT_B5G5R5A1_UNORM; - case CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT: return DXGI_FORMAT_R16G16B16A16_FLOAT; - case CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT: return DXGI_FORMAT_R32G32B32A32_FLOAT; - case CELL_GCM_TEXTURE_D1R5G5B5: return DXGI_FORMAT_B5G5R5A1_UNORM; - case CELL_GCM_TEXTURE_D8R8G8B8: return DXGI_FORMAT_B8G8R8A8_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8: return DXGI_FORMAT_G8R8_G8B8_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8: return DXGI_FORMAT_R8G8_B8G8_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_HILO8: return DXGI_FORMAT_G8R8_G8B8_UNORM; - case CELL_GCM_TEXTURE_COMPRESSED_HILO_S8: return DXGI_FORMAT_R8G8_SNORM; - } - fmt::throw_exception("Invalid texture format (0x%x)" HERE, (u32)format); -} - -UCHAR get_dxgi_texel_size(DXGI_FORMAT format) -{ - switch (format) - { - case DXGI_FORMAT_R8_UNORM: - return 1; - case DXGI_FORMAT_B5G5R5A1_UNORM: - case DXGI_FORMAT_B5G6R5_UNORM: - case DXGI_FORMAT_R8G8_UNORM: - case DXGI_FORMAT_D16_UNORM: - case DXGI_FORMAT_R16_UNORM: - case DXGI_FORMAT_R16_TYPELESS: - return 2; - case DXGI_FORMAT_B8G8R8A8_UNORM: - case DXGI_FORMAT_B8G8R8X8_UNORM: - case DXGI_FORMAT_R8G8B8A8_UNORM: - case DXGI_FORMAT_R32_FLOAT: - case DXGI_FORMAT_D24_UNORM_S8_UINT: - case DXGI_FORMAT_R24_UNORM_X8_TYPELESS: - case DXGI_FORMAT_R24G8_TYPELESS: - return 4; - case DXGI_FORMAT_R16G16B16A16_FLOAT: - return 8; - case DXGI_FORMAT_R32G32B32A32_FLOAT: - return 16; - } - - fmt::throw_exception("Unsupported DXGI format 0x%X" HERE, (u32)format); -} - -UINT get_texture_max_aniso(rsx::texture_max_anisotropy aniso) -{ - switch (aniso) - { - case rsx::texture_max_anisotropy::x1: return 1; - case rsx::texture_max_anisotropy::x2: return 2; - case rsx::texture_max_anisotropy::x4: return 4; - case rsx::texture_max_anisotropy::x6: return 6; - case rsx::texture_max_anisotropy::x8: return 8; - case rsx::texture_max_anisotropy::x10: return 10; - case rsx::texture_max_anisotropy::x12: return 12; - case rsx::texture_max_anisotropy::x16: return 16; - } - fmt::throw_exception("Invalid texture max aniso (0x%x)" HERE, (u32)aniso); -} - -D3D12_TEXTURE_ADDRESS_MODE get_texture_wrap_mode(rsx::texture_wrap_mode wrap) -{ - switch (wrap) - { - case rsx::texture_wrap_mode::wrap: return D3D12_TEXTURE_ADDRESS_MODE_WRAP; - case rsx::texture_wrap_mode::mirror: return D3D12_TEXTURE_ADDRESS_MODE_MIRROR; - case rsx::texture_wrap_mode::clamp_to_edge: return D3D12_TEXTURE_ADDRESS_MODE_CLAMP; - case rsx::texture_wrap_mode::border: return D3D12_TEXTURE_ADDRESS_MODE_BORDER; - case rsx::texture_wrap_mode::clamp: return D3D12_TEXTURE_ADDRESS_MODE_CLAMP; - case rsx::texture_wrap_mode::mirror_once_clamp_to_edge: return D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE; - case rsx::texture_wrap_mode::mirror_once_border: return D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE; - case rsx::texture_wrap_mode::mirror_once_clamp: return D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE; - } - fmt::throw_exception("Invalid texture wrap mode (0x%x)" HERE, (u32)wrap); -} - -namespace -{ - void get_min_filter(rsx::texture_minify_filter min_filter, D3D12_FILTER_TYPE &min, D3D12_FILTER_TYPE &mip) - { - switch (min_filter) - { - case rsx::texture_minify_filter::nearest: - min = D3D12_FILTER_TYPE_POINT; - mip = D3D12_FILTER_TYPE_POINT; - return; - case rsx::texture_minify_filter::linear: - min = D3D12_FILTER_TYPE_LINEAR; - mip = D3D12_FILTER_TYPE_POINT; - return; - case rsx::texture_minify_filter::nearest_nearest: - min = D3D12_FILTER_TYPE_POINT; - mip = D3D12_FILTER_TYPE_POINT; - return; - case rsx::texture_minify_filter::linear_nearest: - min = D3D12_FILTER_TYPE_LINEAR; - mip = D3D12_FILTER_TYPE_POINT; - return; - case rsx::texture_minify_filter::nearest_linear: - min = D3D12_FILTER_TYPE_POINT; - mip = D3D12_FILTER_TYPE_LINEAR; - return; - case rsx::texture_minify_filter::linear_linear: - min = D3D12_FILTER_TYPE_LINEAR; - mip = D3D12_FILTER_TYPE_LINEAR; - return; - case rsx::texture_minify_filter::convolution_min: - min = D3D12_FILTER_TYPE_LINEAR; - mip = D3D12_FILTER_TYPE_POINT; - return; - } - fmt::throw_exception("Invalid max filter" HERE); - } - - D3D12_FILTER_TYPE get_mag_filter(rsx::texture_magnify_filter mag_filter) - { - switch (mag_filter) - { - case rsx::texture_magnify_filter::nearest: return D3D12_FILTER_TYPE_POINT; - case rsx::texture_magnify_filter::linear: return D3D12_FILTER_TYPE_LINEAR; - case rsx::texture_magnify_filter::convolution_mag: return D3D12_FILTER_TYPE_LINEAR; - } - fmt::throw_exception("Invalid mag filter" HERE); - } -} - -D3D12_FILTER get_texture_filter(rsx::texture_minify_filter min_filter, rsx::texture_magnify_filter mag_filter) -{ - D3D12_FILTER_TYPE min, mip; - get_min_filter(min_filter, min, mip); - D3D12_FILTER_TYPE mag = get_mag_filter(mag_filter); - return D3D12_ENCODE_BASIC_FILTER(min, mag, mip, D3D12_FILTER_REDUCTION_TYPE_STANDARD); -} - -D3D12_PRIMITIVE_TOPOLOGY get_primitive_topology(rsx::primitive_type draw_mode) -{ - switch (draw_mode) - { - case rsx::primitive_type::points: return D3D_PRIMITIVE_TOPOLOGY_POINTLIST; - case rsx::primitive_type::lines: return D3D_PRIMITIVE_TOPOLOGY_LINELIST; - case rsx::primitive_type::line_loop: return D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ; - case rsx::primitive_type::line_strip: return D3D_PRIMITIVE_TOPOLOGY_LINESTRIP; - case rsx::primitive_type::triangles: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST; - case rsx::primitive_type::triangle_strip: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP; - case rsx::primitive_type::triangle_fan: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST; - case rsx::primitive_type::quads: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST; - case rsx::primitive_type::quad_strip: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP; - case rsx::primitive_type::polygon: return D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST; - } - fmt::throw_exception("Invalid draw mode (0x%x)" HERE, (u32)draw_mode); -} - -D3D12_PRIMITIVE_TOPOLOGY_TYPE get_primitive_topology_type(rsx::primitive_type draw_mode) -{ - switch (draw_mode) - { - case rsx::primitive_type::points: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT; - case rsx::primitive_type::lines: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE; - case rsx::primitive_type::line_strip: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE; - case rsx::primitive_type::triangles: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::triangle_strip: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::triangle_fan: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::quads: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::quad_strip: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::polygon: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - case rsx::primitive_type::line_loop: return D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE; - } - fmt::throw_exception("Invalid draw mode (0x%x)" HERE, (u32)draw_mode); -} - -DXGI_FORMAT get_color_surface_format(rsx::surface_color_format format) -{ - switch (format) - { - case rsx::surface_color_format::x1r5g5b5_z1r5g5b5: - case rsx::surface_color_format::x1r5g5b5_o1r5g5b5: - return DXGI_FORMAT_B5G5R5A1_UNORM; - case rsx::surface_color_format::r5g6b5: return DXGI_FORMAT_B5G6R5_UNORM; - case rsx::surface_color_format::x8b8g8r8_o8b8g8r8: - case rsx::surface_color_format::x8b8g8r8_z8b8g8r8: - return DXGI_FORMAT_B8G8R8X8_UNORM; - case rsx::surface_color_format::a8b8g8r8: return DXGI_FORMAT_B8G8R8A8_UNORM; - case rsx::surface_color_format::x8r8g8b8_o8r8g8b8: - case rsx::surface_color_format::x8r8g8b8_z8r8g8b8: - case rsx::surface_color_format::a8r8g8b8: - return DXGI_FORMAT_R8G8B8A8_UNORM; - case rsx::surface_color_format::b8: return DXGI_FORMAT_R8_UNORM; - case rsx::surface_color_format::g8b8: return DXGI_FORMAT_R8G8_UNORM; - case rsx::surface_color_format::w16z16y16x16: return DXGI_FORMAT_R16G16B16A16_FLOAT; - case rsx::surface_color_format::w32z32y32x32: return DXGI_FORMAT_R32G32B32A32_FLOAT; - case rsx::surface_color_format::x32: return DXGI_FORMAT_R32_FLOAT; - } - fmt::throw_exception("Invalid format (0x%x)" HERE, (u32)format); -} - -DXGI_FORMAT get_depth_stencil_surface_format(rsx::surface_depth_format format) -{ - switch (format) - { - case rsx::surface_depth_format::z16: return DXGI_FORMAT_D16_UNORM; - case rsx::surface_depth_format::z24s8: return DXGI_FORMAT_D24_UNORM_S8_UINT; - } - fmt::throw_exception("Invalid format (0x%x)" HERE, (u32)format); -} - -DXGI_FORMAT get_depth_stencil_surface_clear_format(rsx::surface_depth_format format) -{ - switch (format) - { - case rsx::surface_depth_format::z16: return DXGI_FORMAT_D16_UNORM; - case rsx::surface_depth_format::z24s8: return DXGI_FORMAT_D24_UNORM_S8_UINT; - } - fmt::throw_exception("Invalid format (0x%x)" HERE, (u32)format); -} - -DXGI_FORMAT get_depth_stencil_typeless_surface_format(rsx::surface_depth_format format) -{ - switch (format) - { - case rsx::surface_depth_format::z16: return DXGI_FORMAT_R16_TYPELESS; - case rsx::surface_depth_format::z24s8: return DXGI_FORMAT_R24G8_TYPELESS; - } - fmt::throw_exception("Invalid format (0x%x)" HERE, (u32)format); -} - -DXGI_FORMAT get_depth_samplable_surface_format(rsx::surface_depth_format format) -{ - switch (format) - { - case rsx::surface_depth_format::z16: return DXGI_FORMAT_R16_UNORM; - case rsx::surface_depth_format::z24s8: return DXGI_FORMAT_R24_UNORM_X8_TYPELESS; - } - fmt::throw_exception("Invalid format (0x%x)" HERE, (u32)format); -} - -BOOL get_front_face_ccw(rsx::front_face ffv) -{ - switch (ffv) - { - case rsx::front_face::cw: return FALSE; - case rsx::front_face::ccw: return TRUE; - } - fmt::throw_exception("Invalid front face value (0x%x)" HERE, (u32)ffv); -} - -D3D12_CULL_MODE get_cull_face(rsx::cull_face cfv) -{ - switch (cfv) - { - case rsx::cull_face::front: return D3D12_CULL_MODE_FRONT; - case rsx::cull_face::back: return D3D12_CULL_MODE_BACK; - case rsx::cull_face::front_and_back: return D3D12_CULL_MODE_NONE; - } - fmt::throw_exception("Invalid cull face value (0x%x)" HERE, (u32)cfv); -} - -DXGI_FORMAT get_index_type(rsx::index_array_type index_type) -{ - switch (index_type) - { - case rsx::index_array_type::u16: return DXGI_FORMAT_R16_UINT; - case rsx::index_array_type::u32: return DXGI_FORMAT_R32_UINT; - } - fmt::throw_exception("Invalid index_type (0x%x)" HERE, (u32)index_type); -} - -DXGI_FORMAT get_vertex_attribute_format(rsx::vertex_base_type type, u8 size) -{ - switch (type) - { - case rsx::vertex_base_type::s1: - { - switch (size) - { - case 1: return DXGI_FORMAT_R16_SNORM; - case 2: return DXGI_FORMAT_R16G16_SNORM; - case 3: return DXGI_FORMAT_R16G16B16A16_SNORM; // No 3 channel type - case 4: return DXGI_FORMAT_R16G16B16A16_SNORM; - } - break; - } - case rsx::vertex_base_type::f: - { - switch (size) - { - case 1: return DXGI_FORMAT_R32_FLOAT; - case 2: return DXGI_FORMAT_R32G32_FLOAT; - case 3: return DXGI_FORMAT_R32G32B32_FLOAT; - case 4: return DXGI_FORMAT_R32G32B32A32_FLOAT; - } - break; - } - case rsx::vertex_base_type::sf: - { - switch (size) - { - case 1: return DXGI_FORMAT_R16_FLOAT; - case 2: return DXGI_FORMAT_R16G16_FLOAT; - case 3: return DXGI_FORMAT_R16G16B16A16_FLOAT; // No 3 channel type - case 4: return DXGI_FORMAT_R16G16B16A16_FLOAT; - } - break; - } - case rsx::vertex_base_type::ub: - { - switch (size) - { - case 1: return DXGI_FORMAT_R8_UNORM; - case 2: return DXGI_FORMAT_R8G8_UNORM; - case 3: return DXGI_FORMAT_R8G8B8A8_UNORM; // No 3 channel type - case 4: return DXGI_FORMAT_R8G8B8A8_UNORM; - } - break; - } - case rsx::vertex_base_type::s32k: - { - switch (size) - { - case 1: return DXGI_FORMAT_R16_SINT; - case 2: return DXGI_FORMAT_R16G16_SINT; - case 3: return DXGI_FORMAT_R16G16B16A16_SINT; // No 3 channel type - case 4: return DXGI_FORMAT_R16G16B16A16_SINT; - } - break; - } - case rsx::vertex_base_type::cmp: - { - return DXGI_FORMAT_R16G16B16A16_SNORM; - } - case rsx::vertex_base_type::ub256: - { - switch (size) - { - case 1: return DXGI_FORMAT_R8_UINT; - case 2: return DXGI_FORMAT_R8G8_UINT; - case 3: return DXGI_FORMAT_R8G8B8A8_UINT; // No 3 channel type - case 4: return DXGI_FORMAT_R8G8B8A8_UINT; - } - break; - } - } - - fmt::throw_exception("Invalid or unsupported type or size (type=0x%x, size=0x%x)" HERE, (u32)type, size); -} - -D3D12_RECT get_scissor(u16 clip_origin_x, u16 clip_origin_y, u16 clip_w, u16 clip_h) -{ - return{ - clip_origin_x, - clip_origin_y, - clip_origin_x + clip_w, - clip_origin_y + clip_h, - }; -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Formats.h b/rpcs3/Emu/RSX/D3D12/D3D12Formats.h deleted file mode 100644 index b3306534f7..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Formats.h +++ /dev/null @@ -1,121 +0,0 @@ -#pragma once - -#include "../gcm_enums.h" - -#include - -/** - * Convert GCM blend operator code to D3D12 one - */ -D3D12_BLEND_OP get_blend_op(rsx::blend_equation op); - -/** - * Convert GCM blend factor code to D3D12 one - */ -D3D12_BLEND get_blend_factor(rsx::blend_factor factor); - -/** - * Convert GCM blend factor code to D3D12 one for alpha component - */ -D3D12_BLEND get_blend_factor_alpha(rsx::blend_factor factor); - -/** -* Convert GCM logic op code to D3D12 one -*/ -D3D12_LOGIC_OP get_logic_op(rsx::logic_op op); - -/** - * Convert GCM stencil op code to D3D12 one - */ -D3D12_STENCIL_OP get_stencil_op(rsx::stencil_op op); - -/** - * Convert GCM comparison function code to D3D12 one. - */ -D3D12_COMPARISON_FUNC get_compare_func(rsx::comparison_function op); - -/** - * Convert GCM texture format to an equivalent one supported by D3D12. - * Destination format may require a byte swap or data conversion. - */ -DXGI_FORMAT get_texture_format(u8 format); - -/** - * Convert texture aniso value to UINT. - */ -UINT get_texture_max_aniso(rsx::texture_max_anisotropy aniso); - -/** - * Convert texture wrap mode to D3D12_TEXTURE_ADDRESS_MODE - */ -D3D12_TEXTURE_ADDRESS_MODE get_texture_wrap_mode(rsx::texture_wrap_mode wrap); - -/** - * Convert minify and magnify filter to D3D12_FILTER - */ -D3D12_FILTER get_texture_filter(rsx::texture_minify_filter min_filter, rsx::texture_magnify_filter mag_filter); - -/** - * Convert draw mode to D3D12_PRIMITIVE_TOPOLOGY - */ -D3D12_PRIMITIVE_TOPOLOGY get_primitive_topology(rsx::primitive_type draw_mode); - -/** -* Convert draw mode to D3D12_PRIMITIVE_TOPOLOGY_TYPE -*/ -D3D12_PRIMITIVE_TOPOLOGY_TYPE get_primitive_topology_type(rsx::primitive_type draw_mode); - -/** - * Convert color surface format to DXGI_FORMAT - */ -DXGI_FORMAT get_color_surface_format(rsx::surface_color_format format); - -/** - * Convert depth stencil surface format to DXGI_FORMAT - */ -DXGI_FORMAT get_depth_stencil_surface_format(rsx::surface_depth_format format); - -/** - *Convert depth stencil surface format to DXGI_FORMAT suited for clear value - */ -DXGI_FORMAT get_depth_stencil_surface_clear_format(rsx::surface_depth_format format); - -/** - * Convert depth surface format to a typeless DXGI_FORMAT - */ -DXGI_FORMAT get_depth_stencil_typeless_surface_format(rsx::surface_depth_format format); - -/** -* Convert depth surface format to a DXGI_FORMAT that can be depth sampled -*/ -DXGI_FORMAT get_depth_samplable_surface_format(rsx::surface_depth_format format); - -/** -* Get block size in bytes for a DXGI_FORMAT -*/ -UCHAR get_dxgi_texel_size(DXGI_FORMAT format); - -/** - * Convert front face value to bool value telling whether front face is counterclockwise or not - */ -BOOL get_front_face_ccw(rsx::front_face set_front_face_value); - -/** -* Convert cull face value to a D3D12_CULL_MODE telling whether cull face is front or back -*/ -D3D12_CULL_MODE get_cull_face(rsx::cull_face set_cull_face_value); - -/** - * Convert index type to DXGI_FORMAT - */ -DXGI_FORMAT get_index_type(rsx::index_array_type index_type); - -/** - * Convert vertex attribute format and size to DXGI_FORMAT - */ -DXGI_FORMAT get_vertex_attribute_format(rsx::vertex_base_type type, u8 size); - -/** - * Convert scissor register value to D3D12_RECT - */ -D3D12_RECT get_scissor(u16 clip_origin_x, u16 clip_origin_y, u16 clip_w, u16 clip_h); diff --git a/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.cpp b/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.cpp deleted file mode 100644 index 87940d67aa..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.cpp +++ /dev/null @@ -1,346 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12FragmentProgramDecompiler.h" -#include "D3D12CommonDecompiler.h" -#include "Emu/Memory/vm.h" -#include "Emu/System.h" -#include - -D3D12FragmentDecompiler::D3D12FragmentDecompiler(const RSXFragmentProgram &prog, u32& size) : - FragmentProgramDecompiler(prog, size) -{ - -} - -std::string D3D12FragmentDecompiler::getFloatTypeName(size_t elementCount) -{ - return getFloatTypeNameImp(elementCount); -} - -std::string D3D12FragmentDecompiler::getHalfTypeName(size_t elementCount) -{ - return getFloatTypeNameImp(elementCount); -} - -std::string D3D12FragmentDecompiler::getFunction(enum class FUNCTION f) -{ - return getFunctionImp(f); -} - -std::string D3D12FragmentDecompiler::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1) -{ - return compareFunctionImp(f, Op0, Op1); -} - -void D3D12FragmentDecompiler::insertHeader(std::stringstream & OS) -{ - OS << "#define floatBitsToUint asuint\n"; - OS << "#define uintBitsToFloat asfloat\n\n"; - - OS << "cbuffer SCALE_OFFSET : register(b0)\n"; - OS << "{\n"; - OS << " float4x4 scaleOffsetMat;\n"; - OS << " int4 userClipEnabled[2];\n"; - OS << " float4 userClipFactor[2];\n"; - OS << " float fog_param0;\n"; - OS << " float fog_param1;\n"; - OS << " uint alpha_test;\n"; - OS << " float alpha_ref;\n"; - OS << " uint alpha_func;\n"; - OS << " uint fog_mode;\n"; - OS << " float wpos_scale;\n"; - OS << " float wpos_bias;\n"; - OS << " float4 texture_parameters[16];\n"; - OS << "};\n"; -} - -void D3D12FragmentDecompiler::insertInputs(std::stringstream & OS) -{ - OS << "struct PixelInput\n"; - OS << "{\n"; - OS << " float4 Position : SV_POSITION;\n"; - OS << " float4 diff_color : COLOR0;\n"; - OS << " float4 spec_color : COLOR1;\n"; - OS << " float4 dst_reg3 : COLOR2;\n"; - OS << " float4 dst_reg4 : COLOR3;\n"; - OS << " float4 fogc : FOG;\n"; - OS << " float4 tc9 : TEXCOORD9;\n"; - OS << " float4 tc0 : TEXCOORD0;\n"; - OS << " float4 tc1 : TEXCOORD1;\n"; - OS << " float4 tc2 : TEXCOORD2;\n"; - OS << " float4 tc3 : TEXCOORD3;\n"; - OS << " float4 tc4 : TEXCOORD4;\n"; - OS << " float4 tc5 : TEXCOORD5;\n"; - OS << " float4 tc6 : TEXCOORD6;\n"; - OS << " float4 tc7 : TEXCOORD7;\n"; - OS << " float4 tc8 : TEXCOORD8;\n"; - OS << " float4 dst_userClip0 : SV_ClipDistance0;\n"; - OS << " float4 dst_userClip1 : SV_ClipDistance1;\n"; - OS << "};\n"; -} - -void D3D12FragmentDecompiler::insertOutputs(std::stringstream & OS) -{ - OS << "struct PixelOutput\n"; - OS << "{\n"; - const std::pair table[] = - { - { "ocol0", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r0" : "h0" }, - { "ocol1", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r2" : "h4" }, - { "ocol2", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r3" : "h6" }, - { "ocol3", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r4" : "h8" }, - }; - size_t idx = 0; - for (int i = 0; i < std::size(table); ++i) - { - if (m_parr.HasParam(PF_PARAM_NONE, "float4", table[i].second)) - OS << " " << "float4" << " " << table[i].first << " : SV_TARGET" << idx++ << ";\n"; - } - if (m_ctrl & CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT) - OS << " float depth : SV_Depth;\n"; - OS << "};\n"; -} - -void D3D12FragmentDecompiler::insertConstants(std::stringstream & OS) -{ - OS << "cbuffer CONSTANT : register(b2)\n"; - OS << "{\n"; - for (const ParamType &PT : m_parr.params[PF_PARAM_UNIFORM]) - { - if (PT.type == "sampler1D" || PT.type == "sampler2D" || PT.type == "samplerCube" || PT.type == "sampler3D") - continue; - for (const ParamItem &PI : PT.items) - OS << " " << PT.type << " " << PI.name << ";\n"; - } - OS << "};\n\n"; - - for (const ParamType &PT : m_parr.params[PF_PARAM_UNIFORM]) - { - if (PT.type == "sampler1D") - { - for (const ParamItem &PI : PT.items) - { - size_t textureIndex = atoi(PI.name.data() + 3); - OS << "Texture1D " << PI.name << " : register(t" << textureIndex << ");\n"; - OS << "sampler " << PI.name << "sampler : register(s" << textureIndex << ");\n"; - } - } - else if (PT.type == "sampler2D") - { - for (const ParamItem &PI : PT.items) - { - size_t textureIndex = atoi(PI.name.data() + 3); - OS << "Texture2D " << PI.name << " : register(t" << textureIndex << ");\n"; - OS << "sampler " << PI.name << "sampler : register(s" << textureIndex << ");\n"; - } - } - else if (PT.type == "sampler3D") - { - for (const ParamItem &PI : PT.items) - { - size_t textureIndex = atoi(PI.name.data() + 3); - OS << "Texture3D " << PI.name << " : register(t" << textureIndex << ");\n"; - OS << "sampler " << PI.name << "sampler : register(s" << textureIndex << ");\n"; - } - } - else if (PT.type == "samplerCube") - { - for (const ParamItem &PI : PT.items) - { - size_t textureIndex = atoi(PI.name.data() + 3); - OS << "TextureCube " << PI.name << " : register(t" << textureIndex << ");\n"; - OS << "sampler " << PI.name << "sampler : register(s" << textureIndex << ");\n"; - } - } - } -} - -namespace -{ - std::string insert_texture_fetch(const RSXFragmentProgram& prog, int index) - { - std::string tex_name = "tex" + std::to_string(index) + ".Sample"; - std::string sampler_name = "tex" + std::to_string(index) + "sampler"; - std::string coord_name = "In.tc" + std::to_string(index); - - switch (prog.get_texture_dimension(index)) - { - case rsx::texture_dimension_extended::texture_dimension_1d: return " " + tex_name + " (" + sampler_name + ", " + coord_name + ".x) "; - case rsx::texture_dimension_extended::texture_dimension_2d: return " " + tex_name + " (" + sampler_name + ", " + coord_name + ".xy) "; - case rsx::texture_dimension_extended::texture_dimension_3d: - case rsx::texture_dimension_extended::texture_dimension_cubemap: return " " + tex_name + " (" + sampler_name + ", " + coord_name + ".xyz) "; - } - - fmt::throw_exception("Invalid texture dimension %d" HERE, (u32)prog.get_texture_dimension(index)); - } -} - -void D3D12FragmentDecompiler::insertGlobalFunctions(std::stringstream &OS) -{ - insert_d3d12_legacy_function(OS, true); -} - -void D3D12FragmentDecompiler::insertMainStart(std::stringstream & OS) -{ - for (const ParamType &PT : m_parr.params[PF_PARAM_IN]) - { - for (const ParamItem &PI : PT.items) - { - if (PI.name == "fogc") - { - program_common::insert_fog_declaration(OS, "float4", "fogc", true); - break; - } - } - } - - const std::set output_value = - { - "r0", "r1", "r2", "r3", "r4", - "h0", "h2", "h4", "h6", "h8" - }; - OS << "void ps_impl(bool is_front_face, PixelInput In, inout float4 r0, inout float4 h0, inout float4 r1, inout float4 h2, inout float4 r2, inout float4 h4, inout float4 r3, inout float4 h6, inout float4 r4, inout float4 h8)\n"; - OS << "{\n"; - for (const ParamType &PT : m_parr.params[PF_PARAM_IN]) - { - for (const ParamItem &PI : PT.items) - { - if (PI.name == "fogc") - { - OS << " float4 fogc = fetch_fog_value(fog_mode, In.fogc);\n"; - continue; - } - if (PI.name == "ssa") - continue; - OS << " " << PT.type << " " << PI.name << " = In." << PI.name << ";\n"; - } - } - - //NOTE: Framebuffer scaling not actually supported. wpos_scale is used to reconstruct the true window height - OS << " float4 wpos = In.Position;\n"; - OS << " float4 res_scale = abs(1.f / wpos_scale);\n"; - OS << " if (wpos_scale < 0) wpos.y = (wpos_bias * res_scale) - wpos.y;\n"; - OS << " float4 ssa = is_front_face ? float4(1., 1., 1., 1.) : float4(-1., -1., -1., -1.);\n"; - - // Declare output - for (const ParamType &PT : m_parr.params[PF_PARAM_NONE]) - { - for (const ParamItem &PI : PT.items) - if (output_value.find(PI.name) == output_value.end()) - OS << " " << PT.type << " " << PI.name << " = float4(0., 0., 0., 0.);\n"; - } - // Declare texture coordinate scaling component (to handle unormalized texture coordinates) - - for (const ParamType &PT : m_parr.params[PF_PARAM_UNIFORM]) - { - if (PT.type != "sampler2D") - continue; - for (const ParamItem& PI : PT.items) - { - size_t textureIndex = atoi(PI.name.data() + 3); - bool is_unorm = !!(m_prog.unnormalized_coords & (1 << textureIndex)); - if (!is_unorm) - { - OS << " float2 " << PI.name << "_scale = float2(1., 1.);\n"; - continue; - } - - OS << " float2 " << PI.name << "_dim;\n"; - OS << " " << PI.name << ".GetDimensions(" << PI.name << "_dim.x, " << PI.name << "_dim.y);\n"; - OS << " float2 " << PI.name << "_scale = texture_parameters[" << textureIndex << "] / " << PI.name << "_dim;\n"; - } - } -} - -void D3D12FragmentDecompiler::insertMainEnd(std::stringstream & OS) -{ - OS << "}\n"; - OS << "\n"; - OS << "PixelOutput main(PixelInput In, bool is_front_face : SV_IsFrontFace)\n"; - OS << "{\n"; - OS << " float4 r0 = float4(0., 0., 0., 0.);\n"; - OS << " float4 r1 = float4(0., 0., 0., 0.);\n"; - OS << " float4 r2 = float4(0., 0., 0., 0.);\n"; - OS << " float4 r3 = float4(0., 0., 0., 0.);\n"; - OS << " float4 r4 = float4(0., 0., 0., 0.);\n"; - OS << " float4 h0 = float4(0., 0., 0., 0.);\n"; - OS << " float4 h2 = float4(0., 0., 0., 0.);\n"; - OS << " float4 h4 = float4(0., 0., 0., 0.);\n"; - OS << " float4 h6 = float4(0., 0., 0., 0.);\n"; - OS << " float4 h8 = float4(0., 0., 0., 0.);\n"; - OS << " ps_impl(is_front_face, In, r0, h0, r1, h2, r2, h4, r3, h6, r4, h8);\n"; - - const std::pair table[] = - { - { "ocol0", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r0" : "h0" }, - { "ocol1", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r2" : "h4" }, - { "ocol2", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r3" : "h6" }, - { "ocol3", m_ctrl & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ? "r4" : "h8" }, - }; - - std::string first_output_name; - OS << " PixelOutput Out = (PixelOutput)0;\n"; - for (int i = 0; i < std::size(table); ++i) - { - if (m_parr.HasParam(PF_PARAM_NONE, "float4", table[i].second)) - { - OS << " Out." << table[i].first << " = " << table[i].second << ";\n"; - if (first_output_name.empty()) first_output_name = table[i].first; - } - } - if (m_ctrl & CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT) - { - if (m_parr.HasParam(PF_PARAM_NONE, "vec4", "r1")) - { - //Depth writes are always from a fp32 register. See issues section on nvidia's NV_fragment_program spec - //https://www.khronos.org/registry/OpenGL/extensions/NV/NV_fragment_program.txt - OS << " Out.depth = r1.z;\n"; - } - else - { - //Input not declared. Leave commented to assist in debugging the shader - OS << " //Out.depth = r1.z;\n"; - } - } - // Shaders don't always output colors (for instance if they write to depth only) - if (!first_output_name.empty()) - { - auto make_comparison_test = [](rsx::comparison_function compare_func, const std::string &test, const std::string &a, const std::string &b) -> std::string - { - std::string compare; - switch (compare_func) - { - case rsx::comparison_function::equal: compare = " == "; break; - case rsx::comparison_function::not_equal: compare = " != "; break; - case rsx::comparison_function::less_or_equal: compare = " <= "; break; - case rsx::comparison_function::less: compare = " < "; break; - case rsx::comparison_function::greater: compare = " > "; break; - case rsx::comparison_function::greater_or_equal: compare = " >= "; break; - default: - return ""; - } - - return " if (" + test + "!(" + a + compare + b + ")) discard;\n"; - }; - - for (u8 index = 0; index < 16; ++index) - { - if (m_prog.textures_alpha_kill[index]) - { - const std::string texture_name = "tex" + std::to_string(index); - if (m_parr.HasParamTypeless(PF_PARAM_UNIFORM, texture_name)) - { - std::string fetch_texture = insert_texture_fetch(m_prog, index) + ".a"; - OS << make_comparison_test((rsx::comparison_function)m_prog.textures_zfunc[index], "", "0", fetch_texture); - } - } - } - - OS << " if ((alpha_test & 0x11) != 0 && !comparison_passes(Out." << first_output_name << ".a, alpha_ref, alpha_func)) discard;\n"; - - } - OS << " return Out;\n"; - OS << "}\n"; -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.h b/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.h deleted file mode 100644 index 6e6c07c716..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12FragmentProgramDecompiler.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include "Emu/RSX/RSXFragmentProgram.h" -#include - -#include "../Common/FragmentProgramDecompiler.h" - -class D3D12FragmentDecompiler : public FragmentProgramDecompiler -{ -protected: - virtual std::string getFloatTypeName(size_t elementCount) override; - virtual std::string getHalfTypeName(size_t elementCount) override; - virtual std::string getFunction(enum FUNCTION) override; - virtual std::string compareFunction(enum COMPARE, const std::string &, const std::string &) override; - - virtual void insertHeader(std::stringstream &OS) override; - virtual void insertInputs(std::stringstream &OS) override; - virtual void insertOutputs(std::stringstream &OS) override; - virtual void insertConstants(std::stringstream &OS) override; - virtual void insertGlobalFunctions(std::stringstream &OS) override; - virtual void insertMainStart(std::stringstream &OS) override; - virtual void insertMainEnd(std::stringstream &OS) override; -public: - D3D12FragmentDecompiler(const RSXFragmentProgram &prog, u32& size); -}; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp deleted file mode 100644 index 818497f9ee..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp +++ /dev/null @@ -1,748 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12GSRender.h" -#include "Emu/System.h" -#include -#include -#include -#include -#include -#include -#include -#include "d3dx12.h" -#include -#include "D3D12Formats.h" -#include "../rsx_methods.h" - -PFN_D3D12_CREATE_DEVICE wrapD3D12CreateDevice; -PFN_D3D12_GET_DEBUG_INTERFACE wrapD3D12GetDebugInterface; -PFN_D3D12_SERIALIZE_ROOT_SIGNATURE wrapD3D12SerializeRootSignature; -PFN_D3D11ON12_CREATE_DEVICE wrapD3D11On12CreateDevice; -pD3DCompile wrapD3DCompile; - -ID3D12Device* g_d3d12_device = nullptr; - -#define VERTEX_BUFFERS_SLOT 0 -#define FRAGMENT_CONSTANT_BUFFERS_SLOT 1 -#define VERTEX_CONSTANT_BUFFERS_SLOT 2 -#define TEXTURES_SLOT 3 -#define SAMPLERS_SLOT 4 -#define SCALE_OFFSET_SLOT 5 - -namespace -{ -HMODULE D3D12Module; -HMODULE D3D11Module; -HMODULE D3DCompiler; - -void loadD3D12FunctionPointers() -{ - D3D12Module = verify("d3d12.dll", LoadLibrary(L"d3d12.dll")); - wrapD3D12CreateDevice = (PFN_D3D12_CREATE_DEVICE)GetProcAddress(D3D12Module, "D3D12CreateDevice"); - wrapD3D12GetDebugInterface = (PFN_D3D12_GET_DEBUG_INTERFACE)GetProcAddress(D3D12Module, "D3D12GetDebugInterface"); - wrapD3D12SerializeRootSignature = (PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)GetProcAddress(D3D12Module, "D3D12SerializeRootSignature"); - D3D11Module = verify("d3d11.dll", LoadLibrary(L"d3d11.dll")); - wrapD3D11On12CreateDevice = (PFN_D3D11ON12_CREATE_DEVICE)GetProcAddress(D3D11Module, "D3D11On12CreateDevice"); - D3DCompiler = verify("d3dcompiler_47.dll", LoadLibrary(L"d3dcompiler_47.dll")); - wrapD3DCompile = (pD3DCompile)GetProcAddress(D3DCompiler, "D3DCompile"); -} - -void unloadD3D12FunctionPointers() -{ - FreeLibrary(D3D12Module); - FreeLibrary(D3D11Module); - FreeLibrary(D3DCompiler); -} - -/** - * Wait until command queue has completed all task. - */ -void wait_for_command_queue(ID3D12Device *device, ID3D12CommandQueue *command_queue) -{ - ComPtr fence; - CHECK_HRESULT(device->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(fence.GetAddressOf()))); - HANDLE handle = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - fence->SetEventOnCompletion(1, handle); - command_queue->Signal(fence.Get(), 1); - WaitForSingleObjectEx(handle, INFINITE, FALSE); - CloseHandle(handle); -} -} - -void D3D12GSRender::shader::release() -{ - pso->Release(); - root_signature->Release(); - vertex_buffer->Release(); - texture_descriptor_heap->Release(); - sampler_descriptor_heap->Release(); -} - -bool D3D12GSRender::invalidate_address(u32 addr) -{ - bool result = false; - result |= m_texture_cache.invalidate_address(addr); - return result; -} - -D3D12DLLManagement::D3D12DLLManagement() -{ - loadD3D12FunctionPointers(); -} - -D3D12DLLManagement::~D3D12DLLManagement() -{ - unloadD3D12FunctionPointers(); -} - -namespace -{ - ComPtr get_shared_root_signature_blob() - { - CD3DX12_ROOT_PARAMETER RP[6]; - - // vertex buffer are bound each draw calls - CD3DX12_DESCRIPTOR_RANGE vertex_buffer_descriptors(D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 16, 0); - RP[VERTEX_BUFFERS_SLOT].InitAsDescriptorTable(1, &vertex_buffer_descriptors, D3D12_SHADER_VISIBILITY_VERTEX); - - // fragment constants are bound each draw calls - RP[FRAGMENT_CONSTANT_BUFFERS_SLOT].InitAsConstantBufferView(2, 0, D3D12_SHADER_VISIBILITY_PIXEL); - - // vertex constants are bound often - CD3DX12_DESCRIPTOR_RANGE vertex_constant_buffer_descriptors(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 1); - RP[VERTEX_CONSTANT_BUFFERS_SLOT].InitAsDescriptorTable(1, &vertex_constant_buffer_descriptors, D3D12_SHADER_VISIBILITY_VERTEX); - - // textures are bound often - CD3DX12_DESCRIPTOR_RANGE texture_descriptors(D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 16, 0); - RP[TEXTURES_SLOT].InitAsDescriptorTable(1, &texture_descriptors, D3D12_SHADER_VISIBILITY_PIXEL); - // samplers are bound often - CD3DX12_DESCRIPTOR_RANGE sampler_descriptors(D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER, 16, 0); - RP[SAMPLERS_SLOT].InitAsDescriptorTable(1, &sampler_descriptors, D3D12_SHADER_VISIBILITY_PIXEL); - - // scale offset matrix are bound once in a while - CD3DX12_DESCRIPTOR_RANGE scale_offset_descriptors(D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 1, 0); - RP[SCALE_OFFSET_SLOT].InitAsDescriptorTable(1, &scale_offset_descriptors, D3D12_SHADER_VISIBILITY_ALL); - - Microsoft::WRL::ComPtr root_signature_blob; - Microsoft::WRL::ComPtr error_blob; - CHECK_HRESULT(wrapD3D12SerializeRootSignature( - &CD3DX12_ROOT_SIGNATURE_DESC(6, RP, 0, 0), - D3D_ROOT_SIGNATURE_VERSION_1, root_signature_blob.GetAddressOf(), error_blob.GetAddressOf())); - - return root_signature_blob; - } -} - -u64 D3D12GSRender::get_cycles() -{ - return thread_ctrl::get_cycles(static_cast&>(*this)); -} - -D3D12GSRender::D3D12GSRender() - : GSRender() - , m_d3d12_lib() - , m_current_pso({}) -{ - if (g_cfg.video.debug_output) - { - Microsoft::WRL::ComPtr debugInterface; - wrapD3D12GetDebugInterface(IID_PPV_ARGS(&debugInterface)); - debugInterface->EnableDebugLayer(); - } - - Microsoft::WRL::ComPtr dxgi_factory; - CHECK_HRESULT(CreateDXGIFactory(IID_PPV_ARGS(&dxgi_factory))); - - // Create adapter - ComPtr adapter; - const std::wstring adapter_name = std::wstring_convert>().from_bytes(g_cfg.video.d3d12.adapter); - - for (UINT id = 0; dxgi_factory->EnumAdapters(id, adapter.ReleaseAndGetAddressOf()) != DXGI_ERROR_NOT_FOUND; id++) - { - DXGI_ADAPTER_DESC desc; - adapter->GetDesc(&desc); - - // Adapter with specified name - if (adapter_name == desc.Description) - { - break; - } - - // Default adapter - if (id == 1 && adapter_name.empty()) - { - break; - } - } - - if (FAILED(wrapD3D12CreateDevice(adapter.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device)))) - { - LOG_ERROR(RSX, "Failed to initialize D3D device on adapter '%s', falling back to first available GPU", g_cfg.video.d3d12.adapter.get()); - - //Try to create a device on the first available device - if (FAILED(wrapD3D12CreateDevice(NULL, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device)))) - { - LOG_FATAL(RSX, "Unable to create D3D12 device. Your GPU(s) may not have D3D12 support."); - return; - } - } - - g_d3d12_device = m_device.Get(); - - // Queues - D3D12_COMMAND_QUEUE_DESC graphic_queue_desc = { D3D12_COMMAND_LIST_TYPE_DIRECT }; - CHECK_HRESULT(m_device->CreateCommandQueue(&graphic_queue_desc, IID_PPV_ARGS(m_command_queue.GetAddressOf()))); - - m_descriptor_stride_srv_cbv_uav = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); - m_descriptor_stride_dsv = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV); - m_descriptor_stride_rtv = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); - m_descriptor_stride_samplers = m_device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER); - - // Create swap chain and put them in a descriptor heap as rendertarget - DXGI_SWAP_CHAIN_DESC swap_chain = {}; - swap_chain.BufferCount = 2; - swap_chain.Windowed = true; - swap_chain.OutputWindow = (HWND)m_frame->handle(); - swap_chain.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - swap_chain.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - swap_chain.SampleDesc.Count = 1; - swap_chain.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; - swap_chain.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; - - CHECK_HRESULT(dxgi_factory->CreateSwapChain(m_command_queue.Get(), &swap_chain, (IDXGISwapChain**)m_swap_chain.GetAddressOf())); - m_swap_chain->GetBuffer(0, IID_PPV_ARGS(&m_backbuffer[0])); - m_swap_chain->GetBuffer(1, IID_PPV_ARGS(&m_backbuffer[1])); - - D3D12_DESCRIPTOR_HEAP_DESC render_target_descriptor_heap_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_RTV, 1}; - D3D12_RENDER_TARGET_VIEW_DESC renter_target_view_desc = {}; - renter_target_view_desc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D; - renter_target_view_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - m_device->CreateDescriptorHeap(&render_target_descriptor_heap_desc, IID_PPV_ARGS(&m_backbuffer_descriptor_heap[0])); - m_device->CreateRenderTargetView(m_backbuffer[0].Get(), &renter_target_view_desc, m_backbuffer_descriptor_heap[0]->GetCPUDescriptorHandleForHeapStart()); - m_device->CreateDescriptorHeap(&render_target_descriptor_heap_desc, IID_PPV_ARGS(&m_backbuffer_descriptor_heap[1])); - m_device->CreateRenderTargetView(m_backbuffer[1].Get(), &renter_target_view_desc, m_backbuffer_descriptor_heap[1]->GetCPUDescriptorHandleForHeapStart()); - - - D3D12_DESCRIPTOR_HEAP_DESC current_texture_descriptors_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, 16 }; - CHECK_HRESULT(m_device->CreateDescriptorHeap(¤t_texture_descriptors_desc, IID_PPV_ARGS(m_current_texture_descriptors.GetAddressOf()))); - D3D12_DESCRIPTOR_HEAP_DESC current_sampler_descriptors_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER, 16 }; - CHECK_HRESULT(m_device->CreateDescriptorHeap(¤t_sampler_descriptors_desc, IID_PPV_ARGS(m_current_sampler_descriptors.GetAddressOf()))); - - ComPtr root_signature_blob = get_shared_root_signature_blob(); - - m_device->CreateRootSignature(0, - root_signature_blob->GetBufferPointer(), - root_signature_blob->GetBufferSize(), - IID_PPV_ARGS(m_shared_root_signature.GetAddressOf())); - - m_per_frame_storage[0].init(m_device.Get()); - m_per_frame_storage[0].reset(); - m_per_frame_storage[1].init(m_device.Get()); - m_per_frame_storage[1].reset(); - - m_output_scaling_pass.init(m_device.Get(), m_command_queue.Get()); - - CHECK_HRESULT( - m_device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Tex2D(DXGI_FORMAT_R8G8B8A8_UNORM, 2, 2, 1, 1), - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&m_dummy_texture)) - ); - - m_rtts.init(m_device.Get()); - m_readback_resources.init(m_device.Get(), 1024 * 1024 * 128, D3D12_HEAP_TYPE_READBACK, D3D12_RESOURCE_STATE_COPY_DEST); - m_buffer_data.init(m_device.Get(), 1024 * 1024 * 896, D3D12_HEAP_TYPE_UPLOAD, D3D12_RESOURCE_STATE_GENERIC_READ); - - CHECK_HRESULT( - m_device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(1024 * 1024 * 16), - D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER, - nullptr, - IID_PPV_ARGS(m_vertex_buffer_data.GetAddressOf()) - ) - ); - - if (g_cfg.video.overlay) - init_d2d_structures(); -} - -D3D12GSRender::~D3D12GSRender() -{ - if (!m_device) - { - //Initialization must have failed - return; - } - - wait_for_command_queue(m_device.Get(), m_command_queue.Get()); - - m_texture_cache.unprotect_all(); - - m_dummy_texture->Release(); - m_per_frame_storage[0].release(); - m_per_frame_storage[1].release(); - m_output_scaling_pass.release(); - - release_d2d_structures(); -} - -void D3D12GSRender::on_init_thread() -{ - if (!m_device) - { - //Init must have failed - fmt::throw_exception("No D3D12 device was created"); - } -} - -void D3D12GSRender::on_exit() -{ - GSRender::on_exit(); -} - -void D3D12GSRender::do_local_task(rsx::FIFO_state state) -{ - rsx::thread::do_local_task(state); -} - -bool D3D12GSRender::do_method(u32 cmd, u32 arg) -{ - switch (cmd) - { - case NV4097_CLEAR_SURFACE: - clear_surface(arg); - return true; - case NV4097_TEXTURE_READ_SEMAPHORE_RELEASE: - copy_render_target_to_dma_location(); - return false; //call rsx::thread method implementation - case NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE: - copy_render_target_to_dma_location(); - return false; //call rsx::thread method implementation - - default: - return false; - } -} - -void D3D12GSRender::end() -{ - std::chrono::time_point start_duration = steady_clock::now(); - - std::chrono::time_point program_load_start = steady_clock::now(); - load_program(); - std::chrono::time_point program_load_end = steady_clock::now(); - m_timers.program_load_duration += std::chrono::duration_cast(program_load_end - program_load_start).count(); - - if (!current_fragment_program.valid) - { - rsx::thread::end(); - return; - } - - std::chrono::time_point rtt_duration_start = steady_clock::now(); - prepare_render_targets(get_current_resource_storage().command_list.Get()); - - std::chrono::time_point rtt_duration_end = steady_clock::now(); - m_timers.prepare_rtt_duration += std::chrono::duration_cast(rtt_duration_end - rtt_duration_start).count(); - - std::chrono::time_point vertex_index_duration_start = steady_clock::now(); - - size_t currentDescriptorIndex = get_current_resource_storage().descriptors_heap_index; - - size_t vertex_count; - bool indexed_draw; - std::vector vertex_buffer_views; - std::tie(indexed_draw, vertex_count, vertex_buffer_views) = upload_and_set_vertex_index_data(get_current_resource_storage().command_list.Get()); - - UINT vertex_buffer_count = static_cast(vertex_buffer_views.size()); - - std::chrono::time_point vertex_index_duration_end = steady_clock::now(); - m_timers.vertex_index_duration += std::chrono::duration_cast(vertex_index_duration_end - vertex_index_duration_start).count(); - - get_current_resource_storage().command_list->SetGraphicsRootSignature(m_shared_root_signature.Get()); - get_current_resource_storage().command_list->OMSetStencilRef(rsx::method_registers.stencil_func_ref()); - - std::chrono::time_point constants_duration_start = steady_clock::now(); - - INT offset = 0; - for (const auto view : vertex_buffer_views) - { - m_device->CreateShaderResourceView(m_vertex_buffer_data.Get(), &view, - CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((INT)currentDescriptorIndex + offset++, m_descriptor_stride_srv_cbv_uav)); - } - // Bind vertex buffer - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(VERTEX_BUFFERS_SLOT, - CD3DX12_GPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetGPUDescriptorHandleForHeapStart()) - .Offset((INT)currentDescriptorIndex, m_descriptor_stride_srv_cbv_uav) - ); - - // Constants - const D3D12_CONSTANT_BUFFER_VIEW_DESC &fragment_constant_view = upload_fragment_shader_constants(); - get_current_resource_storage().command_list->SetGraphicsRootConstantBufferView(FRAGMENT_CONSTANT_BUFFERS_SLOT, fragment_constant_view.BufferLocation); - - upload_and_bind_scale_offset_matrix(currentDescriptorIndex + vertex_buffer_count); - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(SCALE_OFFSET_SLOT, - CD3DX12_GPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetGPUDescriptorHandleForHeapStart()) - .Offset((INT)currentDescriptorIndex + vertex_buffer_count, m_descriptor_stride_srv_cbv_uav) - ); - - if (!g_cfg.video.debug_output && (m_graphics_state & rsx::pipeline_state::transform_constants_dirty)) - { - m_current_transform_constants_buffer_descriptor_id = (u32)currentDescriptorIndex + 1 + vertex_buffer_count; - upload_and_bind_vertex_shader_constants(currentDescriptorIndex + 1 + vertex_buffer_count); - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(VERTEX_CONSTANT_BUFFERS_SLOT, - CD3DX12_GPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetGPUDescriptorHandleForHeapStart()) - .Offset(m_current_transform_constants_buffer_descriptor_id, m_descriptor_stride_srv_cbv_uav) - ); - } - - m_graphics_state &= ~rsx::pipeline_state::memory_barrier_bits; - - std::chrono::time_point constants_duration_end = steady_clock::now(); - m_timers.constants_duration += std::chrono::duration_cast(constants_duration_end - constants_duration_start).count(); - - get_current_resource_storage().command_list->SetPipelineState(std::get<0>(m_current_pso).Get()); - - std::chrono::time_point texture_duration_start = steady_clock::now(); - - get_current_resource_storage().descriptors_heap_index += 2 + vertex_buffer_count; - size_t texture_count = std::get<2>(m_current_pso); - if (texture_count > 0) - { - if (get_current_resource_storage().current_sampler_index + 16 > 2048) - { - get_current_resource_storage().sampler_descriptors_heap_index = 1; - get_current_resource_storage().current_sampler_index = 0; - - ID3D12DescriptorHeap *descriptors[] = - { - get_current_resource_storage().descriptors_heap.Get(), - get_current_resource_storage().sampler_descriptor_heap[get_current_resource_storage().sampler_descriptors_heap_index].Get(), - }; - get_current_resource_storage().command_list->SetDescriptorHeaps(2, descriptors); - } - - upload_textures(get_current_resource_storage().command_list.Get(), texture_count); - - m_device->CopyDescriptorsSimple(16, - CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)get_current_resource_storage().descriptors_heap_index, m_descriptor_stride_srv_cbv_uav), - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_texture_descriptors->GetCPUDescriptorHandleForHeapStart()), - D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV - ); - - m_device->CopyDescriptorsSimple(16, - CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().sampler_descriptor_heap[get_current_resource_storage().sampler_descriptors_heap_index]->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)get_current_resource_storage().current_sampler_index, m_descriptor_stride_samplers), - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_sampler_descriptors->GetCPUDescriptorHandleForHeapStart()), - D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER - ); - - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(TEXTURES_SLOT, - CD3DX12_GPU_DESCRIPTOR_HANDLE(get_current_resource_storage().descriptors_heap->GetGPUDescriptorHandleForHeapStart()) - .Offset((INT)get_current_resource_storage().descriptors_heap_index, m_descriptor_stride_srv_cbv_uav) - ); - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(SAMPLERS_SLOT, - CD3DX12_GPU_DESCRIPTOR_HANDLE(get_current_resource_storage().sampler_descriptor_heap[get_current_resource_storage().sampler_descriptors_heap_index]->GetGPUDescriptorHandleForHeapStart()) - .Offset((INT)get_current_resource_storage().current_sampler_index, m_descriptor_stride_samplers) - ); - - get_current_resource_storage().current_sampler_index += texture_count; - get_current_resource_storage().descriptors_heap_index += texture_count; - } - - std::chrono::time_point texture_duration_end = steady_clock::now(); - m_timers.texture_duration += std::chrono::duration_cast(texture_duration_end - texture_duration_start).count(); - set_rtt_and_ds(get_current_resource_storage().command_list.Get()); - - int clip_w = rsx::method_registers.surface_clip_width(); - int clip_h = rsx::method_registers.surface_clip_height(); - - D3D12_VIEWPORT viewport = - { - 0.f, - 0.f, - (float)clip_w, - (float)clip_h, - 0.f, - 1.f, - }; - get_current_resource_storage().command_list->RSSetViewports(1, &viewport); - - get_current_resource_storage().command_list->RSSetScissorRects(1, &::get_scissor(rsx::method_registers.scissor_origin_x(), rsx::method_registers.scissor_origin_y(), - rsx::method_registers.scissor_width(), rsx::method_registers.scissor_height())); - - get_current_resource_storage().command_list->IASetPrimitiveTopology(get_primitive_topology(rsx::method_registers.current_draw_clause.primitive)); - - if (indexed_draw) - get_current_resource_storage().command_list->DrawIndexedInstanced((UINT)vertex_count, 1, 0, 0, 0); - else - get_current_resource_storage().command_list->DrawInstanced((UINT)vertex_count, 1, 0, 0); - - std::chrono::time_point end_duration = steady_clock::now(); - m_timers.draw_calls_duration += std::chrono::duration_cast(end_duration - start_duration).count(); - m_timers.draw_calls_count++; - - if (g_cfg.video.debug_output) - { - CHECK_HRESULT(get_current_resource_storage().command_list->Close()); - m_command_queue->ExecuteCommandLists(1, (ID3D12CommandList**)get_current_resource_storage().command_list.GetAddressOf()); - get_current_resource_storage().set_new_command_list(); - } - thread::end(); -} - -namespace -{ -bool is_flip_surface_in_global_memory(rsx::surface_target color_target) -{ - switch (color_target) - { - case rsx::surface_target::surface_a: - case rsx::surface_target::surface_b: - case rsx::surface_target::surfaces_a_b: - case rsx::surface_target::surfaces_a_b_c: - case rsx::surface_target::surfaces_a_b_c_d: - return true; - case rsx::surface_target::none: - return false; - } - fmt::throw_exception("Wrong color_target" HERE); -} -} - -void D3D12GSRender::flip(const rsx::display_flip_info_t&) -{ - ID3D12Resource *resource_to_flip; - float viewport_w, viewport_h; - - if (!is_flip_surface_in_global_memory(rsx::method_registers.surface_color_target())) - { - resource_storage &storage = get_current_resource_storage(); - verify(HERE), storage.ram_framebuffer == nullptr; - - size_t w = 0, h = 0, row_pitch = 0; - - size_t offset = 0; - if (false) - { - u32 addr = rsx::get_address(display_buffers[current_display_buffer].offset, CELL_GCM_LOCATION_LOCAL); - w = display_buffers[current_display_buffer].width; - h = display_buffers[current_display_buffer].height; - u8 *src_buffer = vm::_ptr(addr); - - row_pitch = align(w * 4, 256); - size_t texture_size = row_pitch * h; // * 4 for mipmap levels - size_t heap_offset = m_buffer_data.alloc(texture_size); - - void *mapped_buffer = m_buffer_data.map(heap_offset); - for (unsigned row = 0; row < h; row++) - memcpy((char*)mapped_buffer + row * row_pitch, (char*)src_buffer + row * w * 4, w * 4); - m_buffer_data.unmap(CD3DX12_RANGE(heap_offset, heap_offset + texture_size)); - offset = heap_offset; - - CHECK_HRESULT( - m_device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Tex2D(DXGI_FORMAT_R8G8B8A8_UNORM, (UINT)w, (UINT)h, 1, 1), - D3D12_RESOURCE_STATE_COPY_DEST, - nullptr, - IID_PPV_ARGS(storage.ram_framebuffer.GetAddressOf()) - ) - ); - get_current_resource_storage().command_list->CopyTextureRegion(&CD3DX12_TEXTURE_COPY_LOCATION(storage.ram_framebuffer.Get(), 0), 0, 0, 0, - &CD3DX12_TEXTURE_COPY_LOCATION(m_buffer_data.get_heap(), { offset,{ DXGI_FORMAT_R8G8B8A8_UNORM, (UINT)w, (UINT)h, 1, (UINT)row_pitch } }), nullptr); - - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(storage.ram_framebuffer.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_GENERIC_READ)); - resource_to_flip = storage.ram_framebuffer.Get(); - } - else - resource_to_flip = nullptr; - - viewport_w = (float)w, viewport_h = (float)h; - } - else - { - if (std::get<1>(m_rtts.m_bound_render_targets[0]) != nullptr) - { - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(std::get<1>(m_rtts.m_bound_render_targets[0]), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_GENERIC_READ)); - resource_to_flip = std::get<1>(m_rtts.m_bound_render_targets[0]); - } - else if (std::get<1>(m_rtts.m_bound_render_targets[1]) != nullptr) - { - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(std::get<1>(m_rtts.m_bound_render_targets[1]), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_GENERIC_READ)); - resource_to_flip = std::get<1>(m_rtts.m_bound_render_targets[1]); - } - else - resource_to_flip = nullptr; - } - - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()].Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET)); - - D3D12_VIEWPORT viewport = - { - 0.f, - 0.f, - (float)m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()]->GetDesc().Width, - (float)m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()]->GetDesc().Height, - 0.f, - 1.f - }; - get_current_resource_storage().command_list->RSSetViewports(1, &viewport); - - D3D12_RECT box = - { - 0, - 0, - (LONG)m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()]->GetDesc().Width, - (LONG)m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()]->GetDesc().Height, - }; - get_current_resource_storage().command_list->RSSetScissorRects(1, &box); - get_current_resource_storage().command_list->SetGraphicsRootSignature(m_output_scaling_pass.root_signature); - get_current_resource_storage().command_list->SetPipelineState(m_output_scaling_pass.pso); - - D3D12_SHADER_RESOURCE_VIEW_DESC shader_resource_view_desc = {}; - // FIXME: Not always true - shader_resource_view_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - shader_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - shader_resource_view_desc.Texture2D.MipLevels = 1; - if (is_flip_surface_in_global_memory(rsx::method_registers.surface_color_target())) - shader_resource_view_desc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - else - shader_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 - ); - m_device->CreateShaderResourceView(resource_to_flip, &shader_resource_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_output_scaling_pass.texture_descriptor_heap->GetCPUDescriptorHandleForHeapStart()).Offset(m_swap_chain->GetCurrentBackBufferIndex(), m_descriptor_stride_srv_cbv_uav)); - - D3D12_SAMPLER_DESC sampler_desc = {}; - sampler_desc.Filter = D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT; - sampler_desc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - sampler_desc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - sampler_desc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - m_device->CreateSampler(&sampler_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_output_scaling_pass.sampler_descriptor_heap->GetCPUDescriptorHandleForHeapStart()).Offset(m_swap_chain->GetCurrentBackBufferIndex(), m_descriptor_stride_samplers)); - - ID3D12DescriptorHeap *descriptors_heaps[] = - { - m_output_scaling_pass.texture_descriptor_heap, - m_output_scaling_pass.sampler_descriptor_heap - }; - get_current_resource_storage().command_list->SetDescriptorHeaps(2, descriptors_heaps); - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(0, - CD3DX12_GPU_DESCRIPTOR_HANDLE(m_output_scaling_pass.texture_descriptor_heap->GetGPUDescriptorHandleForHeapStart()).Offset(m_swap_chain->GetCurrentBackBufferIndex(), m_descriptor_stride_srv_cbv_uav)); - get_current_resource_storage().command_list->SetGraphicsRootDescriptorTable(1, - CD3DX12_GPU_DESCRIPTOR_HANDLE(m_output_scaling_pass.sampler_descriptor_heap->GetGPUDescriptorHandleForHeapStart()).Offset(m_swap_chain->GetCurrentBackBufferIndex(), m_descriptor_stride_samplers)); - - get_current_resource_storage().command_list->OMSetRenderTargets(1, - &CD3DX12_CPU_DESCRIPTOR_HANDLE(m_backbuffer_descriptor_heap[m_swap_chain->GetCurrentBackBufferIndex()]->GetCPUDescriptorHandleForHeapStart()), - true, nullptr); - D3D12_VERTEX_BUFFER_VIEW vertex_buffer_view = {}; - vertex_buffer_view.BufferLocation = m_output_scaling_pass.vertex_buffer->GetGPUVirtualAddress(); - vertex_buffer_view.StrideInBytes = 4 * sizeof(float); - vertex_buffer_view.SizeInBytes = 16 * sizeof(float); - get_current_resource_storage().command_list->IASetVertexBuffers(0, 1, &vertex_buffer_view); - get_current_resource_storage().command_list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); - if (resource_to_flip) - get_current_resource_storage().command_list->DrawInstanced(4, 1, 0, 0); - - if (!g_cfg.video.overlay) - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_backbuffer[m_swap_chain->GetCurrentBackBufferIndex()].Get(), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT)); - if (is_flip_surface_in_global_memory(rsx::method_registers.surface_color_target()) && resource_to_flip != nullptr) - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(resource_to_flip, D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_RENDER_TARGET)); - CHECK_HRESULT(get_current_resource_storage().command_list->Close()); - m_command_queue->ExecuteCommandLists(1, (ID3D12CommandList**)get_current_resource_storage().command_list.GetAddressOf()); - - if (g_cfg.video.overlay) - render_overlay(); - - reset_timer(); - - std::chrono::time_point flip_start = steady_clock::now(); - - CHECK_HRESULT(m_swap_chain->Present(g_cfg.video.vsync ? 1 : 0, 0)); - // Add an event signaling queue completion - - resource_storage &storage = get_non_current_resource_storage(); - - m_command_queue->Signal(storage.frame_finished_fence.Get(), storage.fence_value); - storage.frame_finished_fence->SetEventOnCompletion(storage.fence_value, storage.frame_finished_handle); - storage.fence_value++; - - storage.in_use = true; - storage.dirty_textures.merge(m_rtts.invalidated_resources); - m_rtts.invalidated_resources.clear(); - - // Get the put pos - 1. This way after cleaning we can set the get ptr to - // this value, allowing heap to proceed even if we cleant before allocating - // a new value (that's the reason of the -1) - storage.buffer_heap_get_pos = m_buffer_data.get_current_put_pos_minus_one(); - storage.readback_heap_get_pos = m_readback_resources.get_current_put_pos_minus_one(); - - // Now get ready for next frame - resource_storage &new_storage = get_current_resource_storage(); - - new_storage.wait_and_clean(); - if (new_storage.in_use) - { - m_buffer_data.m_get_pos = new_storage.buffer_heap_get_pos; - m_readback_resources.m_get_pos = new_storage.readback_heap_get_pos; - } - - m_frame->flip(nullptr); - - - std::chrono::time_point flip_end = steady_clock::now(); - m_timers.flip_duration += std::chrono::duration_cast(flip_end - flip_start).count(); -} - -bool D3D12GSRender::on_access_violation(u32 address, bool is_writing) -{ - if (!is_writing) - { - return false; - } - - if (invalidate_address(address)) - { - LOG_WARNING(RSX, "Reporting Cell writing to 0x%x", address); - return true; - } - - return false; -} - -void D3D12GSRender::reset_timer() -{ - m_timers.draw_calls_count = 0; - m_timers.draw_calls_duration = 0; - m_timers.prepare_rtt_duration = 0; - m_timers.vertex_index_duration = 0; - m_timers.buffer_upload_size = 0; - m_timers.program_load_duration = 0; - m_timers.constants_duration = 0; - m_timers.texture_duration = 0; - m_timers.flip_duration = 0; -} - -resource_storage& D3D12GSRender::get_current_resource_storage() -{ - return m_per_frame_storage[m_swap_chain->GetCurrentBackBufferIndex()]; -} - -resource_storage& D3D12GSRender::get_non_current_resource_storage() -{ - return m_per_frame_storage[1 - m_swap_chain->GetCurrentBackBufferIndex()]; -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.h b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.h deleted file mode 100644 index 24e95e5e13..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.h +++ /dev/null @@ -1,188 +0,0 @@ -#pragma once - -#include "D3D12Utils.h" -#include "Emu/Memory/vm.h" -#include "Emu/System.h" -#include "Emu/RSX/GSRender.h" - -#include "D3D12RenderTargetSets.h" -#include "D3D12PipelineState.h" -#include "d3dx12.h" -#include "D3D12MemoryHelpers.h" - - -/** - * TODO: If you want to improve this backend, a small list of things that are unimplemented atm : - * - Vertex texture - * It requires adding the reading command in D3D12FragmentProgramDecompiler, - * generates corresponding root signatures and descriptor heap binding, and ensure that code in - * D3D12Textures.cpp doesn't contain pixel shader specific code. - * - MSAA - * There is no support in the gl backend for MSAA textures atm so it needs to be implemented from scratch. - * - Depth buffer read - * The depth buffer can be currently properly read, but for some reasons it needs a conversion from depth16/24 - * format to rgba8 format, which doesn't make sense since the PS3 doesn't make such conversion implicitly afaik. - * - Improve caching of vertex buffers and texture - * Vertex buffers are cached by range. This works but in some rare situation it may be wrong, for instance if 2 - * draw call use the same buffer, but the first one doesn't use all the attribute ; then the second one will use - * the cached version and not have updated attributes. Same for texture, if format/size does change, the caching - * system is ignoring it. - * - Improve sync between cell and RSX - * A lot of optimisation can be gained from using Cell and RSX latency. Cell can't read RSX generated data without - * synchronisation. We currently only cover semaphore sync, but there are more (like implicit sync at flip) that - * are not currently correctly signaled which leads to deadlock. - */ - -/** - * Structure used to load/unload D3D12 lib. - */ -struct D3D12DLLManagement -{ - D3D12DLLManagement(); - ~D3D12DLLManagement(); -}; - -class D3D12GSRender : public GSRender -{ -private: - /** D3D12 structures. - * Note: they should be declared in reverse order of destruction - */ - D3D12DLLManagement m_d3d12_lib; - ComPtr m_device; - ComPtr m_command_queue; - ComPtr m_swap_chain; - ComPtr m_backbuffer[2]; - ComPtr m_backbuffer_descriptor_heap[2]; - - ComPtr m_shared_root_signature; - - // TODO: Use a tree structure to parse more efficiently - data_cache m_texture_cache; - bool invalidate_address(u32 addr); - - PipelineStateObjectCache m_pso_cache; - std::tuple, size_t, size_t> m_current_pso; - - struct - { - size_t draw_calls_duration; - size_t draw_calls_count; - size_t prepare_rtt_duration; - size_t vertex_index_duration; - size_t buffer_upload_size; - size_t program_load_duration; - size_t constants_duration; - size_t texture_duration; - size_t flip_duration; - } m_timers; - - void reset_timer(); - - struct shader - { - ID3D12PipelineState *pso; - ID3D12RootSignature *root_signature; - ID3D12Resource *vertex_buffer; - ID3D12DescriptorHeap *texture_descriptor_heap; - ID3D12DescriptorHeap *sampler_descriptor_heap; - void init(ID3D12Device *device, ID3D12CommandQueue *gfx_command_queue); - void release(); - }; - - /** - * Stores data related to the scaling pass that turns internal - * render targets into presented buffers. - */ - shader m_output_scaling_pass; - - resource_storage m_per_frame_storage[2]; - resource_storage &get_current_resource_storage(); - resource_storage &get_non_current_resource_storage(); - - // Textures, constants, index and vertex buffers storage - d3d12_data_heap m_buffer_data; - d3d12_data_heap m_readback_resources; - ComPtr m_vertex_buffer_data; - - rsx::render_targets m_rtts; - - INT m_descriptor_stride_srv_cbv_uav; - INT m_descriptor_stride_dsv; - INT m_descriptor_stride_rtv; - INT m_descriptor_stride_samplers; - - // Used to fill unused texture slot - ID3D12Resource *m_dummy_texture; - - // Currently used shader resources / samplers descriptor - u32 m_current_transform_constants_buffer_descriptor_id; - ComPtr m_current_texture_descriptors; - ComPtr m_current_sampler_descriptors; - -public: - u64 get_cycles() override final; - D3D12GSRender(); - virtual ~D3D12GSRender(); - -private: - void init_d2d_structures(); - void release_d2d_structures(); - - void load_program(); - - void set_rtt_and_ds(ID3D12GraphicsCommandList *command_list); - - /** - * Create vertex and index buffers (if needed) and set them to cmdlist. - * Non native primitive type are emulated by index buffers expansion. - * Returns whether the draw call is indexed or not and the vertex count to draw. - */ - std::tuple > upload_and_set_vertex_index_data(ID3D12GraphicsCommandList *command_list); - - void upload_and_bind_scale_offset_matrix(size_t descriptor_index); - void upload_and_bind_vertex_shader_constants(size_t descriptor_index); - D3D12_CONSTANT_BUFFER_VIEW_DESC upload_fragment_shader_constants(); - /** - * Fetch all textures recorded in the state in the render target cache and in the texture cache. - * If a texture is not cached, populate cmdlist with uploads command. - * Create necessary resource view/sampler descriptors in the per frame storage struct. - * If the count of enabled texture is below texture_count, fills with dummy texture and sampler. - */ - void upload_textures(ID3D12GraphicsCommandList *command_list, size_t texture_count); - - /** - * Creates render target if necessary. - * Populate cmdlist with render target state change (from RTT to generic read for previous rtt, - * from generic to rtt for rtt in cache). - */ - void prepare_render_targets(ID3D12GraphicsCommandList *command_list); - - /** - * Render D2D overlay if enabled on top of the backbuffer. - */ - void render_overlay(); - - void clear_surface(u32 arg); - - /** - * Copy currently bound current target to the dma location affecting them. - * NOTE: We should also copy previously bound rtts. - */ - void copy_render_target_to_dma_location(); - -protected: - virtual void on_init_thread() override; - virtual void on_exit() override; - virtual void do_local_task(rsx::FIFO_state state) override; - virtual bool do_method(u32 cmd, u32 arg) override; - virtual void end() override; - virtual void flip(const rsx::display_flip_info_t&) override; - - virtual bool on_access_violation(u32 address, bool is_writing) override; - - virtual std::array, 4> copy_render_targets_to_memory() override; - virtual std::array, 2> copy_depth_stencil_buffer_to_memory() override; - virtual std::pair get_programs() const override; - virtual void notify_tile_unbound(u32 tile) override; -}; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.cpp b/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.cpp deleted file mode 100644 index 9b92072150..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.cpp +++ /dev/null @@ -1,150 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12MemoryHelpers.h" -#include "Utilities/VirtualMemory.h" - - -void data_cache::store_and_protect_data(u64 key, u32 start, size_t size, u8 format, size_t w, size_t h, size_t d, size_t m, ComPtr data) -{ - std::lock_guard lock(m_mut); - m_address_to_data[key] = std::make_pair(texture_entry(format, w, h, d, m), data); - protect_data(key, start, size); -} - -void data_cache::protect_data(u64 key, u32 start, size_t size) -{ - /// align start to 4096 byte - static const u32 memory_page_size = 4096; - u32 protected_range_start = start & ~(memory_page_size - 1); - u32 protected_range_size = (u32)align(size, memory_page_size); - m_protected_ranges.push_back(std::make_tuple(key, protected_range_start, protected_range_size)); - utils::memory_protect(vm::base(protected_range_start), protected_range_size, utils::protection::ro); -} - -bool data_cache::invalidate_address(u32 addr) -{ - // In case 2 threads write to texture memory - std::lock_guard lock(m_mut); - bool handled = false; - auto It = m_protected_ranges.begin(), E = m_protected_ranges.end(); - for (; It != E;) - { - auto currentIt = It; - ++It; - auto protectedTexture = *currentIt; - u32 protectedRangeStart = std::get<1>(protectedTexture), protectedRangeSize = std::get<2>(protectedTexture); - if (addr >= protectedRangeStart && addr <= protectedRangeSize + protectedRangeStart) - { - u64 texadrr = std::get<0>(protectedTexture); - m_address_to_data[texadrr].first.m_is_dirty = true; - - utils::memory_protect(vm::base(protectedRangeStart), protectedRangeSize, utils::protection::rw); - m_protected_ranges.erase(currentIt); - handled = true; - } - } - return handled; -} - -std::pair > *data_cache::find_data_if_available(u64 key) -{ - std::lock_guard lock(m_mut); - auto It = m_address_to_data.find(key); - if (It == m_address_to_data.end()) - return nullptr; - return &It->second; -} - -void data_cache::unprotect_all() -{ - std::lock_guard lock(m_mut); - for (auto &protectedTexture : m_protected_ranges) - { - u32 protectedRangeStart = std::get<1>(protectedTexture), protectedRangeSize = std::get<2>(protectedTexture); - utils::memory_protect(vm::base(protectedRangeStart), protectedRangeSize, utils::protection::rw); - } -} - -ComPtr data_cache::remove_from_cache(u64 key) -{ - auto result = m_address_to_data[key].second; - m_address_to_data.erase(key); - return result; -} - -void resource_storage::reset() -{ - descriptors_heap_index = 0; - current_sampler_index = 0; - sampler_descriptors_heap_index = 0; - render_targets_descriptors_heap_index = 0; - depth_stencil_descriptor_heap_index = 0; - - CHECK_HRESULT(command_allocator->Reset()); - set_new_command_list(); -} - -void resource_storage::set_new_command_list() -{ - CHECK_HRESULT(command_list->Reset(command_allocator.Get(), nullptr)); - - ID3D12DescriptorHeap *descriptors[] = - { - descriptors_heap.Get(), - sampler_descriptor_heap[sampler_descriptors_heap_index].Get(), - }; - command_list->SetDescriptorHeaps(2, descriptors); -} - -void resource_storage::init(ID3D12Device *device) -{ - in_use = false; - m_device = device; - ram_framebuffer = nullptr; - // Create a global command allocator - CHECK_HRESULT(device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(command_allocator.GetAddressOf()))); - - CHECK_HRESULT(m_device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, command_allocator.Get(), nullptr, IID_PPV_ARGS(command_list.GetAddressOf()))); - CHECK_HRESULT(command_list->Close()); - - D3D12_DESCRIPTOR_HEAP_DESC descriptor_heap_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, 50000, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE }; - CHECK_HRESULT(device->CreateDescriptorHeap(&descriptor_heap_desc, IID_PPV_ARGS(&descriptors_heap))); - - D3D12_DESCRIPTOR_HEAP_DESC sampler_heap_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER , 2048, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE }; - CHECK_HRESULT(device->CreateDescriptorHeap(&sampler_heap_desc, IID_PPV_ARGS(&sampler_descriptor_heap[0]))); - CHECK_HRESULT(device->CreateDescriptorHeap(&sampler_heap_desc, IID_PPV_ARGS(&sampler_descriptor_heap[1]))); - - D3D12_DESCRIPTOR_HEAP_DESC ds_descriptor_heap_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_DSV , 10000}; - device->CreateDescriptorHeap(&ds_descriptor_heap_desc, IID_PPV_ARGS(&depth_stencil_descriptor_heap)); - - D3D12_DESCRIPTOR_HEAP_DESC rtv_descriptor_heap_desc = { D3D12_DESCRIPTOR_HEAP_TYPE_RTV , 10000 }; - device->CreateDescriptorHeap(&rtv_descriptor_heap_desc, IID_PPV_ARGS(&render_targets_descriptors_heap)); - - frame_finished_handle = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - fence_value = 0; - CHECK_HRESULT(device->CreateFence(fence_value++, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(frame_finished_fence.GetAddressOf()))); -} - -void resource_storage::wait_and_clean() -{ - if (in_use) - WaitForSingleObjectEx(frame_finished_handle, INFINITE, FALSE); - else - CHECK_HRESULT(command_list->Close()); - - reset(); - - dirty_textures.clear(); - - ram_framebuffer = nullptr; -} - -void resource_storage::release() -{ - dirty_textures.clear(); - // NOTE: Should be released only after gfx pipeline last command has been finished. - CloseHandle(frame_finished_handle); -} - -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.h b/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.h deleted file mode 100644 index 3d7e565a0e..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12MemoryHelpers.h +++ /dev/null @@ -1,192 +0,0 @@ -#pragma once -#include "D3D12Utils.h" -#include "d3dx12.h" -#include "../Common/ring_buffer_helper.h" - -#include "Utilities/mutex.h" - -#include -#include - -struct d3d12_data_heap : public data_heap -{ - ComPtr m_heap; -public: - d3d12_data_heap() = default; - ~d3d12_data_heap() = default; - d3d12_data_heap(const d3d12_data_heap&) = delete; - d3d12_data_heap(d3d12_data_heap&&) = delete; - - template - void init(ID3D12Device *device, size_t heap_size, D3D12_HEAP_TYPE type, D3D12_RESOURCE_STATES state) - { - m_size = heap_size; - m_put_pos = 0; - m_get_pos = heap_size - 1; - - D3D12_HEAP_PROPERTIES heap_properties = {}; - heap_properties.Type = type; - CHECK_HRESULT(device->CreateCommittedResource(&heap_properties, - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(heap_size), - state, - nullptr, - IID_PPV_ARGS(m_heap.GetAddressOf())) - ); - } - - template - T* map(const D3D12_RANGE &range) - { - void *buffer; - CHECK_HRESULT(m_heap->Map(0, &range, &buffer)); - void *mapped_buffer = (char*)buffer + range.Begin; - return static_cast(mapped_buffer); - } - - template - T* map(size_t heap_offset) - { - void *buffer; - CHECK_HRESULT(m_heap->Map(0, nullptr, &buffer)); - void *mapped_buffer = (char*)buffer + heap_offset; - return static_cast(mapped_buffer); - } - - void unmap(const D3D12_RANGE &range) - { - m_heap->Unmap(0, &range); - } - - void unmap() - { - m_heap->Unmap(0, nullptr); - } - - ID3D12Resource* get_heap() - { - return m_heap.Get(); - } -}; - -struct texture_entry -{ - u8 m_format; - bool m_is_dirty; - size_t m_width; - size_t m_height; - size_t m_mipmap; - size_t m_depth; - - texture_entry() : m_format(0), m_width(0), m_height(0), m_depth(0), m_is_dirty(true) - {} - - texture_entry(u8 f, size_t w, size_t h, size_t d, size_t m) : m_format(f), m_width(w), m_height(h), m_depth(d), m_is_dirty(false), m_mipmap(m) - {} - - bool operator==(const texture_entry &other) - { - return (m_format == other.m_format && m_width == other.m_width && m_height == other.m_height && m_mipmap == other.m_mipmap && m_depth == other.m_depth); - } -}; - -/** -* Manages cache of data (texture/vertex/index) -*/ -struct data_cache -{ -private: - /** - * Mutex protecting m_dataCache access - * Memory protection fault catch can be generated by any thread and - * modifies it. - */ - shared_mutex m_mut; - - std::unordered_map> > m_address_to_data; // Storage - std::list > m_protected_ranges; // address, start of protected range, size of protected range -public: - data_cache() = default; - ~data_cache() = default; - data_cache(const data_cache&) = delete; - data_cache(data_cache&&) = delete; - - void store_and_protect_data(u64 key, u32 start, size_t size, u8 format, size_t w, size_t h, size_t d, size_t m, ComPtr data); - - /** - * Make memory from start to start + size write protected. - * Associate key to this range so that when a write is detected, data at key is marked dirty. - */ - void protect_data(u64 key, u32 start, size_t size); - - /** - * Remove all data containing addr from cache, unprotect them. Returns false if no data is modified. - */ - bool invalidate_address(u32 addr); - - std::pair > *find_data_if_available(u64 key); - - void unprotect_all(); - - /** - * Remove data stored at key, and returns a ComPtr owning it. - * The caller is responsible for releasing the ComPtr. - */ - ComPtr remove_from_cache(u64 key); -}; - -/** -* Stores data that are "ping ponged" between frame. -* For instance command allocator : maintains 2 command allocators and -* swap between them when frame is flipped. -*/ -struct resource_storage -{ - resource_storage() = default; - ~resource_storage() = default; - resource_storage(const resource_storage&) = delete; - resource_storage(resource_storage&&) = delete; - - bool in_use; // False until command list has been populated at least once - ComPtr frame_finished_fence; - UINT64 fence_value; - HANDLE frame_finished_handle; - - // Pointer to device, not owned by ResourceStorage - ID3D12Device *m_device; - ComPtr command_allocator; - ComPtr command_list; - - // Descriptor heap - ComPtr descriptors_heap; - size_t descriptors_heap_index; - - // Sampler heap - ComPtr sampler_descriptor_heap[2]; - size_t sampler_descriptors_heap_index; - size_t current_sampler_index; - - size_t render_targets_descriptors_heap_index; - ComPtr render_targets_descriptors_heap; - size_t depth_stencil_descriptor_heap_index; - ComPtr depth_stencil_descriptor_heap; - - ComPtr ram_framebuffer; - - /// Texture that were invalidated - std::list > dirty_textures; - - /** - * Start position in heaps of resources used for this frame. - * This means newer resources shouldn't allocate memory crossing this position - * until the frame rendering is over. - */ - size_t buffer_heap_get_pos; - size_t readback_heap_get_pos; - - void reset(); - void init(ID3D12Device *device); - void set_new_command_list(); - void wait_and_clean(); - void release(); -}; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Overlay.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Overlay.cpp deleted file mode 100644 index 69ba607a5b..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Overlay.cpp +++ /dev/null @@ -1,181 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12GSRender.h" -#include -#include -#include -#include - - -namespace -{ -// D2D -ComPtr g_d3d11_device; -ComPtr g_d3d11_device_context; -ComPtr g_d3d11on12_device; -ComPtr g_dwrite_factory; -ComPtr g_d2d_factory; -ComPtr g_d2d_device; -ComPtr g_d2d_device_context; -ComPtr g_wrapped_backbuffers[2]; -ComPtr g_d2d_render_targets[2]; -ComPtr g_text_format; -ComPtr g_text_brush; - -void draw_strings(const D2D1_SIZE_F &rtSize, size_t backbuffer_id, const std::vector &strings) -{ - // Acquire our wrapped render target resource for the current back buffer. - g_d3d11on12_device->AcquireWrappedResources(g_wrapped_backbuffers[backbuffer_id ].GetAddressOf(), 1); - - // Render text directly to the back buffer. - g_d2d_device_context->SetTarget(g_d2d_render_targets[backbuffer_id].Get()); - g_d2d_device_context->BeginDraw(); - g_d2d_device_context->SetTransform(D2D1::Matrix3x2F::Identity()); - float xpos = 0.f; - for (const std::wstring &str : strings) - { - g_d2d_device_context->DrawTextW( - str.c_str(), - (UINT32)str.size(), - g_text_format.Get(), - &D2D1::RectF(0, xpos, rtSize.width, rtSize.height), - g_text_brush.Get() - ); - xpos += 14.f; - } - g_d2d_device_context->EndDraw(); - - // Release our wrapped render target resource. Releasing - // transitions the back buffer resource to the state specified - // as the OutState when the wrapped resource was created. - g_d3d11on12_device->ReleaseWrappedResources(g_wrapped_backbuffers[backbuffer_id].GetAddressOf(), 1); - - // Flush to submit the 11 command list to the shared command queue. - g_d3d11_device_context->Flush(); -} -} - -extern PFN_D3D11ON12_CREATE_DEVICE wrapD3D11On12CreateDevice; - -void D3D12GSRender::init_d2d_structures() -{ - wrapD3D11On12CreateDevice( - m_device.Get(), - D3D11_CREATE_DEVICE_BGRA_SUPPORT, - nullptr, - 0, - reinterpret_cast(m_command_queue.GetAddressOf()), - 1, - 0, - &g_d3d11_device, - &g_d3d11_device_context, - nullptr - ); - - g_d3d11_device.As(&g_d3d11on12_device); - - D2D1_DEVICE_CONTEXT_OPTIONS deviceOptions = D2D1_DEVICE_CONTEXT_OPTIONS_NONE; - D2D1_FACTORY_OPTIONS d2dFactoryOptions = {}; - D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, __uuidof(ID2D1Factory3), &d2dFactoryOptions, &g_d2d_factory); - Microsoft::WRL::ComPtr dxgiDevice; - g_d3d11on12_device.As(&dxgiDevice); - g_d2d_factory->CreateDevice(dxgiDevice.Get(), &g_d2d_device); - g_d2d_device->CreateDeviceContext(deviceOptions, &g_d2d_device_context); - DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), &g_dwrite_factory); - - float dpiX; - float dpiY; - g_d2d_factory->GetDesktopDpi(&dpiX, &dpiY); - D2D1_BITMAP_PROPERTIES1 bitmapProperties = D2D1::BitmapProperties1( - D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW, - D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED), - dpiX, - dpiY - ); - - for (unsigned i = 0; i < 2; i++) - { - D3D11_RESOURCE_FLAGS d3d11Flags = { D3D11_BIND_RENDER_TARGET }; - g_d3d11on12_device->CreateWrappedResource( - m_backbuffer[i].Get(), - &d3d11Flags, - D3D12_RESOURCE_STATE_RENDER_TARGET, - D3D12_RESOURCE_STATE_PRESENT, - IID_PPV_ARGS(&g_wrapped_backbuffers[i]) - ); - - // Create a render target for D2D to draw directly to this back buffer. - Microsoft::WRL::ComPtr surface; - g_wrapped_backbuffers[i].As(&surface); - g_d2d_device_context->CreateBitmapFromDxgiSurface( - surface.Get(), - &bitmapProperties, - &g_d2d_render_targets[i] - ); - } - - g_d2d_device_context->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::DarkGreen), &g_text_brush); - g_dwrite_factory->CreateTextFormat( - L"Verdana", - NULL, - DWRITE_FONT_WEIGHT_BOLD, - DWRITE_FONT_STYLE_NORMAL, - DWRITE_FONT_STRETCH_NORMAL, - 14, - L"en-us", - &g_text_format - ); - g_text_format->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING); - g_text_format->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_NEAR); -} - -void D3D12GSRender::release_d2d_structures() -{ - g_d3d11_device.Reset(); - g_d3d11_device_context.Reset(); - g_d3d11on12_device.Reset(); - g_dwrite_factory.Reset(); - g_d2d_factory.Reset(); - g_d2d_device.Reset(); - g_d2d_device_context.Reset(); - g_wrapped_backbuffers[0].Reset(); - g_d2d_render_targets[0].Reset(); - g_wrapped_backbuffers[1].Reset(); - g_d2d_render_targets[1].Reset(); - g_text_format.Reset(); - g_text_brush.Reset(); -} - -void D3D12GSRender::render_overlay() -{ - D2D1_SIZE_F rtSize = g_d2d_render_targets[m_swap_chain->GetCurrentBackBufferIndex()]->GetSize(); - std::wstring duration = L"Draw duration : " + std::to_wstring(m_timers.draw_calls_duration) + L" us"; - float vtxIdxPercent = (float)m_timers.vertex_index_duration / (float)m_timers.draw_calls_duration; - std::wstring vertexIndexDuration = L"Vtx/Idx upload : " + std::to_wstring(m_timers.vertex_index_duration) + L" us (" + std::to_wstring(100.f * vtxIdxPercent) + L" %)"; - std::wstring size = L"Upload size : " + std::to_wstring(m_timers.buffer_upload_size) + L" Bytes"; - float texPercent = (float)m_timers.texture_duration / (float)m_timers.draw_calls_duration; - std::wstring texDuration = L"Textures : " + std::to_wstring(m_timers.texture_duration) + L" us (" + std::to_wstring(100.f * texPercent) + L" %)"; - float programPercent = (float)m_timers.program_load_duration / (float)m_timers.draw_calls_duration; - std::wstring programDuration = L"Program : " + std::to_wstring(m_timers.program_load_duration) + L" us (" + std::to_wstring(100.f * programPercent) + L" %)"; - float constantsPercent = (float)m_timers.constants_duration / (float)m_timers.draw_calls_duration; - std::wstring constantDuration = L"Constants : " + std::to_wstring(m_timers.constants_duration) + L" us (" + std::to_wstring(100.f * constantsPercent) + L" %)"; - float rttPercent = (float)m_timers.prepare_rtt_duration / (float)m_timers.draw_calls_duration; - std::wstring rttDuration = L"RTT : " + std::to_wstring(m_timers.prepare_rtt_duration) + L" us (" + std::to_wstring(100.f * rttPercent) + L" %)"; - std::wstring flipDuration = L"Flip : " + std::to_wstring(m_timers.flip_duration) + L" us"; - - std::wstring count = L"Draw count : " + std::to_wstring(m_timers.draw_calls_count); - draw_strings(rtSize, m_swap_chain->GetCurrentBackBufferIndex(), - { - duration, - count, - rttDuration, - vertexIndexDuration, - size, - programDuration, - constantDuration, - texDuration, - flipDuration - }); -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.cpp b/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.cpp deleted file mode 100644 index cbe2bc02b5..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.cpp +++ /dev/null @@ -1,325 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12PipelineState.h" -#include "D3D12GSRender.h" -#include "D3D12Formats.h" -#include "../rsx_methods.h" -#include "../rsx_utils.h" -#include "../Common/TextureUtils.h" - -#define TO_STRING(x) #x - -extern pD3DCompile wrapD3DCompile; - -void Shader::Compile(const std::string &code, SHADER_TYPE st) -{ - content = code; - HRESULT hr; - ComPtr errorBlob; - UINT compileFlags; - if (g_cfg.video.debug_output) - compileFlags = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION; - else - compileFlags = 0; - switch (st) - { - case SHADER_TYPE::SHADER_TYPE_VERTEX: - hr = wrapD3DCompile(code.c_str(), code.size(), "VertexProgram.hlsl", nullptr, nullptr, "main", "vs_5_0", compileFlags, 0, &bytecode, errorBlob.GetAddressOf()); - if (hr != S_OK) - LOG_ERROR(RSX, "VS build failed:%s", (char*)errorBlob->GetBufferPointer()); - break; - case SHADER_TYPE::SHADER_TYPE_FRAGMENT: - hr = wrapD3DCompile(code.c_str(), code.size(), "FragmentProgram.hlsl", nullptr, nullptr, "main", "ps_5_0", compileFlags, 0, &bytecode, errorBlob.GetAddressOf()); - if (hr != S_OK) - LOG_ERROR(RSX, "FS build failed:%s", (char*)errorBlob->GetBufferPointer()); - break; - } -} - -void D3D12GSRender::load_program() -{ - auto rtt_lookup_func = [this](u32 texaddr, rsx::fragment_texture&, bool is_depth) -> std::tuple - { - ID3D12Resource *surface = nullptr; - if (!is_depth) - surface = m_rtts.get_texture_from_render_target_if_applicable(texaddr); - else - surface = m_rtts.get_texture_from_depth_stencil_if_applicable(texaddr); - - if (!surface) return std::make_tuple(false, 0); - - D3D12_RESOURCE_DESC desc = surface->GetDesc(); - u16 native_pitch = get_dxgi_texel_size(desc.Format) * (u16)desc.Width; - return std::make_tuple(true, native_pitch); - }; - - get_current_vertex_program({}, true, false); - get_current_fragment_program_legacy(rtt_lookup_func); - - if (!current_fragment_program.valid) - return; - - D3D12PipelineProperties prop = {}; - prop.Topology = get_primitive_topology_type(rsx::method_registers.current_draw_clause.primitive); - - static D3D12_BLEND_DESC CD3D12_BLEND_DESC = - { - FALSE, - FALSE, - { - FALSE,FALSE, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_LOGIC_OP_NOOP, - D3D12_COLOR_WRITE_ENABLE_ALL, - } - }; - prop.Blend = CD3D12_BLEND_DESC; - - if (rsx::method_registers.blend_enabled()) - { - //We can use the d3d blend factor as long as !(rgb_factor == alpha && a_factor == color) - rsx::blend_factor sfactor_rgb = rsx::method_registers.blend_func_sfactor_rgb(); - rsx::blend_factor dfactor_rgb = rsx::method_registers.blend_func_dfactor_rgb(); - rsx::blend_factor sfactor_a = rsx::method_registers.blend_func_sfactor_a(); - rsx::blend_factor dfactor_a = rsx::method_registers.blend_func_dfactor_a(); - - D3D12_BLEND d3d_sfactor_rgb = get_blend_factor(sfactor_rgb); - D3D12_BLEND d3d_dfactor_rgb = get_blend_factor(dfactor_rgb);; - D3D12_BLEND d3d_sfactor_alpha = get_blend_factor_alpha(sfactor_a); - D3D12_BLEND d3d_dfactor_alpha = get_blend_factor_alpha(dfactor_a); - - auto BlendColor = rsx::get_constant_blend_colors(); - bool color_blend_possible = true; - - if (sfactor_rgb == rsx::blend_factor::constant_alpha || - dfactor_rgb == rsx::blend_factor::constant_alpha) - { - if (sfactor_rgb == rsx::blend_factor::constant_color || - dfactor_rgb == rsx::blend_factor::constant_color) - { - //Color information will be destroyed - color_blend_possible = false; - } - else - { - //All components are alpha. - //If an alpha factor refers to constant_color, it only refers to the alpha component, so no need to replace it - BlendColor[0] = BlendColor[1] = BlendColor[2] = BlendColor[3]; - } - } - - if (!color_blend_possible) - { - LOG_ERROR(RSX, "The constant_color blend factor combination defined is not supported"); - - auto flatten_d3d12_factor = [](D3D12_BLEND in) -> D3D12_BLEND - { - switch (in) - { - case D3D12_BLEND_BLEND_FACTOR: - return D3D12_BLEND_ONE; - case D3D12_BLEND_INV_BLEND_FACTOR: - return D3D12_BLEND_ZERO; - } - - LOG_ERROR(RSX, "No suitable conversion defined for blend factor 0x%X" HERE, (u32)in); - return in; - }; - - d3d_sfactor_rgb = flatten_d3d12_factor(d3d_sfactor_rgb); - d3d_dfactor_rgb = flatten_d3d12_factor(d3d_dfactor_rgb);; - d3d_sfactor_alpha = flatten_d3d12_factor(d3d_sfactor_alpha); - d3d_dfactor_alpha = flatten_d3d12_factor(d3d_dfactor_alpha); - } - else - { - get_current_resource_storage().command_list->OMSetBlendFactor(BlendColor.data()); - } - - prop.Blend.RenderTarget[0].BlendEnable = true; - - if (rsx::method_registers.blend_enabled_surface_1()) - prop.Blend.RenderTarget[1].BlendEnable = true; - if (rsx::method_registers.blend_enabled_surface_2()) - prop.Blend.RenderTarget[2].BlendEnable = true; - if (rsx::method_registers.blend_enabled_surface_3()) - prop.Blend.RenderTarget[3].BlendEnable = true; - - prop.Blend.RenderTarget[0].BlendOp = get_blend_op(rsx::method_registers.blend_equation_rgb()); - prop.Blend.RenderTarget[0].BlendOpAlpha = get_blend_op(rsx::method_registers.blend_equation_a()); - - if (rsx::method_registers.blend_enabled_surface_1()) - { - prop.Blend.RenderTarget[1].BlendOp = get_blend_op(rsx::method_registers.blend_equation_rgb()); - prop.Blend.RenderTarget[1].BlendOpAlpha = get_blend_op(rsx::method_registers.blend_equation_a()); - } - - if (rsx::method_registers.blend_enabled_surface_2()) - { - prop.Blend.RenderTarget[2].BlendOp = get_blend_op(rsx::method_registers.blend_equation_rgb()); - prop.Blend.RenderTarget[2].BlendOpAlpha = get_blend_op(rsx::method_registers.blend_equation_a()); - } - - if (rsx::method_registers.blend_enabled_surface_3()) - { - prop.Blend.RenderTarget[3].BlendOp = get_blend_op(rsx::method_registers.blend_equation_rgb()); - prop.Blend.RenderTarget[3].BlendOpAlpha = get_blend_op(rsx::method_registers.blend_equation_a()); - } - - prop.Blend.RenderTarget[0].SrcBlend = d3d_sfactor_rgb; - prop.Blend.RenderTarget[0].DestBlend = d3d_dfactor_rgb; - prop.Blend.RenderTarget[0].SrcBlendAlpha = d3d_sfactor_alpha; - prop.Blend.RenderTarget[0].DestBlendAlpha = d3d_dfactor_alpha; - - if (rsx::method_registers.blend_enabled_surface_1()) - { - prop.Blend.RenderTarget[1].SrcBlend = d3d_sfactor_rgb; - prop.Blend.RenderTarget[1].DestBlend = d3d_dfactor_rgb; - prop.Blend.RenderTarget[1].SrcBlendAlpha = d3d_sfactor_alpha; - prop.Blend.RenderTarget[1].DestBlendAlpha = d3d_dfactor_alpha; - } - - if (rsx::method_registers.blend_enabled_surface_2()) - { - prop.Blend.RenderTarget[2].SrcBlend = d3d_sfactor_rgb; - prop.Blend.RenderTarget[2].DestBlend = d3d_dfactor_rgb; - prop.Blend.RenderTarget[2].SrcBlendAlpha = d3d_sfactor_alpha; - prop.Blend.RenderTarget[2].DestBlendAlpha = d3d_dfactor_alpha; - } - - if (rsx::method_registers.blend_enabled_surface_3()) - { - prop.Blend.RenderTarget[3].SrcBlend = d3d_sfactor_rgb; - prop.Blend.RenderTarget[3].DestBlend = d3d_dfactor_rgb; - prop.Blend.RenderTarget[3].SrcBlendAlpha = d3d_sfactor_alpha; - prop.Blend.RenderTarget[3].DestBlendAlpha = d3d_dfactor_alpha; - } - } - - if (rsx::method_registers.logic_op_enabled()) - { - prop.Blend.RenderTarget[0].LogicOpEnable = true; - prop.Blend.RenderTarget[0].LogicOp = get_logic_op(rsx::method_registers.logic_operation()); - } - - prop.DepthStencilFormat = get_depth_stencil_surface_format(rsx::method_registers.surface_depth_fmt()); - prop.RenderTargetsFormat = get_color_surface_format(rsx::method_registers.surface_color()); - - switch (rsx::method_registers.surface_color_target()) - { - case rsx::surface_target::surface_a: - case rsx::surface_target::surface_b: - prop.numMRT = 1; - break; - case rsx::surface_target::surfaces_a_b: - prop.numMRT = 2; - break; - case rsx::surface_target::surfaces_a_b_c: - prop.numMRT = 3; - break; - case rsx::surface_target::surfaces_a_b_c_d: - prop.numMRT = 4; - break; - default: - break; - } - if (rsx::method_registers.depth_test_enabled()) - { - prop.DepthStencil.DepthEnable = TRUE; - prop.DepthStencil.DepthFunc = get_compare_func(rsx::method_registers.depth_func()); - } - else - prop.DepthStencil.DepthEnable = FALSE; - - prop.DepthStencil.DepthWriteMask = rsx::method_registers.depth_write_enabled() ? D3D12_DEPTH_WRITE_MASK_ALL : D3D12_DEPTH_WRITE_MASK_ZERO; - - if (rsx::method_registers.stencil_test_enabled()) - { - prop.DepthStencil.StencilEnable = TRUE; - prop.DepthStencil.StencilReadMask = rsx::method_registers.stencil_func_mask(); - prop.DepthStencil.StencilWriteMask = rsx::method_registers.stencil_mask(); - prop.DepthStencil.FrontFace.StencilPassOp = get_stencil_op(rsx::method_registers.stencil_op_zpass()); - prop.DepthStencil.FrontFace.StencilDepthFailOp = get_stencil_op(rsx::method_registers.stencil_op_zfail()); - prop.DepthStencil.FrontFace.StencilFailOp = get_stencil_op(rsx::method_registers.stencil_op_fail()); - prop.DepthStencil.FrontFace.StencilFunc = get_compare_func(rsx::method_registers.stencil_func()); - - if (rsx::method_registers.two_sided_stencil_test_enabled()) - { - prop.DepthStencil.BackFace.StencilFailOp = get_stencil_op(rsx::method_registers.back_stencil_op_fail()); - prop.DepthStencil.BackFace.StencilFunc = get_compare_func(rsx::method_registers.back_stencil_func()); - prop.DepthStencil.BackFace.StencilPassOp = get_stencil_op(rsx::method_registers.back_stencil_op_zpass()); - prop.DepthStencil.BackFace.StencilDepthFailOp = get_stencil_op(rsx::method_registers.back_stencil_op_zfail()); - } - else - { - prop.DepthStencil.BackFace.StencilPassOp = get_stencil_op(rsx::method_registers.stencil_op_zpass()); - prop.DepthStencil.BackFace.StencilDepthFailOp = get_stencil_op(rsx::method_registers.stencil_op_zfail()); - prop.DepthStencil.BackFace.StencilFailOp = get_stencil_op(rsx::method_registers.stencil_op_fail()); - prop.DepthStencil.BackFace.StencilFunc = get_compare_func(rsx::method_registers.stencil_func()); - } - } - - // Sensible default value - static D3D12_RASTERIZER_DESC CD3D12_RASTERIZER_DESC = - { - D3D12_FILL_MODE_SOLID, - D3D12_CULL_MODE_NONE, - FALSE, - D3D12_DEFAULT_DEPTH_BIAS, - D3D12_DEFAULT_DEPTH_BIAS_CLAMP, - D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS, - TRUE, - FALSE, - FALSE, - 0, - D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF, - }; - prop.Rasterization = CD3D12_RASTERIZER_DESC; - prop.Rasterization.DepthClipEnable = rsx::method_registers.depth_clip_enabled(); - - if (rsx::method_registers.cull_face_enabled()) - { - prop.Rasterization.CullMode = get_cull_face(rsx::method_registers.cull_face_mode()); - } - - prop.Rasterization.FrontCounterClockwise = get_front_face_ccw(rsx::method_registers.front_face_mode()); - - UINT8 mask = 0; - mask |= rsx::method_registers.color_mask_r(0) ? D3D12_COLOR_WRITE_ENABLE_RED : 0; - mask |= rsx::method_registers.color_mask_g(0) ? D3D12_COLOR_WRITE_ENABLE_GREEN : 0; - mask |= rsx::method_registers.color_mask_b(0) ? D3D12_COLOR_WRITE_ENABLE_BLUE : 0; - mask |= rsx::method_registers.color_mask_a(0) ? D3D12_COLOR_WRITE_ENABLE_ALPHA : 0; - for (unsigned i = 0; i < prop.numMRT; i++) - prop.Blend.RenderTarget[i].RenderTargetWriteMask = mask; - - if (rsx::method_registers.restart_index_enabled()) - { - rsx::index_array_type index_type = rsx::method_registers.current_draw_clause.is_immediate_draw? - rsx::index_array_type::u32: - rsx::method_registers.index_type(); - - if (index_type == rsx::index_array_type::u32) - { - prop.CutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF; - } - if (index_type == rsx::index_array_type::u16) - { - prop.CutValue = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF; - } - } - - m_current_pso = m_pso_cache.get_graphics_pipeline(current_vertex_program, current_fragment_program, prop, false, m_device.Get(), m_shared_root_signature.Get()); - return; -} - -std::pair D3D12GSRender::get_programs() const -{ - return std::make_pair(m_pso_cache.get_transform_program(current_vertex_program).content, m_pso_cache.get_shader_program(current_fragment_program).content); -} - -void D3D12GSRender::notify_tile_unbound(u32 tile) -{ -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h b/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h deleted file mode 100644 index e0ddf4d208..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12PipelineState.h +++ /dev/null @@ -1,203 +0,0 @@ -#pragma once - -#include "D3D12Utils.h" -#include "../Common/ProgramStateCache.h" -#include "D3D12VertexProgramDecompiler.h" -#include "D3D12FragmentProgramDecompiler.h" -#include "Utilities/File.h" - - -struct D3D12PipelineProperties -{ - D3D12_PRIMITIVE_TOPOLOGY_TYPE Topology; - DXGI_FORMAT DepthStencilFormat; - DXGI_FORMAT RenderTargetsFormat; - D3D12_BLEND_DESC Blend; - unsigned numMRT : 3; - D3D12_DEPTH_STENCIL_DESC DepthStencil; - D3D12_RASTERIZER_DESC Rasterization; - D3D12_INDEX_BUFFER_STRIP_CUT_VALUE CutValue; - - bool operator==(const D3D12PipelineProperties &in) const - { - if (memcmp(&DepthStencil, &in.DepthStencil, sizeof(D3D12_DEPTH_STENCIL_DESC))) - return false; - if (memcmp(&Blend, &in.Blend, sizeof(D3D12_BLEND_DESC))) - return false; - if (memcmp(&Rasterization, &in.Rasterization, sizeof(D3D12_RASTERIZER_DESC))) - return false; - return Topology == in.Topology && DepthStencilFormat == in.DepthStencilFormat && numMRT == in.numMRT && RenderTargetsFormat == in.RenderTargetsFormat; - } -}; - -template -size_t hashStructContent(const T& structure) -{ - char *data = (char*)(&structure); - size_t result = 0; - for (unsigned i = 0; i < sizeof(T); i++) - result ^= std::hash()(data[i]); - return result; -} - -namespace std -{ - template <> - struct hash { - size_t operator()(const D3D12PipelineProperties &pipelineProperties) const { - size_t seed = hash()(pipelineProperties.DepthStencilFormat) ^ - (hash()(pipelineProperties.RenderTargetsFormat) << 2) ^ - (hash()(pipelineProperties.Topology) << 2) ^ - (hash()(pipelineProperties.numMRT) << 4); - seed ^= hashStructContent(pipelineProperties.Blend); - seed ^= hashStructContent(pipelineProperties.DepthStencil); - seed ^= hashStructContent(pipelineProperties.Rasterization); - return hash()(seed); - } - }; -} - -/** Storage for a shader -* Embeds the D3DBlob -*/ -struct Shader -{ -public: - enum class SHADER_TYPE - { - SHADER_TYPE_VERTEX, - SHADER_TYPE_FRAGMENT - }; - - Shader() = default; - ~Shader() = default; - Shader(const Shader &) = delete; - - u32 id; - ComPtr bytecode; - // For debugging - std::string content; - size_t vertex_shader_input_count; - std::vector FragmentConstantOffsetCache; - size_t m_textureCount; - - /** - * Decompile a fragment shader located in the PS3's Memory. This function operates synchronously. - * @param prog RSXShaderProgram specifying the location and size of the shader in memory - */ - // void Decompile(RSXFragmentProgram& prog) - - /** Compile the decompiled fragment shader into a format we can use with OpenGL. */ - void Compile(const std::string &code, enum SHADER_TYPE st); -}; - -static -bool has_attribute(size_t attribute, const std::vector &desc) -{ - for (const auto &attribute_desc : desc) - { - if (attribute_desc.SemanticIndex == attribute) - return true; - } - return false; -} - -struct D3D12Traits -{ - using vertex_program_type = Shader; - using fragment_program_type = Shader; - using pipeline_storage_type = std::tuple, size_t, size_t>; - using pipeline_properties = D3D12PipelineProperties; - - static - void recompile_fragment_program(const RSXFragmentProgram &RSXFP, fragment_program_type& fragmentProgramData, size_t ID) - { - u32 size; - D3D12FragmentDecompiler FS(RSXFP, size); - const std::string &shader = FS.Decompile(); - fragmentProgramData.Compile(shader, Shader::SHADER_TYPE::SHADER_TYPE_FRAGMENT); - fragmentProgramData.m_textureCount = 0; - for (const ParamType& PT : FS.m_parr.params[PF_PARAM_UNIFORM]) - { - for (const ParamItem PI : PT.items) - { - if (PT.type == "sampler1D" || PT.type == "sampler2D" || PT.type == "samplerCube" || PT.type == "sampler3D") - { - size_t texture_unit = atoi(PI.name.c_str() + 3); - fragmentProgramData.m_textureCount = std::max(texture_unit + 1, fragmentProgramData.m_textureCount); - continue; - } - size_t offset = atoi(PI.name.c_str() + 2); - fragmentProgramData.FragmentConstantOffsetCache.push_back(offset); - } - } - if (g_cfg.video.log_programs) - fs::file(fs::get_cache_dir() + "shaderlog/FragmentProgram" + std::to_string(ID) + ".hlsl", fs::rewrite).write(shader); - fragmentProgramData.id = (u32)ID; - } - - static - void recompile_vertex_program(const RSXVertexProgram &RSXVP, vertex_program_type& vertexProgramData, size_t ID) - { - D3D12VertexProgramDecompiler VS(RSXVP); - std::string shaderCode = VS.Decompile(); - vertexProgramData.Compile(shaderCode, Shader::SHADER_TYPE::SHADER_TYPE_VERTEX); - vertexProgramData.vertex_shader_input_count = RSXVP.rsx_vertex_inputs.size(); - if (g_cfg.video.log_programs) - fs::file(fs::get_cache_dir() + "shaderlog/VertexProgram" + std::to_string(ID) + ".hlsl", fs::rewrite).write(shaderCode); - vertexProgramData.id = (u32)ID; - } - - static - void validate_pipeline_properties(const vertex_program_type&, const fragment_program_type&, pipeline_properties&) - { - } - - static - pipeline_storage_type build_pipeline( - const vertex_program_type &vertexProgramData, const fragment_program_type &fragmentProgramData, const pipeline_properties &pipelineProperties, - ID3D12Device *device, ID3D12RootSignature* root_signatures) - { - std::tuple, size_t> result = {}; - D3D12_GRAPHICS_PIPELINE_STATE_DESC graphicPipelineStateDesc = {}; - - if (vertexProgramData.bytecode == nullptr) - fmt::throw_exception("Vertex program compilation failure" HERE); - graphicPipelineStateDesc.VS.BytecodeLength = vertexProgramData.bytecode->GetBufferSize(); - graphicPipelineStateDesc.VS.pShaderBytecode = vertexProgramData.bytecode->GetBufferPointer(); - - if (fragmentProgramData.bytecode == nullptr) - fmt::throw_exception("fragment program compilation failure" HERE); - graphicPipelineStateDesc.PS.BytecodeLength = fragmentProgramData.bytecode->GetBufferSize(); - graphicPipelineStateDesc.PS.pShaderBytecode = fragmentProgramData.bytecode->GetBufferPointer(); - - graphicPipelineStateDesc.pRootSignature = root_signatures; - - graphicPipelineStateDesc.BlendState = pipelineProperties.Blend; - graphicPipelineStateDesc.DepthStencilState = pipelineProperties.DepthStencil; - graphicPipelineStateDesc.RasterizerState = pipelineProperties.Rasterization; - graphicPipelineStateDesc.PrimitiveTopologyType = pipelineProperties.Topology; - - graphicPipelineStateDesc.NumRenderTargets = pipelineProperties.numMRT; - for (unsigned i = 0; i < pipelineProperties.numMRT; i++) - graphicPipelineStateDesc.RTVFormats[i] = pipelineProperties.RenderTargetsFormat; - graphicPipelineStateDesc.DSVFormat = pipelineProperties.DepthStencilFormat; - - graphicPipelineStateDesc.SampleDesc.Count = 1; - graphicPipelineStateDesc.SampleMask = UINT_MAX; - graphicPipelineStateDesc.NodeMask = 1; - - graphicPipelineStateDesc.IBStripCutValue = pipelineProperties.CutValue; - - ComPtr pso; - CHECK_HRESULT(device->CreateGraphicsPipelineState(&graphicPipelineStateDesc, IID_PPV_ARGS(pso.GetAddressOf()))); - - std::wstring name = L"PSO_" + std::to_wstring(vertexProgramData.id) + L"_" + std::to_wstring(fragmentProgramData.id); - pso->SetName(name.c_str()); - return std::make_tuple(pso, vertexProgramData.vertex_shader_input_count, fragmentProgramData.m_textureCount); - } -}; - -class PipelineStateObjectCache : public program_state_cache -{ -}; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp b/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp deleted file mode 100644 index 47e6a00844..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.cpp +++ /dev/null @@ -1,409 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12RenderTargetSets.h" -#include "Emu/Memory/vm.h" -#include "Emu/System.h" -#include "Emu/RSX/GSRender.h" -#include "../rsx_methods.h" - -#include -#include "D3D12GSRender.h" -#include "D3D12Formats.h" - -namespace -{ - u32 get_max_depth_value(rsx::surface_depth_format format) - { - switch (format) - { - case rsx::surface_depth_format::z16: return 0xFFFF; - case rsx::surface_depth_format::z24s8: return 0xFFFFFF; - } - fmt::throw_exception("Unknown depth format" HERE); - } - - UINT get_num_rtt(rsx::surface_target color_target) - { - switch (color_target) - { - case rsx::surface_target::none: return 0; - case rsx::surface_target::surface_a: - case rsx::surface_target::surface_b: return 1; - case rsx::surface_target::surfaces_a_b: return 2; - case rsx::surface_target::surfaces_a_b_c: return 3; - case rsx::surface_target::surfaces_a_b_c_d: return 4; - } - fmt::throw_exception("Unknown color target" HERE); - } - - std::vector get_rtt_indexes(rsx::surface_target color_target) - { - switch (color_target) - { - case rsx::surface_target::none: return{}; - case rsx::surface_target::surface_a: return{ 0 }; - case rsx::surface_target::surface_b: return{ 1 }; - case rsx::surface_target::surfaces_a_b: return{ 0, 1 }; - case rsx::surface_target::surfaces_a_b_c: return{ 0, 1, 2 }; - case rsx::surface_target::surfaces_a_b_c_d: return{ 0, 1, 2, 3 }; - } - fmt::throw_exception("Unknown color target" HERE); - } - - u8 get_clear_stencil(u32 register_value) - { - return register_value & 0xff; - } - - size_t get_aligned_pitch(rsx::surface_color_format format, u32 width) - { - switch (format) - { - case rsx::surface_color_format::b8: return align(width, 256); - case rsx::surface_color_format::g8b8: - case rsx::surface_color_format::x1r5g5b5_o1r5g5b5: - case rsx::surface_color_format::x1r5g5b5_z1r5g5b5: - case rsx::surface_color_format::r5g6b5: return align(width * 2, 256); - case rsx::surface_color_format::a8b8g8r8: - case rsx::surface_color_format::x8b8g8r8_o8b8g8r8: - case rsx::surface_color_format::x8b8g8r8_z8b8g8r8: - case rsx::surface_color_format::x8r8g8b8_o8r8g8b8: - case rsx::surface_color_format::x8r8g8b8_z8r8g8b8: - case rsx::surface_color_format::x32: - case rsx::surface_color_format::a8r8g8b8: return align(width * 4, 256); - case rsx::surface_color_format::w16z16y16x16: return align(width * 8, 256); - case rsx::surface_color_format::w32z32y32x32: return align(width * 16, 256); - } - fmt::throw_exception("Unknown color surface format" HERE); - } - - size_t get_packed_pitch(rsx::surface_color_format format, u32 width) - { - switch (format) - { - case rsx::surface_color_format::b8: return width; - case rsx::surface_color_format::g8b8: - case rsx::surface_color_format::x1r5g5b5_o1r5g5b5: - case rsx::surface_color_format::x1r5g5b5_z1r5g5b5: - case rsx::surface_color_format::r5g6b5: return width * 2; - case rsx::surface_color_format::a8b8g8r8: - case rsx::surface_color_format::x8b8g8r8_o8b8g8r8: - case rsx::surface_color_format::x8b8g8r8_z8b8g8r8: - case rsx::surface_color_format::x8r8g8b8_o8r8g8b8: - case rsx::surface_color_format::x8r8g8b8_z8r8g8b8: - case rsx::surface_color_format::x32: - case rsx::surface_color_format::a8r8g8b8: return width * 4; - case rsx::surface_color_format::w16z16y16x16: return width * 8; - case rsx::surface_color_format::w32z32y32x32: return width * 16; - } - fmt::throw_exception("Unknown color surface format" HERE); - } -} - -void D3D12GSRender::clear_surface(u32 arg) -{ - if ((arg & 0xf3) == 0) return; - - std::chrono::time_point start_duration = steady_clock::now(); - - std::chrono::time_point rtt_duration_start = steady_clock::now(); - prepare_render_targets(get_current_resource_storage().command_list.Get()); - - if (!framebuffer_status_valid) return; - - std::chrono::time_point rtt_duration_end = steady_clock::now(); - m_timers.prepare_rtt_duration += std::chrono::duration_cast(rtt_duration_end - rtt_duration_start).count(); - - if (arg & 0x1 || arg & 0x2) - { - get_current_resource_storage().depth_stencil_descriptor_heap_index++; - - if (arg & 0x1) - { - auto depth_format = rsx::method_registers.surface_depth_fmt(); - u32 clear_depth = rsx::method_registers.z_clear_value(depth_format == rsx::surface_depth_format::z24s8); - u32 max_depth_value = get_max_depth_value(depth_format); - get_current_resource_storage().command_list->ClearDepthStencilView(m_rtts.current_ds_handle, D3D12_CLEAR_FLAG_DEPTH, clear_depth / (float)max_depth_value, 0, - 1, &::get_scissor(rsx::method_registers.scissor_origin_x(), rsx::method_registers.scissor_origin_y(), rsx::method_registers.scissor_width(), rsx::method_registers.scissor_height())); - } - - if (arg & 0x2) - get_current_resource_storage().command_list->ClearDepthStencilView(m_rtts.current_ds_handle, D3D12_CLEAR_FLAG_STENCIL, 0.f, get_clear_stencil(rsx::method_registers.stencil_clear_value()), - 1, &::get_scissor(rsx::method_registers.scissor_origin_x(), rsx::method_registers.scissor_origin_y(), rsx::method_registers.scissor_width(), rsx::method_registers.scissor_height())); - } - - if (arg & 0xF0) - { - CD3DX12_CPU_DESCRIPTOR_HANDLE handle = CD3DX12_CPU_DESCRIPTOR_HANDLE(m_rtts.current_rtts_handle); - size_t rtt_index = get_num_rtt(rsx::method_registers.surface_color_target()); - get_current_resource_storage().render_targets_descriptors_heap_index += rtt_index; - std::array clear_color = - { - rsx::method_registers.clear_color_r() / 255.f, - rsx::method_registers.clear_color_g() / 255.f, - rsx::method_registers.clear_color_b() / 255.f, - rsx::method_registers.clear_color_a() / 255.f, - }; - for (unsigned i = 0; i < rtt_index; i++) - get_current_resource_storage().command_list->ClearRenderTargetView(handle.Offset(i, m_descriptor_stride_rtv), clear_color.data(), - 1, &::get_scissor(rsx::method_registers.scissor_origin_x(), rsx::method_registers.scissor_origin_y(), rsx::method_registers.scissor_width(), rsx::method_registers.scissor_height())); - } - - std::chrono::time_point end_duration = steady_clock::now(); - m_timers.draw_calls_duration += std::chrono::duration_cast(end_duration - start_duration).count(); - m_timers.draw_calls_count++; - - if (g_cfg.video.debug_output) - { - CHECK_HRESULT(get_current_resource_storage().command_list->Close()); - m_command_queue->ExecuteCommandLists(1, (ID3D12CommandList**)get_current_resource_storage().command_list.GetAddressOf()); - get_current_resource_storage().set_new_command_list(); - } -} - -void D3D12GSRender::prepare_render_targets(ID3D12GraphicsCommandList *copycmdlist) -{ - // Exit early if there is no rtt changes - if (!m_rtts_dirty) - return; - m_rtts_dirty = false; - - std::array clear_color = - { - rsx::method_registers.clear_color_r() / 255.f, - rsx::method_registers.clear_color_g() / 255.f, - rsx::method_registers.clear_color_b() / 255.f, - rsx::method_registers.clear_color_a() / 255.f, - }; - - rsx::framebuffer_layout layout; - get_framebuffer_layout(rsx::framebuffer_creation_context::context_draw, layout); - if (!framebuffer_status_valid) - return; - - m_rtts.prepare_render_target(copycmdlist, - layout.color_format, layout.depth_format, - layout.width, layout.height, - layout.target, layout.aa_mode, - layout.color_addresses, layout.zeta_address, - layout.actual_color_pitch, layout.actual_zeta_pitch, - m_device.Get(), clear_color, 1.f, 0); - - // write descriptors - DXGI_FORMAT dxgi_format = get_color_surface_format(rsx::method_registers.surface_color()); - D3D12_RENDER_TARGET_VIEW_DESC rtt_view_desc = {}; - rtt_view_desc.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D; - rtt_view_desc.Format = dxgi_format; - - m_rtts.current_rtts_handle = CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().render_targets_descriptors_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((INT)get_current_resource_storage().render_targets_descriptors_heap_index * m_descriptor_stride_rtv); - size_t rtt_index = 0; - for (u8 i : get_rtt_indexes(rsx::method_registers.surface_color_target())) - { - if (std::get<1>(m_rtts.m_bound_render_targets[i]) == nullptr) - continue; - m_device->CreateRenderTargetView(std::get<1>(m_rtts.m_bound_render_targets[i]), &rtt_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_rtts.current_rtts_handle).Offset((INT)rtt_index * m_descriptor_stride_rtv)); - rtt_index++; - } - get_current_resource_storage().render_targets_descriptors_heap_index += rtt_index; - - if (std::get<1>(m_rtts.m_bound_depth_stencil) == nullptr) - return; - m_rtts.current_ds_handle = CD3DX12_CPU_DESCRIPTOR_HANDLE(get_current_resource_storage().depth_stencil_descriptor_heap->GetCPUDescriptorHandleForHeapStart()) - .Offset((INT)get_current_resource_storage().depth_stencil_descriptor_heap_index * m_descriptor_stride_dsv); - get_current_resource_storage().depth_stencil_descriptor_heap_index += 1; - D3D12_DEPTH_STENCIL_VIEW_DESC depth_stencil_view_desc = {}; - depth_stencil_view_desc.Format = get_depth_stencil_surface_format(rsx::method_registers.surface_depth_fmt()); - depth_stencil_view_desc.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D; - m_device->CreateDepthStencilView(std::get<1>(m_rtts.m_bound_depth_stencil), &depth_stencil_view_desc, m_rtts.current_ds_handle); -} - -void D3D12GSRender::set_rtt_and_ds(ID3D12GraphicsCommandList *command_list) -{ - UINT num_rtt = get_num_rtt(rsx::method_registers.surface_color_target()); - D3D12_CPU_DESCRIPTOR_HANDLE* ds_handle = (std::get<1>(m_rtts.m_bound_depth_stencil) != nullptr) ? &m_rtts.current_ds_handle : nullptr; - command_list->OMSetRenderTargets((UINT)num_rtt, &m_rtts.current_rtts_handle, true, ds_handle); -} - -void rsx::render_targets::init(ID3D12Device *device) -{ - g_descriptor_stride_rtv = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV); -} - - -namespace -{ - /** - * Populate command_list with copy command with color_surface data and return offset in readback buffer - */ - size_t download_to_readback_buffer( - ID3D12Device *device, - ID3D12GraphicsCommandList * command_list, - d3d12_data_heap &readback_heap, - ID3D12Resource * color_surface, - rsx::surface_color_format color_surface_format - ) - { - int clip_w = rsx::method_registers.surface_clip_width(); - int clip_h = rsx::method_registers.surface_clip_height(); - - DXGI_FORMAT dxgi_format = get_color_surface_format(color_surface_format); - size_t row_pitch = get_aligned_pitch(color_surface_format, clip_w); - - size_t buffer_size = row_pitch * clip_h; - size_t heap_offset = readback_heap.alloc(buffer_size); - - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(color_surface, D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_COPY_SOURCE)); - - command_list->CopyTextureRegion(&CD3DX12_TEXTURE_COPY_LOCATION(readback_heap.get_heap(), { heap_offset, { dxgi_format, (UINT)clip_w, (UINT)clip_h, 1, (UINT)row_pitch } }), 0, 0, 0, - &CD3DX12_TEXTURE_COPY_LOCATION(color_surface, 0), nullptr); - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(color_surface, D3D12_RESOURCE_STATE_COPY_SOURCE, D3D12_RESOURCE_STATE_RENDER_TARGET)); - return heap_offset; - } - - void copy_readback_buffer_to_dest(void *dest, d3d12_data_heap &readback_heap, size_t offset_in_heap, size_t dst_pitch, size_t src_pitch, size_t height) - { - // TODO: Use exact range - void *mapped_buffer = readback_heap.map(offset_in_heap); - for (unsigned row = 0; row < height; row++) - { - u32 *casted_dest = (u32*)((char*)dest + row * dst_pitch); - u32 *casted_src = (u32*)((char*)mapped_buffer + row * src_pitch); - for (unsigned col = 0; col < src_pitch / 4; col++) - *casted_dest++ = se_storage::swap(*casted_src++); - } - readback_heap.unmap(); - } - - void wait_for_command_queue(ID3D12Device *device, ID3D12CommandQueue *command_queue) - { - ComPtr fence; - CHECK_HRESULT(device->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(fence.GetAddressOf()))); - HANDLE handle = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - fence->SetEventOnCompletion(1, handle); - command_queue->Signal(fence.Get(), 1); - WaitForSingleObjectEx(handle, INFINITE, FALSE); - CloseHandle(handle); - } -} - - - -void D3D12GSRender::copy_render_target_to_dma_location() -{ - // Add all buffer write - // Cell can't make any assumption about readyness of color/depth buffer - // Except when a semaphore is written by RSX - int clip_w = rsx::method_registers.surface_clip_width(); - int clip_h = rsx::method_registers.surface_clip_height(); - - if (clip_w == 0 || clip_h == 0) - return; - - size_t depth_row_pitch = align(clip_w * 4, 256); - size_t depth_buffer_offset_in_heap = 0; - - - u32 address_color[] = - { - rsx::get_address(rsx::method_registers.surface_a_offset(), rsx::method_registers.surface_a_dma()), - rsx::get_address(rsx::method_registers.surface_b_offset(), rsx::method_registers.surface_b_dma()), - rsx::get_address(rsx::method_registers.surface_c_offset(), rsx::method_registers.surface_c_dma()), - rsx::get_address(rsx::method_registers.surface_d_offset(), rsx::method_registers.surface_d_dma()), - }; - u32 address_z = rsx::get_address(rsx::method_registers.surface_z_offset(), rsx::method_registers.surface_z_dma()); - - bool need_transfer = false; - - if (rsx::method_registers.surface_z_dma() && g_cfg.video.write_depth_buffer) - { - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(std::get<1>(m_rtts.m_bound_depth_stencil), D3D12_RESOURCE_STATE_DEPTH_WRITE, D3D12_RESOURCE_STATE_COPY_SOURCE)); - get_current_resource_storage().command_list->CopyTextureRegion(&CD3DX12_TEXTURE_COPY_LOCATION(m_readback_resources.get_heap(), { depth_buffer_offset_in_heap,{ DXGI_FORMAT_R32_TYPELESS, (UINT)clip_w, (UINT)clip_h, 1, (UINT)depth_row_pitch } }), 0, 0, 0, - &CD3DX12_TEXTURE_COPY_LOCATION(std::get<1>(m_rtts.m_bound_depth_stencil), 0), nullptr); - get_current_resource_storage().command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(std::get<1>(m_rtts.m_bound_depth_stencil), D3D12_RESOURCE_STATE_COPY_SOURCE, D3D12_RESOURCE_STATE_DEPTH_WRITE)); - invalidate_address(address_z); - - need_transfer = true; - } - - size_t color_buffer_offset_in_heap[4]; - if (g_cfg.video.write_color_buffers) - { - for (u8 i : get_rtt_indexes(rsx::method_registers.surface_color_target())) - { - if (!address_color[i] || std::get<1>(m_rtts.m_bound_render_targets[i]) == nullptr) - continue; - color_buffer_offset_in_heap[i] = download_to_readback_buffer(m_device.Get(), get_current_resource_storage().command_list.Get(), m_readback_resources, std::get<1>(m_rtts.m_bound_render_targets[i]), rsx::method_registers.surface_color()); - invalidate_address(address_color[i]); - need_transfer = true; - } - } - if (need_transfer) - { - CHECK_HRESULT(get_current_resource_storage().command_list->Close()); - m_command_queue->ExecuteCommandLists(1, (ID3D12CommandList**)get_current_resource_storage().command_list.GetAddressOf()); - get_current_resource_storage().set_new_command_list(); - } - - //Wait for result - wait_for_command_queue(m_device.Get(), m_command_queue.Get()); - - if (address_z && g_cfg.video.write_depth_buffer) - { - auto ptr = vm::base(address_z); - char *depth_buffer = (char*)ptr; - u8 *mapped_buffer = m_readback_resources.map(depth_buffer_offset_in_heap); - - for (unsigned row = 0; row < (unsigned)clip_h; row++) - { - for (unsigned i = 0; i < (unsigned)clip_w; i++) - { - unsigned char c = mapped_buffer[row * depth_row_pitch + i]; - depth_buffer[4 * (row * clip_w + i)] = c; - depth_buffer[4 * (row * clip_w + i) + 1] = c; - depth_buffer[4 * (row * clip_w + i) + 2] = c; - depth_buffer[4 * (row * clip_w + i) + 3] = c; - } - } - m_readback_resources.unmap(); - } - - if (g_cfg.video.write_color_buffers) - { - size_t srcPitch = get_aligned_pitch(rsx::method_registers.surface_color(), clip_w); - size_t dstPitch = get_packed_pitch(rsx::method_registers.surface_color(), clip_w); - - void *dest_buffer[] = - { - vm::base(address_color[0]), - vm::base(address_color[1]), - vm::base(address_color[2]), - vm::base(address_color[3]), - }; - - for (u8 i : get_rtt_indexes(rsx::method_registers.surface_color_target())) - { - if (!address_color[i] || std::get<1>(m_rtts.m_bound_render_targets[i]) == nullptr) - continue; - copy_readback_buffer_to_dest(dest_buffer[i], m_readback_resources, color_buffer_offset_in_heap[i], srcPitch, dstPitch, clip_h); - } - } -} - - -std::array, 4> D3D12GSRender::copy_render_targets_to_memory() -{ - int clip_w = rsx::method_registers.surface_clip_width(); - int clip_h = rsx::method_registers.surface_clip_height(); - return m_rtts.get_render_targets_data(rsx::method_registers.surface_color(), clip_w, clip_h, m_device.Get(), m_command_queue.Get(), m_readback_resources, get_current_resource_storage()); -} - -std::array, 2> D3D12GSRender::copy_depth_stencil_buffer_to_memory() -{ - int clip_w = rsx::method_registers.surface_clip_width(); - int clip_h = rsx::method_registers.surface_clip_height(); - return m_rtts.get_depth_stencil_data(rsx::method_registers.surface_depth_fmt(), clip_w, clip_h, m_device.Get(), m_command_queue.Get(), m_readback_resources, get_current_resource_storage()); -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.h b/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.h deleted file mode 100644 index 636b8df0ea..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12RenderTargetSets.h +++ /dev/null @@ -1,419 +0,0 @@ -#pragma once - -#define INCOMPLETE_SURFACE_CACHE_IMPL - -#include -#include -#include "d3dx12.h" - -#include "D3D12Formats.h" -#include "D3D12MemoryHelpers.h" - -namespace rsx -{ -namespace utility -{ - std::vector get_rtt_indexes(surface_target color_target); - size_t get_aligned_pitch(surface_color_format format, u32 width); - size_t get_packed_pitch(surface_color_format format, u32 width); -} - -template -struct surface_store_deprecated -{ - template - void copy_pitched_src_to_dst(gsl::span dest, gsl::span src, size_t src_pitch_in_bytes, size_t width, size_t height) - { - for (unsigned row = 0; row < height; row++) - { - for (unsigned col = 0; col < width; col++) - dest[col] = src[col]; - src = src.subspan(src_pitch_in_bytes / sizeof(U)); - dest = dest.subspan(width); - } - } - -public: - using surface_storage_type = typename Traits::surface_storage_type; - using surface_type = typename Traits::surface_type; - using command_list_type = typename Traits::command_list_type; - using download_buffer_object = typename Traits::download_buffer_object; - -protected: - std::unordered_map m_render_targets_storage = {}; - std::unordered_map m_depth_stencil_storage = {}; - -public: - std::pair m_bound_render_targets_config = {}; - std::array, 4> m_bound_render_targets = {}; - std::pair m_bound_depth_stencil = {}; - - std::list invalidated_resources; - - surface_store_deprecated() = default; - ~surface_store_deprecated() = default; - surface_store_deprecated(const surface_store_deprecated&) = delete; - -protected: - /** - * If render target already exists at address, issue state change operation on cmdList. - * Otherwise create one with width, height, clearColor info. - * returns the corresponding render target resource. - */ - template - surface_type bind_address_as_render_targets( - command_list_type command_list, - u32 address, - surface_color_format color_format, - surface_antialiasing antialias, - size_t width, size_t height, size_t pitch, - Args&&... extra_params) - { - // Check if render target already exists - auto It = m_render_targets_storage.find(address); - if (It != m_render_targets_storage.end()) - { - surface_storage_type &rtt = It->second; - if (Traits::rtt_has_format_width_height(rtt, color_format, width, height)) - { - Traits::prepare_rtt_for_drawing(command_list, Traits::get(rtt)); - return Traits::get(rtt); - } - - invalidated_resources.push_back(std::move(rtt)); - m_render_targets_storage.erase(It); - } - - m_render_targets_storage[address] = Traits::create_new_surface(address, color_format, width, height, pitch, std::forward(extra_params)...); - return Traits::get(m_render_targets_storage[address]); - } - - template - surface_type bind_address_as_depth_stencil( - command_list_type command_list, - u32 address, - surface_depth_format depth_format, - surface_antialiasing antialias, - size_t width, size_t height, size_t pitch, - Args&&... extra_params) - { - auto It = m_depth_stencil_storage.find(address); - if (It != m_depth_stencil_storage.end()) - { - surface_storage_type &ds = It->second; - if (Traits::ds_has_format_width_height(ds, depth_format, width, height)) - { - Traits::prepare_ds_for_drawing(command_list, Traits::get(ds)); - return Traits::get(ds); - } - - invalidated_resources.push_back(std::move(ds)); - m_depth_stencil_storage.erase(It); - } - - m_depth_stencil_storage[address] = Traits::create_new_surface(address, depth_format, width, height, pitch, std::forward(extra_params)...); - return Traits::get(m_depth_stencil_storage[address]); - } -public: - /** - * Update bound color and depth surface. - * Must be called everytime surface format, clip, or addresses changes. - */ - template - void prepare_render_target( - command_list_type command_list, - surface_color_format color_format, surface_depth_format depth_format, - u32 clip_horizontal_reg, u32 clip_vertical_reg, - surface_target set_surface_target, - surface_antialiasing antialias, - const std::array &surface_addresses, u32 address_z, - const std::array &surface_pitch, u32 zeta_pitch, - Args&&... extra_params) - { - u32 clip_width = clip_horizontal_reg; - u32 clip_height = clip_vertical_reg; - - // Make previous RTTs sampleable - for (int i = m_bound_render_targets_config.first, count = 0; - count < m_bound_render_targets_config.second; - ++i, ++count) - { - auto &rtt = m_bound_render_targets[i]; - Traits::prepare_rtt_for_sampling(command_list, std::get<1>(rtt)); - rtt = std::make_pair(0, nullptr); - } - - const auto rtt_indices = utility::get_rtt_indexes(set_surface_target); - if (LIKELY(!rtt_indices.empty())) - { - m_bound_render_targets_config = { rtt_indices.front(), 0 }; - - // Create/Reuse requested rtts - for (u8 surface_index : rtt_indices) - { - if (surface_addresses[surface_index] == 0) - continue; - - m_bound_render_targets[surface_index] = std::make_pair(surface_addresses[surface_index], - bind_address_as_render_targets(command_list, surface_addresses[surface_index], color_format, antialias, - clip_width, clip_height, surface_pitch[surface_index], std::forward(extra_params)...)); - - m_bound_render_targets_config.second++; - } - } - else - { - m_bound_render_targets_config = { 0, 0 }; - } - - // Same for depth buffer - if (std::get<1>(m_bound_depth_stencil) != nullptr) - Traits::prepare_ds_for_sampling(command_list, std::get<1>(m_bound_depth_stencil)); - - m_bound_depth_stencil = std::make_pair(0, nullptr); - - if (!address_z) - return; - - m_bound_depth_stencil = std::make_pair(address_z, - bind_address_as_depth_stencil(command_list, address_z, depth_format, antialias, - clip_width, clip_height, zeta_pitch, std::forward(extra_params)...)); - } - - /** - * Search for given address in stored color surface - * Return an empty surface_type otherwise. - */ - surface_type get_texture_from_render_target_if_applicable(u32 address) - { - auto It = m_render_targets_storage.find(address); - if (It != m_render_targets_storage.end()) - return Traits::get(It->second); - return surface_type(); - } - - /** - * Search for given address in stored depth stencil surface - * Return an empty surface_type otherwise. - */ - surface_type get_texture_from_depth_stencil_if_applicable(u32 address) - { - auto It = m_depth_stencil_storage.find(address); - if (It != m_depth_stencil_storage.end()) - return Traits::get(It->second); - return surface_type(); - } - - /** - * Get bound color surface raw data. - */ - template - std::array, 4> get_render_targets_data( - surface_color_format color_format, size_t width, size_t height, - Args&& ...args - ) - { - return {}; - } - - /** - * Get bound color surface raw data. - */ - template - std::array, 2> get_depth_stencil_data( - surface_depth_format depth_format, size_t width, size_t height, - Args&& ...args - ) - { - return {}; - } -}; - -struct render_target_traits -{ - using surface_storage_type = ComPtr; - using surface_type = ID3D12Resource*; - using command_list_type = ID3D12GraphicsCommandList*; - using download_buffer_object = std::tuple, HANDLE>; // heap offset, size, last_put_pos, fence, handle - - //TODO: Move this somewhere else - bool depth_is_dirty = false; - - static - ComPtr create_new_surface( - u32 address, - surface_color_format color_format, size_t width, size_t height, size_t /*pitch*/, - ID3D12Device* device, const std::array &clear_color, float, u8) - { - DXGI_FORMAT dxgi_format = get_color_surface_format(color_format); - ComPtr rtt; - LOG_WARNING(RSX, "Creating RTT"); - - D3D12_CLEAR_VALUE clear_color_value = {}; - clear_color_value.Format = dxgi_format; - clear_color_value.Color[0] = clear_color[0]; - clear_color_value.Color[1] = clear_color[1]; - clear_color_value.Color[2] = clear_color[2]; - clear_color_value.Color[3] = clear_color[3]; - - device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Tex2D(dxgi_format, (UINT)width, (UINT)height, 1, 1, 1, 0, D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET), - D3D12_RESOURCE_STATE_RENDER_TARGET, - &clear_color_value, - IID_PPV_ARGS(rtt.GetAddressOf()) - ); - - std::wstring name = L"rtt_@" + std::to_wstring(address); - rtt->SetName(name.c_str()); - - return rtt; - } - - static - void prepare_rtt_for_drawing( - ID3D12GraphicsCommandList* command_list, - ID3D12Resource* rtt) - { - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(rtt, D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_RENDER_TARGET)); - } - - static - void prepare_rtt_for_sampling( - ID3D12GraphicsCommandList* command_list, - ID3D12Resource* rtt) - { - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(rtt, D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_GENERIC_READ)); - } - - static - ComPtr create_new_surface( - u32 address, - surface_depth_format surfaceDepthFormat, size_t width, size_t height, size_t /*pitch*/, - ID3D12Device* device, const std::array& , float clear_depth, u8 clear_stencil) - { - D3D12_CLEAR_VALUE clear_depth_value = {}; - clear_depth_value.DepthStencil.Depth = clear_depth; - clear_depth_value.DepthStencil.Stencil = clear_stencil; - - DXGI_FORMAT dxgi_format = get_depth_stencil_typeless_surface_format(surfaceDepthFormat); - clear_depth_value.Format = get_depth_stencil_surface_clear_format(surfaceDepthFormat); - - ComPtr new_depth_stencil; - device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Tex2D(dxgi_format, (UINT)width, (UINT)height, 1, 1, 1, 0, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL), - D3D12_RESOURCE_STATE_DEPTH_WRITE, - &clear_depth_value, - IID_PPV_ARGS(new_depth_stencil.GetAddressOf()) - ); - std::wstring name = L"ds_@" + std::to_wstring(address); - new_depth_stencil->SetName(name.c_str()); - - return new_depth_stencil; - } - - static - void prepare_ds_for_drawing( - ID3D12GraphicsCommandList* command_list, - ID3D12Resource* ds) - { - // set the resource as depth write - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(ds, D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_DEPTH_WRITE)); - } - - static - void prepare_ds_for_sampling( - ID3D12GraphicsCommandList* command_list, - ID3D12Resource* ds) - { - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(ds, D3D12_RESOURCE_STATE_DEPTH_WRITE, D3D12_RESOURCE_STATE_GENERIC_READ)); - } - - static - bool rtt_has_format_width_height(const ComPtr &rtt, surface_color_format surface_color_format, size_t width, size_t height, bool=false) - { - DXGI_FORMAT dxgi_format = get_color_surface_format(surface_color_format); - return rtt->GetDesc().Format == dxgi_format && rtt->GetDesc().Width == width && rtt->GetDesc().Height == height; - } - - static - bool ds_has_format_width_height(const ComPtr &rtt, surface_depth_format, size_t width, size_t height, bool=false) - { - //TODO: Check format - return rtt->GetDesc().Width == width && rtt->GetDesc().Height == height; - } - - static - std::tuple, HANDLE> issue_download_command( - ID3D12Resource* rtt, - surface_color_format color_format, size_t width, size_t height, - ID3D12Device* device, ID3D12CommandQueue* command_queue, d3d12_data_heap &readback_heap, resource_storage &res_store - ) - { - return {}; - } - - static - std::tuple, HANDLE> issue_depth_download_command( - ID3D12Resource* ds, - surface_depth_format depth_format, size_t width, size_t height, - ID3D12Device* device, ID3D12CommandQueue* command_queue, d3d12_data_heap &readback_heap, resource_storage &res_store - ) - { - return {}; - } - - static - std::tuple, HANDLE> issue_stencil_download_command( - ID3D12Resource* stencil, - size_t width, size_t height, - ID3D12Device* device, ID3D12CommandQueue* command_queue, d3d12_data_heap &readback_heap, resource_storage &res_store - ) - { - return {}; - } - - static - gsl::span map_downloaded_buffer(const std::tuple, HANDLE> &sync_data, - ID3D12Device*, ID3D12CommandQueue*, d3d12_data_heap &readback_heap, resource_storage&) - { - size_t offset; - size_t buffer_size; - size_t current_put_pos_minus_one; - HANDLE handle; - std::tie(offset, buffer_size, current_put_pos_minus_one, std::ignore, handle) = sync_data; - WaitForSingleObjectEx(handle, INFINITE, FALSE); - CloseHandle(handle); - - readback_heap.m_get_pos = current_put_pos_minus_one; - const gsl::byte *mapped_buffer = readback_heap.map(CD3DX12_RANGE(offset, offset + buffer_size)); - return { mapped_buffer , ::narrow(buffer_size) }; - } - - static - void unmap_downloaded_buffer(const std::tuple, HANDLE> &, - ID3D12Device*, ID3D12CommandQueue*, d3d12_data_heap &readback_heap, resource_storage&) - { - readback_heap.unmap(); - } - - static ID3D12Resource* get(const ComPtr &in) - { - return in.Get(); - } -}; - -struct render_targets : public rsx::surface_store_deprecated -{ - INT g_descriptor_stride_rtv; - - D3D12_CPU_DESCRIPTOR_HANDLE current_rtts_handle; - D3D12_CPU_DESCRIPTOR_HANDLE current_ds_handle; - - void init(ID3D12Device *device); -}; - -} diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp deleted file mode 100644 index 46d353f940..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp +++ /dev/null @@ -1,498 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12GSRender.h" -#include "d3dx12.h" -#include "../Common/TextureUtils.h" -// For clarity this code deals with texture but belongs to D3D12GSRender class -#include "D3D12Formats.h" -#include "../rsx_methods.h" - -bool is_dxtc_format(u32 texture_format) -{ - switch (texture_format) - { - case CELL_GCM_TEXTURE_COMPRESSED_DXT1: - case CELL_GCM_TEXTURE_COMPRESSED_DXT23: - case CELL_GCM_TEXTURE_COMPRESSED_DXT45: - return true; - default: - return false; - } -} - -namespace -{ -D3D12_COMPARISON_FUNC get_sampler_compare_func[] = -{ - D3D12_COMPARISON_FUNC_NEVER, - D3D12_COMPARISON_FUNC_LESS, - D3D12_COMPARISON_FUNC_EQUAL, - D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_COMPARISON_FUNC_GREATER, - D3D12_COMPARISON_FUNC_NOT_EQUAL, - D3D12_COMPARISON_FUNC_GREATER_EQUAL, - D3D12_COMPARISON_FUNC_ALWAYS -}; - -D3D12_SAMPLER_DESC get_sampler_desc(const rsx::fragment_texture &texture) -{ - D3D12_SAMPLER_DESC samplerDesc = {}; - samplerDesc.Filter = get_texture_filter(texture.min_filter(), texture.mag_filter()); - samplerDesc.AddressU = get_texture_wrap_mode(texture.wrap_s()); - samplerDesc.AddressV = get_texture_wrap_mode(texture.wrap_t()); - samplerDesc.AddressW = get_texture_wrap_mode(texture.wrap_r()); - samplerDesc.ComparisonFunc = get_sampler_compare_func[static_cast(texture.zfunc())]; - samplerDesc.MaxAnisotropy = get_texture_max_aniso(texture.max_aniso()); - samplerDesc.MipLODBias = texture.bias(); - samplerDesc.BorderColor[0] = (FLOAT)texture.border_color(); - samplerDesc.BorderColor[1] = (FLOAT)texture.border_color(); - samplerDesc.BorderColor[2] = (FLOAT)texture.border_color(); - samplerDesc.BorderColor[3] = (FLOAT)texture.border_color(); - samplerDesc.MinLOD = (FLOAT)(texture.min_lod()); - samplerDesc.MaxLOD = (FLOAT)(texture.max_lod()); - return samplerDesc; -} - -namespace -{ - CD3DX12_RESOURCE_DESC get_texture_description(const rsx::fragment_texture &texture) - { - const u8 format = texture.format() & ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN); - DXGI_FORMAT dxgi_format = get_texture_format(format); - u16 width = texture.width(); - u16 height = texture.height(); - u16 depth = texture.depth(); - u16 miplevels = texture.get_exact_mipmap_count(); - - // DXTC uses 4x4 block texture and align to multiple of 4. - if (is_dxtc_format(format)) - { - width = align(width, 4); - height = align(height, 4); - } - - switch (texture.get_extended_texture_dimension()) - { - case rsx::texture_dimension_extended::texture_dimension_1d: - return CD3DX12_RESOURCE_DESC::Tex1D(dxgi_format, width, 1, miplevels); - case rsx::texture_dimension_extended::texture_dimension_2d: - return CD3DX12_RESOURCE_DESC::Tex2D(dxgi_format, width, height, 1, miplevels); - case rsx::texture_dimension_extended::texture_dimension_cubemap: - return CD3DX12_RESOURCE_DESC::Tex2D(dxgi_format, width, height, 6, miplevels); - case rsx::texture_dimension_extended::texture_dimension_3d: - return CD3DX12_RESOURCE_DESC::Tex3D(dxgi_format, width, height, depth, miplevels); - } - fmt::throw_exception("Unknown texture dimension" HERE); - } -} - -namespace { - /** - * Allocate buffer in texture_buffer_heap big enough and upload data into existing_texture which should be in COPY_DEST state - */ - void update_existing_texture( - const rsx::fragment_texture &texture, - ID3D12GraphicsCommandList *command_list, - d3d12_data_heap &texture_buffer_heap, - ID3D12Resource *existing_texture) - { - size_t w = texture.width(), h = texture.height(); - - const u8 format = texture.format() & ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN); - DXGI_FORMAT dxgi_format = get_texture_format(format); - - size_t buffer_size = get_placed_texture_storage_size(texture, 256); - size_t heap_offset = texture_buffer_heap.alloc(buffer_size); - size_t mip_level = 0; - - void *mapped_buffer_ptr = texture_buffer_heap.map(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - gsl::span mapped_buffer{ (gsl::byte*)mapped_buffer_ptr, ::narrow(buffer_size) }; - std::vector input_layouts = get_subresources_layout(texture); - u8 block_size_in_bytes = get_format_block_size_in_bytes(format); - u8 block_size_in_texel = get_format_block_size_in_texel(format); - bool is_swizzled = !(texture.format() & CELL_GCM_TEXTURE_LN); - size_t offset_in_buffer = 0; - for (const rsx_subresource_layout &layout : input_layouts) - { - texture_uploader_capabilities caps{ false, false, 256 }; - upload_texture_subresource(mapped_buffer.subspan(offset_in_buffer), layout, format, is_swizzled, caps); - UINT row_pitch = align(layout.width_in_block * block_size_in_bytes, 256); - command_list->CopyTextureRegion(&CD3DX12_TEXTURE_COPY_LOCATION(existing_texture, (UINT)mip_level), 0, 0, 0, - &CD3DX12_TEXTURE_COPY_LOCATION(texture_buffer_heap.get_heap(), - { heap_offset + offset_in_buffer, - { - dxgi_format, - (UINT)layout.width_in_block * block_size_in_texel, - (UINT)layout.height_in_block * block_size_in_texel, - (UINT)layout.depth, - row_pitch - } - }), nullptr); - - offset_in_buffer += row_pitch * layout.height_in_block * layout.depth; - offset_in_buffer = align(offset_in_buffer, 512); - mip_level++; - } - texture_buffer_heap.unmap(CD3DX12_RANGE(heap_offset, heap_offset + buffer_size)); - - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(existing_texture, D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_GENERIC_READ)); - } -} - - -/** - * Create a texture residing in default heap and generate uploads commands in commandList, - * using a temporary texture buffer. - */ -ComPtr upload_single_texture( - const rsx::fragment_texture &texture, - ID3D12Device *device, - ID3D12GraphicsCommandList *command_list, - d3d12_data_heap &texture_buffer_heap) -{ - ComPtr result; - CHECK_HRESULT(device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &get_texture_description(texture), - D3D12_RESOURCE_STATE_COPY_DEST, - nullptr, - IID_PPV_ARGS(result.GetAddressOf()) - )); - - update_existing_texture(texture, command_list, texture_buffer_heap, result.Get()); - return result; -} - - -D3D12_SHADER_RESOURCE_VIEW_DESC get_srv_descriptor_with_dimensions(const rsx::fragment_texture &tex) -{ - D3D12_SHADER_RESOURCE_VIEW_DESC shared_resource_view_desc = {}; - switch (tex.get_extended_texture_dimension()) - { - case rsx::texture_dimension_extended::texture_dimension_1d: - shared_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE1D; - shared_resource_view_desc.Texture1D.MipLevels = tex.get_exact_mipmap_count(); - return shared_resource_view_desc; - case rsx::texture_dimension_extended::texture_dimension_2d: - shared_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - shared_resource_view_desc.Texture2D.MipLevels = tex.get_exact_mipmap_count(); - return shared_resource_view_desc; - case rsx::texture_dimension_extended::texture_dimension_cubemap: - shared_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURECUBE; - shared_resource_view_desc.TextureCube.MipLevels = tex.get_exact_mipmap_count(); - return shared_resource_view_desc; - case rsx::texture_dimension_extended::texture_dimension_3d: - shared_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE3D; - shared_resource_view_desc.Texture3D.MipLevels = tex.get_exact_mipmap_count(); - return shared_resource_view_desc; - } - fmt::throw_exception("Wrong texture dimension" HERE); -} -} - -void D3D12GSRender::upload_textures(ID3D12GraphicsCommandList *command_list, size_t texture_count) -{ - for (u32 i = 0; i < texture_count; ++i) - { - if (!m_textures_dirty[i]) - continue; - m_textures_dirty[i] = false; - - if (!rsx::method_registers.fragment_textures[i].enabled()) - { - // Now fill remaining texture slots with dummy texture/sampler - - D3D12_SHADER_RESOURCE_VIEW_DESC shader_resource_view_desc = {}; - shader_resource_view_desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; - shader_resource_view_desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; - shader_resource_view_desc.Texture2D.MipLevels = 1; - shader_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0); - - m_device->CreateShaderResourceView(m_dummy_texture, &shader_resource_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_texture_descriptors->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)i, m_descriptor_stride_srv_cbv_uav) - ); - - D3D12_SAMPLER_DESC sampler_desc = {}; - sampler_desc.Filter = D3D12_FILTER_MIN_MAG_MIP_POINT; - sampler_desc.AddressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - sampler_desc.AddressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - sampler_desc.AddressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP; - - m_device->CreateSampler(&sampler_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_sampler_descriptors->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)i, m_descriptor_stride_samplers)); - - continue; - } - size_t w = rsx::method_registers.fragment_textures[i].width(), h = rsx::method_registers.fragment_textures[i].height(); - - if (!w || !h) - { - LOG_ERROR(RSX, "Texture upload requested but invalid texture dimensions passed"); - continue; - } - - const u32 texaddr = rsx::get_address(rsx::method_registers.fragment_textures[i].offset(), rsx::method_registers.fragment_textures[i].location()); - - const u8 format = rsx::method_registers.fragment_textures[i].format() & ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN); - bool is_swizzled = !(rsx::method_registers.fragment_textures[i].format() & CELL_GCM_TEXTURE_LN); - - ID3D12Resource *vram_texture; - std::pair > *cached_texture = m_texture_cache.find_data_if_available(texaddr); - bool is_render_target = false, is_depth_stencil_texture = false; - - if (vram_texture = m_rtts.get_texture_from_render_target_if_applicable(texaddr)) - { - is_render_target = true; - } - else if (vram_texture = m_rtts.get_texture_from_depth_stencil_if_applicable(texaddr)) - { - is_depth_stencil_texture = true; - } - else if (cached_texture != nullptr && (cached_texture->first == texture_entry(format, w, h, rsx::method_registers.fragment_textures[i].depth(), rsx::method_registers.fragment_textures[i].get_exact_mipmap_count()))) - { - if (cached_texture->first.m_is_dirty) - { - command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(cached_texture->second.Get(), D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_COPY_DEST)); - update_existing_texture(rsx::method_registers.fragment_textures[i], command_list, m_buffer_data, cached_texture->second.Get()); - m_texture_cache.protect_data(texaddr, texaddr, get_texture_size(rsx::method_registers.fragment_textures[i])); - } - vram_texture = cached_texture->second.Get(); - } - else - { - if (cached_texture != nullptr) - get_current_resource_storage().dirty_textures.push_back(m_texture_cache.remove_from_cache(texaddr)); - ComPtr tex = upload_single_texture(rsx::method_registers.fragment_textures[i], m_device.Get(), command_list, m_buffer_data); - std::wstring name = L"texture_@" + std::to_wstring(texaddr); - tex->SetName(name.c_str()); - vram_texture = tex.Get(); - m_texture_cache.store_and_protect_data(texaddr, texaddr, get_texture_size(rsx::method_registers.fragment_textures[i]), format, w, h, rsx::method_registers.fragment_textures[i].depth(), rsx::method_registers.fragment_textures[i].get_exact_mipmap_count(), tex); - } - - D3D12_SHADER_RESOURCE_VIEW_DESC shared_resource_view_desc = get_srv_descriptor_with_dimensions(rsx::method_registers.fragment_textures[i]); - shared_resource_view_desc.Format = get_texture_format(format); - - bool requires_remap = false; - std::array channel_mapping = {}; - - switch (format) - { - default: - LOG_ERROR(RSX, "Unimplemented mapping for texture format: 0x%x", format); - break; - - case CELL_GCM_TEXTURE_COMPRESSED_HILO8: - case CELL_GCM_TEXTURE_COMPRESSED_DXT1: - case CELL_GCM_TEXTURE_COMPRESSED_DXT23: - case CELL_GCM_TEXTURE_COMPRESSED_DXT45: - case CELL_GCM_TEXTURE_DEPTH24_D8: - case CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT: - case CELL_GCM_TEXTURE_DEPTH16: - case CELL_GCM_TEXTURE_DEPTH16_FLOAT: - case CELL_GCM_TEXTURE_X32_FLOAT: - case CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT: - case CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT: - case CELL_GCM_TEXTURE_R5G5B5A1: - case CELL_GCM_TEXTURE_D1R5G5B5: - case CELL_GCM_TEXTURE_A1R5G5B5: - case CELL_GCM_TEXTURE_A4R4G4B4: - case CELL_GCM_TEXTURE_R5G6B5: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; - break; - - case CELL_GCM_TEXTURE_B8: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0); - break; - - case CELL_GCM_TEXTURE_G8B8: - { - u8 remap_a = rsx::method_registers.fragment_textures[i].remap() & 0x3; - u8 remap_r = (rsx::method_registers.fragment_textures[i].remap() >> 2) & 0x3; - u8 remap_g = (rsx::method_registers.fragment_textures[i].remap() >> 4) & 0x3; - u8 remap_b = (rsx::method_registers.fragment_textures[i].remap() >> 6) & 0x3; - - if (is_render_target) - { - // ARGB format - // Data comes from RTT, stored as RGBA already - const int RemapValue[4] = - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 - }; - - channel_mapping = { RemapValue[remap_r], RemapValue[remap_g], RemapValue[remap_b], RemapValue[remap_a] }; - requires_remap = true; - } - else - { - // ARGB format - // Data comes from RSX mem, stored as ARGB already - const int RemapValue[4] = - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 - }; - - channel_mapping = { RemapValue[remap_r], RemapValue[remap_g], RemapValue[remap_b], RemapValue[remap_a] }; - requires_remap = true; - } - - break; - } - - case CELL_GCM_TEXTURE_R6G5B5: // TODO: Remap it to another format here, so it's not glitched out - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0); - break; - - case CELL_GCM_TEXTURE_X16: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0); - break; - - case CELL_GCM_TEXTURE_Y16_X16: - case CELL_GCM_TEXTURE_COMPRESSED_HILO_S8: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0); - break; - - case CELL_GCM_TEXTURE_Y16_X16_FLOAT: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1); - break; - - case CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8: - case CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0); - break; - - case CELL_GCM_TEXTURE_D8R8G8B8: - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3, - D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1); - break; - - case CELL_GCM_TEXTURE_A8R8G8B8: - { - u8 remap_a = rsx::method_registers.fragment_textures[i].remap() & 0x3; - u8 remap_r = (rsx::method_registers.fragment_textures[i].remap() >> 2) & 0x3; - u8 remap_g = (rsx::method_registers.fragment_textures[i].remap() >> 4) & 0x3; - u8 remap_b = (rsx::method_registers.fragment_textures[i].remap() >> 6) & 0x3; - - if (is_render_target) - { - // ARGB format - // Data comes from RTT, stored as RGBA already - const int RemapValue[4] = - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 - }; - - channel_mapping = { RemapValue[remap_r], RemapValue[remap_g], RemapValue[remap_b], RemapValue[remap_a] }; - requires_remap = true; - } - else if (is_depth_stencil_texture) - { - shared_resource_view_desc.Format = DXGI_FORMAT_R24_UNORM_X8_TYPELESS; - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0); - } - else - { - // ARGB format - // Data comes from RSX mem, stored as ARGB already - const int RemapValue[4] = - { - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2, - D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 - }; - - channel_mapping = { RemapValue[remap_r], RemapValue[remap_g], RemapValue[remap_b], RemapValue[remap_a] }; - requires_remap = true; - } - - break; - } - } - - if (requires_remap) - { - auto decoded_remap = rsx::method_registers.fragment_textures[i].decoded_remap(); - u8 remapped_inputs[] = { decoded_remap.second[1], decoded_remap.second[2], decoded_remap.second[3], decoded_remap.second[0] }; - - for (u8 channel = 0; channel < 4; channel++) - { - switch (remapped_inputs[channel]) - { - default: - case CELL_GCM_TEXTURE_REMAP_REMAP: - break; - case CELL_GCM_TEXTURE_REMAP_ONE: - channel_mapping[channel] = D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1; - break; - case CELL_GCM_TEXTURE_REMAP_ZERO: - channel_mapping[channel] = D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0; - } - } - - shared_resource_view_desc.Shader4ComponentMapping = D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING( - channel_mapping[0], - channel_mapping[1], - channel_mapping[2], - channel_mapping[3]); - } - - m_device->CreateShaderResourceView(vram_texture, &shared_resource_view_desc, - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_texture_descriptors->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)i, m_descriptor_stride_srv_cbv_uav) - ); - - m_device->CreateSampler(&get_sampler_desc(rsx::method_registers.fragment_textures[i]), - CD3DX12_CPU_DESCRIPTOR_HANDLE(m_current_sampler_descriptors->GetCPUDescriptorHandleForHeapStart()) - .Offset((UINT)i, m_descriptor_stride_samplers)); - } -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Utils.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Utils.cpp deleted file mode 100644 index 9e7645df06..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Utils.cpp +++ /dev/null @@ -1,177 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12GSRender.h" -#include "d3dx12.h" -#define STRINGIFY(x) #x - -extern PFN_D3D12_SERIALIZE_ROOT_SIGNATURE wrapD3D12SerializeRootSignature; -extern pD3DCompile wrapD3DCompile; - -void D3D12GSRender::shader::init(ID3D12Device *device, ID3D12CommandQueue *gfx_command_queue) -{ - const char *fsCode = STRINGIFY( - Texture2D InputTexture : register(t0); \n - sampler bilinearSampler : register(s0); \n - - struct PixelInput \n - { \n - float4 Pos : SV_POSITION; \n - float2 TexCoords : TEXCOORDS0; \n - }; \n - - float4 main(PixelInput In) : SV_TARGET \n - { \n - return InputTexture.Sample(bilinearSampler, In.TexCoords); \n - } - ); - - Microsoft::WRL::ComPtr fsBytecode; - Microsoft::WRL::ComPtr errorBlob; - CHECK_HRESULT(wrapD3DCompile(fsCode, strlen(fsCode), "test", nullptr, nullptr, "main", "ps_5_0", 0, 0, &fsBytecode, errorBlob.GetAddressOf())); - - const char *vsCode = STRINGIFY( - struct VertexInput \n - { \n - float2 Pos : POSITION; \n - float2 TexCoords : TEXCOORDS0; \n - }; \n - - struct PixelInput \n - { \n - float4 Pos : SV_POSITION; \n - float2 TexCoords : TEXCOORDS0; \n - }; \n - - PixelInput main(VertexInput In) \n - { \n - PixelInput Out; \n - Out.Pos = float4(In.Pos, 0., 1.); \n - Out.TexCoords = In.TexCoords; \n - return Out; \n - } - ); - - Microsoft::WRL::ComPtr vsBytecode; - CHECK_HRESULT(wrapD3DCompile(vsCode, strlen(vsCode), "test", nullptr, nullptr, "main", "vs_5_0", 0, 0, &vsBytecode, errorBlob.GetAddressOf())); - - D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; - psoDesc.PS.BytecodeLength = fsBytecode->GetBufferSize(); - psoDesc.PS.pShaderBytecode = fsBytecode->GetBufferPointer(); - psoDesc.VS.BytecodeLength = vsBytecode->GetBufferSize(); - psoDesc.VS.pShaderBytecode = vsBytecode->GetBufferPointer(); - psoDesc.NumRenderTargets = 1; - psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM; - psoDesc.SampleDesc.Count = 1; - psoDesc.SampleMask = UINT_MAX; - - D3D12_INPUT_ELEMENT_DESC IADesc[2] = {}; - IADesc[0].SemanticName = "POSITION"; - IADesc[0].Format = DXGI_FORMAT_R32G32_FLOAT; - IADesc[1].SemanticName = "TEXCOORDS"; - IADesc[1].Format = DXGI_FORMAT_R32G32_FLOAT; - IADesc[1].AlignedByteOffset = 2 * sizeof(float); - - psoDesc.InputLayout.NumElements = 2; - psoDesc.InputLayout.pInputElementDescs = IADesc; - - psoDesc.RasterizerState.CullMode = D3D12_CULL_MODE_NONE; - psoDesc.RasterizerState.FillMode = D3D12_FILL_MODE_SOLID; - - D3D12_DESCRIPTOR_RANGE descriptorRange[2] = {}; - // Textures - descriptorRange[0].BaseShaderRegister = 0; - descriptorRange[0].NumDescriptors = 1; - descriptorRange[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; - descriptorRange[1].BaseShaderRegister = 0; - descriptorRange[1].NumDescriptors = 1; - descriptorRange[1].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER; - D3D12_ROOT_PARAMETER RP[2] = {}; - RP[0].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - RP[0].ShaderVisibility = D3D12_SHADER_VISIBILITY_ALL; - RP[0].DescriptorTable.pDescriptorRanges = &descriptorRange[0]; - RP[0].DescriptorTable.NumDescriptorRanges = 1; - RP[1].ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - RP[1].ShaderVisibility = D3D12_SHADER_VISIBILITY_ALL; - RP[1].DescriptorTable.pDescriptorRanges = &descriptorRange[1]; - RP[1].DescriptorTable.NumDescriptorRanges = 1; - - D3D12_ROOT_SIGNATURE_DESC rootSignatureDesc = {}; - rootSignatureDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; - rootSignatureDesc.NumParameters = 2; - rootSignatureDesc.pParameters = RP; - - Microsoft::WRL::ComPtr rootSignatureBlob; - - CHECK_HRESULT(wrapD3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &rootSignatureBlob, &errorBlob)); - CHECK_HRESULT(device->CreateRootSignature(0, rootSignatureBlob->GetBufferPointer(), rootSignatureBlob->GetBufferSize(), IID_PPV_ARGS(&root_signature))); - - psoDesc.pRootSignature = root_signature; - psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; - psoDesc.BlendState.RenderTarget[0].RenderTargetWriteMask = D3D12_COLOR_WRITE_ENABLE_ALL; - - CHECK_HRESULT(device->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&pso))); - - D3D12_DESCRIPTOR_HEAP_DESC textureHeapDesc = { D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV , 2, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE }; - CHECK_HRESULT( - device->CreateDescriptorHeap(&textureHeapDesc, IID_PPV_ARGS(&texture_descriptor_heap)) - ); - D3D12_DESCRIPTOR_HEAP_DESC samplerHeapDesc = { D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER , 2, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE }; - CHECK_HRESULT( - device->CreateDescriptorHeap(&samplerHeapDesc, IID_PPV_ARGS(&sampler_descriptor_heap)) - ); - - ComPtr fence; - CHECK_HRESULT(device->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(fence.GetAddressOf()))); - HANDLE handle = CreateEventEx(nullptr, FALSE, FALSE, EVENT_ALL_ACCESS); - fence->SetEventOnCompletion(1, handle); - - float quadVertex[16] = { - -1., -1., 0., 1., - -1., 1., 0., 0., - 1., -1., 1., 1., - 1., 1., 1., 0., - }; - - ComPtr cmdlistAllocator; - CHECK_HRESULT( - device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(cmdlistAllocator.GetAddressOf())) - ); - ComPtr cmdList; - CHECK_HRESULT( - device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, cmdlistAllocator.Get(),nullptr, IID_PPV_ARGS(cmdList.GetAddressOf())) - ); - ComPtr intermediateBuffer; - CHECK_HRESULT(device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_UPLOAD), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(16 * sizeof(float)), - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(intermediateBuffer.GetAddressOf()) - )); - - CHECK_HRESULT( - device->CreateCommittedResource( - &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT), - D3D12_HEAP_FLAG_NONE, - &CD3DX12_RESOURCE_DESC::Buffer(16 * sizeof(float)), - D3D12_RESOURCE_STATE_COPY_DEST, - nullptr, - IID_PPV_ARGS(&vertex_buffer) - )); - - D3D12_SUBRESOURCE_DATA vertexData = { reinterpret_cast(quadVertex), 16 * sizeof(float), 1 }; - - UpdateSubresources(cmdList.Get(), vertex_buffer, intermediateBuffer.Get(), 0, 0, 1, &vertexData); - cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(vertex_buffer, D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER)); - CHECK_HRESULT(cmdList->Close()); - - gfx_command_queue->ExecuteCommandLists(1, CommandListCast(cmdList.GetAddressOf())); - - // Now wait until upload has completed - gfx_command_queue->Signal(fence.Get(), 1); - WaitForSingleObjectEx(handle, INFINITE, FALSE); - CloseHandle(handle); -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Utils.h b/rpcs3/Emu/RSX/D3D12/D3D12Utils.h deleted file mode 100644 index 1b335e4309..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12Utils.h +++ /dev/null @@ -1,74 +0,0 @@ -#pragma once - -#include -#include -#include -#include "Emu/Memory/vm.h" -#include "Emu/RSX/GCM.h" -#include -#include - - -using namespace Microsoft::WRL; -extern ID3D12Device* g_d3d12_device; - -inline std::string get_hresult_message(HRESULT hr) -{ - if (hr == DXGI_ERROR_DEVICE_REMOVED) - { - hr = g_d3d12_device->GetDeviceRemovedReason(); - return fmt::format("D3D12 device was removed with error status 0x%X", hr); - } - - _com_error error(hr); -#ifndef UNICODE - return error.ErrorMessage(); -#else - using convert_type = std::codecvt; - return std::wstring_convert().to_bytes(error.ErrorMessage()); -#endif -} - -#define CHECK_HRESULT(expr) { HRESULT hr = (expr); if (FAILED(hr)) fmt::throw_exception("HRESULT = %s" HERE, get_hresult_message(hr)); } - -/** - * Send data to dst pointer without polluting cache. - * Useful to write to mapped memory from upload heap. - */ -inline -void streamToBuffer(void* dst, void* src, size_t sizeInBytes) -{ - for (int i = 0; i < sizeInBytes / 16; i++) - { - const __m128i &srcPtr = _mm_loadu_si128((__m128i*) ((char*)src + i * 16)); - _mm_stream_si128((__m128i*)((char*)dst + i * 16), srcPtr); - } -} - -/** -* copy src to dst pointer without polluting cache. -* Useful to write to mapped memory from upload heap. -*/ -inline -void streamBuffer(void* dst, void* src, size_t sizeInBytes) -{ - // Assume 64 bytes cache line - int offset = 0; - bool isAligned = !((size_t)src & 15); - for (offset = 0; offset < sizeInBytes - 64; offset += 64) - { - char *line = (char*)src + offset; - char *dstline = (char*)dst + offset; - // prefetch next line - _mm_prefetch(line + 16, _MM_HINT_NTA); - __m128i srcPtr = isAligned ? _mm_load_si128((__m128i *)line) : _mm_loadu_si128((__m128i *)line); - _mm_stream_si128((__m128i*)dstline, srcPtr); - srcPtr = isAligned ? _mm_load_si128((__m128i *)(line + 16)) : _mm_loadu_si128((__m128i *)(line + 16)); - _mm_stream_si128((__m128i*)(dstline + 16), srcPtr); - srcPtr = isAligned ? _mm_load_si128((__m128i *)(line + 32)) : _mm_loadu_si128((__m128i *)(line + 32)); - _mm_stream_si128((__m128i*)(dstline + 32), srcPtr); - srcPtr = isAligned ? _mm_load_si128((__m128i *)(line + 48)) : _mm_loadu_si128((__m128i *)(line + 48)); - _mm_stream_si128((__m128i*)(dstline + 48), srcPtr); - } - memcpy((char*)dst + offset, (char*)src + offset, sizeInBytes - offset); -} diff --git a/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.cpp b/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.cpp deleted file mode 100644 index d9908c9408..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.cpp +++ /dev/null @@ -1,271 +0,0 @@ -#ifdef _MSC_VER -#include "stdafx.h" -#include "stdafx_d3d12.h" -#include "D3D12VertexProgramDecompiler.h" -#include "D3D12CommonDecompiler.h" -#include "Emu/System.h" - - -std::string D3D12VertexProgramDecompiler::getFloatTypeName(size_t elementCount) -{ - return getFloatTypeNameImp(elementCount); -} - -std::string D3D12VertexProgramDecompiler::getIntTypeName(size_t elementCount) -{ - return "int4"; -} - -std::string D3D12VertexProgramDecompiler::getFunction(enum class FUNCTION f) -{ - return getFunctionImp(f); -} - -std::string D3D12VertexProgramDecompiler::compareFunction(COMPARE f, const std::string &Op0, const std::string &Op1, bool /*scalar*/) -{ - return compareFunctionImp(f, Op0, Op1); -} - -void D3D12VertexProgramDecompiler::insertHeader(std::stringstream &OS) -{ - OS << "cbuffer SCALE_OFFSET : register(b0)\n"; - OS << "{\n"; - OS << " float4x4 scaleOffsetMat;\n"; - OS << " int4 userClipEnabled[2];\n"; - OS << " float4 userClipFactor[2];\n"; - OS << " float fog_param0;\n"; - OS << " float fog_param1;\n"; - OS << " int isAlphaTested;\n"; - OS << " float alphaRef;\n"; - OS << " float4 texture_parameters[16];\n"; - OS << "};\n"; -} - -namespace -{ - bool declare_input(std::stringstream & OS, const std::tuple &attribute, const std::vector &inputs, size_t reg) - { - for (const auto &real_input : inputs) - { - if (static_cast(real_input.location) != std::get<0>(attribute)) - continue; - OS << "Buffer<" << (real_input.int_type ? "int4" : "float4") << "> " << std::get<1>(attribute) << "_buffer : register(t" << reg++ << ");\n"; - return true; - } - return false; - } -} - -void D3D12VertexProgramDecompiler::insertInputs(std::stringstream & OS, const std::vector& inputs) -{ - std::vector> input_data; - for (const ParamType PT : inputs) - { - for (const ParamItem &PI : PT.items) - { - input_data.push_back(std::make_tuple(PI.location, PI.name)); - } - } - - std::sort(input_data.begin(), input_data.end()); - - size_t t_register = 0; - for (const auto &attribute : input_data) - { - if (declare_input(OS, attribute, rsx_vertex_program.rsx_vertex_inputs, t_register)) - t_register++; - } -} - -void D3D12VertexProgramDecompiler::insertConstants(std::stringstream & OS, const std::vector & constants) -{ - OS << "cbuffer CONSTANT_BUFFER : register(b1)\n"; - OS << "{\n"; - OS << " float4 vc[468];\n"; - OS << " uint transform_branch_bits;\n"; - OS << "};\n"; -} - -void D3D12VertexProgramDecompiler::insertOutputs(std::stringstream & OS, const std::vector & outputs) -{ - OS << "struct PixelInput\n"; - OS << "{\n"; - OS << " float4 dst_reg0 : SV_POSITION;\n"; - OS << " float4 dst_reg1 : COLOR0;\n"; - OS << " float4 dst_reg2 : COLOR1;\n"; - OS << " float4 dst_reg3 : COLOR2;\n"; - OS << " float4 dst_reg4 : COLOR3;\n"; - OS << " float4 dst_reg5 : FOG;\n"; - OS << " float4 dst_reg6 : TEXCOORD9;\n"; - OS << " float4 dst_reg7 : TEXCOORD0;\n"; - OS << " float4 dst_reg8 : TEXCOORD1;\n"; - OS << " float4 dst_reg9 : TEXCOORD2;\n"; - OS << " float4 dst_reg10 : TEXCOORD3;\n"; - OS << " float4 dst_reg11 : TEXCOORD4;\n"; - OS << " float4 dst_reg12 : TEXCOORD5;\n"; - OS << " float4 dst_reg13 : TEXCOORD6;\n"; - OS << " float4 dst_reg14 : TEXCOORD7;\n"; - OS << " float4 dst_reg15 : TEXCOORD8;\n"; - OS << " float4 dst_userClip0 : SV_ClipDistance0;\n"; - OS << " float4 dst_userClip1 : SV_ClipDistance1;\n"; - OS << "};\n"; -} - -static const vertex_reg_info reg_table[] = -{ - { "gl_Position", false, "dst_reg0", "", false }, - { "diff_color", true, "dst_reg1", "", false }, - { "spec_color", true, "dst_reg2", "", false }, - { "front_diff_color", true, "dst_reg3", "", false }, - { "front_spec_color", true, "dst_reg4", "", false }, - { "fogc", true, "dst_reg5", ".xxxx", true }, - { "gl_ClipDistance[0]", false, "dst_reg5", ".y * userClipFactor[0].x", false, "userClipEnabled[0].x > 0", "0.5", "Out.dst_userClip0.x" }, - { "gl_ClipDistance[0]", false, "dst_reg5", ".z * userClipFactor[0].y", false, "userClipEnabled[0].y > 0", "0.5", "Out.dst_userClip0.y" }, - { "gl_ClipDistance[0]", false, "dst_reg5", ".w * userClipFactor[0].z", false, "userClipEnabled[0].z > 0", "0.5", "Out.dst_userClip0.z" }, - //{ "gl_PointSize", false, "dst_reg6", ".x", false }, - { "gl_ClipDistance[0]", false, "dst_reg6", ".y * userClipFactor[0].w", false, "userClipEnabled[0].w > 0", "0.5", "Out.dst_userClip0.w" }, - { "gl_ClipDistance[0]", false, "dst_reg6", ".z * userClipFactor[1].x", false, "userClipEnabled[1].x > 0", "0.5", "Out.dst_userClip1.x" }, - { "gl_ClipDistance[0]", false, "dst_reg6", ".w * userClipFactor[1].y", false, "userClipEnabled[1].y > 0", "0.5", "Out.dst_userClip1.y" }, - { "tc9", false, "dst_reg6", "", false }, - { "tc0", true, "dst_reg7", "", false }, - { "tc1", true, "dst_reg8", "", false }, - { "tc2", true, "dst_reg9", "", false }, - { "tc3", true, "dst_reg10", "", false }, - { "tc4", true, "dst_reg11", "", false }, - { "tc5", true, "dst_reg12", "", false }, - { "tc6", true, "dst_reg13", "", false }, - { "tc7", true, "dst_reg14", "", false }, - { "tc8", true, "dst_reg15", "", false }, -}; - -namespace -{ - void add_input(std::stringstream & OS, const ParamItem &PI, const std::vector &inputs) - { - for (const auto &real_input : inputs) - { - if (real_input.location != PI.location) - continue; - if (!real_input.is_array) - { - OS << " float4 " << PI.name << " = " << PI.name << "_buffer[0];\n"; - return; - } - if (real_input.frequency > 1) - { - if (real_input.is_modulo) - { - OS << " float4 " << PI.name << " = " << PI.name << "_buffer[vertex_id % " << real_input.frequency << "];\n"; - return; - } - OS << " float4 " << PI.name << " = " << PI.name << "_buffer[vertex_id / " << real_input.frequency << "];\n"; - return; - } - OS << " float4 " << PI.name << " = " << PI.name << "_buffer[vertex_id];\n"; - return; - } - OS << " float4 " << PI.name << " = float4(0., 0., 0., 1.);\n"; - } -} - -void D3D12VertexProgramDecompiler::insertMainStart(std::stringstream & OS) -{ - insert_d3d12_legacy_function(OS, false); - - OS << "PixelInput main(uint vertex_id : SV_VertexID)\n"; - OS << "{\n"; - - // Declare temp registers - for (const ParamType PT : m_parr.params[PF_PARAM_NONE]) - { - for (const ParamItem &PI : PT.items) - { - OS << " " << PT.type << " " << PI.name; - if (!PI.value.empty()) - OS << " = " << PI.value; - else - OS << " = " << "float4(0., 0., 0., 0.);"; - OS << ";\n"; - } - } - - // Declare outputs - for (const ParamType PT : m_parr.params[PF_PARAM_OUT]) - { - for (const ParamItem &PI : PT.items) - { - OS << " " << PT.type << " " << PI.name; - if (!PI.value.empty()) - OS << " = " << PI.value; - else - OS << " = " << "float4(0., 0., 0., 0.);"; - OS << ";\n"; - } - } - - for (const ParamType PT : m_parr.params[PF_PARAM_IN]) - { - for (const ParamItem &PI : PT.items) - { - add_input(OS, PI, rsx_vertex_program.rsx_vertex_inputs); - } - } -} - - -void D3D12VertexProgramDecompiler::insertMainEnd(std::stringstream & OS) -{ - OS << " PixelInput Out = (PixelInput)0;\n"; - - bool insert_front_diffuse = (rsx_vertex_program.output_mask & CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTDIFFUSE) != 0; - bool insert_front_specular = (rsx_vertex_program.output_mask & CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTSPECULAR) != 0; - - bool insert_back_diffuse = (rsx_vertex_program.output_mask & CELL_GCM_ATTRIB_OUTPUT_MASK_BACKDIFFUSE) != 0; - bool insert_back_specular = (rsx_vertex_program.output_mask & CELL_GCM_ATTRIB_OUTPUT_MASK_BACKSPECULAR) != 0; - - // Declare inside main function - for (auto &i : reg_table) - { - if (m_parr.HasParam(PF_PARAM_OUT, "float4", i.src_reg)) - { - if (i.name == "front_diff_color") - insert_front_diffuse = false; - - if (i.name == "front_spec_color") - insert_front_specular = false; - - std::string condition = (!i.cond.empty()) ? "(" + i.cond + ") " : ""; - std::string output_name = i.dst_alias.empty() ? "Out." + i.src_reg : i.dst_alias; - - if (condition.empty() || i.default_val.empty()) - { - if (!condition.empty()) condition = "if " + condition; - OS << " " << condition << output_name << " = " << i.src_reg << i.src_reg_mask << ";\n"; - } - else - { - //Condition and fallback values provided - OS << " " << output_name << " = " << condition << "? " << i.src_reg << i.src_reg_mask << ": " << i.default_val << ";\n"; - } - } - } - - //If 2 sided lighting is active and only back is written, copy the value to the front side (Outrun online arcade) - if (insert_front_diffuse && insert_back_diffuse) - if (m_parr.HasParam(PF_PARAM_OUT, "float4", "dst_reg1")) - OS << " Out.dst_reg3 = dst_reg1;\n"; - - if (insert_front_specular && insert_back_specular) - if (m_parr.HasParam(PF_PARAM_OUT, "float4", "dst_reg2")) - OS << " Out.dst_reg4 = dst_reg2;\n"; - - OS << " Out.dst_reg0 = mul(Out.dst_reg0, scaleOffsetMat);\n"; - OS << " return Out;\n"; - OS << "}\n"; -} - -D3D12VertexProgramDecompiler::D3D12VertexProgramDecompiler(const RSXVertexProgram &prog) : - VertexProgramDecompiler(prog), rsx_vertex_program(prog) -{ -} -#endif diff --git a/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.h b/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.h deleted file mode 100644 index 372c8cc908..0000000000 --- a/rpcs3/Emu/RSX/D3D12/D3D12VertexProgramDecompiler.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include -#include -#include "../Common/VertexProgramDecompiler.h" - -struct D3D12VertexProgramDecompiler : public VertexProgramDecompiler -{ -protected: - virtual std::string getFloatTypeName(size_t elementCount) override; - std::string getIntTypeName(size_t elementCount) override; - virtual std::string getFunction(enum FUNCTION) override; - virtual std::string compareFunction(enum COMPARE, const std::string &, const std::string &, bool scalar) override; - - virtual void insertHeader(std::stringstream &OS); - virtual void insertInputs(std::stringstream &OS, const std::vector &inputs); - virtual void insertConstants(std::stringstream &OS, const std::vector &constants); - virtual void insertOutputs(std::stringstream &OS, const std::vector &outputs); - virtual void insertMainStart(std::stringstream &OS); - virtual void insertMainEnd(std::stringstream &OS); - - const RSXVertexProgram &rsx_vertex_program; -public: - D3D12VertexProgramDecompiler(const RSXVertexProgram &prog); -}; diff --git a/rpcs3/Emu/RSX/D3D12/d3dx12.h b/rpcs3/Emu/RSX/D3D12/d3dx12.h deleted file mode 100644 index 5b1f1ccaa9..0000000000 --- a/rpcs3/Emu/RSX/D3D12/d3dx12.h +++ /dev/null @@ -1,1531 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// Copyright (C) Microsoft Corporation. All Rights Reserved. -// -// File: d3dx12.h -// Content: D3DX12 utility library -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef __D3DX12_H__ -#define __D3DX12_H__ - -#include - -#if defined( __cplusplus ) - -struct CD3DX12_DEFAULT {}; -extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; - -//------------------------------------------------------------------------------------------------ -inline bool operator==(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) -{ - return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && - l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; -} - -//------------------------------------------------------------------------------------------------ -inline bool operator!=(const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r) -{ - return !(l == r); -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RECT : public D3D12_RECT -{ - CD3DX12_RECT() - {} - explicit CD3DX12_RECT(const D3D12_RECT& o) : - D3D12_RECT(o) - {} - explicit CD3DX12_RECT( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom) - { - left = Left; - top = Top; - right = Right; - bottom = Bottom; - } - ~CD3DX12_RECT() {} - operator const D3D12_RECT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BOX : public D3D12_BOX -{ - CD3DX12_BOX() - {} - explicit CD3DX12_BOX(const D3D12_BOX& o) : - D3D12_BOX(o) - {} - explicit CD3DX12_BOX( - LONG Left, - LONG Right) - { - left = Left; - top = 0; - front = 0; - right = Right; - bottom = 1; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Right, - LONG Bottom) - { - left = Left; - top = Top; - front = 0; - right = Right; - bottom = Bottom; - back = 1; - } - explicit CD3DX12_BOX( - LONG Left, - LONG Top, - LONG Front, - LONG Right, - LONG Bottom, - LONG Back) - { - left = Left; - top = Top; - front = Front; - right = Right; - bottom = Bottom; - back = Back; - } - ~CD3DX12_BOX() {} - operator const D3D12_BOX&() const { return *this; } -}; -inline bool operator==(const D3D12_BOX& l, const D3D12_BOX& r) -{ - return l.left == r.left && l.top == r.top && l.front == r.front && - l.right == r.right && l.bottom == r.bottom && l.back == r.back; -} -inline bool operator!=(const D3D12_BOX& l, const D3D12_BOX& r) -{ - return !(l == r); -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC -{ - CD3DX12_DEPTH_STENCIL_DESC() - {} - explicit CD3DX12_DEPTH_STENCIL_DESC(const D3D12_DEPTH_STENCIL_DESC& o) : - D3D12_DEPTH_STENCIL_DESC(o) - {} - explicit CD3DX12_DEPTH_STENCIL_DESC(CD3DX12_DEFAULT) - { - DepthEnable = TRUE; - DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; - DepthFunc = D3D12_COMPARISON_FUNC_LESS; - StencilEnable = FALSE; - StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; - StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; - const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = - { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; - FrontFace = defaultStencilOp; - BackFace = defaultStencilOp; - } - explicit CD3DX12_DEPTH_STENCIL_DESC( - BOOL depthEnable, - D3D12_DEPTH_WRITE_MASK depthWriteMask, - D3D12_COMPARISON_FUNC depthFunc, - BOOL stencilEnable, - UINT8 stencilReadMask, - UINT8 stencilWriteMask, - D3D12_STENCIL_OP frontStencilFailOp, - D3D12_STENCIL_OP frontStencilDepthFailOp, - D3D12_STENCIL_OP frontStencilPassOp, - D3D12_COMPARISON_FUNC frontStencilFunc, - D3D12_STENCIL_OP backStencilFailOp, - D3D12_STENCIL_OP backStencilDepthFailOp, - D3D12_STENCIL_OP backStencilPassOp, - D3D12_COMPARISON_FUNC backStencilFunc) - { - DepthEnable = depthEnable; - DepthWriteMask = depthWriteMask; - DepthFunc = depthFunc; - StencilEnable = stencilEnable; - StencilReadMask = stencilReadMask; - StencilWriteMask = stencilWriteMask; - FrontFace.StencilFailOp = frontStencilFailOp; - FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; - FrontFace.StencilPassOp = frontStencilPassOp; - FrontFace.StencilFunc = frontStencilFunc; - BackFace.StencilFailOp = backStencilFailOp; - BackFace.StencilDepthFailOp = backStencilDepthFailOp; - BackFace.StencilPassOp = backStencilPassOp; - BackFace.StencilFunc = backStencilFunc; - } - ~CD3DX12_DEPTH_STENCIL_DESC() {} - operator const D3D12_DEPTH_STENCIL_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC -{ - CD3DX12_BLEND_DESC() - {} - explicit CD3DX12_BLEND_DESC(const D3D12_BLEND_DESC& o) : - D3D12_BLEND_DESC(o) - {} - explicit CD3DX12_BLEND_DESC(CD3DX12_DEFAULT) - { - AlphaToCoverageEnable = FALSE; - IndependentBlendEnable = FALSE; - const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = - { - FALSE,FALSE, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, - D3D12_LOGIC_OP_NOOP, - D3D12_COLOR_WRITE_ENABLE_ALL, - }; - for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) - RenderTarget[i] = defaultRenderTargetBlendDesc; - } - ~CD3DX12_BLEND_DESC() {} - operator const D3D12_BLEND_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC -{ - CD3DX12_RASTERIZER_DESC() - {} - explicit CD3DX12_RASTERIZER_DESC(const D3D12_RASTERIZER_DESC& o) : - D3D12_RASTERIZER_DESC(o) - {} - explicit CD3DX12_RASTERIZER_DESC(CD3DX12_DEFAULT) - { - FillMode = D3D12_FILL_MODE_SOLID; - CullMode = D3D12_CULL_MODE_BACK; - FrontCounterClockwise = FALSE; - DepthBias = D3D12_DEFAULT_DEPTH_BIAS; - DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; - SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; - DepthClipEnable = TRUE; - MultisampleEnable = FALSE; - AntialiasedLineEnable = FALSE; - ForcedSampleCount = 0; - ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; - } - explicit CD3DX12_RASTERIZER_DESC( - D3D12_FILL_MODE fillMode, - D3D12_CULL_MODE cullMode, - BOOL frontCounterClockwise, - INT depthBias, - FLOAT depthBiasClamp, - FLOAT slopeScaledDepthBias, - BOOL depthClipEnable, - BOOL multisampleEnable, - BOOL antialiasedLineEnable, - UINT forcedSampleCount, - D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) - { - FillMode = fillMode; - CullMode = cullMode; - FrontCounterClockwise = frontCounterClockwise; - DepthBias = depthBias; - DepthBiasClamp = depthBiasClamp; - SlopeScaledDepthBias = slopeScaledDepthBias; - DepthClipEnable = depthClipEnable; - MultisampleEnable = multisampleEnable; - AntialiasedLineEnable = antialiasedLineEnable; - ForcedSampleCount = forcedSampleCount; - ConservativeRaster = conservativeRaster; - } - ~CD3DX12_RASTERIZER_DESC() {} - operator const D3D12_RASTERIZER_DESC&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO -{ - CD3DX12_RESOURCE_ALLOCATION_INFO() - {} - explicit CD3DX12_RESOURCE_ALLOCATION_INFO(const D3D12_RESOURCE_ALLOCATION_INFO& o) : - D3D12_RESOURCE_ALLOCATION_INFO(o) - {} - CD3DX12_RESOURCE_ALLOCATION_INFO( - UINT64 size, - UINT64 alignment) - { - SizeInBytes = size; - Alignment = alignment; - } - operator const D3D12_RESOURCE_ALLOCATION_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES -{ - CD3DX12_HEAP_PROPERTIES() - {} - explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) : - D3D12_HEAP_PROPERTIES(o) - {} - CD3DX12_HEAP_PROPERTIES( - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT creationNodeMask = 1, - UINT nodeMask = 1) - { - Type = D3D12_HEAP_TYPE_CUSTOM; - CPUPageProperty = cpuPageProperty; - MemoryPoolPreference = memoryPoolPreference; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - explicit CD3DX12_HEAP_PROPERTIES( - D3D12_HEAP_TYPE type, - UINT creationNodeMask = 1, - UINT nodeMask = 1) - { - Type = type; - CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; - MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; - CreationNodeMask = creationNodeMask; - VisibleNodeMask = nodeMask; - } - operator const D3D12_HEAP_PROPERTIES&() const { return *this; } - bool IsCPUAccessible() const - { - return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK || (Type == D3D12_HEAP_TYPE_CUSTOM && - (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); - } -}; -inline bool operator==(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) -{ - return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && - l.MemoryPoolPreference == r.MemoryPoolPreference && - l.CreationNodeMask == r.CreationNodeMask && - l.VisibleNodeMask == r.VisibleNodeMask; -} -inline bool operator!=(const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r) -{ - return !(l == r); -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC -{ - CD3DX12_HEAP_DESC() - {} - explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) : - D3D12_HEAP_DESC(o) - {} - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_PROPERTIES properties, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = size; - Properties = properties; - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_HEAP_TYPE type, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES(type); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - UINT64 size, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - UINT64 alignment = 0, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = size; - Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); - Alignment = alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_PROPERTIES properties, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = properties; - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_HEAP_TYPE type, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES(type); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - CD3DX12_HEAP_DESC( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_CPU_PAGE_PROPERTY cpuPageProperty, - D3D12_MEMORY_POOL memoryPoolPreference, - D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE) - { - SizeInBytes = resAllocInfo.SizeInBytes; - Properties = CD3DX12_HEAP_PROPERTIES(cpuPageProperty, memoryPoolPreference); - Alignment = resAllocInfo.Alignment; - Flags = flags; - } - operator const D3D12_HEAP_DESC&() const { return *this; } - bool IsCPUAccessible() const - { - return static_cast< const CD3DX12_HEAP_PROPERTIES* >(&Properties)->IsCPUAccessible(); - } -}; -inline bool operator==(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) -{ - return l.SizeInBytes == r.SizeInBytes && - l.Properties == r.Properties && - l.Alignment == r.Alignment && - l.Flags == r.Flags; -} -inline bool operator!=(const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r) -{ - return !(l == r); -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE -{ - CD3DX12_CLEAR_VALUE() - {} - explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) : - D3D12_CLEAR_VALUE(o) - {} - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - const FLOAT color[4]) - { - Format = format; - memcpy(Color, color, sizeof(Color)); - } - CD3DX12_CLEAR_VALUE( - DXGI_FORMAT format, - FLOAT depth, - UINT8 stencil) - { - Format = format; - /* Use memcpy to preserve NAN values */ - memcpy(&DepthStencil.Depth, &depth, sizeof(depth)); - DepthStencil.Stencil = stencil; - } - operator const D3D12_CLEAR_VALUE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RANGE : public D3D12_RANGE -{ - CD3DX12_RANGE() - {} - explicit CD3DX12_RANGE(const D3D12_RANGE &o) : - D3D12_RANGE(o) - {} - CD3DX12_RANGE( - SIZE_T begin, - SIZE_T end) - { - Begin = begin; - End = end; - } - operator const D3D12_RANGE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE -{ - CD3DX12_TILED_RESOURCE_COORDINATE() - {} - explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) : - D3D12_TILED_RESOURCE_COORDINATE(o) - {} - CD3DX12_TILED_RESOURCE_COORDINATE( - UINT x, - UINT y, - UINT z, - UINT subresource) - { - X = x; - Y = y; - Z = z; - Subresource = subresource; - } - operator const D3D12_TILED_RESOURCE_COORDINATE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE -{ - CD3DX12_TILE_REGION_SIZE() - {} - explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) : - D3D12_TILE_REGION_SIZE(o) - {} - CD3DX12_TILE_REGION_SIZE( - UINT numTiles, - BOOL useBox, - UINT width, - UINT16 height, - UINT16 depth) - { - NumTiles = numTiles; - UseBox = useBox; - Width = width; - Height = height; - Depth = depth; - } - operator const D3D12_TILE_REGION_SIZE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING -{ - CD3DX12_SUBRESOURCE_TILING() - {} - explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) : - D3D12_SUBRESOURCE_TILING(o) - {} - CD3DX12_SUBRESOURCE_TILING( - UINT widthInTiles, - UINT16 heightInTiles, - UINT16 depthInTiles, - UINT startTileIndexInOverallResource) - { - WidthInTiles = widthInTiles; - HeightInTiles = heightInTiles; - DepthInTiles = depthInTiles; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_SUBRESOURCE_TILING&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE -{ - CD3DX12_TILE_SHAPE() - {} - explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) : - D3D12_TILE_SHAPE(o) - {} - CD3DX12_TILE_SHAPE( - UINT widthInTexels, - UINT heightInTexels, - UINT depthInTexels) - { - WidthInTexels = widthInTexels; - HeightInTexels = heightInTexels; - DepthInTexels = depthInTexels; - } - operator const D3D12_TILE_SHAPE&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER -{ - CD3DX12_RESOURCE_BARRIER() - {} - explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) : - D3D12_RESOURCE_BARRIER(o) - {} - static inline CD3DX12_RESOURCE_BARRIER Transition( - _In_ ID3D12Resource* pResource, - D3D12_RESOURCE_STATES stateBefore, - D3D12_RESOURCE_STATES stateAfter, - UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, - D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; - result.Flags = flags; - barrier.Transition.pResource = pResource; - barrier.Transition.StateBefore = stateBefore; - barrier.Transition.StateAfter = stateAfter; - barrier.Transition.Subresource = subresource; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER Aliasing( - _In_ ID3D12Resource* pResourceBefore, - _In_ ID3D12Resource* pResourceAfter) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; - barrier.Aliasing.pResourceBefore = pResourceBefore; - barrier.Aliasing.pResourceAfter = pResourceAfter; - return result; - } - static inline CD3DX12_RESOURCE_BARRIER UAV( - _In_ ID3D12Resource* pResource) - { - CD3DX12_RESOURCE_BARRIER result; - ZeroMemory(&result, sizeof(result)); - D3D12_RESOURCE_BARRIER &barrier = result; - result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; - barrier.UAV.pResource = pResource; - return result; - } - operator const D3D12_RESOURCE_BARRIER&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO -{ - CD3DX12_PACKED_MIP_INFO() - {} - explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) : - D3D12_PACKED_MIP_INFO(o) - {} - CD3DX12_PACKED_MIP_INFO( - UINT8 numStandardMips, - UINT8 numPackedMips, - UINT numTilesForPackedMips, - UINT startTileIndexInOverallResource) - { - NumStandardMips = numStandardMips; - NumPackedMips = numPackedMips; - NumTilesForPackedMips = numTilesForPackedMips; - StartTileIndexInOverallResource = startTileIndexInOverallResource; - } - operator const D3D12_PACKED_MIP_INFO&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT -{ - CD3DX12_SUBRESOURCE_FOOTPRINT() - {} - explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) : - D3D12_SUBRESOURCE_FOOTPRINT(o) - {} - CD3DX12_SUBRESOURCE_FOOTPRINT( - DXGI_FORMAT format, - UINT width, - UINT height, - UINT depth, - UINT rowPitch) - { - Format = format; - Width = width; - Height = height; - Depth = depth; - RowPitch = rowPitch; - } - explicit CD3DX12_SUBRESOURCE_FOOTPRINT( - const D3D12_RESOURCE_DESC& resDesc, - UINT rowPitch) - { - Format = resDesc.Format; - Width = UINT(resDesc.Width); - Height = resDesc.Height; - Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1); - RowPitch = rowPitch; - } - operator const D3D12_SUBRESOURCE_FOOTPRINT&() const { return *this; } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION -{ - CD3DX12_TEXTURE_COPY_LOCATION() - {} - explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) : - D3D12_TEXTURE_COPY_LOCATION(o) - {} - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes) { pResource = pRes; } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - PlacedFootprint = Footprint; - } - CD3DX12_TEXTURE_COPY_LOCATION(ID3D12Resource* pRes, UINT Sub) - { - pResource = pRes; - Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - SubresourceIndex = Sub; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE -{ - CD3DX12_DESCRIPTOR_RANGE() { } - explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) : - D3D12_DESCRIPTOR_RANGE(o) - {} - CD3DX12_DESCRIPTOR_RANGE( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - inline void Init( - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); - } - - static inline void Init( - _Out_ D3D12_DESCRIPTOR_RANGE &range, - D3D12_DESCRIPTOR_RANGE_TYPE rangeType, - UINT numDescriptors, - UINT baseShaderRegister, - UINT registerSpace = 0, - UINT offsetInDescriptorsFromTableStart = - D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) - { - range.RangeType = rangeType; - range.NumDescriptors = numDescriptors; - range.BaseShaderRegister = baseShaderRegister; - range.RegisterSpace = registerSpace; - range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE -{ - CD3DX12_ROOT_DESCRIPTOR_TABLE() {} - explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) : - D3D12_ROOT_DESCRIPTOR_TABLE(o) - {} - CD3DX12_ROOT_DESCRIPTOR_TABLE( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(numDescriptorRanges, _pDescriptorRanges); - } - - inline void Init( - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - Init(*this, numDescriptorRanges, _pDescriptorRanges); - } - - static inline void Init( - _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, - UINT numDescriptorRanges, - _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) - { - rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; - rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS -{ - CD3DX12_ROOT_CONSTANTS() {} - explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) : - D3D12_ROOT_CONSTANTS(o) - {} - CD3DX12_ROOT_CONSTANTS( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(num32BitValues, shaderRegister, registerSpace); - } - - inline void Init( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, num32BitValues, shaderRegister, registerSpace); - } - - static inline void Init( - _Out_ D3D12_ROOT_CONSTANTS &rootConstants, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0) - { - rootConstants.Num32BitValues = num32BitValues; - rootConstants.ShaderRegister = shaderRegister; - rootConstants.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR -{ - CD3DX12_ROOT_DESCRIPTOR() {} - explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) : - D3D12_ROOT_DESCRIPTOR(o) - {} - CD3DX12_ROOT_DESCRIPTOR( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(shaderRegister, registerSpace); - } - - inline void Init( - UINT shaderRegister, - UINT registerSpace = 0) - { - Init(*this, shaderRegister, registerSpace); - } - - static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) - { - table.ShaderRegister = shaderRegister; - table.RegisterSpace = registerSpace; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER -{ - CD3DX12_ROOT_PARAMETER() {} - explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) : - D3D12_ROOT_PARAMETER(o) - {} - - static inline void InitAsDescriptorTable( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); - } - - static inline void InitAsConstants( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); - } - - static inline void InitAsConstantBufferView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsShaderResourceView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - static inline void InitAsUnorderedAccessView( - _Out_ D3D12_ROOT_PARAMETER &rootParam, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; - rootParam.ShaderVisibility = visibility; - CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); - } - - inline void InitAsDescriptorTable( - UINT numDescriptorRanges, - _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); - } - - inline void InitAsConstants( - UINT num32BitValues, - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); - } - - inline void InitAsConstantBufferView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsShaderResourceView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); - } - - inline void InitAsUnorderedAccessView( - UINT shaderRegister, - UINT registerSpace = 0, - D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) - { - InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC -{ - CD3DX12_STATIC_SAMPLER_DESC() {} - explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) : - D3D12_STATIC_SAMPLER_DESC(o) - {} - CD3DX12_STATIC_SAMPLER_DESC( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - - static inline void Init( - _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - samplerDesc.ShaderRegister = shaderRegister; - samplerDesc.Filter = filter; - samplerDesc.AddressU = addressU; - samplerDesc.AddressV = addressV; - samplerDesc.AddressW = addressW; - samplerDesc.MipLODBias = mipLODBias; - samplerDesc.MaxAnisotropy = maxAnisotropy; - samplerDesc.ComparisonFunc = comparisonFunc; - samplerDesc.BorderColor = borderColor; - samplerDesc.MinLOD = minLOD; - samplerDesc.MaxLOD = maxLOD; - samplerDesc.ShaderVisibility = shaderVisibility; - samplerDesc.RegisterSpace = registerSpace; - } - inline void Init( - UINT shaderRegister, - D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, - D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, - FLOAT mipLODBias = 0, - UINT maxAnisotropy = 16, - D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, - D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, - FLOAT minLOD = 0.f, - FLOAT maxLOD = D3D12_FLOAT32_MAX, - D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, - UINT registerSpace = 0) - { - Init( - *this, - shaderRegister, - filter, - addressU, - addressV, - addressW, - mipLODBias, - maxAnisotropy, - comparisonFunc, - borderColor, - minLOD, - maxLOD, - shaderVisibility, - registerSpace); - } - -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC -{ - CD3DX12_ROOT_SIGNATURE_DESC() {} - explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) : - D3D12_ROOT_SIGNATURE_DESC(o) - {} - CD3DX12_ROOT_SIGNATURE_DESC( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) - { - Init(0, NULL, 0, NULL, D3D12_ROOT_SIGNATURE_FLAG_NONE); - } - - inline void Init( - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); - } - - static inline void Init( - _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, - UINT numParameters, - _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, - UINT numStaticSamplers = 0, - _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = NULL, - D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) - { - desc.NumParameters = numParameters; - desc.pParameters = _pParameters; - desc.NumStaticSamplers = numStaticSamplers; - desc.pStaticSamplers = _pStaticSamplers; - desc.Flags = flags; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE -{ - CD3DX12_CPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) : - D3D12_CPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE -{ - CD3DX12_GPU_DESCRIPTOR_HANDLE() {} - explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) : - D3D12_GPU_DESCRIPTOR_HANDLE(o) - {} - CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) { ptr = 0; } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) - { - InitOffsetted(other, offsetScaledByIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) - { - ptr += offsetInDescriptors * descriptorIncrementSize; - return *this; - } - CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) - { - ptr += offsetScaledByIncrementSize; - return *this; - } - inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr == other.ptr); - } - inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) - { - return (ptr != other.ptr); - } - CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) - { - ptr = other.ptr; - return *this; - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - InitOffsetted(*this, base, offsetScaledByIncrementSize); - } - - inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) - { - handle.ptr = base.ptr + offsetScaledByIncrementSize; - } - - static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) - { - handle.ptr = base.ptr + offsetInDescriptors * descriptorIncrementSize; - } -}; - -//------------------------------------------------------------------------------------------------ -inline UINT D3D12CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize) -{ - return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; -} - -//------------------------------------------------------------------------------------------------ -template -inline void D3D12DecomposeSubresource(UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice) -{ - MipSlice = static_cast(Subresource % MipLevels); - ArraySlice = static_cast((Subresource / MipLevels) % ArraySize); - PlaneSlice = static_cast(Subresource / (MipLevels * ArraySize)); -} - -//------------------------------------------------------------------------------------------------ -inline UINT8 D3D12GetFormatPlaneCount( - _In_ ID3D12Device* pDevice, - DXGI_FORMAT Format - ) -{ - D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = { Format }; - if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) - { - return 0; - } - return formatInfo.PlaneCount; -} - -//------------------------------------------------------------------------------------------------ -struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC -{ - CD3DX12_RESOURCE_DESC() - {} - explicit CD3DX12_RESOURCE_DESC(const D3D12_RESOURCE_DESC& o) : - D3D12_RESOURCE_DESC(o) - {} - CD3DX12_RESOURCE_DESC( - D3D12_RESOURCE_DIMENSION dimension, - UINT64 alignment, - UINT64 width, - UINT height, - UINT16 depthOrArraySize, - UINT16 mipLevels, - DXGI_FORMAT format, - UINT sampleCount, - UINT sampleQuality, - D3D12_TEXTURE_LAYOUT layout, - D3D12_RESOURCE_FLAGS flags) - { - Dimension = dimension; - Alignment = alignment; - Width = width; - Height = height; - DepthOrArraySize = depthOrArraySize; - MipLevels = mipLevels; - Format = format; - SampleDesc.Count = sampleCount; - SampleDesc.Quality = sampleQuality; - Layout = layout; - Flags = flags; - } - static inline CD3DX12_RESOURCE_DESC Buffer( - const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE) - { - return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, - 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); - } - static inline CD3DX12_RESOURCE_DESC Buffer( - UINT64 width, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - UINT64 alignment = 0) - { - return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, - DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags); - } - static inline CD3DX12_RESOURCE_DESC Tex1D( - DXGI_FORMAT format, - UINT64 width, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0) - { - return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, - mipLevels, format, 1, 0, layout, flags); - } - static inline CD3DX12_RESOURCE_DESC Tex2D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 arraySize = 1, - UINT16 mipLevels = 0, - UINT sampleCount = 1, - UINT sampleQuality = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0) - { - return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, - mipLevels, format, sampleCount, sampleQuality, layout, flags); - } - static inline CD3DX12_RESOURCE_DESC Tex3D( - DXGI_FORMAT format, - UINT64 width, - UINT height, - UINT16 depth, - UINT16 mipLevels = 0, - D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, - D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, - UINT64 alignment = 0) - { - return CD3DX12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, - mipLevels, format, 1, 0, layout, flags); - } - inline UINT16 Depth() const - { - return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); - } - inline UINT16 ArraySize() const - { - return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1); - } - inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const - { - return D3D12GetFormatPlaneCount(pDevice, Format); - } - inline UINT Subresources(_In_ ID3D12Device* pDevice) const - { - return MipLevels * ArraySize() * PlaneCount(pDevice); - } - inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) - { - return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); - } - operator const D3D12_RESOURCE_DESC&() const { return *this; } -}; -inline bool operator==(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) -{ - return l.Dimension == r.Dimension && - l.Alignment == r.Alignment && - l.Width == r.Width && - l.Height == r.Height && - l.DepthOrArraySize == r.DepthOrArraySize && - l.MipLevels == r.MipLevels && - l.Format == r.Format && - l.SampleDesc.Count == r.SampleDesc.Count && - l.SampleDesc.Quality == r.SampleDesc.Quality && - l.Layout == r.Layout && - l.Flags == r.Flags; -} -inline bool operator!=(const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r) -{ - return !(l == r); -} - -//------------------------------------------------------------------------------------------------ -// Row-by-row memcpy -inline void MemcpySubresource( - _In_ const D3D12_MEMCPY_DEST* pDest, - _In_ const D3D12_SUBRESOURCE_DATA* pSrc, - SIZE_T RowSizeInBytes, - UINT NumRows, - UINT NumSlices) -{ - for (UINT z = 0; z < NumSlices; ++z) - { - BYTE* pDestSlice = reinterpret_cast(pDest->pData) + pDest->SlicePitch * z; - const BYTE* pSrcSlice = reinterpret_cast(pSrc->pData) + pSrc->SlicePitch * z; - for (UINT y = 0; y < NumRows; ++y) - { - memcpy(pDestSlice + pDest->RowPitch * y, - pSrcSlice + pSrc->RowPitch * y, - RowSizeInBytes); - } - } -} - -//------------------------------------------------------------------------------------------------ -// Returns required size of a buffer to be used for data upload -inline UINT64 GetRequiredIntermediateSize( - _In_ ID3D12Resource* pDestinationResource, - _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources) -{ - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - UINT64 RequiredSize = 0; - - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); - pDevice->Release(); - - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// All arrays must be populated (e.g. by calling GetCopyableFootprints) -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, - UINT64 RequiredSize, - _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, - _In_reads_(NumSubresources) const UINT* pNumRows, - _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, - _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) -{ - // Minor validation - D3D12_RESOURCE_DESC IntermediateDesc = pIntermediate->GetDesc(); - D3D12_RESOURCE_DESC DestinationDesc = pDestinationResource->GetDesc(); - if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || - IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || - RequiredSize >(SIZE_T) - 1 || - (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && - (FirstSubresource != 0 || NumSubresources != 1))) - { - return 0; - } - - BYTE* pData; - HRESULT hr = pIntermediate->Map(0, NULL, reinterpret_cast(&pData)); - if (FAILED(hr)) - { - return 0; - } - - for (UINT i = 0; i < NumSubresources; ++i) - { - if (pRowSizesInBytes[i] >(SIZE_T)-1) return 0; - D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, pLayouts[i].Footprint.RowPitch * pNumRows[i] }; - MemcpySubresource(&DestData, &pSrcData[i], (SIZE_T)pRowSizesInBytes[i], pNumRows[i], pLayouts[i].Footprint.Depth); - } - pIntermediate->Unmap(0, NULL); - - if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) - { - CD3DX12_BOX SrcBox(UINT(pLayouts[0].Offset), UINT(pLayouts[0].Offset + pLayouts[0].Footprint.Width)); - pCmdList->CopyBufferRegion( - pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); - } - else - { - for (UINT i = 0; i < NumSubresources; ++i) - { - CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); - CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); - pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); - } - } - return RequiredSize; -} - -//------------------------------------------------------------------------------------------------ -// Heap-allocating UpdateSubresources implementation -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, - _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - UINT64 MemToAlloc = static_cast(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; - if (MemToAlloc > SIZE_MAX) - { - return 0; - } - void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast(MemToAlloc)); - if (pMem == NULL) - { - return 0; - } - D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts = reinterpret_cast(pMem); - UINT64* pRowSizesInBytes = reinterpret_cast(pLayouts + NumSubresources); - UINT* pNumRows = reinterpret_cast(pRowSizesInBytes + NumSubresources); - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); - pDevice->Release(); - - UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); - HeapFree(GetProcessHeap(), 0, pMem); - return Result; -} - -//------------------------------------------------------------------------------------------------ -// Stack-allocating UpdateSubresources implementation -template -inline UINT64 UpdateSubresources( - _In_ ID3D12GraphicsCommandList* pCmdList, - _In_ ID3D12Resource* pDestinationResource, - _In_ ID3D12Resource* pIntermediate, - UINT64 IntermediateOffset, - _In_range_(0, MaxSubresources) UINT FirstSubresource, - _In_range_(1, MaxSubresources - FirstSubresource) UINT NumSubresources, - _In_reads_(NumSubresources) D3D12_SUBRESOURCE_DATA* pSrcData) -{ - UINT64 RequiredSize = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; - UINT NumRows[MaxSubresources]; - UINT64 RowSizesInBytes[MaxSubresources]; - - D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc(); - ID3D12Device* pDevice; - pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast(&pDevice)); - pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); - pDevice->Release(); - - return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); -} - -//------------------------------------------------------------------------------------------------ -inline bool D3D12IsLayoutOpaque(D3D12_TEXTURE_LAYOUT Layout) -{ - return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; -} - -//------------------------------------------------------------------------------------------------ -inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommandList * const * pp) -{ - // This cast is useful for passing strongly typed command list pointers into - // ExecuteCommandLists. - // This cast is valid as long as the const-ness is respected. D3D12 APIs do - // respect the const-ness of their arguments. - return reinterpret_cast(pp); -} - - -#endif // defined( __cplusplus ) - -#endif //__D3DX12_H__ - - diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index f3a73e4e32..1fec53f81b 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -121,9 +121,6 @@ void fmt_class_string::format(std::string& out, u64 arg) case video_renderer::null: return "Null"; case video_renderer::opengl: return "OpenGL"; case video_renderer::vulkan: return "Vulkan"; -#ifdef _MSC_VER - case video_renderer::dx12: return "D3D12"; -#endif } return unknown; diff --git a/rpcs3/Emu/System.h b/rpcs3/Emu/System.h index 7ef4b95015..8d0afa3998 100644 --- a/rpcs3/Emu/System.h +++ b/rpcs3/Emu/System.h @@ -88,9 +88,6 @@ enum class video_renderer null, opengl, vulkan, -#ifdef _MSC_VER - dx12, -#endif }; enum class audio_renderer @@ -499,14 +496,6 @@ struct cfg_root : cfg::node cfg::_int<0, 30000000> driver_recovery_timeout{this, "Driver Recovery Timeout", 1000000}; cfg::_int<1, 500> vblank_rate{this, "Vblank Rate", 60}; // Changing this from 60 may affect game speed in unexpected ways - struct node_d3d12 : cfg::node - { - node_d3d12(cfg::node* _this) : cfg::node(_this, "D3D12") {} - - cfg::string adapter{this, "Adapter"}; - - } d3d12{this}; - struct node_vk : cfg::node { node_vk(cfg::node* _this) : cfg::node(_this, "Vulkan") {} diff --git a/rpcs3/main_application.cpp b/rpcs3/main_application.cpp index b6c62c96b9..bdd6258dfd 100644 --- a/rpcs3/main_application.cpp +++ b/rpcs3/main_application.cpp @@ -35,9 +35,7 @@ #include "Emu/RSX/GSRender.h" #include "Emu/RSX/Null/NullGSRender.h" #include "Emu/RSX/GL/GLGSRender.h" -#ifdef _MSC_VER -#include "Emu/RSX/D3D12/D3D12GSRender.h" -#endif + #if defined(_WIN32) || defined(HAVE_VULKAN) #include "Emu/RSX/VK/VKGSRender.h" #endif @@ -136,13 +134,6 @@ EmuCallbacks main_application::CreateCallbacks() g_fxo->init>(); break; } -#endif -#ifdef _MSC_VER - case video_renderer::dx12: - { - g_fxo->init>(); - break; - } #endif default: fmt::throw_exception("Invalid video renderer: %s" HERE, type); } diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj index 34a828fc9d..67565c3398 100644 --- a/rpcs3/rpcs3.vcxproj +++ b/rpcs3/rpcs3.vcxproj @@ -192,7 +192,7 @@ Level3 - gdi32.lib;..\hidapi.lib;..\libusb-1.0.lib;winmm.lib;OpenAL.lib;XAudio.lib;D3D12GSRender.lib;GLGSRender.lib;shlwapi.lib;VKGSRender.lib;vulkan-1.lib;glslang.lib;OSDependent.lib;OGLCompiler.lib;SPIRV.lib;HLSL.lib;Advapi32.lib;user32.lib;zlib.lib;..\libpng16.lib;asmjit.lib;yaml-cpp.lib;discord-rpc.lib;emucore.lib;dxgi.lib;$(QTDIR)\lib\qtmain.lib;shell32.lib;opengl32.lib;$(QTDIR)\lib\Qt5OpenGL.lib;$(QTDIR)\lib\Qt5Widgets.lib;$(QTDIR)\lib\Qt5Gui.lib;$(QTDIR)\lib\Qt5Qml.lib;$(QTDIR)\lib\Qt5Network.lib;$(QTDIR)\lib\Qt5Core.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5WinExtras.lib;7zlib.lib;%(AdditionalDependencies) + gdi32.lib;..\hidapi.lib;..\libusb-1.0.lib;winmm.lib;OpenAL.lib;XAudio.lib;GLGSRender.lib;shlwapi.lib;VKGSRender.lib;vulkan-1.lib;glslang.lib;OSDependent.lib;OGLCompiler.lib;SPIRV.lib;HLSL.lib;Advapi32.lib;user32.lib;zlib.lib;..\libpng16.lib;asmjit.lib;yaml-cpp.lib;discord-rpc.lib;emucore.lib;dxgi.lib;$(QTDIR)\lib\qtmain.lib;shell32.lib;opengl32.lib;$(QTDIR)\lib\Qt5OpenGL.lib;$(QTDIR)\lib\Qt5Widgets.lib;$(QTDIR)\lib\Qt5Gui.lib;$(QTDIR)\lib\Qt5Qml.lib;$(QTDIR)\lib\Qt5Network.lib;$(QTDIR)\lib\Qt5Core.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;Qt5WinExtras.lib;7zlib.lib;%(AdditionalDependencies) ..\3rdparty\7z\7zlib\x64\Release\;$(VULKAN_SDK)\Lib;..\3rdparty\OpenAL\libs\Win64;..\Vulkan\glslang-build\hlsl\Release;..\Vulkan\glslang-build\SPIRV\Release;..\Vulkan\glslang-build\OGLCompilersDLL\Release;..\Vulkan\glslang-build\glslang\OSDependent\Windows\Release;..\Vulkan\glslang-build\glslang\Release;..\lib\$(CONFIGURATION)-$(PLATFORM);..\3rdparty\minidx12\Lib;..\3rdparty\discord-rpc\lib;$(QTDIR)\lib;%(AdditionalLibraryDirectories) "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions) true @@ -2151,4 +2151,4 @@ - + \ No newline at end of file diff --git a/rpcs3/rpcs3.vcxproj.filters b/rpcs3/rpcs3.vcxproj.filters index e7a4578453..54d8ba5d8c 100644 --- a/rpcs3/rpcs3.vcxproj.filters +++ b/rpcs3/rpcs3.vcxproj.filters @@ -767,6 +767,9 @@ Generated Files\Debug - LLVM + + Generated Files\Debug + @@ -859,6 +862,9 @@ Gui\skylanders + + Generated Files + diff --git a/rpcs3/rpcs3qt/emu_settings.cpp b/rpcs3/rpcs3qt/emu_settings.cpp index c73a3ede9e..5440682b19 100644 --- a/rpcs3/rpcs3qt/emu_settings.cpp +++ b/rpcs3/rpcs3qt/emu_settings.cpp @@ -13,14 +13,6 @@ #include -#ifdef _MSC_VER -#include -#undef GetHwnd -#include -#include -#include -#endif - #if defined(_WIN32) || defined(HAVE_VULKAN) #include "Emu/RSX/VK/VKHelpers.h" #endif @@ -124,36 +116,6 @@ static QStringList getOptions(cfg_location location) emu_settings::Render_Creator::Render_Creator() { - // check for dx12 adapters -#ifdef _MSC_VER - HMODULE D3D12Module = LoadLibrary(L"d3d12.dll"); - - if (D3D12Module != NULL) - { - Microsoft::WRL::ComPtr pAdapter; - Microsoft::WRL::ComPtr dxgi_factory; - if (SUCCEEDED(CreateDXGIFactory1(IID_PPV_ARGS(&dxgi_factory)))) - { - PFN_D3D12_CREATE_DEVICE wrapD3D12CreateDevice = (PFN_D3D12_CREATE_DEVICE)GetProcAddress(D3D12Module, "D3D12CreateDevice"); - if (wrapD3D12CreateDevice != nullptr) - { - for (UINT adapterIndex = 0; DXGI_ERROR_NOT_FOUND != dxgi_factory->EnumAdapters1(adapterIndex, pAdapter.ReleaseAndGetAddressOf()); ++adapterIndex) - { - if (SUCCEEDED(wrapD3D12CreateDevice(pAdapter.Get(), D3D_FEATURE_LEVEL_11_0, _uuidof(ID3D12Device), nullptr))) - { - //A device with D3D12 support found. Init data - supportsD3D12 = true; - - DXGI_ADAPTER_DESC desc; - if (SUCCEEDED(pAdapter->GetDesc(&desc))) - D3D12Adapters.append(QString::fromWCharArray(desc.Description)); - } - } - } - } - } -#endif - #if defined(WIN32) || defined(HAVE_VULKAN) // Some drivers can get stuck when checking for vulkan-compatible gpus, f.ex. if they're waiting for one to get // plugged in. This whole contraption is for showing an error message in case that happens, so that user has @@ -226,12 +188,11 @@ emu_settings::Render_Creator::Render_Creator() #endif // Graphics Adapter - D3D12 = Render_Info(name_D3D12, D3D12Adapters, supportsD3D12, emu_settings::D3D12Adapter); Vulkan = Render_Info(name_Vulkan, vulkanAdapters, supportsVulkan, emu_settings::VulkanAdapter); OpenGL = Render_Info(name_OpenGL); NullRender = Render_Info(name_Null); - renderers = { &D3D12, &Vulkan, &OpenGL, &NullRender }; + renderers = { &Vulkan, &OpenGL, &NullRender }; } emu_settings::Microphone_Creator::Microphone_Creator() diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index 7b1f042cd0..9a7a02cfb2 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -176,9 +176,7 @@ public: QStringList vulkanAdapters; QString name_Null = tr("Disable Video Output"); QString name_Vulkan = tr("Vulkan"); - QString name_D3D12 = tr("D3D12[DO NOT USE]"); QString name_OpenGL = tr("OpenGL"); - Render_Info D3D12; Render_Info Vulkan; Render_Info OpenGL; Render_Info NullRender; diff --git a/rpcs3/rpcs3qt/gui_application.cpp b/rpcs3/rpcs3qt/gui_application.cpp index 95c6b52ff2..349135bc80 100644 --- a/rpcs3/rpcs3qt/gui_application.cpp +++ b/rpcs3/rpcs3qt/gui_application.cpp @@ -146,13 +146,6 @@ std::unique_ptr gui_application::get_gs_frame() frame = new gs_frame("Vulkan", frame_geometry, app_icon, m_gui_settings); break; } -#ifdef _MSC_VER - case video_renderer::dx12: - { - frame = new gs_frame("DirectX 12", frame_geometry, app_icon, m_gui_settings); - break; - } -#endif default: fmt::throw_exception("Invalid video renderer: %s" HERE, type); } diff --git a/rpcs3/rpcs3qt/settings_dialog.cpp b/rpcs3/rpcs3qt/settings_dialog.cpp index 4e8f6f4f53..28b9467bec 100644 --- a/rpcs3/rpcs3qt/settings_dialog.cpp +++ b/rpcs3/rpcs3qt/settings_dialog.cpp @@ -474,7 +474,6 @@ settings_dialog::settings_dialog(std::shared_ptr guiSettings, std: #endif // Change displayed renderer names ui->renderBox->setItemText(ui->renderBox->findData("Null"), render_creator.name_Null); - ui->renderBox->setItemText(ui->renderBox->findData("D3D12"), render_creator.name_D3D12); xemu_settings->EnhanceComboBox(ui->resBox, emu_settings::Resolution); SubscribeTooltip(ui->resBox, json_gpu_cbo["resBox"].toString());